¿Sift es una buena manera de extraer características de una imagen?


13

Estoy tratando de extraer características de una imagen, pero no he podido obtener los puntos que quiero extraer y, por lo tanto, mi imagen no coincide con la plantilla.

¿Hay algún punto de control por el que deba pasar antes de aplicar SIFT a mi imagen para obtener buenos resultados? Por ejemplo, la imagen de la plantilla es;
ingrese la descripción de la imagen aquí

imagen dirigida; ingrese la descripción de la imagen aquí


1
Depende del tipo de imagen y para qué desea utilizar las funciones. Más información por favor.

Respuestas:


14

Lo que se supone que debe hacer al hacer coincidir una plantilla con una imagen usando sift es ejecutar sift contra su plantilla y luego buscar esas características de sift en ese arreglo en su escena.

Regla de oro: compara me gusta me gusta.

Tamizar (Plantilla) contenido dentro de Tamizar (Imagen)

No puede ajustar Sift para extraer las "características que desea" Sift * utiliza medidas invariables para encontrar las características que considera más destacadas. (* Chris A)

Si desea que encuentre características particulares de su plantilla, haga plantillas más pequeñas de esas características y búsquelas.

Sólo una sugerencia. No sé exactamente qué tipo de plantilla está tratando de ajustar a qué tipo de escena o imagen.


77
+1, estoy de acuerdo. Salvo por una cosa. SIFT no encuentra las características que son más invariables. Utiliza medidas invariables para encontrar las características que considera más destacadas.

7

No estoy seguro de si solo desea unir dos imágenes (por ejemplo, encontrar los puntos comunes), o si desea intentar algo como CBIR (recuperación de imágenes basada en contenido: buscar en una base de datos con una imagen de plantilla para encontrar todo lo que contiene el objeto).

Actualmente estoy investigando CBIR, así que estoy bastante actualizado con los métodos actuales. Aquí y aquí están los enlaces a mis respuestas a problemas similares a los suyos de stackoverflow, debe echar un vistazo.

Ahora, para hablar un poco sobre SIFT. Cuando se introdujo por primera vez Lowe por , el término SIFT se aplicó tanto al proceso de detección de características como a los descriptores de características calculados en los puntos de interés detectados. Hasta el día de hoy, los descriptores de SIFT han demostrado ser increíblemente increíbles. Los descriptores tienen algunas propiedades interesantes que @Totero ya mencionó.

El método de detección SIFT , por otro lado, que hoy en día se conoce cada vez más como DoG (diferencia de gaussianos), ya no es lo más avanzado. Todavía se usa ampliamente, pero para el proceso de detección de características, hay más métodos hoy en día, algunos de los cuales son mejores o complementan muy bien los tipos de puntos clave invariantes extractos del proceso DoG.

La mayoría de los trabajos actuales (mire los enlaces en las preguntas enlazadas de stackoverflow) tienen una práctica más: combinan múltiples formas de detectar características y luego usan descriptores SIFT (que aún se balancean como descriptores) para calcular las representaciones vectoriales invariantes. Actualmente estoy trabajando con una combinación de DoG (se centran en partes de imágenes en forma de esquina) y regiones MSER (se centran en puntos distinguidos en forma de gotas a través de múltiples escalas). Es posible que desee probar y experimentar y arrojar aún más tipos de detectores de características, si encuentra que esta combinación no es satisfactoria en su base de datos de imágenes en particular.

Además, si estás interesado, aquí hay un documento que evalúa las interpretaciones de diferentes combinaciones de detección y descriptores. No lo he leído desde que DoG & MSER + SIFT funciona bien para mí, pero lo he leído y el documento es bastante bueno.

PD: use Google Scholar si no tiene acceso a la base de datos IEEEXplore a la que me vinculé.


solo una pequeña aclaración: DoG significa Diferencia de gaussiano (diferencia entre dos respuestas de filtro gaussiano)
Libor

2

Sobre la base de respuestas anteriores:

(1) Puede usar SIFT (u otra variante mejorada de este descriptor de parche local) con muestreo denso, en lugar del detector incorporado. Puede elegir el tamaño del parche local y la densidad de muestreo para satisfacer sus requisitos de rendimiento y costo computacional.

(2) SIFT es un descriptor afín invariante para una amplia coincidencia estéreo de línea base. Esto significa que SIFT funciona bien cuando toma una imagen e induce una transformación afín a ella, en donde la 'plantilla' debe estar presente en la imagen de destino, aunque con transformaciones.

Sugerencias: (a) Cree una base de datos de imágenes de plantilla (si es posible) para mejorar sus posibilidades de detectar la imagen.

(b) Puede utilizar el modelo BoW como línea de base si elige adoptar un enfoque CBIR para su tarea.

(c) Recorte la imagen de su plantilla solo en la parte relevante y use un SIFT altamente denso. http://www.vlfeat.org/overview/dsift.html

(4) Más tarde, puede probar un descriptor de escala múltiple como PHOG (Histograma piramidal de gradientes), etc., que podría mejorar los resultados. http://www.vlfeat.org/overview/dsift.html#tut.dsift.phow

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.