Esas son algunas preguntas muy buenas. Abordemos cada punto uno por uno:
Mi pregunta es ¿cuáles son realmente estos puntos clave?
Los puntos clave son lo mismo que los puntos de interés. Son ubicaciones espaciales, o puntos en la imagen que definen lo que es interesante o lo que destaca en la imagen. La detección de puntos de interés es en realidad un subconjunto de la detección de manchas , cuyo objetivo es encontrar regiones o áreas espaciales interesantes en una imagen. La razón por la que los puntos clave son especiales es porque no importa cómo cambie la imagen ... si la imagen gira, se encoge / expande, se traduce (todo esto sería una transformación afín por cierto ...) o está sujeta a distorsión ( es decir, una transformación proyectiva u homografía ), debería poder encontrar el mismopuntos clave en esta imagen modificada cuando se compara con la imagen original. Aquí hay un ejemplo de una publicación que escribí hace un tiempo:
Fuente: módulo 'el objeto no tiene atributo' drawMatches 'opencv python
La imagen de la derecha es una versión rotada de la imagen de la izquierda. También he mostrado solo las 10 mejores coincidencias entre las dos imágenes. Si echa un vistazo a los 10 partidos principales, estos son puntos en los que probablemente nos gustaría centrarnos y que nos permitirían recordar de qué se trataba la imagen. Querríamos centrarnos en la cara del camarógrafo, así como en la cámara, el trípode y algunas de las interesantes texturas de los edificios del fondo. Verá que estos mismos puntos se encontraron entre las dos imágenes y se emparejaron con éxito.
Por lo tanto, lo que debes sacar de esto es que estos son puntos de la imagen que son interesantes y que deben encontrarse sin importar cómo esté distorsionada la imagen.
Entiendo que son una especie de "puntos de interés" de una imagen. También sé que son invariantes en escala y sé que son circulares.
Estás en lo correcto. Escala invariante significa que no importa cómo escale la imagen, aún debería poder encontrar esos puntos.
Ahora vamos a aventurarnos en la parte del descriptor . Lo que hace que los puntos clave sean diferentes entre los marcos es la forma en que los describe . Estos son los que se conocen como descriptores . Cada punto clave que detecta tiene un descriptor asociado que lo acompaña. Algunos marcos solo detectan puntos clave, mientras que otros marcos son simplemente un marco de descripción y no detectan los puntos. También hay algunos que hacen ambas cosas : detectan y describen los puntos clave. SIFT y SURF son ejemplos de marcos que detectan y describen los puntos clave.
Los descriptores se preocupan principalmente tanto por la escala como por la orientación del punto clave. Los puntos clave hemos definido ese concepto, pero necesitamos la parte del descriptor si nuestro propósito es intentar hacer coincidir los puntos clave en diferentes imágenes. Ahora, lo que quieres decir con "circular" ... que se correlaciona con la escala en la que se detectó el punto. Tomemos, por ejemplo, esta imagen que se tomó del tutorial de VLFeat Toolbox :
Verá que los puntos amarillos son puntos de interés, pero algunos de estos puntos tienen un radio de círculo diferente. Estos tratan de la escala . La forma en que funcionan los puntos de interés en un sentido general es que descomponemos la imagen en múltiples escalas. Comprobamos los puntos de interés en cada escala y combinamos todos estos puntos de interés para crear el resultado final. Cuanto mayor sea el "círculo", mayor será la escala en la que se detectó el punto. Además, hay una línea que se irradia desde el centro del círculo hasta el borde. Esta es la orientación del punto clave, que cubriremos a continuación.
También descubrí que tienen orientación, pero no pude entender qué es realmente. ¿Es un ángulo pero entre el radio y algo?
Básicamente, si desea detectar puntos clave independientemente de la escala y la orientación, cuando hablan de la orientación de los puntos clave, lo que realmente quieren decir es que buscan un vecindario de píxeles que rodea el punto clave y descubren cómo está orientado este vecindario de píxeles o en qué dirección este parche. está orientado. Depende del marco descriptor que se mire, pero el objetivo general es detectar la orientación más dominante de los ángulos de gradiente en el parche. Esto es importante para hacer coincidirpara que pueda hacer coincidir los puntos clave. Eche un vistazo a la primera figura que tengo con los dos camarógrafos: uno girado y el otro no. Si echa un vistazo a algunos de esos puntos, ¿cómo averiguamos cómo un punto coincide con otro? Podemos identificar fácilmente que la parte superior del camarógrafo como punto de interés coincide con la versión girada porque echamos un vistazo a los puntos que rodean el punto clave y vemos en qué orientación están todos estos puntos ... y desde allí, así es como se calcula la orientación.
Por lo general, cuando queremos detectar puntos clave, solo echamos un vistazo a las ubicaciones. Sin embargo, si desea hacer coincidir puntos clave entre imágenes, definitivamente necesita la escala y la orientación para facilitar esto.
¡Espero que esto ayude!