FaceNet es un modelo de aprendizaje profundo para el reconocimiento y la verificación facial, desarrollado por investigadores de Google. Mapea imágenes de rostros a un espacio euclidiano compacto de 128 dimensiones, donde la distancia L2 al cuadrado entre las incrustaciones corresponde directamente a la similitud facial. El modelo fue presentado en un artículo de 2015 titulado "FaceNet: A Unified Embedding for Face Recognition and Clustering" por Florian Schroff, Dmitry Kalenichenko y James Philbin.
A diferencia de los sistemas de reconocimiento facial anteriores que utilizaban representaciones de capas intermedias de cuello de botella de redes de clasificación, FaceNet fue entrenado de extremo a extremo utilizando una novedosa función de pérdida de tripletes. Esta función de pérdida asegura que la distancia entre las incrustaciones de la misma persona sea menor que la distancia entre las incrustaciones de personas diferentes por un margen especificado. Este enfoque permitió que FaceNet lograra una precisión de vanguardia en varios conjuntos de datos de referencia en ese momento, incluyendo un 99.63% en el conjunto de datos Labeled Faces in the Wild (LFW) y un 95.12% en YouTube Faces DB.
Arquitectura y Entrenamiento
FaceNet utiliza una arquitectura de red neuronal convolucional profunda (CNN), con dos variantes principales: la red Zeiler-Fergus (ZF) y la red Inception (GoogLeNet). El modelo basado en Inception, que emplea normalización por lotes y conexiones residuales en versiones posteriores, logró el mejor rendimiento. La red procesa recortes de rostros alineados de 96x96 o 224x224 píxeles, produciendo un vector de incrustación de 128 dimensiones.
El entrenamiento se realizó utilizando descenso de gradiente estocástico (SGD) con el optimizador Adam en algunas configuraciones. La pérdida de tripletes se optimizó mediante una estrategia de minería de tripletes que selecciona ejemplos positivos duros y negativos duros dentro de cada mini-lote. Esta técnica de minería fue crucial para la convergencia, ya que la selección aleatoria de tripletes a menudo conducía a un entrenamiento lento. El modelo fue entrenado en un gran conjunto de datos de aproximadamente 200 millones de imágenes faciales de alrededor de 8 millones de identidades únicas, obtenidas de imágenes web.
Pérdida de Tripletes
La innovación central de FaceNet es la función de pérdida de tripletes. Para cada muestra de entrenamiento, un triplete consiste en una imagen ancla, una imagen positiva (misma identidad que el ancla) y una imagen negativa (identidad diferente). La pérdida fomenta que la distancia de incrustación entre el ancla y el positivo sea menor que la distancia entre el ancla y el negativo por al menos un margen α (típicamente establecido en 0.2). La pérdida se define como L = max(0, d(a,p) - d(a,n) + α), donde d denota la distancia euclidiana.
Para hacer el entrenamiento eficiente, los autores propusieron dos estrategias de selección de tripletes: minería de lote duro (seleccionando el positivo más duro y el negativo más duro dentro de un lote) y minería de lote completo (usando todos los tripletes válidos en un lote). La estrategia de lote duro resultó ser la más efectiva, llevando a una convergencia más rápida y una mejor precisión final.
Aplicaciones e Impacto
Las incrustaciones de FaceNet han sido ampliamente adoptadas para tareas de verificación facial, reconocimiento facial y agrupamiento facial. La capacidad del modelo para producir incrustaciones compactas y discriminativas permitió una búsqueda de similitud eficiente utilizando algoritmos de vecinos más cercanos. Influyó en trabajos posteriores en aprendizaje de métricas y fue integrado en varios sistemas comerciales, incluyendo la función de agrupación de rostros de Google Photos.
El enfoque también inspiró investigación más allá del reconocimiento facial, incluyendo re-identificación de personas, recuperación de imágenes y aprendizaje de una sola muestra. El concepto de pérdida de tripletes fue posteriormente adaptado para otros dominios como modelos de lenguaje y sistemas de recomendación.
Limitaciones y Trabajo Posterior
FaceNet requería recortes de rostros cuidadosamente alineados, y su rendimiento se degradaba con variaciones de pose, iluminación y oclusión. El modelo también enfrentó críticas con respecto a la privacidad y el sesgo, ya que los sistemas de reconocimiento facial pueden exhibir disparidades demográficas. Modelos posteriores, como ArcFace y CosFace, mejoraron FaceNet al utilizar pérdidas de margen angular en lugar de margen euclidiano, logrando un mejor rendimiento en conjuntos de datos desafiantes.
A pesar de estos avances, FaceNet sigue siendo un punto de referencia fundamental en el campo del reconocimiento facial, y su formulación de pérdida de tripletes todavía se enseña en muchos cursos de aprendizaje automático. El artículo original ha sido citado más de 10,000 veces, reflejando su influencia duradera en la investigación de visión por computadora.