2010-04-24 15 views
6

Soy muy nuevo en el procesamiento de imágenes y el reconocimiento de patrones. Estoy intentando implementar el algoritmo SIFT donde puedo crear la pirámide DoG e identificar el máximo o mínimo local en cada octava. Lo que no entiendo es cómo usar estos máximos/mínimos locales en cada octava. ¿Cómo combino estos puntos?Cómo utilizar DoG Pyramid en SIFT

Mi pregunta puede sonar muy trivial. He leído el artículo de Lowe's, pero no pude entender qué hizo después de construir la pirámide DoG. Se agradece cualquier ayuda.

Gracias

+0

¿Cuál es el papel que lees? –

Respuesta

4

Básicamente lo que hace después de la construcción de la pirámide perro está detectando extremos locales en esas imágenes. Después, descarta algunos de los extremos locales detectados porque probablemente sean inestables. Proceso de identificación de esos puntos significativos inestables/características se realiza mediante dos pasos:

  1. puntos de rechazo que tienen bajo contraste
  2. rechazar puntos que están mal localizado a lo largo del borde (que significa que tienen fuerte respuesta de borde en una dirección solamente)

Para poder hacer estos pasos, primero debe obtener la ubicación real de los extremos tomando una expansión de la serie Taylor. Le dará información para resolver esos dos pasos.

El paso final es la construcción de descriptores ...

estoy en un proceso de estudio de este algoritmo, así y no me parece tan trivial para entender. Hay algunos detalles que no están incluidos en el documento de Lowe's, por lo que es más difícil de entender. No he encontrado muchos recursos adicionales que expliquen este algoritmo más a fondo, pero hay algunas implementaciones de código abierto, por lo que también podría hacer uso de ellos.

EDIT: más información :)

papel se enlazó es su trabajo temprano y usted debe obtener la versión más reciente de papel, porque hay algunas modificaciones. Buscando más recursos También leí su patente y también contiene información antigua, por lo que tampoco debería buscarla.

Por lo tanto, mi comprensión de este paso de scale-space extrema es la siguiente. Primero, necesitamos construir una pirámide gaussiana. El documento dice que para la completitud local extrema necesitamos construir s + 3 imágenes gaussianas en cada octava. Teniendo algunas pruebas Lowe concluyó que para s = 3 obtiene los mejores resultados. Entonces eso implica que tenemos 6 imágenes gaussianas en cada octava, de las cuales obtenemos 5 imágenes DoG. Tenga en cuenta que todas estas imágenes DoG tienen la misma resolución. El re-muestreo se hace solo al pasar a la siguiente octava.

El próximo paso sería encontrar un extremo local. Lowe propone buscar dentro de un vecindario de 26, lo que significa que debemos comenzar nuestra búsqueda desde la segunda imagen porque esa es la primera imagen para la que existe 26 vecindarios. Del mismo modo, detenemos nuestra búsqueda en la cuarta imagen. Este proceso se repite para cada octava individualmente. Para cada extremo encontrado, al menos debe guardar su ubicación y su escala. Tener extrema encontrado el siguiente paso sería una localización más precisa que se hace con la serie de Taylor.

Este es mi entendimiento de cómo funciona este paso y espero que no estoy demasiado lejos de la verdad :)

Espero que esto ayudó un poco más.

+0

Gracias por la respuesta y sí, estoy de acuerdo en que el documento no está tan claro. –

+0

Estoy leyendo el artículo de Lowe's también, hay una cosa que no entiendo, ¿por qué elegir extremos locales como los puntos clave? – Alcott

1

vlfeat es una biblioteca de código abierto que implementa varios algoritmos de visión artificial, incluido SIFT. Debería poder ver ese código fuente para tener una mejor idea de lo que se está haciendo.

Si usted está encontrando adecuadamente los valores extremos en cada octava, a continuación, puede:

  1. Realizar un ajuste más detallado para la escala y la ubicación de los extremos
  2. Rechazo de bajo contraste y el borde respuestas

Para cada función que queda en este punto,

  1. Calcule la orientación dominante dentro de un tamaño de ventana relativo a la escala de la característica detectada
  2. Construya la representación del descriptor SIFT (acumulando gradientes en una cuadrícula 4x4 espacial de histogramas de orientación). Esto se describe en 6.1 del paper.

No estoy seguro de la cantidad de ayuda que esto ha sido, porque no sé dónde se cuelga.

+0

Hola, gracias por la respuesta. Donde me quedé atascado es cómo hacer coincidir máximos o mínimos en diferentes niveles de octavas después de construir la pirámide DoG y encontrar el máximo y el mínimo locales en cada octava. Me acabo de dar cuenta de que Lowe menciona en su artículo (http://www.cs.ubc.ca/~lowe/papers/iccv99.pdf) que primero construye la pirámide remuestreando las imágenes con interpolación bilineal con espaciado de 1,5 píxeles. Luego, después de comparar el píxel con sus 26 vecinos, calcula la ubicación de píxel más cercana al siguiente nivel más bajo de la pirámide, teniendo en cuenta el remuestreo de 1,5 veces. –

+0

Pero, Lowe no menciona nada sobre los puntos clave en el nivel de amante de las pirámides, o cómo incluirlos en el papel que proporcionó (que es más reciente, 2004). Ahí es donde estaba atrapado. Tal vez, la extensión de Taylor hace el truco, no estoy seguro ... –

0

Tenemos dos pirámides. Una pirámide Gaussiana y DoG. La pirámide gaussiana tiene 6 imágenes borrosas. DoG es la diferencia de estas imágenes, por lo que hay 5 imágenes en DoG. No tiene nada que ver con la pirámide gaussiana. ¡Tenga en cuenta que todos estos están en la primera octava! Cuando crees tu primera pirámide, cambia el tamaño de tu imagen y comienza a construir nuevas pirámides para la segunda octava.

Digamos que su imagen original es 512x512. En la primera octava, todas las imágenes son de 512x512, pero en la segunda octava, todas las imágenes son 256x256. Nuevamente tienes 6 imágenes de pirámide gaussiana y 5 de pirámide DoG. Pero todos ellos son 256x256 en segundo ocave. No es necesario mencionar la 3ª octava.

Ahora para la coincidencia de mínimos y máximos: (estás en primera octava) Digamos que estás buscando máximos en la primera octava. Debes usar la pirámide DoG y comenzar desde la segunda imagen. Tomas un píxel y calcula si es máximo. En este cálculo, debe usar las imágenes primera, segunda y tercera de la pirámide DoG. Si lo hace, vaya y busque los máximos en la 3ª imagen considerando las imágenes 2ª, 3ª y 4ª. Y por último, busque los máximos en la 4ª imagen considerando las imágenes 3ª, 4ª y 5ª.

Ahora, al encontrar mixama en la primera ocatave, complete la siguiente octava y repita estos pasos.