Reconocimiento facial: una tecnología en constante actualización
El reconocimiento facial se refiere a la tecnología capaz de identificar la identidad de sujetos en imágenes o vídeos. Pese a una cantidad no menor de desconfianza debido a sus posibilidades de falla, actualmente es una metodología en constante desarrollo. Se trata de un sistema biométrico no invasivo, en donde las técnicas utilizadas han variado enormemente durante los años.
Durante los 90’s, los métodos tradicionales utilizaban características handcrafted, como descriptores de bordes y texturas. Gabor, Local Binary Patterns (LBP), Histogram of Oriented Gradients (HOG), Scale Invariant Feature Transform (SIFT), etc. son algunos ejemplos de esto, los que eran la base para representaciones más complejas, por medio de codificación y transformación de características como Principal Component Analysis (PCA), LCA, entre otras. Aspectos como la luminosidad, pose o expresión pueden manejarse a través de estos parámetros.
Antiguamente, no existía ninguna técnica que pudiera dominar completa e integralmente todos los escenarios. Uno de los mejores resultados logrados es el presentado en el estudio “Blessing of dimensionality: High-dimensional feature and its efficient compression for face verification”, donde se alcanza un 95% en la base de datos Labeled Face in the Wild (LFW). Esto indica que los métodos existentes eran insuficientes para extraer una representación de los rostros que fuese invariante a los cambios del mundo real.
¿Cómo funciona el reconocimiento facial en la actualidad?
Desde hace unos años, los métodos tradicionales han sido reemplazados por otros basados en deep learning, los que a su vez tienen su origen en las Redes Neuronales Convolucionales (CNN). La principal ventaja de los métodos basados en aprendizaje profundo, es que pueden “aprender”, a partir de grandes bases de datos, las mejores características para representar los datos, es decir, para construir los rostros.
Un ejemplo de esto es la red DeepFace, que el año 2014 alcanzó un desempeño “estado del arte” en la famosa base de datos LFW. Con esto, logró aproximarse al desempeño de un humano en un escenario sin restricciones (DeepFace: 97,35% vs Humanos: 97,53%). Esto, entrenando un modelo de 9 capas sobre 4 millones de imágenes de rostros. Inspirado por este trabajo, el foco de las investigaciones se desvió hacia los métodos basados en aprendizaje profundo, logrando alcanzar un 99,8% en tan solo tres años.
Los sistemas de reconocimiento facial usualmente están conformados por las etapas mostradas en la siguiente figura:
- Detección de rostros: Se ingresa al sistema una imagen de consulta. Un detector encuentra la posición del rostro en la imagen de consulta y retorna las coordenadas de la posición.
- Alineamiento del rostro: Su objetivo es escalar y recortar la imagen del mismo modo para todos los rostros, utilizando un set de puntos de referencia.
- Representación del rostro: Los píxeles de la imagen de la imagen del rostro son transformados a una representación compacta y discriminativa, es decir, en un vector de características. Esta representación puede ser lograda utilizando métodos clásicos o modelos basados en aprendizaje profundo. Idealmente, todas las imágenes del rostros de un mismo sujeto deberían tener vectores de características similares.
- Pareo de rostros: Las imágenes de los rostros de los individuos registrados conforman una base de datos llamada galería. Cada imagen de rostro en la galería es representada como un vector de características. La mayoría de los métodos calculan la similitud entre el vector de características de la imagen de consulta y los vectores de la galería, utilizando la distancia coseno o la distancia L2. Aquel con menor distancia indica a qué individuo pertenece el rostro consultado.