
En los últimos años se han logrado avances significativos en el reconocimiento facial. Esta revisión ofrece una breve descripción general de las tareas, modelos y métodos de solución clave, centrándose en la evolución de las funciones de pérdida.
En pocas palabras, el reconocimiento facial es un método para identificar o verificar la identidad de una persona mediante fotos, videos o grabaciones en tiempo real. Esta reseña explorará la identificación basada en una sola imagen digital o fotograma de video.
El reconocimiento facial (RF) tiene aplicaciones de gran alcance. Se utiliza en el sector financiero, la ciberseguridad, la videovigilancia, los servicios de domótica, la autenticación multifactor, etc.
Más allá de estos usos prácticos, los modelos FR también desempeñan un papel fundamental en los modelos generativos modernos. Se utilizan comúnmente para la pérdida de identidad en modelos de restauración facial como GFPGAN y CodeFormer, herramientas de intercambio facial como SimSwap y FaceShifter, modelos basados en GAN de imagen a imagen como pSp e HyperStyle, así como en modelos basados en transformadores y de difusión estable para la preservación de la identidad.
ArcFace (2018-2019) es la función de pérdida de identificación más utilizada, mientras que CosFace (2018) y FaceNet se utilizan con mucha menos frecuencia.
En esta revisión, me centraré en cómo ha cambiado el panorama de FR desde ArcFace, particularmente en los últimos años.
El reconocimiento facial requiere preprocesamiento: detección, recorte y alineación de rostros. El preprocesamiento debe ser el mismo para los datos de entrenamiento y de prueba, generalmente utilizando una alineación similar a la de FFHQ (conjunto de datos Flickr-Faces-HQ). Normalmente, se utilizan dos detectores adicionales: un detector de cuadro delimitador de rostros y un detector de puntos de referencia faciales. Existen modelos integrales con alineación que se entrenan junto con el modelo principal, pero no los consideraré en esta parte de la revisión. Aquí, asumimos que los conjuntos de datos de entrenamiento y de prueba están recortados y alineados uniformemente. Por lo tanto, el modelo se alimenta con entradas recortadas y alineadas.
En el conjunto de datos de entrenamiento para la tarea FR, hay varias imágenes para cada identidad (persona). La tarea del modelo es aprender a distinguir entre fotos de la misma persona y fotos de personas diferentes.
El modelo normalmente consta de dos componentes:
Red troncal. Una red troncal, también llamada extractor de características, toma como entrada una foto facial preprocesada y genera un vector de características de incrustaciones. Las redes troncales clásicas son las redes neuronales convolucionales (CNN) como ResNet, VGGNet, ResFace, SE-ResNet y otras. Estas también pueden ser modelos VisionTransformer o Red Pirámide de Características, o sus variantes más complejas. No profundizaremos en las redes troncales de los modelos en esta parte de la revisión.
Función de pérdida. Durante el entrenamiento, se aplica una función de pérdida para supervisar el entrenamiento de la estructura principal. El objetivo del entrenamiento es obtener un modelo que produzca incrustaciones cercanas para diferentes fotos de la misma persona y distantes para rostros de diferentes personas. Se trata de medir la distancia entre vectores de incrustación utilizando, por ejemplo, la distancia coseno o la distancia L2.
La primera categoría se denomina «pérdida basada en pares», a veces se les llama «métodos basados en aprendizaje métrico»: pérdida contrastiva, pérdida de tripletes, pérdida de N pares.
Estos métodos combinan los pares de muestras positivos y negativos antes del entrenamiento del modelo o los combinan dinámicamente en línea durante el entrenamiento. Ambos métodos permiten extraer representaciones faciales significativas a nivel de muestra, pero aumentarían exponencialmente el tamaño de los datos.
El esquema de entrenamiento con pérdida de tripletes se ve así: dos ejemplos con la misma etiqueta deben tener sus incrustaciones próximas en el espacio de incrustación. Dos ejemplos con etiquetas diferentes tienen sus incrustaciones alejadas.
El rápido crecimiento del número de pares posibles con el tamaño del conjunto de datos nos obliga a buscar estrategias de selección de pares, que suelen ser empíricas y computacionalmente complejas.
Otra categoría se denomina «pérdida basada en clasificación» o, a veces, «métodos basados en aprendizaje de prototipos»: pérdida de Softmax, CosFace, ArcFace y NormFace. Trabajan con información generalizada sobre las clases mediante un prototipo, también conocido como proxy de clase o centro de clase. Los prototipos son parámetros que se pueden aprender y que se actualizan durante el entrenamiento del modelo. Actualmente, las pérdidas basadas en clasificación se utilizan principalmente para modelos de reconocimiento facial.
Si consideramos la tarea FR como una clasificación, podemos usar la pérdida softmax (también conocida como pérdida categórica de entropía cruzada). En esencia, la pérdida softmax es una función de activación softmax + pérdida de entropía cruzada.
Recordemos las fórmulas. La primera es la activación de Softmax y la segunda, la pérdida de entropía cruzada.
Combinando obtener:
La función de pérdida recibe el resultado de la última capa completamente conectada, donde 𝒙𝒊 denota la característica de incrustación de la 𝑖-ésima imagen de entrenamiento, 𝑦𝑖 es la etiqueta de 𝒙𝒊 y 𝑾 denota el peso de la última capa completamente conectada.
Esto funciona, pero existe un problema: los límites entre clases son difusos. En 2018, se dio un nuevo paso en FR con la llegada del modelo ArcFace. La base sigue siendo la pérdida softmax, pero ahora consideramos los ángulos entre vectores. Recordemos la fórmula de similitud de cosenos:
Hagamos una sustitución en la fórmula de pérdida softmax
A continuación, se añade un margen para que los ángulos intraclase sean menores y los interclase mayores. Esto genera una brecha entre clases en lugar de los límites difusos de la pérdida softmax.
Métodos similares: si reemplazamos cos(θ + m) con cos θ − m obtenemos la pérdida CosFace.
En los métodos basados en Softmax, se considera que el prototipo se almacena en la matriz de coeficientes de la última capa lineal, es decir, Pi = Wi, el prototipo se actualiza utilizando su gradiente en la retropropagación (es por eso que apareció el nombre «métodos basados en aprendizaje de prototipos»).
Aquí comienza la historia de las funciones de pérdida modernas para FR. A lo largo de los años, se han introducido numerosas modificaciones y mejoras, pero las fórmulas presentadas anteriormente son suficientes para comprender el material adicional.
Una de las mejoras, lanzada en 2020, se denomina ArcFace de subcentros y está diseñada para conjuntos de datos con ruido. La restricción de compacidad intraclase provoca sobreajuste en datos con ruido. ArcFace de subcentros introduce subclases. Una muestra de un lote de entrenamiento debe estar cerca de uno de los subcentros positivos, no de todos. Esto reduce la influencia del ruido en los datos.
2020,
Los modelos ArcFace y Sub-center ArcFace tienen implementaciones dentro de la biblioteca insightface, incluido el código para entrenamiento y pesos preentrenados.
Insightface tiene una implementación de ArcFace con diferentes backbones: iresnet (34,50,100,200,2060), mobilefacenet, vit (VisionTransformer).
La consideración de diferentes estructuras troncales queda fuera del alcance de este artículo, por lo que solo proporcionaré los nombres de las estructuras troncales utilizadas con cada una de las pérdidas consideradas. En la mayoría de los casos, los autores de las pérdidas no intentaron seleccionar la estructura troncal óptima, sino que simplemente utilizaron una de las más populares o la utilizada en los modelos con los que querían realizar la comparación.
Para el entrenamiento se utilizaron los conjuntos de datos MS1M, Glint360K, WebFace42M.
El principal desafío para los métodos de reconocimiento facial es el ruido de datos. Los métodos basados en el aprendizaje de prototipos son sensibles a los sesgos de prototipo que introduce el ruido. Una forma de equilibrar el sobreajuste y el subajuste es ajustar el margen, el parámetro principal en las pérdidas de base softmax.
Uno de los primeros métodos para ajustar la escala y el margen angular para pérdidas softmax basadas en coseno, como L2-softmax, CosFace y ArcFace.
Implementa el principio empírico de que la velocidad de aprendizaje debe disminuir a medida que la red se optimiza. El artículo introduce una variable moduladora igual a la mediana de todos los ángulos del minilote para las clases correspondientes, lo que representa aproximadamente el grado actual de optimización del modelo. Cuando el ángulo de la mediana es grande, los parámetros de la cuadrícula distan de ser óptimos y se aplican una escala y un margen mayores, y viceversa.
2019,
Entrenado en los conjuntos de datos CASIA-WebFace y MS1M, resolución de entrada 144 × 144. Probado en los conjuntos de datos LFW, MegaFace e IJB-C, comparado con las pérdidas de L2-softmax, CosFace y ArcFace.
En los últimos años, han surgido varios métodos emblemáticos para aplicar el margen adaptativo en FR, como Dyn-ArcFace (2022), MagFace (2021), ElasticFace (2021), pero nos centraremos en uno de los últimos trabajos en esta área: X2-Softmax (2023).
En comparación con AdaCos, X2-Softmax intenta tener en cuenta la distribución desigual de las clases. Un margen fijo, adecuado entre algunas clases, puede ser demasiado grande para converger entre otras, o demasiado pequeño para promover una compacidad significativa de las características faciales entre otras clases.
2023,
Para clases con ángulos grandes, se necesita un margen grande para aumentar la compacidad, para clases con ángulos pequeños, uno más pequeño.
Recordemos la fórmula general para las pérdidas basadas en softmax:
En este caso, para pérdidas como ArcFace o CosFace, solo difiere la función logit f(θ). Para la función de pérdida X²-Softmax, el resultado es el siguiente:
Las pérdidas tradicionales basadas en softmax utilizan coseno, pero este se transforma en una función cuadrada al expandirse en una serie de Taylor, por lo que se elige una función cuadrada para X²-Softmax. Descartar los términos de orden superior de x y mantener los términos constantes y cuadráticos puede evitar el sobreajuste del modelo.
Aquí a, h y k son hiperparámetros: h y k determinan la posición del vértice de la curva de la función logits, y a determina la dirección de la apertura de la curva y el grado de agrupamiento.
En X2-Softmax, cuando el ángulo entre pesos θ aumenta, el margen angular ∆θ aumenta monótonamente al mismo tiempo.
Para dos clases más similares, un margen pequeño facilita la convergencia del modelo. Para dos clases menos similares, se asignará un margen mayor para mejorar la separación de las características faciales entre clases.
Para el entrenamiento, los autores eligieron la red troncal Resnet50. El modelo se entrenó con el conjunto de datos MS1Mv3 (basado en el MS-Celeb-1M preprocesado por RetinaFace para eliminar imágenes con ruido): 93 000 identidades y 5,1 millones de imágenes faciales.
La mayoría de las pérdidas con márgenes flexibles se mantienen dentro de las pérdidas basadas en softmax, pero hay excepciones. SFace abandona las pérdidas basadas en softmax, pero conserva la idea de optimizar las distancias intraclase e interclase. El modelo impone restricciones intraclase e interclase a la variedad de hiperesfera, controladas por dos curvas sigmoideas. Las curvas transforman los gradientes controlando la velocidad a la que cambian los coeficientes a medida que se aproximan al centroide de la clase objetivo o externa.
2022,
En comparación con los métodos de optimización de margen directo, esto proporciona un equilibrio más fino entre sobreajuste y subajuste, con menos influencia de muestras ruidosas individuales en la pérdida final.
La idea de limitar las incrustaciones de rostros para hacerlas discriminativas en una variedad de hiperesferas ya se ha visto, por ejemplo, en Sphereface (Deep hypersphere embedding for faceognition, 2017).
El objetivo es disminuir la distancia intraclase y aumentar la distancia interclase, de modo que la pérdida de hiperesfera restringida por el sigmoide se pueda formular como
Donde 𝜃𝑦𝑖 es la distancia angular entre la característica de incrustación de la 𝑖-ésima imagen de entrenamiento y el prototipo correspondiente. 𝜃j es la distancia angular a los prototipos externos.
Funciones 𝑟𝑖𝑛𝑡𝑟 y 𝑟𝑖𝑛𝑡𝑒𝑟 diseñadas para reescalar objetivos intra-clase e inter-clase respectivamente y para controlar el grado de optimización. [·]𝑏 es el operador de gradiente de bloque, que evita que se tenga en cuenta la contribución de sus entradas para calcular gradientes.
Se eligen funciones sigmoides como funciones de reescalado de gradiente:
Los autores eligieron funciones sigmoides como funciones de reescalado de gradiente:
𝑠 es la asíntota superior de dos curvas sigmoideas como escala inicial del gradiente, y 𝑘 controla la pendiente de las curvas sigmoideas. Los hiperparámetros 𝑎 y 𝑏 determinan la intersección horizontal de dos curvas sigmoideas y controlan el intervalo flexible para suprimir la velocidad de movimiento.
En comparación con las funciones de pérdida basadas en softmax, tanto la distancia intraclase como la distancia entre clases de SFace se pueden restringir a un grado diseñado y, por lo tanto, se pueden optimizar de manera moderada, que es exactamente la ventaja de SFace.
Para el entrenamiento, los autores eligieron la red troncal ResNet (como para Arcface).
El modelo se entrenó en los conjuntos de datos CASIA-WebFace, VGGFace2 y MS-Celeb-1M.
Otra forma de manejar datos ruidosos es considerar que la incrustación de una identidad (para todos los rostros que pertenecen a una persona) no es un punto en el espacio sino más bien una distribución que tiene una expectativa, una varianza y puede tener valores atípicos.
En el reconocimiento facial, se abandonaron las pérdidas basadas en pares debido a la complejidad del entrenamiento, pero al trabajar con prototipos promediados, se pierde cierta información. Con un enfoque basado en prototipos, el entrenamiento puede atascarse en mínimos locales o sobreajustarse debido a la influencia de valores atípicos en los prototipos.
2021,
VPL: representa cada clase como una distribución en lugar de un punto en el espacio latente.
VPL optimiza la similitud entre ejemplos de un conjunto de entrenamiento y un conjunto de prototipos variacionales que se muestrean a partir de una distribución por clase.
La distribución de prototipos se almacena en M y decae en pasos de ∆t. Los autores entrenaron la pérdida con las redes troncales ResNet50, ResNet100 y MXNet, siendo MXNet la última opción para las pruebas. El conjunto de datos MS1M se utiliza para el entrenamiento; el tamaño de entrada de los recortes de caras es de 112 × 112.
Existen varios enfoques que complementan los métodos basados en prototipos con las ventajas de las pérdidas basadas en pares (también conocidos como modelos de muestra a muestra), como UniTSFace (2023) o UNPG (Generación Unificada de Pares Negativos hacia un Espacio de Características Bien Discriminativo para el Reconocimiento Facial, 2022). En este artículo, me centraré en una de las pérdidas más recientes: la EPL.
En la pérdida softmax basada en márgenes, esta se calcula en comparación con los prototipos (centros de clase); todas las muestras de una clase se extraen a un centro común durante el proceso de entrenamiento. Este se considera el promedio durante el proceso de entrenamiento y se ve fuertemente influenciado por valores atípicos de los ejemplos que pueden desviar el centro del prototipo. En los métodos basados en Softmax, el prototipo se almacena en la matriz de coeficientes de la última capa lineal (es decir, Pi = Wi). El prototipo se actualiza utilizando su gradiente en la retropropagación, y la función de pérdida maximiza la similitud entre las características de los ejemplos y los prototipos correspondientes.
2024,
En EPL se generan y actualizan prototipos:
Donde "α" es un coeficiente de actualización adaptativo generado utilizando la característica x y su prototipo, "σ" es una función de activación para ajustar el coeficiente de actualización en un rango apropiado y s(·, ·) es una función de similitud, que usualmente se toma como una función coseno.
El prototipo empírico se actualiza únicamente utilizando ejemplos “positivos” para evitar la influencia de valores atípicos de clases vecinas.
Proceso de entrenamiento: el codificador extrae las características, se calculan los coeficientes adaptativos α para actualizar el prototipo empírico, las similitudes entre las características y los prototipos se utilizan para calcular la pérdida para el entrenamiento del codificador.
Para aprovechar al máximo las capacidades del aprendizaje de prototipos y del aprendizaje empírico de prototipos, EPL las combina en una sola y establece márgenes diferenciados. Se utilizó la estructura principal de ResNet para el entrenamiento y CASIA-WebFace como conjunto de datos de entrenamiento. El modelo se probó en los conjuntos de datos MRF, IJB-C, LFW, CFP-FP, AgeDB y MegaFace.
Como se desprende de lo anterior, en la mayoría de los casos la modificación de la pérdida se utiliza para solucionar el problema de los datos ruidosos y el sobreajuste, mientras que la estructura principal es responsable de la "complejidad" del modelo, pero hay excepciones.
Este artículo presenta la pérdida métrica de transformador, una combinación de la pérdida métrica estándar y la pérdida de transformador (red de transformador como pérdida aditiva). Las redes de transformador tienen la capacidad de preservar las relaciones espaciales secuenciales, lo que permite aumentar el poder discriminativo de la función de pérdida y aplicar el modelo en casos más complejos (por ejemplo, para FR invariante con la edad).
La peculiaridad de este modelo radica en que el transformador no se utiliza como columna vertebral, como suele ocurrir, por ejemplo, en el modelo Face Transformer. En su lugar, las características de la última capa convolucional se envían a dos ramas de pérdida. La primera rama es una capa de aplanamiento regular y, a continuación, una pérdida métrica (en este caso, ArcFace, aunque podría ser cualquier pérdida basada en clasificación).
En la rama 2, tomamos la salida de tamaño H × W × D y la transformamos en S vectores de tamaño 1 × 1 × D. Esta secuencia puede considerarse como una secuencia de incrustaciones de parches para un codificador de transformador estándar. Tras la capa del codificador de transformador, se aplica una capa lineal sin ajustes adicionales de activación o desconexión. A continuación, la función de entropía cruzada evalúa la pérdida para la distribución de probabilidad de salida (para las N clases objetivo). Las pérdidas de la rama 1 y la rama 2 se combinan mediante una suma ponderada.
En la etapa de validación (prueba), se corta la segunda rama y solo se utilizan las incrustaciones de la primera rama estándar. Para probar MS1M-arcface y WebFace4M (un subconjunto de WebFace 260M).
En esta revisión, nos centramos en un área de los sistemas de reconocimiento facial: las funciones de pérdida. Esto nos permitió presentar un resumen de las nuevas tendencias y artículos recientes en este campo. Todas estas áreas continúan desarrollándose año tras año.
Los siguientes temas quedaron fuera de esta parte de la revisión: