Inteligencia artificial
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 generalizadas del reconocimiento facial son de gran alcance. 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 el búfer creado por la brecha de rendimiento y ofrecer una precisión similar a la humana, Meta introdujo 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 benchmarks 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 completada la alineación, la ubicación de cada región facial está fija a nivel de píxel. Por lo tanto, es posible utilizar los valores RGB de píxel sin utilizar múltiples capas convolucionales como se hace en otros marcos.
La canalización convencional de los marcos de reconocimiento facial modernos comprende 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 por partes, 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 un modelado 3D explícito para desarrollar un sistema de alineación facial efectivo.
Comprender el Funcionamiento del Modelo DeepFace
Alineación Facial
La alineación facial es una técnica que gira 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 corporales 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 lidiar con la verificación y reconocimiento facial no restringidos, 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, dado 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 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 prejuiciar configuraciones de puntos extrae los puntos fiduciales de un descriptor de imagen en cada iteración. El descriptor de imagen de 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 ubicación de 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 durante años en un intento de 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 alineada 2D a la forma 3D en su plano de imagen. Como resultado, el modelo genera la versión alineada 3D de la recorte, y se logra localizando 67 puntos fiduciales adicionales en la recorte alineada 2D utilizando un segundo SVR o Regresor de Vector de Soporte.
El modelo coloca entonces manualmente los 67 puntos de anclaje en la forma 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 a 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 solo sirve como una aproximación. En un intento de reducir la corrupción de factores portadores de identidad importantes a 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 fin de deformar la imagen 2D con menos distorsiones a la identidad es plausible, y sin ella, las caras se habrían deformado 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 por partes dirigida por la triangulación de Delaunay derivada de 67 puntos fiduciales.

- Cara detectada con 6 puntos fiduciales.
- Recorte alineado 2D inducido.
- 67 puntos fiduciales en la recorte alineada 2D.
- Forma de referencia 3D transformada a la recorte alineada 2D de la imagen.
- Visibilidad del triángulo con respecto a la cámara 3D-2D.
- 67 puntos fiduciales inducidos por el modelo 3D.
- Versión alineada 3D 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 DNN y Entrenamiento
La DNN DeepFace se entrena en una tarea de reconocimiento facial de varias clases 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 RGB alineada 3D de tamaño 152×152 píxeles, y resulta en 32 mapas de características. Estos mapas de características se alimentan 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. Siguiendo, 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 textura 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 mucho más robusta a los errores de registro a pequeña escala.
Múltiples niveles de pooling sí 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 microtexturas y 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 entonces como un paso de preprocesamiento adaptativo frontal. Aunque realizan la mayoría de los cálculos, tienen parámetros limitados por sí mismos, 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 banco 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 la cantidad 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 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ía que produce una distribución sobre las 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 siendo 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, 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 de cada identidad 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 divisiones.
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 cuando se utiliza 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 estado del arte.

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 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 pocas o ninguna modificación. Aunque DeepFace es uno de los marcos de reconocimiento facial más avanzados y eficientes actualmente, no es perfecto, y puede no ser capaz de 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.












