Sistemas de reconocimiento facial

Source: Deep Learning on Medium

Sistemas de reconocimiento facial

El reconocimiento de rostros se refiere a la tecnología capaz de identificar la identidad de sujetos en imágenes o vídeos. Este es un sistema biométrico no invasivo, el cuál puede ser utilizado en sistemas de vigilancia, control de fronteras, sistemas de seguridad, etc.

Las técnicas utilizadas en el reconocimiento facial han variado enormemente durante los años. En un comienzo (90’s), los métodos tradicionales utilizaban características handcrafted, como descriptores de bordes y texturas (Gabor, LBP, HOG, SIFT, etc.), que eran la base para representaciones más complejas, por medio de codificación y transformación de características (por ejemplo PCA, LCA, etc.). Muchos de estos aspectos logran manejar uno de los aspectos de los escenarios sin restricciones, como: luminosidad, pose o expresión. 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 [1] en donde se alcanza un 95% en la base de datos LFW (Labeled Face in the Wild). Esto indica que los métodos existentes eran insuficientes para extraer una representación de los rostros que sea invariante a los cambios del mundo real [2].

Desde hace unos años, los métodos tradicionales han sido reemplazados por los métodos de aprendizaje profundo (deep learning) basados en redes neuronales convolucionales (CNN, por sus siglas en inglés). La principal ventaja de los métodos basados en aprendizaje profundo, es que pueden aprender desde grandes bases de datos las mejores características para representar los datos, en este caso, 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, aproximándose al desempeño de un humano en un escenario sin restricciones (DeepFace: 97,35% vs Humanos: 97,53%), 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 tan solo en 3 años alcanzar un 99,8% [3].

Los sistemas de reconocimiento facial usualmente están conformados por las etapas mostradas en la siguiente figura:

Sistemas de reconocimiento de rostros. (a) Detección de rostro. (b) Alineamiento del rostro. (c) Representación del rostro. (d) Pareo de rostros.
  1. Detección de rostros: Se ingresa al sistema una imagen de consulta. Un detector de rostros encuentra la posición del rostro en la imagen de consulta y retorna las coordenadas de la posición.
  2. Alineamiento del rostro: El objetivo del alineamiento es escalar y cortar la imagen del rostro del mismo modo para todos los rostros, utilizando un set de puntos de referencia.
  3. Representación del rostro: Los píxeles de la imagen de la imagen del rostro son transformados a una representación compacta y discriminativa, 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 sujetos deberían tener vectores de características similares.
  4. Pareo de rostros: Las imágenes de los rostros de los individuos registrado conforman una base de datos llamada galería. Cada imagen de rostro en la galería es representado como un vector de características. La mayoría de los métodos calcula 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 que individuo pertenece el rostro consultado.