Reconocimiento Facial durante la COVID-19

reconocimiento-facial

Identificación de elementos sobre el rostro

El reconocimiento facial es un problema actualmente, debido al uso obligatorio de mascarilla, y aunque poco a poco vamos viendo como se limita su uso, nos acompañará durante un tiempo en muchas situaciones cotidianas.
Por ello presentamos una metodología para detectar objetos en un rostro humano mediante técnicas de visión artificial.

El método utilizado es el de análisis del histograma, que tiene ventajas frente a otras metodologías basadas en redes convolucionales (CNN), ya que nuestra propuesta requiere un conjunto de datos de entrenamiento menor y pocas exigencias de cómputo. El fin de este trabajo es identificar la presencia o la ausencia de mascarilla en un sistema de reconocimiento facial de video. Impactando lo mínimo posible en los recursos de cómputo. Esta metodología puede ser empleada en otros casos, como pudiera ser la detección de bigotes, barbas, gafas, etc.

Fases del reconocimiento facial

La identificación de una persona mediante reconocimiento facial tiene dos fases bien diferenciadas; por un lado hay que localizar la cara o las caras, provenientes de un frame de vídeo o de una imagen estática; y por último hay que comparar las características del rostro con las disponibles en un diccionario de conocidos previamente tratado. Por tanto cuando hablamos de identificación biométrica facial estamos llamando a dos técnicas muy diferentes pero que trabajan en conjunto. Una vez localizada la cara hay que extraer la información de la misma, siendo esta información la que contiene los rasgos característicos del rostro de una persona.

El problema del uso de mascarilla en el reconocimiento facial

Con la extensión del uso de mascarillas el problema de la identificación se ha acrecentado considerablemente. En estas nuevas circunstancias puede resultar imprescindible identificar la presencia de la mascarilla, para usar caminos diferentes a la hora de identificar a la persona o simplemente para informar sobre su presencia.

En los últimos meses se han incrementado los trabajos encaminados a detectar la mascarilla, en su gran mayoría se basan en técnicas de deep learning. Encontramos numerosos trabajos que usan redes CNN, para distinguir rostros con mascarilla y sin ella. Todas estas técnicas implican la necesidad de entrenar dichas redes con un gran número de datos, esto puede resultar tedioso si no se dispone previamente de un conjunto de entrenamiento convenientemente preparado. Lógicamente los pesos de estas redes, compuestas de múltiples capas, crecen considerablemente agrandando el tiempo de computación, tanto en la fase de entrenamiento como en la de ejecución predictiva del modelo. Por otra parte si lo que se desea es localizar otros elementos, barba en el rostro, por ejemplo, se debe preparar otro conjunto de datos igualmente amplio.

Ventajas del método

El presente método tiene la ventaja de requerir un entrenamiento menos exigente, siendo al mismo tiempo más ligero en cuanto a los recursos consumidos. Por otro lado nuestra metodología es fácilmente ampliable a otro tipo de elementos, por lo que creemos que el método pudiera tener un gran interés. El uso del modelo esta dirigido al análisis de vídeo donde se busca un procesado superior a los 10 frames por segundo, incluyendo aquí la localización de la cara, la detección de la mascarilla y la identificación de la persona, no obstante la descripción que hacemos solo incluye la realización del modelo de clasificación de la zona del rostro comprendida entre el nivel medio de la nariz y el extremo de la barbilla. Nuestro clasificador solo contienen dos clases; con mascarilla y sin mascarilla.

¿Qué es un histograma?

En líneas generales es una construcción gráfica donde en el eje horizontal se representa un atributo cualquiera y en el eje vertical las frecuencias que adquiere cada valor de dicho atributo. En lo que se refiere a una imagen, en el eje horizontal se representan los 256 tonos de grises (si estamos en la escala de grises), desde el negro a la izquierda, al blanco en el extremo derecha y en el vertical el número de pixeles que tiene precisamente ese tono.


Si examináramos el histograma de una mascarilla, sea del color que sea, incluso con algún patrón impreso sobre la misma, comprobaremos que efectivamente hay una regularidad en cuanto al la frecuencia de ciertos pixeles. En unas mascarilla blanca los pixeles próximos a este color tendrán una frecuencia mayor, observándose ciertos picos característicos. Sin embargo la captura de la cara puede incluir partes del cuello, zonas oscuras en las arrugas de la mascarilla, la presencia de una mano, etc. Todo esto complica la clasificación mediante el empleo de un histograma clásico. No obstante existe otro tipo de histograma no relacionado directamente con la frecuencia de los colores, se trata del histograma de gradientes orientados (hog).

Histograma de gradientes orientados (hog)

La técnica es relativamente sencilla desde el punto de vista conceptual; por un lado se selecciona un pixel y un marco al rededor del mismo, a continuación se observa si los pixeles contiguos en el marco son más oscuros con respecto al pixel central, finalmente se dibuja una flecha que indica el gradiente de oscurecimiento. Si este
proceso se repite para cada pixel de la imagen tendremos el llamado histograma de gradientes orientados.

El histograma así calculado es inmutable a los cambios de iluminación, siempre que afecten a todo el conjunto de interés, también es muy robusto en cambios de posición del objeto e inmutable a cambios de escala. Por ese motivo ha sido muy utilizado en la localización de rostros, personas y otros objetos. Precisamente este uso, es el punto de partida que hemos empleado para extrapolarlo al caso que nos ocupa. El primer paso consiste en normalizar la imagen, esto proporciona una reducción de la influencia de la iluminación.

El cálculo del histograma se realiza usando una mascara:

Ecuación


A continuación se calcula la derivada con respecto a cada eje:

Ecuación
HOG
Entrada y HOG

Para  finalmente calcular el vector del gradiente y el ángulo:

Configuración del Histograma

A continuación hay que elegir cuantas orientaciones se desean, de tal forma que solo se proyectan en el número de direcciones deseadas. Esto se hace para un conjunto de pixeles que forman celdas, el valor del gradiente en las direcciones de definitivas se calcula en función del módulo del gradiente. Los cálculos se realizan sobre las celdas, que contienen un número determinado de pixeles, los histogramas se apilan por bloques, que están formados por un conjunto de celdas. La información de los bloques se normaliza, lo que le confiere invarianza ante los cambios locales de luz. En cuanto a la normalización de estos bloques se pueden realizar según diferentes normas (L2, L1, L2-hys …) en las pruebas realizadas hemos visto que la normalización L2-hys ofrece mejores resultados. Esta normalización se realiza aplicando una norma L2 limitando los valores con un máximo de 0.2 y renormalizando luego según L2.
En líneas generales hemos conseguido los mejores resultados con los siguientes valores:

  • Tamaño del bloque = (3,3) celdas por bloque
  • Número de orientaciones = 9
  • Pixeles por celda = (12, 12)

Pretratamiento y modelo predictivo

Una vez logradas las características esenciales del objeto, es interesante hacer una reducción de estas. Existen como es de esperar ciertos valores del histograma más representativos y otros cuyo aporte es me nor pudiendo ser una combinación de otras características. Sí asumimos esta combinación lineal, tenemos la posibilidad de reducir ese número de atributos empleando un análisis de componentes principales. De esta forma podemos describir el conjunto de histogramas en función de variables no correlacionadas.
El objetivo final es clasificar la imagen, en este caso en una clasificación binaria (mascarilla True, mascarilla False). Existen diversas técnicas que nos permiten realizar esta clasificación binaria (máquina de vector de soporte, clasificación Gaussiana, Árboles de decisión, …). De entre todos los clasificadores se ha seleccionado una máquina de vector de soporte, aunque previamente también se han probado otros clasificadores. Las pruebas realizadas han concluido que los mejores resultados se logran empleando un kernel ‘rbf’, descartándose por resultar especialmente malo el lineal.

Resultados

Para el entrenamiento se han usando recortes realizados manualmente. Para el test se han usado dos grupos, uno negativo, de bocas sin mascarillas y otro positivo con caras con mascarilla.

Tras realizar varias pruebas se concluyo que para este número de datos de entrenamiento limitar el número de componentes a 20 durante el análisis de componentes principales es lo más óptimo. Para el test se uso un dataset formado por 102 capturas realizadas unas mediante la extracción de la zona de la boca usando un detector de 68 puntos landmarks y otras mediante selección manual.

Conclusiones

El método es efectivo sin requerir de demasiados de datos en la fase de entrenamiento. También los tiempos de ejecución son más reducidos que las técnicas basadas en Deep Learning. Además es efectivo incluso en situaciones especialmente difíciles, como caras donde la boca queda tapada por la mano o cuando el rostro está parcialmente tapado por un móvil. En todos estos casos el modelo realizó predicciones correctas.
Pero el algoritmo también tiene su límite, hemos encontrado falsos positivos cuando en la cara aparece un dispositivo móvil tapando una parte importante del rostro. En entornos especialmente difíciles, procesado de las imágenes en vídeo con personas en movimiento, las caras de perfil pueden dar falsos positivos, especialmente cuando las condiciones de iluminación son pobres. Una mejora, en el número de aciertos, podría conseguirse incorporando más imágenes al dataset de entrenamiento, buscando las situaciones en las que el sistema encuentra mayores dificultades. No obstante los resultados generados por el modelo son suficientes para el propósito encomendado al mismo durante el proceso de reconocimiento facial.

Descubre nuestro trabajo:

https://www.aerin.es/ai.html

Solicita más información:

https://www.aerin.es/contacto.html