2012-01-10 9 views
10

Estoy tratando de usar opencv para detectar rostros. Las caras no son frontales, la cámara captó las caras de un lado para que solo se vea un ojo y parte de la boca. Intenté HaarDetectObjects con múltiples configuraciones sin obtener ningún beneficio. Cambié la cascada y probé: haarcascade_frontalface_default.xml, haarcascade_frontalface_alt.xml, haarcascade_profileface.xml con muy malos resultados. ¿Hay alguna otra cascada mejor? ¿Hay otras sugerencias?Detección de rostros con OpenCV para imágenes no frontales

Gracias

Respuesta

8

Los archivos de cascada que se hace referencia (por ejemplo, aarcascade_frontalface_default.xml, haarcascade_frontalface_alt.xml, haarcascade_profileface.xml) se crean usando las caras frontal completa para detectar caras frontales completos. Entonces, la mitad de una cara obviamente no se reconocería correctamente como la forma correcta de una computadora.

Lo que puede que tenga que hacer en esta situación es la formación de OpenCV para reconocer su objeto de interés, que es "la mitad de un face_ en este caso en OpenCV la jerga se conoce como -.. 'HaarTraining' Usar this, this y this artículo como punto de partida para comenzar a entrenar

Una vez que haya entrenado OpenCV utilizando sus datos (por ejemplo, muchas imágenes diferentes de la mitad de una cara), tendrá listo un archivo XML en cascada que puede enchufar a su propio código para detectar la mitad de una cara.

¡Buena suerte!

+4

Las medias caras también se llaman perfil. :) – Sam

+0

Haarcascade_profileface.xml es para las caras de perfil (no frontal, pero hacia los lados) – saurabheights

+0

Por cierto, probado el rostro perfil Haarcascade xml, pero resulta que no es muy precisa. – saurabheights

9

Ahora usted tiene en OpenCV la nueva cascada de LBP para las caras del perfil, creada por Vadim Pisarevsky:

https://github.com/Itseez/opencv/blob/master/data/lbpcascades/lbpcascade_profileface.xml

Al parecer, sólo se detecta caras perfil adecuado, de modo de detectar todo el perfil se enfrenta uno tiene que ejecutar un segundo paso con la imagen volteada.

+0

Esto funciona muy bien para caras de perfil completo. Sin embargo, no siempre funciona muy bien para caras parcialmente de perfil. ¿Hay una mejor versión de una cascada de perfiles disponible ahora? –

+1

No es que yo sepa, pero siempre puedes entrenar tu propio conjunto de caras usando una base de datos de caras de perfil (deberías poder encontrar algunas bases de datos de caras alrededor). Si lo hace, envíe la cascada generada a OpenCV para que esté disponible para la comunidad. –

+0

Eso es interesante. Gracias por documentar esta limitación y el procedimiento para que funcione con todas las caras de perfil. –

Cuestiones relacionadas