2011-03-21 19 views
6

Quiero realizar una tarea de clasificación en la que asigno una imagen dada de un objeto a una de una lista de constelaciones predefinidas en las que puede estar el objeto (es decir, encontrar la coincidencia más probable). Para obtener los descriptores de la imagen (en la que ejecutaré algoritmos de aprendizaje automático) me sugirieron usar SIFT con la implementación de VLFeat.Descriptores de imagen con SIFT/VLFEAT

Primero de todo, mi pregunta principal: me gustaría ignorar la parte de búsqueda de puntos clave de sift, y solo la uso para sus descriptores. En el tutorial he visto que no es una opción para hacer exactamente eso llamando

[f,d] = vl_sift(I,'frames',fc) ;

donde fc especifica los puntos clave. Mi problema es que quiero especificar explícitamente el cuadro delimitador en el que quiero calcular las descripciones en torno al punto clave, pero parece que solo puedo especificar un parámetro de escala que en este momento es un poco críptico para mí y no lo hace Permítanme especificar explícitamente el cuadro delimitador. ¿Hay una manera de lograr esto?

La segunda pregunta es, ¿tiene sentido establecer manualmente la báscula y obtener los descriptores de esta manera? (es decir, ¿da como resultado un buen descriptor?). ¿Alguna otra sugerencia con respecto a mejores formas de obtener descriptores? (utilizando SIFT con otras implementaciones u otros descriptores que no sean SIFT). Debo mencionar que mi objeto es siempre el único objeto en la imagen, está centrado, tiene iluminación constante y cambia por algunos tipos de rotaciones de sus partes internas. Y es por eso que pensé que SIFT funcionaría como lo entendí, se enfoca en los gradientes de orientación que cambiarían de acuerdo con las rotaciones del objeto.

Gracias

Respuesta

2

coincidido en destacar el hecho de que la escala descriptor se ve un poco críptico.

Véase la tercera imagen en el VLFeat SIFT tutorial donde se superponen los descriptores extraídos en la imagen con los siguientes comandos

h3 = vl_plotsiftdescriptor(d(:,sel),f(:,sel)) ; 
set(h3,'color','g') ; 

Puede por lo tanto jugar con la escala y ver si la región donde el histograma se extrae jives con lo lo esperabas

SIFT parece que podría ser exagerado para su aplicación si tiene tanto control sobre el entorno de generación de imágenes, pero debería funcionar.

0

Hey. que podría ayudar a mirar a través del fondo capítulo de esta tesis: http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001260

se necesitaría mucho tiempo para mí explicar sobre la escala para tratar de leer y ver la cita correspondiente. Por cierto en ese trabajo, los descriptores se utilizan en la resolución base, es decir, escala ~ 1.

Espero que esto ayude.

0

Quizás no entendí el problema, pero si la imagen de consulta debe coincidir con una base de datos de imágenes de tren, y tanto las imágenes de tren como las de prueba son constantes en iluminación, escala, ... tal vez SIFT no es necesario en aquí. Podrías echarle un vistazo a la correlación. ¿Estás usando matlab?

http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#template-matching "Aquí" puede ver un ejemplo usando la correlación con opencv.

Cuestiones relacionadas