2011-11-09 9 views
6

Estoy tratando de obtener la ubicación de un determinado objeto en una imagen tomada con una cámara. La coincidencia de plantillas no funcionará en este caso, porque necesito una solución invariante de escala/rotación.Uso de puntos clave para calcular similitudes de objetos

Así que ahora estoy usando el algoritmo FAST de OpenCV para detectar puntos clave en mi imagen, lo que parece funcionar bien.

¿Pero qué sigue? Tengo una 'imagen de plantilla' del objeto que quiero detectar. Puedo imaginar que también tengo que detectar los puntos clave de esta imagen de plantilla, y luego compararla showhow con la imagen tomada con la cámara. ¿Es esto lo que tengo que hacer a continuación y, de ser así, qué funciones puedo usar para eso? (Estoy usando OpenCV)

¿O hay otra forma de hacer esto?

Entonces, ¿cómo puedo usar los puntos clave para detectar un determinado objeto en mi imagen?

+1

Puede consultar los 3 últimos tutoriales de esta página, quizás le puedan ser útiles: http://opencv.itseez.com/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html – Adrian

+0

@AdrianPopovici Gracias, Probé "Features2D + Homography para encontrar un objeto conocido", funciona excelente. La desventaja es que es extremadamente lento. Pero eso es probablemente porque estoy en un iphone. Voy a probar el último también para ver si eso es más rápido. Gracias de todos modos, ¡me apuntaste en la dirección correcta! – w00

Respuesta

6

Está utilizando FAST para detectar puntos clave, eso está bien.

Ahora el siguiente paso es usar un Descriptor Extractator. ¿Qué es un extractor de descriptores? Es un algoritmo que genera una descripción de un punto clave que hace que este punto clave sea reconocible por un matcher. descriptores SIFT famosas son , monstruo ...

Después de encontrar los descriptores de la imagen de la plantilla y la imagen de búsqueda en, necesitará un matcher. El emparejador le dirá qué descripciones son las mismas.

Tenga en cuenta que SIFT requiere un matcher euclidiano basado en distancia (FLANN), pero FREAK u otros descriptores binarios requieren un matcher basado en distancia hamming.

1

Pruebe las funciones de ORB en su lugar. Están diseñados para ser más rápidos.
Además, eche un vistazo a CARD descriptors.

+0

Intenté implementar el método ORB, pero la aplicación falla cada vez que lo intento. Sigue estrellándose cuando intento hacer una coincidencia. - Método Brute Force: http: //pastebin.com/BvnFQgcY --- flannBased: http://pastebin.com/1RrCv0QL - ¿Alguna idea de cuál podría ser el problema? – w00

1

Tal vez usted puede intentar SIFT Descripción punto clave

VLfeat

Rob Hess

el segundo se basa OpenCV.

Cuestiones relacionadas