Modelos y plataformas de IA
DeepFace para Reconocimiento Facial Avanzado

El reconocimiento facial ha sido un campo en tendencia en IA y ML durante varios años, y las implicaciones culturales y sociales del reconocimiento facial son muy amplias. Sin embargo, existe una brecha de rendimiento entre los sistemas visuales humanos y las máquinas que actualmente limita las aplicaciones del reconocimiento facial.
Para superar la barrera creada por la brecha de rendimiento y ofrecer una precisión similar a la humana, Meta presentó DeepFace, un marco de reconocimiento facial. El modelo DeepFace se entrena en un gran conjunto de datos faciales que difiere significativamente de los conjuntos de datos utilizados para construir las pruebas de evaluación, y tiene el potencial de superar a los marcos existentes con adaptaciones mínimas. Además, el marco DeepFace produce representaciones faciales compactas en comparación con otros sistemas que producen miles de características de apariencia facial.
El marco DeepFace propuesto utiliza Deep Learning para entrenarse en un gran conjunto de datos que consiste en diferentes formas de datos, incluyendo imágenes, videos y gráficos. La arquitectura de la red DeepFace asume que una vez que se completa la alineación, la ubicación de cada región facial se fija a nivel de píxel. Por lo tanto, es posible utilizar los valores RGB de píxeles sin utilizar múltiples capas convolucionales como se hace en otros marcos.
La tubería convencional de los marcos modernos de reconocimiento facial consta de cuatro etapas: Detección, Alineación, Representación y Clasificación. El marco DeepFace emplea un modelado facial 3D explícito para aplicar una transformación pieza a pieza, y utiliza una red neuronal profunda de nueve capas para derivar una representación facial. El marco DeepFace intenta hacer las siguientes contribuciones
- Desarrollar una arquitectura de DNN o Red Neuronal Profunda efectiva que pueda aprovechar un gran conjunto de datos para crear una representación facial que se pueda generalizar a otros conjuntos de datos.
- Utilizar el modelado 3D explícito para desarrollar un sistema de alineación facial efectivo.
Entendiendo el Funcionamiento del Modelo DeepFace
Alineación Facial
La alineación facial es una técnica que rota la imagen de una persona según el ángulo de los ojos. La alineación facial es una práctica popular que se utiliza para preprocesar datos para reconocimiento facial, y los conjuntos de datos faciales alineados ayudan a mejorar la precisión de los algoritmos de reconocimiento al proporcionar una entrada normalizada. Sin embargo, alinear caras de manera no restringida puede ser una tarea desafiante debido a los múltiples factores involucrados como expresiones no rígidas, poses del cuerpo y más. Varias técnicas de alineación sofisticadas como utilizar un modelo analítico 3D de la cara o buscar puntos fiduciales de un conjunto de datos externo pueden permitir a los desarrolladores superar los desafíos.
Aunque la alineación es el método más popular para tratar con la verificación y reconocimiento facial no restringido, no hay una solución perfecta en este momento. Los modelos 3D también se utilizan, pero su popularidad ha disminuido significativamente en los últimos años, especialmente cuando se trabaja en un entorno no restringido. Sin embargo, debido a que las caras humanas son objetos 3D, puede ser el enfoque correcto si se utiliza correctamente. El modelo DeepFace utiliza un sistema que utiliza puntos fiduciales para crear un modelado analítico 3D de la cara. Este modelado 3D se utiliza luego para deformar una recorte facial a un modo frontal 3D.
Además, al igual que la mayoría de las prácticas de alineación, la alineación DeepFace también utiliza detectores de puntos fiduciales para dirigir el proceso de alineación. Aunque el modelo DeepFace utiliza un detector de puntos simple, lo aplica en varias iteraciones para refinar la salida. Un Regresor de Vector de Soporte o SVR entrenado para configuraciones de puntos prejuiciados extrae los puntos fiduciales de un descriptor de imagen en cada iteración. El descriptor de imagen DeepFace se basa en histogramas LBP, aunque también considera otras características.
Alineación 2D
El modelo DeepFace inicia el proceso de alineación detectando seis puntos fiduciales dentro de la recorte de detección, centrada en el medio de los ojos, la boca y la punta de la nariz. Se utilizan para rotar, escalar y traducir la imagen a seis ubicaciones de anclaje, e iterar en la imagen deformada hasta que no haya cambios visibles. La transformación agregada genera entonces una recorte alineada 2D. El método de alineación es bastante similar al utilizado en LFW-a, y se ha utilizado a lo largo de los años para intentar mejorar la precisión del modelo.
Alineación 3D
Para alinear caras con rotaciones fuera del plano, el marco DeepFace utiliza un modelo de forma 3D genérico y registra una cámara 3D que se puede utilizar para envolver la recorte 2D alineada al modelo 3D en su plano de imagen. Como resultado, el modelo genera la versión 3D alineada de la recorte, y se logra localizando 67 puntos fiduciales adicionales en la recorte 2D alineada utilizando un segundo SVR o Regresor de Vector de Soporte.
El modelo coloca entonces manualmente los 67 puntos de anclaje en el modelo 3D y es capaz de lograr una correspondencia completa entre referencias 3D y sus puntos fiduciales correspondientes. En el siguiente paso, se agrega una cámara afín 3D-2D utilizando una solución de mínimos cuadrados generalizados para los sistemas lineales con una matriz de covarianza conocida que minimiza ciertas pérdidas.
Frontalización
Dado que las deformaciones no rígidas y las proyecciones de perspectiva completa no se modelan, la cámara 3D-2D ajustada sirve solo como una aproximación. En un intento de reducir la corrupción de factores importantes de identidad en la deformación final, el modelo DeepFace agrega los residuos correspondientes a los componentes x-y de cada punto fiducial de referencia. Tal relajación con el propósito de deformar la imagen 2D con menos distorsiones a la identidad es plausible, y sin ella, las caras habrían sido deformadas en la misma forma en 3D, perdiendo factores discriminatorios importantes en el proceso.
Finalmente, el modelo logra la frontalización utilizando una transformación afín pieza a pieza dirigida por la triangulación de Delaunay derivada de 67 puntos fiduciales.

- Cara detectada con 6 puntos fiduciales.
- Recorte 2D alineado inducido.
- 67 puntos fiduciales en el recorte 2D alineado.
- Forma de referencia 3D transformada a la imagen del recorte 2D alineado.
- Visibilidad de triángulos con respecto a la cámara 3D-2D.
- 67 puntos fiduciales inducidos por el modelo 3D.
- Versión 3D alineada de la recorte final.
- Nueva vista generada por el modelo 3D.
Representación
Con un aumento en la cantidad de datos de entrenamiento, los métodos basados en el aprendizaje han demostrado ser más eficientes y precisos en comparación con las características diseñadas, principalmente porque los métodos basados en el aprendizaje pueden descubrir y optimizar características para una tarea específica.
Arquitectura de DNN y Entrenamiento
La DNN DeepFace se entrena en una tarea de reconocimiento facial multi-clase que clasifica la identidad de una imagen de cara.
La figura anterior representa la arquitectura general del modelo DeepFace. El modelo tiene una capa convolucional (C1) con 32 filtros de tamaño 11x11x3 que se alimenta de una imagen 3D alineada de 3 canales RGB de tamaño 152×152 píxeles, y produce 32 mapas de características. Estos mapas de características se alimentan luego a una capa de Max Pooling o M2 que toma el máximo sobre vecindarios espaciales 3×3, y tiene una longitud de paso de 2, separadamente para cada canal. A continuación, hay otra capa convolucional (C3) que comprende 16 filtros cada uno de tamaño 9x9x16. El propósito principal de estas capas es extraer características de bajo nivel como texturas y bordes simples. La ventaja de utilizar capas de Max Pooling es que hace que la salida generada por las capas convolucionales sea más robusta a las traducciones locales, y cuando se aplica a imágenes de caras alineadas, hace que la red sea más robusta a los errores de registro a pequeña escala.
Varias capas de pooling hacen que la red sea más robusta a ciertas situaciones, pero también causa que la red pierda información sobre la posición precisa de las microtexturas y las estructuras faciales detalladas. Para evitar que la red pierda la información, el modelo DeepFace utiliza una capa de Max Pooling solo con la primera capa convolucional. Estas capas se interpretan como un paso de preprocesamiento adaptativo frontal. Aunque realizan la mayor parte de los cálculos, tienen un número limitado de parámetros por sí mismas, y simplemente expanden la entrada en un conjunto de características locales.
Las capas siguientes L4, L5 y L6 están conectadas localmente, y al igual que una capa convolucional, aplican un conjunto de filtros donde cada ubicación en el mapa de características aprende un conjunto único de filtros. Como diferentes regiones en una imagen alineada tienen estadísticas locales diferentes, no se puede mantener la suposición de estacionariedad espacial. Por ejemplo, el área entre las cejas y los ojos tiene una capacidad discriminatoria más alta en comparación con el área entre la boca y la nariz. El uso de capas leales afecta el número de parámetros sujetos a entrenamiento pero no afecta la carga computacional durante la extracción de características.
El modelo DeepFace utiliza tres capas en primer lugar solo porque tiene una gran cantidad de datos de entrenamiento bien etiquetados. El uso de capas conectadas localmente se puede justificar aún más como cada unidad de salida de una capa conectada localmente puede verse afectada por un gran parche de datos de entrada.
Finalmente, las capas superiores están conectadas completamente con cada unidad de salida conectada a todas las entradas. Las dos capas pueden capturar las correlaciones entre características capturadas en diferentes partes de las imágenes de caras como la posición y la forma de la boca, y la posición y la forma de los ojos. La salida de la primera capa conectada completamente (F7) se utilizará por la red como su vector de características de representación facial crudo. El modelo alimentará entonces la salida de la última capa conectada completamente (F8) a un softmax K-vías que produce una distribución sobre etiquetas de clase.
Conjuntos de Datos
El modelo DeepFace utiliza una combinación de conjuntos de datos con el conjunto de datos de Clasificación de Caras Sociales o SFC como el principal. Además, el modelo DeepFace también utiliza el conjunto de datos LFW y el conjunto de datos YTF.
Conjunto de Datos SFC
El conjunto de datos SFC se aprende de una colección de imágenes de Facebook (META ), y consiste en 4,4 millones de imágenes etiquetadas de 4.030 personas con cada una de ellas teniendo 800 a 1200 caras. Las 5% más recientes de las imágenes de caras del conjunto de datos SFC se dejan para fines de prueba.
Conjunto de Datos LFW
El conjunto de datos LFW consiste en 13.323 fotos de más de cinco mil celebridades que se dividen en 6.000 pares de caras en 10 particiones.
Conjunto de Datos YTF
El conjunto de datos YTF consiste en 3.425 videos de 1.595 sujetos, y es un subconjunto de las celebridades en el conjunto de datos LFW.
Resultados
Sin frontalización y utilizando solo la alineación 2D, el modelo logra una puntuación de precisión de solo alrededor del 94,3%. Cuando el modelo utiliza el corp central de la detección de caras, no utiliza ninguna alineación, y en este caso, el modelo devuelve una puntuación de precisión del 87,9% porque algunas partes de la región facial pueden caer fuera del corp central. Para evaluar la capacidad discriminatoria de la representación facial en aislamiento, el modelo sigue la configuración de aprendizaje no supervisado para comparar el producto interior de características normalizadas. Esto mejora la precisión media del modelo al 95,92%.

La figura anterior compara el rendimiento del modelo DeepFace en comparación con otros modelos de reconocimiento facial de última generación.

La figura anterior muestra las curvas ROC en el conjunto de datos.
Conclusión
Idealmente, un clasificador de caras podrá reconocer caras con la precisión de un ser humano, y podrá devolver una alta precisión independientemente de la calidad de la imagen, la pose, la expresión o la iluminación. Además, un marco de reconocimiento facial ideal podrá aplicarse a una variedad de aplicaciones con poco o ningún tipo de modificación. Aunque DeepFace es uno de los marcos de reconocimiento facial más avanzados y eficientes actualmente, no es perfecto, y es posible que no pueda ofrecer resultados precisos en ciertas situaciones. Pero el marco DeepFace es un hito significativo en la industria del reconocimiento facial, y cierra la brecha de rendimiento al utilizar una técnica de aprendizaje de métricas poderosa, y seguirá mejorando con el tiempo.












