2010-05-25 15 views
20

Recientemente he mirado un poco el reconocimiento facial. Sin embargo, estoy sobrepasado por la cantidad de algoritmo que hay.Estado del arte en reconocimiento facial

PCA, LDA, AIF, Gabor Wavelets, AAM ...

Digamos que quería hacer algo como this ... ¿Qué algoritmos usaría, o que los documentos le lea?

+1

+1 para el tema, muy interesante. –

+0

Wiki de la comunidad? – Betamoo

Respuesta

16

Creo que la primera cosa que debe hacer es darse cuenta de que los algoritmos que ha enumerado se utilizan en diferentes etapas de reconocimiento de rostros.

En primer lugar, debe decidir sobre la representación, i. mi. las funciones a usar. Estos podrían ser píxeles sin formato, filtros Gabor, algún tipo de descriptores de forma, modelos deformables, etc.

Entonces, normalmente desea reducir la dimensionalidad de sus funciones. Aquí es donde entran en juego algoritmos como PCA, ICA o LDA, que proyectan puntos de datos en un espacio dimensional inferior tratando de preservar la mayor parte de la varianza (PCA) o para asegurar la separación óptima de puntos de diferentes categorías (LDA).

Entonces probablemente quiera entrenar un clasificador en sus características para distinguir entre las caras de diferentes personas. Hay una gran cantidad de algoritmos para elegir aquí, como el Vecino más cercano, Máquinas de Vector de Soporte, Modelos de Markov Ocultos, Redes de Bayes, etc.

Tenga en cuenta que la elección de un algoritmo para una etapa particular puede o no depender en los algoritmos para otras etapas. Por ejemplo, PCA se puede utilizar para reducir la dimensionalidad de casi cualquier tipo de características. Por otro lado, no es inmediatamente obvio cómo se puede usar un clasificador de máquina de vector de soporte para las caras representadas por una malla deformable.

Supongo que lo primero que debe hacer es definir su problema con mucha precisión. ¿Desea distinguir entre las caras de unas pocas personas, como reconocer a los miembros de su familia en las fotos? ¿Quieres reconocer a las personas de una gran base de datos? ¿Tienes muchas imágenes de entrenamiento para cada cara, o solo unas pocas? ¿Desea manejar diferentes orientaciones y condiciones de iluminación?

Las respuestas a estas preguntas determinan qué tan complicado es su problema, y ​​sin duda afectará su elección de algoritmos.

EDITAR: Aquí hay un thesis de alguien que intentó resolver un problema similar. Es de 2002, pero en mi humilde opinión es un buen lugar para comenzar.

+1

Como dije, estaba pensando en hacer algo como myheritage, donde puedes ingresar una amplia gama de fotos y unirlas a una gran base de datos de ejemplos (que pueden contener a la misma persona con diferentes expresiones, pose e iluminación) para encontrar la coincidencia más cercana – Maarten

+0

Sin embargo, usted hizo las cosas mucho más claras para mí. – Maarten

+0

No, en realidad no explicó cuál era su objetivo específico. Pero parece que quieres hacer la recuperación, no la clasificación. Entonces, lo que realmente quieres es elegir una representación de característica adecuada y definir una medida de distancia entre dos de esas representaciones. – Dima

1

Cascada de Haar en un puerto de Marilena.

Una cascada de Haar es un algoritmo que lee un archivo y le dice a la computadora qué aspecto tiene. Lo he usado en el pasado para detectar rostros, gafas, solo una sonrisa, manos y una lata de coca.

http://en.wikipedia.org/wiki/Haar-like_features

+3

Estoy hablando de reconocimiento facial no detección. EDITAR: gracias de todos modos. – Maarten

3

Desea considerar los mapas de profundidad. Eso es lo último en arte. Intenta leer sobre representaciones esféricas dispersas. Eigen faces no es muy robusto. No es invariante para varios factores. El reconocimiento facial de última generación está usando PCL 3D que tiene información de profundidad. Esto te permitiría reconocer incluso en la oscuridad. Puede utilizar una cámara Asus o una cámara Kinect para recopilar información de profundidad. ¡Espero que ayude!

Cuestiones relacionadas