¿Por qué usamos descriptores de puntos clave?

16

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?

ARG
fuente
Oye, ¿quieres saber específicamente sobre SURF, o tu pregunta es más general, "¿por qué necesitamos descriptores para los puntos clave?" (solo inspirado al aprender sobre SURF)
penelope
@penelope Mi pregunta es más general sobre los descriptores
ARG
3
Espero que no te importe que haya hecho tu pregunta más general antes de responder.
penelope

Respuestas:

22

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.

penelope
fuente
mejor respuesta y buena explicación, ¿usar el término característica es lo mismo que los descriptores? ambos son iguales o diferentes? ¿Y qué significa el término orientación en surf?
ARG
1
El término "característica" es el mismo que "punto clave": es un punto destacado en la imagen. El descriptor es entonces un "descriptor de punto clave" o un "descriptor de características". Desafortunadamente, no sé mucho sobre SURF, por eso te pregunté si quieres saber sobre descriptores en general o específicamente sobre SURF. Sé que para SIFT, la orientación es muy importante.
penelope
El término orientación no se usa específicamente para SURF, también se usa en SIFT, solo quiero saberlo, qué es
ARG
Se calcula la "orientación principal" del punto clave, en función del gradiente local. Entonces, esa dirección se vuelve "hacia arriba" para el punto clave al calcular el gradiente para lograr la invariancia rotacional. Para SIFT, tiene una buena explicación en wikipedia
penelope
:) mi pregunta es ¿qué es la orientación? no en sift o surf
ARG
2

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

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

Por lo tanto, su descriptor es necesario para que coincidan correctamente los mismos objetos.

Andrey Rubshtein
fuente