Acabo de estudiar sobre SURF y voy por su implementación, pero todavía no entiendo por qué usamos descriptores.
Entiendo qué son los puntos clave y su propósito, pero cuando extraemos los puntos clave, ¿por qué necesitamos usar descriptores? ¿Cuál es su importancia y papel en el reconocimiento?
Respuestas:
Una cosa importante que debe comprender es que después de extraer los puntos clave, solo obtiene información sobre su posición y, a veces, su área de cobertura (generalmente aproximada por un círculo o una elipse) en la imagen. Si bien la información sobre la posición del punto clave a veces puede ser útil, no dice mucho sobre los puntos clave en sí mismos.
Dependiendo del algoritmo utilizado para extraer el punto clave (SIFT, esquinas de Harris, MSER), conocerá algunas características generales de los puntos clave extraídos (por ejemplo, están centrados alrededor de manchas, bordes, esquinas prominentes ...) pero no sabrá qué tan diferentes o un punto clave similar es el otro.
Aquí hay dos ejemplos simples donde solo la posición y el área clave no nos ayudarán:
Si tiene una imagen A (de un oso sobre un fondo blanco) y otra imagen B, copia exacta de A pero traducida por unos pocos píxeles: los puntos clave extraídos serán los mismos (en la misma parte de ese oso). Esas dos imágenes deben reconocerse como iguales o similares.
Pero, si la única información que tenemos es su posición, y eso cambió debido a la traducción, no puede comparar las imágenes.
Si tiene una imagen A (digamos, de un pato esta vez) y otra imagen B, exactamente el mismo pato que en A excepto dos veces el tamaño: los puntos clave extraídos serán los mismos (las mismas partes del pato). Esas son también las mismas imágenes (similares).
Pero todos sus tamaños (áreas) serán diferentes: todos los puntos clave de la imagen B serán dos veces más grandes que los de la imagen A.
Entonces, aquí vienen los descriptores : son la forma de comparar los puntos clave. Resumen, en formato vectorial (de longitud constante) algunas características sobre los puntos clave. Por ejemplo, podría ser su intensidad en la dirección de su orientación más pronunciada. Está asignando una descripción numérica al área de la imagen a la que se refiere el punto clave.
Algunas cosas importantes para los descriptores son:
deberían ser independientes de la posición clave
Si se extrae el mismo punto clave en diferentes posiciones (por ejemplo, debido a la traducción), el descriptor debe ser el mismo.
deberían ser robustos frente a las transformaciones de imagen
Algunos ejemplos son cambios de contraste (p. Ej., Imagen del mismo lugar durante un día soleado y nublado) y cambios de perspectiva (imagen de un edificio de centro derecha y centro-izquierda, aún nos gustaría reconocerlo como un mismo edificio) .
Por supuesto, ningún descriptor es completamente robusto contra todas las transformaciones (ni contra ninguna si es fuerte, por ejemplo, un gran cambio de perspectiva).
Los diferentes descriptores están diseñados para ser robustos frente a diferentes transformaciones, lo que a veces se opone a la velocidad que se necesita para calcularlos.
deberían ser independientes de la escala
Los descriptores deben tener en cuenta la escala. Si la parte "prominente" de un punto clave es una línea vertical de 10px (dentro de un área circular con radio de 8px), y la parte prominente de otra una línea vertical de 5px (dentro de un área circular con radio de 4px) - A estos puntos clave se les debe asignar descriptores similares.
Ahora, que calculó los descriptores para todos los puntos clave, tiene una manera de comparar esos puntos clave . Para un ejemplo simple de coincidencia de imágenes (cuando sabe que las imágenes son del mismo objeto, y le gustaría identificar las partes en diferentes imágenes que representan la misma parte de la escena, o le gustaría identificar el cambio de perspectiva entre dos imágenes) , compararía cada descriptor de punto clave de una imagen con cada descriptor de punto clave de la otra imagen. Como los descriptores son vectores de números, puedes compararlos con algo tan simple como la distancia euclidiana . Hay algunas distancias más complejas que pueden usarse como medida de similitud, por supuesto. Pero, al final, dirías quelos puntos clave cuyos descriptores tienen la menor distancia entre ellos son coincidencias , por ejemplo, los mismos "lugares" o "partes de objetos" en diferentes imágenes.
Para un uso más complejo de los puntos clave / descriptores, debe echar un vistazo a esta pregunta , especialmente el "enfoque local de bajo nivel" en mi respuesta y el enfoque "Bolsa de palabras" en la respuesta de @Maurits . Además, los enlaces proporcionados en esas respuestas son útiles.
fuente
Pensemos en el descriptor ideal para comprender la idea. Un descriptor ideal es una función desde el espacio de píxeles a otro espacio, de modo que los mismos objetos tengan el mismo resultado , mientras que diferentes objetos tengan un resultado diferente.
Por ejemplo, si capturó dos imágenes con el mismo objeto pero con un nivel de exposición diferente, obtendría una versión multiplicada de la imagen. Un descriptor que tomará los píxeles y los normalizará por su nivel medio y de desviación estándar tendría el mismo resultado, diciendo que estos dos objetos son iguales. Eso es bueno, porque nos permite una correspondencia correcta
Por lo tanto, su descriptor es necesario para que coincidan correctamente los mismos objetos.
fuente