2012-07-06 34 views
10

He intentado reconocer rostros usando OpenCV utilizando la documentación provista en su wiki. Funciona bien y puede detectar caras múltiples. Sin embargo, no hay datos proporcionados en el sitio con respecto a la detección de objetos 3D o el seguimiento de la cabeza. Los enlaces para el código y el wiki se proporcionan a continuación:Detección de Objetos 3D-Opencv

Face recognition

Cascade Classifier

Mientras que la wiki no proporciona suficiente información sobre la detección de rostros, como se podría haber encontrado, no se proporcionan métodos de reconocimiento facial 3D .

Quería saber acerca de los proyectos relacionados con el reconocimiento facial en 3D y el seguimiento para que pueda ver el código fuente y tratar de hacer un proyecto que haga lo mismo.

+0

estoy en una posición similar a la que, actualmente estoy buscando una manera de reconocer y realizar un seguimiento de objetos 3D. Si encuentro algo que pueda ayudarte, lo publicaré aquí. – casper

+0

Gracias una tonelada. :) ¿Tienes alguna idea sobre cualquier algoritmo que pueda usarse? –

+1

Me temo que aún soy un principiante en este campo, pero puedo recomendarle que mire el algoritmo [SURF] (http://opencv.willowgarage.com/documentation/c/feature_detection.html), o en [este clip] (http://www.youtube.com/watch?feature=endscreen&NR=1&v=G5GLIKIkd6E). Tal vez puedas usar una forma de actualizar continuamente la coincidencia de plantillas como lo hizo él. [Otro tutorial] (http://www.morethantechnical.com/2010/03/19/quick-and-easy-head-pose-estimation-with-opencv-w-code/) que me pareció interesante. ¡Buena suerte! – casper

Respuesta

6

Esto puede llegar tarde pero willow garage tiene otro proyecto en ejecución llamado Point Cloud Library (PCL) que está completamente enfocado en tareas de procesamiento de datos 3D. El reconocimiento de rostros es uno de los casos de uso que utilizan para publicitar el proyecto. Por supuesto, todo esto es gratis ...

http://pointclouds.org

1

Hay muchos métodos. Solo puedo indicarle la dirección correcta. Los ejemplos de reconocimiento de rostros generalmente brindan subdetección de ojos. Entonces, en realidad, conoces la ubicación de la cara y los ojos. De manera similar u otros medios también puedes detectar labios. Ahora cuando tiene al menos tres puntos de objeto (cara esta vez), puede calcular su posición 3D en la sala mediante triangulación. Esta parte del ejemplo existe en find_obj.cpp que viene como ejemplo con OpenCV. Solo este ejemplo usa x puntos de SURF y dibuja un rectángulo basado en esta información. Consulte también cualquier otra cosa con CvFindHomography.

1

Desde OpenCV 2.4.2, se ha producido un fichero de cabecera para la detección de rostros y seguimiento: opencv2/contrib/detection_based_tracker.hpp

El archivo de cabecera define una clase llamada DetectionBasedTracker. El mecanismo de seguimiento que define utiliza cascadas de sonido en el fondo para detectar objetos. El seguimiento es mucho más rápido que la implementación OpenCV Haar (sin embargo, algunos han encontrado que es menos preciso). Personalmente he encontrado que funciona muy bien en un dispositivo Android. Un código de ejemplo la aplicación de la detección de rostros y de seguimiento se encuentran aquí: http://bytesandlogics.wordpress.com/2012/08/23/detectionbasedtracker-opencv-implementation/

1

Usted debe echar un vistazo a Active shapes models y Active Appearance Models que son para la tarea que está describiendo. OpenCV le proporciona solo métodos de detección 2D, mientras que los métodos de referencia (ahora muy popular en el campo) rastrean un conjunto de puntos 3D distribuidos en una cara más una textura para describir su apariencia.

Las páginas de Wikipedia le darán algunos enlaces a las implementaciones de dichos métodos.

Si desea conocer los parámetros 3D de la cabeza en las coordenadas mundiales (por ejemplo, detección de mirada), debe buscar las palabras clave "3D head tracking" y "head pose estimate".