reconocimiento - detectar rostro con opencv python
Detección de rostros con OpenCV para imágenes no frontales (2)
Estoy tratando de usar opencv para detectar caras. 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?
Gracias
Los archivos en cascada a los que se hace referencia (por ejemplo, aarcascade_frontalface_default.xml, haarcascade_frontalface_alt.xml, haarcascade_profileface.xml) se crean utilizando caras frontales completas para detectar caras frontales completas. Entonces, la mitad de una cara obviamente no se reconocería correctamente como la forma correcta de una computadora.
Lo que debe hacer en esta situación es capacitar a OpenCV para que reconozca su objeto de interés que es "la mitad de una face_ en este caso. En la jerga OpenCV se lo conoce como '' HaarTraining ''. Use esto , este y este artículo como un 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 conectar a su propio código para detectar la mitad de una cara.
¡Buena suerte!
Ahora tiene en OpenCV la nueva cascada LBP para caras de perfil, creada por Vadim Pisarevsky:
https://github.com/Itseez/opencv/blob/master/data/lbpcascades/lbpcascade_profileface.xml
Aparentemente, solo detecta las caras del perfil correcto, por lo que para detectar todas las caras del perfil hay que ejecutar un segundo paso con la imagen volteada.