¿Cómo reconoce el reconocimiento facial la presencia de una cara?

Como explica Ben, el método Viola-Jones es rápido, razonablemente preciso en las caras frontales y está disponible en OpenCV. Puede ver una visualización creada por Adam Harvey del algoritmo en funcionamiento aquí:

http://ahprojects.com/blog/161

El algoritmo Viola-Jones está ampliamente implementado, por lo que cualquier sistema actual que haya utilizado que detecte caras probablemente esté ejecutando Viola-Jones. Por ejemplo, creo que algo similar a Viola-Jones potencia la detección frontal de rostros que ahora está integrada en muchas cámaras, y Facebook actualmente usa la implementación de Viola-Jones de OpenCV para pre-detectar rostros para el etiquetado manual:

¿Qué biblioteca de detección de rostros eligió Facebook para acelerar el etiquetado de fotos?

Sin embargo, el algoritmo estándar de Viola-Jones no puede manejar las grandes variaciones en la apariencia facial causadas por cambios en la postura, la expresión y la oclusión. Se puede intentar compensar entrenando clasificadores separados para detectar diferentes poses y expresiones, pero este enfoque no parece escalar bien para cubrir la variedad completa de imágenes faciales.

Son absolutamente necesarios mejores algoritmos, ya que ningún algoritmo se ha acercado aún al rendimiento de detección de rostros humanos. El punto de referencia de detección de rostros para mirar en el futuro cercano se llama FDDB, y se basa en un conjunto desafiante de fotografías de noticias:

http://vis-www.cs.umass.edu/fddb/

Debería haber muchos resultados nuevos publicados en ese sitio después de ECCV 2010. En la actualidad, puede ver una curva de referencia para el algoritmo Viola-Jones en la página “Resultados”, y funciona muy mal, por lo que hay mucho espacio para mejorar.

El reconocimiento facial reconoce la presencia de una cara gracias al algoritmo de detección de caras . Determina la ubicación y el tamaño de los rostros humanos en imágenes arbitrarias (digitales).

El algoritmo (el primero de su tipo, introducido en 2001) se conoce como marco de detección de objetos Viola-Jones

El algoritmo recibe una foto como un conjunto de datos para el valor de color de cada píxel individual. Para averiguar dónde está la cara en la imagen o en un video, busca áreas de contrastes, entre las partes claras y oscuras de la imagen, como el puente de la nariz suele ser más claro que el área circundante en ambos lados, las cuencas de los ojos Son más oscuros que la frente. Al escanear repetidamente los datos de la imagen calculando la diferencia entre los valores de píxeles en escala de grises debajo de los cuadros blancos y los cuadros negros, el programa puede detectar caras .

Más información sobre la tecnología de reconocimiento facial: la guía definitiva para el reconocimiento facial

Obviamente, hay muchas maneras de hacer esto, pero de lejos el método más común en la última década ha sido el método Viola-Jones. El método Viola-Jones utiliza un conjunto de características llamadas “características de Haar” para identificar la forma general de la cara. Las características de Haar se calculan restando los píxeles en un rectángulo por píxeles en otro rectángulo. Estas características, por ejemplo, son buenas para encontrar dónde están tus ojos porque tienden a retraerse en tu cabeza y, por lo tanto, son más oscuros que el resto de tu cara. Además, encuentran el puente de la nariz particularmente bien porque el puente de la nariz tiende a ser un poco más ligero que los lados de las mejillas (porque está más alejado de la cara).

El algoritmo real usa una ventana deslizante combinada con un montón de pruebas para las respuestas de las características de Haar rotadas y escaladas en diferentes orientaciones / tamaños. Por lo general, se basan en árboles de decisiones que se han potenciado con alguna forma de AdaBoost. Básicamente revisa muchos cuadrados diferentes y pregunta, ¿hay una cara aquí basada en las respuestas de estas diversas características de Haar?

Para una explicación más gráfica (y por lo tanto intuitiva) vea la página de Wikipedia: http://en.wikipedia.org/wiki/Vio

More Interesting

¿Puedo solicitar los programas de posgrado de IA en Canadá?

¿Cuán realista es un apocalipsis inducido por IA / robótica?

Nosotros, los humanos, estamos desarrollando IA. Que otros extraterrestres (ET) también desarrollen IA como nosotros. ¿Cómo se encontrarán los dos? Significa IA de humanos y IA de Alians.

¿Cómo es posible que los robots humanoides tengan sentimientos y respondan preguntas inteligentes? ¿Por qué crees que Arabia Saudita le dio a Sophia la ciudadanía?

¿Cómo se puede comenzar a desarrollar un bot de chat utilizando el aprendizaje automático y el procesamiento del lenguaje natural desde cero?

¿Podemos optar por la inteligencia artificial en la EM? Después de la finalización, ¿hay algún camino para avanzar hacia la industria del software o tenemos que optar solo por p.hd?

Cuando los laicos dicen que la IA solo hace lo que está programado para hacer, ¿están pasando por alto la diferencia entre los algoritmos y las técnicas modernas de IA?

Inteligencia artificial: ¿Cómo las redes neuronales convolucionales identifican las emociones humanas?

¿Debo comenzar como principiante en el aprendizaje automático mediante tareas de aprendizaje supervisadas o no supervisadas y por qué?

¿Cómo funciona una red neuronal generativa? ¿Cómo pueden crear imágenes?

¿Cuáles son algunos maestros de aprendizaje automático / IA que toleran un GPA bajo de pregrado para la admisión?

¿Cuántos años crees que estamos desde el punto en que un trabajo solitario podría matar a todos en el planeta y cómo crees que podrían hacerlo?

En una red neuronal (sin saber si es específica para keras), ¿cuál es la diferencia entre el tamaño del lote y el entrenamiento del lote? ¿Cuándo necesitaría ambos?

¿El aprendizaje automático está sacando a los expertos en la materia (SME) de la ecuación de desarrollo técnico?

¿Qué podría ser un buen proyecto para hacer que combine inteligencia artificial y química y física teórica / computacional?