2011-06-15 15 views
8

Estoy buscando una métrica utilizable para SURF. Por ejemplo, cuán buena una imagen coincide con otra en una escala digamos 0 a 1, donde 0 significa que no hay similitudes y 1 significa la misma imagen.Métrica para SURF

SURF ofrece los siguientes datos:

  • puntos de interés (y sus descriptores) Imagen consulta (set Q)
  • puntos de interés (y sus descriptores) en la imagen de destino (serie T)
  • utilizando pares algoritmo del vecino más próximo se pueden crear a partir de los dos conjuntos de arriba

yo estaba tratando algo hasta ahora, pero nada parecía funcionar demasiado bien:

  1. métrica utilizando el tamaño de los diferentes conjuntos: d = N/min (tamaño (Q), el tamaño (T)) donde N es el número de puntos de interés emparejados. Esto da para imágenes bastante similares bastante baja calificación, por ejemplo 0.32 incluso cuando se combinaron 70 puntos de interés de aproximadamente 600 en Q y 200 en T. Creo que 70 es un resultado realmente bueno. Estaba pensando en usar algunas escalas logarítmicas, por lo que solo los números realmente bajos obtendrían resultados bajos, pero parece que no pueden encontrar la ecuación correcta. Con d = log(9*d0+1) obtengo un resultado de 0.59 que es bastante bueno, pero aún así, destruye el poder de SURF.

  2. métrica usando las distancias por pares: Hice algo así como encontrar la K mejor coincidencia y agregar sus distancias. Cuanto menor es la distancia, más similares son las dos imágenes. El problema con esto es que no sé cuáles son los valores máximo y mínimo para un elemento descriptor de punto de interés, a partir del cual se calcula el distante, por lo tanto, solo puedo encontrar relativamente el resultado (de muchas entradas, que es la mejor). Como dije, me gustaría poner la métrica exactamente entre 0 y 1. Necesito esto para comparar SURF con otras métricas de imagen.

El mayor problema con estos dos es que excluyen al otro. Uno no tiene en cuenta el número de coincidencias, la otra es la distancia entre partidos. Estoy perdido.

EDIT: Para la primera, una ecuación de log (x * 10^k)/k donde k es 3 o 4 da un buen resultado la mayor parte del tiempo, el min no es bueno, puede hacer el d es más grande que 1 en algunos casos raros, sin que el resultado sea pequeño.

+0

Eche un vistazo a http: //reference.wolfram.com/mathematica/ref/ImageCorrespondingPoints.html. Introdujeron un parámetro adicional (transformación) que quizás podría encender algo de luz en el suyo ... –

Respuesta

6

Puede crear fácilmente una métrica que sea la suma ponderada de ambas métricas. Use técnicas de aprendizaje automático para aprender los pesos adecuados.

Lo que describes se relaciona estrechamente con el campo de Recuperación de imágenes basada en contenido, que es un campo muy rico y diverso. Google que te dará muchos éxitos. Mientras que SURF es un excelente detector de características de nivel bajo-medio de propósito general, está lejos de ser suficiente. SURF y SIFT (de lo que se derivaba SURF), es excelente para la detección duplicada o casi duplicada, pero no es tan buena capturando la similitud perceptual.

Los sistemas CBIR con mejores resultados generalmente utilizan un conjunto de características combinadas de forma óptima a través de un conjunto de entrenamiento. Algunos detectores interesantes para probar incluyen GIST (detector rápido y barato mejor utilizado para detectar entornos artificiales o naturales) y Object Bank (un detector basado en un histograma hecho de 100 de salidas de detector de objetos).

+0

Gracias por los métodos, pero es algo como * No puedo volver ahora *. Tuve que usar SURF porque me dieron instrucciones (no se puede discutir con un profesor una vez que se llevan algo a la cabeza, ¿verdad?). De todos modos +1 para la suma ponderada (¿por qué no lo he pensado?), Pero eso no resuelve todo el problema. Todavía hay que no puedo usar la segunda métrica. – SinistraD

Cuestiones relacionadas