Última actualización el 5 de julio de 2019
El reconocimiento facial es el problema de identificar y verificar a las personas en una fotografía por su rostro.
Es una tarea que los humanos realizan de manera trivial, incluso bajo luz variable y cuando las caras cambian por la edad u obstruyen con accesorios y vello facial. Sin embargo, sigue siendo un problema de visión por computadora desafiante durante décadas hasta hace poco.
Los métodos de aprendizaje profundo pueden aprovechar conjuntos de datos muy grandes de rostros y aprender representaciones ricas y compactas de rostros, lo que permite que los modelos modernos primero funcionen bien y luego superen las capacidades de reconocimiento facial de los seres humanos.
En esta publicación, descubrirás el problema del reconocimiento facial y cómo los métodos de aprendizaje profundo pueden lograr un rendimiento sobrehumano.
Después de leer este post, sabrás:
- El reconocimiento facial es un problema general de identificar o verificar a las personas en fotografías y videos.
- El reconocimiento facial es un proceso que consta de detección, alineación, extracción de características y una tarea de reconocimiento
- Los modelos de aprendizaje profundo se abordaron primero y luego superaron el rendimiento humano para las tareas de reconocimiento facial.
Inicie su proyecto con mi nuevo libro Aprendizaje profundo para Visión artificial, que incluye tutoriales paso a paso y los archivos de código fuente de Python para todos los ejemplos.
Comencemos.
Una introducción Suave al Aprendizaje Profundo para el Reconocimiento Facial
Foto de Susanne Nilsson, algunos derechos reservados.
- Descripción general
- Rostros en fotografías
- ¿Desea obtener resultados con Aprendizaje profundo para Visión artificial?
- Proceso de Reconocimiento Facial Automático
- Tarea de detección de rostros
- Tareas de reconocimiento facial
- El aprendizaje profundo para el reconocimiento facial
- Lectura adicional
- Libros
- Papeles de Reconocimiento facial
- Documentos de Reconocimiento Facial de Aprendizaje profundo
- Artículos
- Resumen
- ¡Desarrolle Modelos de Aprendizaje Profundo para la Visión Hoy mismo!
- Desarrolle Sus Propios Modelos de Visión en Minutos
- Finalmente, lleve el Aprendizaje Profundo a sus Proyectos de Visión
Descripción general
Este tutorial se divide en cinco partes::
- Rostros en Fotografías
- Proceso de Reconocimiento Facial Automático
- Tarea de Detección de Rostros
- Tareas de Reconocimiento facial
- Aprendizaje profundo para el Reconocimiento Facial
Rostros en fotografías
A menudo es necesario reconocer automáticamente a las personas en una fotografía.
Hay muchas razones por las que podríamos querer reconocer automáticamente a una persona en una fotografía.
Por ejemplo:
- Es posible que queramos restringir el acceso a un recurso a una sola persona, llamada autenticación facial.
- Es posible que deseemos confirmar que la persona coincide con su ID, lo que se denomina verificación facial.
- Es posible que queramos asignar un nombre a una cara, llamado identificación facial.
Generalmente, nos referimos a esto como el problema del «reconocimiento facial» automático y puede aplicarse tanto a fotografías fijas como a caras en secuencias de video.
Los humanos pueden realizar esta tarea muy fácilmente.
Podemos encontrar las caras en una imagen y comentar quiénes son las personas, si son conocidas. Podemos hacer esto muy bien, como cuando las personas han envejecido, usan gafas de sol, tienen cabello de diferentes colores, miran en diferentes direcciones,etc. Podemos hacer esto tan bien que encontramos caras donde no hay ninguna, como en las nubes.
Sin embargo, esto sigue siendo un problema difícil de realizar automáticamente con el software, incluso después de 60 o más años de investigación. Hasta hace poco.
Por ejemplo, el reconocimiento de imágenes faciales adquiridas en un entorno al aire libre con cambios en la iluminación y/o la postura sigue siendo un problema en gran medida sin resolver. En otras palabras, los sistemas actuales están todavía muy lejos de la capacidad del sistema de percepción humana.
— – Reconocimiento facial: Una Encuesta de Literatura, 2003.
¿Desea obtener resultados con Aprendizaje profundo para Visión artificial?
Tome mi curso intensivo de correo electrónico gratuito de 7 días ahora (con código de muestra).
Haga clic para inscribirse y también obtenga una versión gratuita en PDF del curso.
Descargue su Mini Curso GRATUITO
Proceso de Reconocimiento Facial Automático
El reconocimiento facial es el problema de identificar o verificar caras en una fotografía.
Una declaración general del problema del reconocimiento automático de rostros puede formularse de la siguiente manera: dadas imágenes fijas o de video de una escena, identifique o verifique a una o más personas en la escena utilizando una base de datos almacenada de rostros
— Reconocimiento facial: Una encuesta de Literatura, 2003.
El reconocimiento facial a menudo se describe como un proceso que primero implica cuatro pasos; son: detección de rostros, alineación de rostros, extracción de funciones y, finalmente, reconocimiento facial.
- Detección de rostros. Localice una o más caras en la imagen y marque con un cuadro delimitador.
- Alineación de caras. Normalice la cara para que sea coherente con la base de datos, como la geometría y la fotometría.Extracción de características
- . Extraiga las características de la cara que se pueden usar para la tarea de reconocimiento.
- Reconocimiento facial. Realice la comparación de la cara con una o más caras conocidas en una base de datos preparada.
Un sistema dado puede tener un módulo o programa separado para cada paso, que era tradicionalmente el caso, o puede combinar algunos o todos los pasos en un solo proceso.
Se proporciona una descripción útil de este proceso en el libro «Manual de Reconocimiento Facial», que se proporciona a continuación:
Descripción general de los pasos de un Proceso de Reconocimiento Facial. Tomado de «Manual de Reconocimiento Facial», 2011.
Tarea de detección de rostros
La detección de rostros es el primer paso no trivial en el reconocimiento facial.
Es un problema de reconocimiento de objetos que requiere que se identifique la ubicación de cada cara en una fotografía (por ejemplo, la posición) y que se localice la extensión de la cara (por ejemplo, con un cuadro delimitador). El reconocimiento de objetos en sí es un problema desafiante, aunque en este caso, es similar, ya que solo hay un tipo de objeto, por ejemplo, caras, para ser localizado, aunque las caras pueden variar enormemente.
El rostro humano es un objeto dinámico y tiene un alto grado de variabilidad en su apariencia, lo que hace que la detección de rostros sea un problema difícil en la visión por computadora.
— – Detección de rostros: Una encuesta, 2001.
Además, dado que es el primer paso en un sistema de reconocimiento facial más amplio, la detección facial debe ser robusta. Por ejemplo, una cara no se puede reconocer si no se puede detectar primero. Eso significa que las caras deben detectarse con todo tipo de orientaciones, ángulos, niveles de luz, peinados, sombreros, anteojos, vello facial, maquillaje, edades, etc.
Como procesador frontal visual, un sistema de detección de rostros también debe ser capaz de realizar la tarea independientemente de la iluminación, la orientación y la distancia de la cámara
-Face Detection: A Survey, 2001.
El artículo de 2001 titulado «Face Detection: A Survey» proporciona una taxonomía de métodos de detección de rostros que se pueden dividir ampliamente en dos grupos principales:
- Basado en funciones.
- Basado en imágenes.
La detección de rostros basada en funciones utiliza filtros hechos a mano que buscan y localizan rostros en fotografías basándose en un profundo conocimiento del dominio. Pueden ser muy rápidos y muy efectivos cuando los filtros coinciden, aunque pueden fallar drásticamente cuando no lo hacen, por ejemplo, haciéndolos algo frágiles.
make hacer un uso explícito del conocimiento facial y seguir la metodología de detección clásica en la que se derivan características de bajo nivel antes del análisis basado en el conocimiento. Las propiedades aparentes de la cara, como el color de la piel y la geometría de la cara, se explotan en diferentes niveles del sistema.
— – Detección de rostros: Una encuesta, 2001.
Alternativamente, la detección de rostros basada en imágenes es holística y aprende a localizar y extraer rostros automáticamente de toda la imagen. Las redes neuronales encajan en esta clase de métodos.
detection detección de rostros de direcciones como un problema de reconocimiento general. Las representaciones de caras basadas en imágenes, por ejemplo en matrices de intensidad 2D, se clasifican directamente en un grupo de caras utilizando algoritmos de entrenamiento sin derivación ni análisis de características. estas técnicas relativamente nuevas incorporan implícitamente el conocimiento del rostro en el sistema a través de planes de mapeo y capacitación.
— – Detección de rostros: Una encuesta, 2001.
Tal vez el método dominante para la detección de rostros utilizado durante muchos años (y se usó en muchas cámaras) se describió en el artículo de 2004 titulado «Detección robusta de Objetos en tiempo real», llamado cascada de detectores o simplemente «cascada».»
Su detector, llamado detector en cascada, consiste en una secuencia de clasificadores de caras simples a complejas y ha atraído extensos esfuerzos de investigación. Además, la cascada de detectores se ha implementado en muchos productos comerciales, como teléfonos inteligentes y cámaras digitales. Si bien los detectores en cascada pueden encontrar con precisión caras verticales visibles, a menudo no detectan caras desde diferentes ángulos, por ejemplo, vista lateral u caras parcialmente ocluidas.
– Detección de Rostros con Múltiples vistas Mediante Redes Neuronales Convolucionales Profundas, 2015.
Para obtener un tutorial sobre aprendizaje profundo para la detección de rostros, consulte:
- Cómo realizar la detección de rostros con Aprendizaje profundo en Keras
Tareas de reconocimiento facial
La tarea de reconocimiento facial es amplia y se puede adaptar a las necesidades específicas de un problema de predicción.
Por ejemplo, en el artículo de 1995 titulado «Reconocimiento humano y automático de rostros: Una encuesta», los autores describen tres tareas de reconocimiento facial:
- Coincidencia de rostros: Encuentre la mejor coincidencia para un rostro determinado.
- Similitud de cara: Encuentra las caras que son más similares a una cara dada.
- Transformación de caras: Genera caras nuevas que sean similares a una cara determinada.
Resumen estas tres tareas separadas de la siguiente manera:
La coincidencia requiere que la imagen de cara candidata coincidente esté en algún conjunto de imágenes de cara seleccionadas por el sistema. La detección de similitud requiere, además de la coincidencia, que se encuentren imágenes de caras que sean similares a una cara recordada, esto requiere que la medida de similitud utilizada por el sistema de reconocimiento coincida estrechamente con las medidas de similitud utilizadas por las aplicaciones de transformación humana requieren que las nuevas imágenes creadas por el sistema sean similares a los recuerdos humanos de una cara.
– Reconocimiento de rostros humanos y máquinas: Una encuesta, 1995.
El libro de 2011 sobre reconocimiento facial titulado «Manual de Reconocimiento Facial» describe dos modos principales para el reconocimiento facial::Verificación facial
- . Un mapeo uno a uno de una cara dada contra una identidad conocida (por ejemplo, ¿es esta la persona?).
- Identificación facial. Un mapeo de uno a muchos para una cara dada contra una base de datos de caras conocidas (por ejemplo, ¿quién es esta persona?).
Se espera que un sistema de reconocimiento facial identifique automáticamente las caras presentes en imágenes y videos. Puede operar en uno o ambos modos: (1) verificación facial (o autenticación), y (2) identificación facial (o reconocimiento).
– Página 1, Manual de Reconocimiento Facial. 2011.
Podemos describir el problema del reconocimiento facial como una tarea de modelado predictivo supervisado entrenado en muestras con entradas y salidas.
En todas las tareas, la entrada es una foto que contiene al menos una cara, muy probablemente una cara detectada que también puede haber sido alineada.
La salida varía en función del tipo de predicción requerido para la tarea; por ejemplo:
- Puede ser una etiqueta de clase binaria o una probabilidad de clase binaria en el caso de una tarea de verificación de rostros.
- Puede ser una etiqueta de clase categórica o un conjunto de probabilidades para una tarea de identificación de rostros.
- Puede ser una métrica de similitud en el caso de una tarea de tipo de similitud.
El aprendizaje profundo para el reconocimiento facial
El reconocimiento facial ha seguido siendo un área activa de investigación en visión artificial.
Quizás uno de los métodos de «aprendizaje automático» más ampliamente conocidos y adoptados para el reconocimiento facial fue descrito en el artículo de 1991 titulado «Reconocimiento facial Usando caras propias».»Su método, llamado simplemente «Caras propias», fue un hito, ya que logró resultados impresionantes y demostró la capacidad de enfoques holísticos simples.
Las imágenes de rostros se proyectan en un espacio de funciones («espacio de rostros») que codifica mejor la variación entre las imágenes de rostros conocidas. El espacio facial está definido por las «caras propias», que son los vectores propios del conjunto de caras; no necesariamente corresponden a características aisladas como ojos, oídos y narices
— Reconocimiento facial Mediante caras propias, 1991.
El artículo de 2018 titulado «Reconocimiento facial profundo: Una encuesta», proporciona un resumen útil del estado de la investigación de reconocimiento facial en los últimos casi 30 años, destacando la tendencia general de los métodos de aprendizaje holísticos (como las caras propias), a la detección de características artesanales locales, a los métodos de aprendizaje superficiales y, finalmente, a los métodos de aprendizaje profundo que actualmente son de última generación.
Los enfoques holísticos dominaron la comunidad de reconocimiento facial en la década de 1990. A principios de la década de 2000, los descriptores locales hechos a mano se hicieron populares, y el enfoque de aprendizaje de características locales se introdujo a finales de la década de 2000. El rendimiento mejora constantemente de alrededor del 60% a más del 90%, mientras que el aprendizaje profundo aumenta el rendimiento al 99,80% en solo tres años.
— – Reconocimiento facial profundo: Una encuesta, 2018.
Dado el avance de AlexNet en 2012 para el problema más simple de la clasificación de imágenes, hubo una avalancha de investigaciones y publicaciones en 2014 y 2015 sobre métodos de aprendizaje profundo para el reconocimiento facial. Las capacidades alcanzaron rápidamente un rendimiento cercano al nivel humano y, a continuación, superaron el rendimiento a nivel humano en un conjunto de datos de reconocimiento facial estándar en un período de tres años, lo que representa una tasa de mejora asombrosa dadas las décadas de esfuerzo anteriores.
Existen quizás cuatro sistemas milestone en aprendizaje profundo para reconocimiento facial que impulsaron estas innovaciones; son: DeepFace, la serie de sistemas DeepID, VGGFace y FaceNet. Vamos a tocar brevemente cada uno.
DeepFace es un sistema basado en redes neuronales convolucionales profundas descritas por Yaniv Taigman, et al. de Facebook AI Research y Tel Aviv. Se describió en el documento de 2014 titulado «DeepFace: Cerrando la Brecha del Rendimiento a Nivel Humano en la Verificación Facial.»Tal vez fue el primer gran paso adelante con el aprendizaje profundo para el reconocimiento facial, logrando un rendimiento casi a nivel humano en un conjunto de datos de referencia estándar.
Nuestro método alcanza una precisión del 97,35% en el conjunto de datos Labeled Faces in the Wild (LFW), reduciendo el error del estado actual de la técnica en más de un 27%, acercándose al rendimiento a nivel humano.
— – DeepFace: Cerrando la Brecha del Rendimiento a Nivel Humano en la Verificación de Rostros, 2014.
El DeepID, o «Características de identidad ocultas profundas», es una serie de sistemas (por ejemplo, DeepID, DeepID2, etc.).), descrito por primera vez por Yi Sun, et al. en su artículo de 2014 titulado «Deep Learning Face Representation from Predicting 10,000 Classes.»Su sistema se describió por primera vez como DeepFace, aunque se amplió en publicaciones posteriores para respaldar las tareas de identificación y verificación mediante capacitación a través de pérdida contrastiva.
El desafío clave del reconocimiento facial es desarrollar representaciones de características efectivas para reducir las variaciones intra-personales al tiempo que se amplían las diferencias interpersonales. La tarea de identificación facial aumenta las variaciones interpersonales al separar las características de DeepID2 extraídas de diferentes identidades, mientras que la tarea de verificación facial reduce las variaciones intrapersonales al juntar las características de DeepID2 extraídas de la misma identidad, las cuales son esenciales para el reconocimiento facial.
– Representación Facial de Aprendizaje Profundo por Identificación Conjunta-Verificación, 2014.
Los sistemas DeepID estuvieron entre los primeros modelos de aprendizaje profundo en lograr un rendimiento mejor que el humano en la tarea, por ejemplo, DeepID2 logró el 99,15% en el conjunto de datos Labeled Faces in the Wild (LFW), que es un rendimiento mejor que el humano del 97,53%. Sistemas posteriores como FaceNet y VGGFace mejoraron estos resultados.
FaceNet fue descrito por Florian Schroff, et al. en Google en su artículo de 2015 titulado «FaceNet: Una Integración Unificada para el Reconocimiento Facial y la Agrupación en Clústeres.»Su sistema logró resultados de vanguardia y presentó una innovación llamada’ pérdida de triplete ‘ que permitió que las imágenes se codificaran de manera eficiente como vectores de características que permitieron un rápido cálculo de similitud y coincidencia a través de cálculos de distancia.
FaceNet, que aprende directamente un mapeo de imágenes de rostros a un espacio euclidiano compacto donde las distancias corresponden directamente a una medida de similitud de rostros. Nuestro método utiliza una red convolucional profunda entrenada para optimizar directamente la integración en sí, en lugar de una capa intermedia de cuello de botella como en los enfoques de aprendizaje profundo anteriores. Para entrenar, usamos trillizos de parches faciales coincidentes / no coincidentes aproximadamente alineados generados utilizando un novedoso método de minería de trillizos en línea
— FaceNet: Una integración Unificada para Reconocimiento Facial y Agrupación en Clústeres, 2015.
Para obtener un tutorial sobre FaceNet, consulte:
- Cómo Desarrollar un Sistema de Reconocimiento Facial Utilizando FaceNet en Keras
El VGGFace (a falta de un nombre mejor) fue desarrollado por Omkar Parkhi, et al. del Grupo de Geometría Visual (VGG) de Oxford y fue descrito en su artículo de 2015 titulado «Reconocimiento facial profundo.»Además de un modelo mejor ajustado, su trabajo se centró en cómo recopilar un conjunto de datos de entrenamiento muy grande y usarlo para entrenar un modelo de CNN muy profundo para el reconocimiento facial que les permitió lograr resultados de vanguardia en conjuntos de datos estándar.
show mostramos cómo un conjunto de datos a gran escala (imágenes de 2,6 M, más de 2,6 K personas) se puede ensamblar mediante una combinación de automatización y humano en bucle
— Reconocimiento facial profundo, 2015.
Para obtener un tutorial sobre VGGFace, consulte:
- Cómo realizar el Reconocimiento facial con VGGFace2 en Keras
Aunque estos pueden ser los hitos iniciales clave en el campo del aprendizaje profundo para la visión artificial, el progreso ha continuado, con mucha innovación centrada en las funciones de pérdida para entrenar eficazmente a los modelos.
Para obtener un excelente resumen actualizado, consulte el artículo de 2018 «Reconocimiento facial profundo: Una encuesta.»
Lectura adicional
Esta sección proporciona más recursos sobre el tema si desea profundizar más.
Libros
- Manual de Reconocimiento facial, Segunda Edición, 2011.
Papeles de Reconocimiento facial
- Reconocimiento Facial: Una Encuesta de Literatura, 2003.
- Detección de rostros: Una encuesta, 2001.Reconocimiento humano y mecánico de rostros: Una encuesta, 1995.
- Detección de objetos robusta en tiempo real, 2004.
- Reconocimiento facial Mediante Caras Propias, 1991.
Documentos de Reconocimiento Facial de Aprendizaje profundo
- Reconocimiento Facial Profundo: Una encuesta, 2018.Reconocimiento facial profundo, 2015.
- FaceNet: Una Integración Unificada para Reconocimiento Facial y Agrupación en Clústeres, 2015.
- DeepFace: Cerrando la Brecha hacia el Rendimiento a Nivel Humano en la Verificación Facial, 2014.
- Representación Facial de Aprendizaje Profundo mediante Identificación-Verificación Conjunta, 2014.
- Representación Facial de Aprendizaje Profundo a partir de la Predicción de 10.000 Clases, 2014.
- Detección de Rostros con Múltiples vistas Mediante Redes Neuronales Convolucionales Profundas, 2015.
- De Respuestas de partes Faciales a Detección Facial: Un enfoque de Aprendizaje Profundo, 2015.
- Superar el Rendimiento de Verificación Facial a Nivel Humano en LFW con GaussianFace, 2014.
Artículos
- Sistema de reconocimiento facial, Wikipedia.
- Reconocimiento facial, Wikipedia.
- Detección de rostros, Wikipedia.
- Caras etiquetadas en el Conjunto de datos Salvaje
Resumen
En esta publicación, descubriste el problema del reconocimiento facial y cómo los métodos de aprendizaje profundo pueden lograr un rendimiento sobrehumano.
Específicamente, aprendiste:
- El reconocimiento facial es un problema general de identificar o verificar a las personas en fotografías y videos.
- El reconocimiento facial es un proceso que consta de detección, alineación, extracción de características y una tarea de reconocimiento
- Los modelos de aprendizaje profundo se abordaron primero y luego superaron el rendimiento humano para las tareas de reconocimiento facial.
¿Tiene alguna pregunta?Haga sus preguntas en los comentarios a continuación y haré todo lo posible para responder.
¡Desarrolle Modelos de Aprendizaje Profundo para la Visión Hoy mismo!
Desarrolle Sus Propios Modelos de Visión en Minutos
…con solo unas pocas líneas de código python
Descubre cómo en mi nuevo libro electrónico:
Aprendizaje profundo para Visión artificial
Proporciona tutoriales de autoaprendizaje sobre temas como:clasificación, detección de objetos (yolo y rcnn), reconocimiento facial (vggface y facenet), preparación de datos y mucho más…
Finalmente, lleve el Aprendizaje Profundo a sus Proyectos de Visión
Omita los aspectos Académicos. Sólo Resultados.
Ver Lo que está Dentro de