La ciencia tras un sistema de reconocimiento facial

EXE prepara herramienta para combatir grooming
julio 11, 2017

Bajo costo computacional y rapidez de implementación son ejes fundamentales para el desarrollo de un sistema de reconocimiento facial útilAsí es cómo se logra.

 

Identificar una cara conocida en la calle o cualquier otro lugar, cotidiano o no cotidiano, no es ningún desafío para los seres humanos. Sólo nos hace falta tener ojos y memoria, y en algunos casos, un par de lentes. Sin embargo, para los computadores y la tecnología en general, el reto es mucho mayor. Un sistema de reconocimiento facial que permita a las máquinas realizar este proceso tan natural y simple para las personas, debe involucrar necesariamente un proceso matemático complejo y pequeños detalles como un cambio de foco o un gesto momentáneo, son puntos críticos en cualquier sistema que pretenda conseguir una tasa de error baja.

A pesar de que se trata de esfuerzos grandes, muchas empresas de tecnología se han lanzado a desarrollar este tipo de sistemas, debido a sus múltiples potencialidades, especialmente como software de seguridad. Desde los inicios de estos esfuerzos hasta ahora, han surgido diferentes técnicas para lograrlo. Sin embargo, todo algoritmo de reconocimiento facial tiene dos fases principales bien diferenciadas y fundamentales: la fase de entrenamiento y la fase de reconocimiento o test.

Durante la fase de entrenamiento, se prepara la base datos que será utilizada en el reconocimiento. Para ello, se introducen imágenes de cada rostro en el algoritmo de entrenamiento, el cual se encarga de extraer las características de cada persona y almacenarlas para su posterior comparación. En la fase de test se toman imágenes de un sujeto desconocido, se extraen las características por el mismo proceso que en la fase de entrenamiento, y se comparan con las de la base de datos. Este es el paso a paso del proceso:

  • Toma de imagen: Dependiendo del sistema empleado, pueden utilizarse imágenes fijas, fotogramas de vídeo, una imagen tridimensional, etc.
  • Detección de cara
  • Procesado de la imagen: Una vez determinada la posición de la cara, se extrae de la imagen, ya que el resto de la información es irrelevante y entorpece el sistema. También pueden ser necesarios otros procesos, como por ejemplo convertir la imagen a escala de grises, o utilizar un filtro paso bajo si la resolución de la imagen es muy alta.
  • Extracción de las características: Se calculan los valores o coeficientes característicos de la imagen dependiendo de la técnica utilizada.
  • Reconocimiento: Se comparan los datos extraídos con los de la base de datos para encontrar al sujeto con los valores más próximos.

Actualmente existen técnicas de reconocimiento facial 3D e incluso de análisis de la textura de la piel, pero estos niveles de sofisticación son costosos de implementar y computacionalmente más pesados, por lo que se hace más difícil su implementación para un uso más cotidiano. Bajo estos parámetros, los sistemas más aventajados son los denominados Eigenfaces y Fisherfaces.

 

Eigenfaces

Es una técnica basada en una herramienta matemática llamada Análisis de Componentes Principales (PCA), útil para la compresión de imágenes y para el desarrollo de sistemas de reconocimiento facial. Es la técnica básica para entender el funcionamiento de esta tecnología y además forma parte importante de técnicas más avanzadas. Está creada a partir de dos fases, una de entrenamiento y otra de clasificación. En la primera, y por medio del PCA, se forma un espacio de facciones, más conocido como eigenspace, a partir del uso de imágenes faciales de entrenamiento. El espacio de facciones es la matriz formada por una serie de vectores propios (eigenvectors o eigenfaces), que contienen la información de la variación de los valores de gris de cada pixel del conjunto de imágenes utilizadas al realizar el PCA.

Para generar un conjunto de eigenfaces, un gran conjunto de imágenes digitalizadas de rostros humanos, adoptadas en las mismas condiciones de iluminación, se normalizan a la línea de los ojos y la boca. Así se forma un conjunto de “imágenes normalizadas”, derivadas del análisis estadístico de muchas imágenes de caras. Cualquier rostro humano puede considerarse una combinación de estos estándares. Las imágenes utilizadas para realizar el PCA se proyectan en el espacio de facciones. La proyección caracteriza la imagen facial de un individuo como la suma de los diferentes pesos del espacio de imágenes.

Luego, en la fase de clasificación, una imagen facial desconocida es proyectada contra el espacio de facciones creado y, por medio de la distancia euclídea, se busca la imagen facial proyectada más parecida a la desconocida.

Sin embargo, esta técnica, al estar basada en los valores de brillo de las imágenes, es muy sensible a variaciones en la iluminación, por lo que es importante que ésta sea controlada. Otra dificultad que presenta es que cuando se quieren añadir imágenes o sujetos que no fueron parte del entrenamiento original, hay que realizar de nuevo el PCA y volver a proyectar todas las imágenes.

 

Fisherface

Esta técnica de reconocimiento facial cuenta con todas las ventajas que tiene Eigenfaces frente a otras técnicas disponibles, tales como la velocidad del sistema, la eficiencia y capacidad de operar en muchas caras en muy poco tiempo. La diferencia es que Fisherfaces además no tiene problemas con la luz. Para que el sistema Eigenfaces funcione bien, es necesario que las imágenes sean frontales y en condiciones análogas a la iluminación, mientras que Fisherfaces es menos sensible a variaciones en la iluminación y a los ángulos de las caras en las imágenes.

Las Fisherfaces además buscan maximizar la varianza de las muestras entre clases (entre personas) y minimizarla entre muestras de la misma clase (de la misma persona). Con esto se logra obtener mejores resultados en caso de que haya variaciones de la iluminación y expresión respecto de las imágenes de entrenamiento. Para esto, se necesita tomar varias imágenes de cada sujeto en diferentes condiciones de iluminación y pose que sean representativas de las variaciones que se vayan a presentar en la aplicación real.

El sistema de reconocimiento facial desarrollado por EXE utiliza justamente esta técnica debido a su bajo costo computacional, la rapidez con que puede ser de implementada y porque se trata de un algoritmo libre que cualquiera puede utilizar, lo que lo convierte en una herramienta de uso transversal para clientes de pequeñas, medianas y grandes empresas.

Esta tecnología comenzó a desarrollarse principalmente para desempeñarse como un software de seguridad en base a la necesidad de una empresa de seguros de contar con un sistema confiable de reconocimiento de personas al momento de cobrar un seguro de vida. Esta tecnología es capaz de realizar un reconocimiento facial y de microexpresiones, ya sea de fotografías, videos o de manera presencial. Esta solución es un aporte a la seguridad de las empresas, sus redes y sus inmuebles, ya que permite validar la identidad de una persona y de establecer claves de acceso en base a expresiones poco improbables de falsificar (levantar cejas, guiñar un ojo, por ejemplo).