Saltar al contenido

Reconocimiento facial avanzado con DeepFace

10/01/2024
Reconocimiento Facial Avanzado Con Deepface

Deepface Para Reconocimiento Facial Avanzado


En el ámbito de la inteligencia artificial (IA) y el aprendizaje automático (ML), el reconocimiento facial ha sido una área prometedora y en crecimiento durante muchos años. Las repercusiones de esta tecnología, tanto en la esfera social como cultural, son vastas y tienen el potencial de transformar numerosos sectores. A pesar de los avances significativos, la diferencia en el rendimiento entre la percepción visual humana y las máquinas sigue siendo un obstáculo que limita la adopción generalizada del reconocimiento facial en aplicaciones prácticas.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded


Para acortar esta brecha y alcanzar una precisión cercana a la humana, Meta ha desarrollado DeepFace, un avanzado marco de trabajo para el reconocimiento facial. Esta solución se entrena con un extenso y variado conjunto de datos faciales, distinto a aquellos usados en las pruebas estándar, y posee la singularidad de poder superar otros sistemas con ajustes mínimos. Además, DeepFace optimiza la creación de representaciones faciales compactas, logrando que los sistemas alternativos procuren innumerables características faciales que resultan en una operabilidad menos eficiente.


El innovador enfoque de DeepFace emplea un modelo de redes neuronales profundas (Deep Learning) para formarse utilizando una vasta cantidad de datos que incluyen imágenes, vídeos y gráficos. La infraestructura de la red DeepFace asume que, tras una correcta alineación facial, la posición relativa de cada área de la cara queda fijada en una escala de píxeles. Esto permite utilizar directamente los valores RGB de los píxeles sin necesidad de múltiples capas convolucionales, al contrario de lo que suele ser práctica común en otros sistemas de reconocimiento facial.


El método tradicional que compone los marcos de reconocimiento facial incluye cuatro etapas cruciales: detección, alineación, representación y clasificación. DeepFace implementa un modelado facial tridimensional de manera explícita para la transformación y utiliza una compleja red neuronal de nueve capas para extraer una representación detallada de las facciones faciales. Entre las contribuciones clave de DeepFace se incluyen las siguientes:


  1. Desarrollar una arquitectura de red neuronal profunda (DNN) eficiente que pueda beneficiarse de un set de datos amplio para generar una representación facial capaz de generalizarse y adaptarse a diferentes conjuntos de datos.

  2. Aplicar técnicas de modelado tridimensional para perfeccionar un sistema eficaz de alineación facial.

Examinando el funcionamiento de DeepFace

Alineación facial y sus técnicas


La alineación facial es una técnica crucial que corrige la orientación de una imagen facial basándose en la posición de los ojos. Constituye un paso de preprocesamiento fundamental en el reconocimiento facial, ya que contribuye a la uniformidad de los datos y, por tanto, a la mejora de la precisión de los algoritmos de reconocimiento. Sin embargo, alinear rostros en condiciones no controladas puede presentar desafíos importantes, dada la diversidad de expresiones faciales, posturas y otros factores variantes. Técnicas de alineación de alta complejidad, tales como el uso de un modelo analítico tridimensional del rostro o la identificación de puntos clave en un conjunto de datos externo, podrían facilitar la superación de estos desafíos.


Aunque la alineación facial es un procedimiento ampliamente aceptado para lidiar con la verificación y el reconocimiento facial sin restricciones, la solución perfecta aún no existe. Modelos tridimensionales también son utilizados, pero su popularidad ha disminuido, sobre todo en entornos sin restricciones. No obstante, debido a la naturaleza tridimensional de los rostros, este podría ser el enfoque adecuado si se usa correctamente. DeepFace utiliza un sistema que se vale de puntos clave para construir un modelo analítico tridimensional del rostro y lo emplea para deformar una sección facial a un modo frontal tridimensional.


Adicionalmente, al igual que otras técnicas de alineación, DeepFace se sirve de detectores de puntos clave para guiar este proceso. Aunque emplea un detector simple, ejecuta múltiples iteraciones para refinar la alineación. Un regresor de vector de soporte (SVR) que se entrena para evaluar configuraciones de puntos extrae los puntos clave de un descriptor de imagen en cada ciclo de iteración. El descriptor en el caso de DeepFace se fundamenta en histogramas de patrones binarios locales (LBP) y se complementa con el análisis de otras características.

Alineación bidimensional (2D) y tridimensional (3D)


El proceso de alineación en DeepFace comienza con la identificación de seis puntos clave dentro del rostro detectado. Estos se emplean para rotar, escalar y mover la imagen en seis puntos de anclaje y se repite la operación sobre la imagen transformada hasta que se estabiliza sin cambios notables. Como resultado se obtiene una versión alineada en dos dimensiones (2D). Este procedimiento de alineación ha demostrado ser valioso en la mejora de la precisión de los modelos.


Para la alineación de rostros con rotaciones fuera de plano, DeepFace opta por un modelo genérico en tres dimensiones (3D) y la correspondiente configuración de una cámara en 3D que adapta el cuerpo a la forma tridimensional. El siguiente paso es localizar 67 puntos adicionales sobre el cuerpo alineado en 2D empleando un segundo SVR. Entonces, se colocan manualmente 67 puntos de anclaje sobre la forma 3D para lograr una concordancia total entre las referencias tridimensionales y sus puntos clave correlativos. A través de un proceso de mínimos cuadrados generalizados se añade una cámara afin que proyecta de 3D a 2D, minimizando ciertas perdidas.

Proceso de Frontalización


La cámara de 3D a 2D proporciona una aproximación, ya que no incorpora deformaciones no rígidas ni proyecciones perspectivas completas. Con el objetivo de minimizar la alteración de los aspectos cruciales de identidad hasta la deformación final, el modelo DeepFace incluye los residuos correspondientes a los componentes x e y de cada punto clave. Esta flexibilidad permite deformar la imagen 2D con menor distorsión de la identidad, un factor clave para preservar elementos discriminatorios relevantes. La frontalización se realiza utilizando una transformación afin segmentada, dirigida por una triangulación de Delaunay basada en 67 puntos clave.


Deepface Para Reconocimiento Facial Avanzado


  1. Rostro detectado con seis puntos clave.

  2. Imagen alineada bidimensional (2D) inducida.

  3. 67 puntos clave sobre la imagen alineada en 2D.

  4. Forma de referencia 3D transformada en una imagen corporativa alineada en 2D.

  5. Visibilidad del triángulo respecto a la cámara 3D-2D.

  6. 67 puntos clave proyectados por el modelo 3D.

  7. Versión alineada tridimensionalmente (3D) de la imagen final.

  8. Nueva proyección generada por el modelo 3D.

Estrategias de Representación


Con el aumento de la cantidad de datos disponibles para entrenamiento, los métodos que se basan en aprendizaje automático han demostrado ser más eficientes y precisos en comparación a técnicas que dependen de la ingeniería de características, ya que los sistemas basados en aprendizaje automatizado tienen la capacidad de identificar y optimizar funciones para una tarea específica.

Arquitectura y Entrenamiento de la Red Neuronal Profunda (DNN)


La arquitectura de DeepFace DNN está estructurada para ejecutar una tarea de reconocimiento facial multiclase que clasifica la identidad de una imagen facial.


El modelo cuenta con una capa convolucional (C1) que posee 32 filtros cada uno, de tamaño 11x11x3, y procesa una imagen RGB de tres canales, alineada tridimensionalmente, de dimensiones 152×152 píxeles. Esto da lugar a 32 mapas de características, los cuales son enviados a una capa Max Pooling (M2). Este proceso toma el valor máximo dentro de subconjuntos espaciales de 3×3, y opera con un paso de 2. A continuación, otra capa convolucional (C3) contiene 16 filtros de tamaño 9x9x16. El objetivo de estas capas es identificar rasgos de bajo nivel, como texturas y patrones básicos. La capa Max Pooling incrementa la robustez de la salida de las convolucionales frente a variaciones locales, y al aplicarse a rostros alineados, confiere mayor resistencia a pequeñas discrepancias de registro.


Aunque los niveles múltiples de agrupación pueden ofrecer robustez en situaciones específicas, también podrían ocasionar que la red pierda información acerca de la ubicación precisa de microtexturas y estructuras faciales detalladas. Para prevenir la pérdida de información, DeepFace aplica una capa de agrupación máxima únicamente en la primera capa convolucional. Luego, estas capas son interpretadas como una fase de preprocesamiento adaptativo en la interfaz de entrada. Estas asumen la mayor parte del cálculo pero, individualmente, contienen pocos parámetros y simplemente facilitan la expansión de la entrada a un conjunto de rasgos locales.


Las capas L4, L5, y L6 están conectadas localmente y son similares a las convolucionales aplicando un banco de filtros específicos para cada ubicación en el mapa de características. Dado que diferentes zonas de una imagen facial alineada viven estadísticas locales variantes, no se cumple la suposición de estacionariedad espacial. Por ejemplo, la zona comprendida entre las cejas y los ojos tiene un mayor poder de discriminación comparada con áreas menos prominentes. El uso de capas localmente conectadas incrementa el número de parámetros sujetos al entrenamiento pero no afecta de forma significativa la carga computacional durante la extracción de características.


DeepFace justifica la incorporación de tres capas locales debido a la disponibilidad de extensos datos de entrenamiento bien etiquetados. Incluso, se justifica aún más el uso de capas conectadas localmente, considerando que cada unidad de salida de una capa de este tipo puede estar influenciada por una gran cantidad de entradas de datos.


En última instancia, las capas superiores incorporan total conectividad, con cada unidad de salida vinculada con todas las entradas. Estas dos capas son capaces de capturar correlaciones entre características detectadas en distintas partes de las imágenes faciales, como la posición y la forma de la boca, en contraste con la posición y la forma de los ojos. La red extrae la salida de la primera capa conectada completamente (F7) como su vector de características para la representación de la cara en su estado puro. Posteriormente, la salida de la última capa conectada por completo (F8) se integra en una soft-max por categorías (K-way) que produce una distribución de clases.

Diversidad de Conjuntos de Datos Utilizados


DeepFace optimiza el uso de conjuntos de datos diversos, siendo el Social Face Classification (SFC) el principal. Además, el modelo aprovecha otros conjuntos como LFW y YTF para enriquecer su entrenamiento.

Conjunto de datos Social Face Classification (SFC)


El conjunto SFC proviene de una colección de imágenes de Facebook y comprende 4.4 millones de imágenes de 4,030 individuos. Se descarta el 5% más reciente de las imágenes faciales de cada identidad para ser empleadas en pruebas futuras.

Conjunto de datos Labelled Faces in the Wild (LFW)


LFW contiene 13,323 fotográficas de más de cinco mil figuras públicas, divididas en 6,000 pares de caras y distribuidas en 10 categorías.

Conjunto de datos YouTube Faces (YTF)


YTF incluye 3,425 vídeos de 1,595 sujetos

LEE MÁS ARTÍCULOS SOBRE: Multimedia con IA.

LEE LA ENTRADA ANTERIOR: Paraphraser.