[Reconstrucción 3D] Detección y coincidencia de características

Directorio de artículos de la serie

Esta serie comenzó el 25 de diciembre de 2022 y comenzó a registrar las notas de estudio durante la investigación del proyecto de reconstrucción 3D , que se divide principalmente en las siguientes partes:

1. La relación de conversión entre la imagen de la cámara y el sistema de coordenadas

2. Calibración de la cámara : método de calibración de Zhang Youzheng

3. Detección y coincidencia de características

4. Método de la estructura de recuperación del ejercicio


Directorio de artículos:

Tabla de contenido

Directorio de artículos de la serie

Directorio de artículos:

Prefacio:

1. Resumen preliminar de puntos característicos

1.1 Descriptor

1.2 Espacio de escala y PERRO

1.2.1 Espacio de escala y convolución gaussiana

 1.2.2 Pirámide del PERRO

2. Detección de características 

2.1 Cálculo de la posición, escala y dirección del punto clave 

2.1.1 Puntos extremos locales DOG

2.1.2 Posicionamiento preciso de puntos clave

2.1.3 Eliminación de respuestas de borde

2.1.4 Escala de cálculo de puntos clave

2.1.5 Coincidencia de direcciones de puntos clave

2.2 Cálculo de descriptores de características (vectores)

2.2.1 Determinar el área de imagen requerida por el descriptor (preparación)

2.2.2 Rotar el eje de coordenadas en la dirección del punto clave (rotar primero para editar) 

2.2.3 Asigne los puntos de muestreo en la vecindad de los puntos clave a las subregiones correspondientes, asigne los valores de gradiente de las subregiones a 8 direcciones y calcule el peso (luego asigne el editor a cada subregión pequeña). región para obtener sus Coordenadas en subregiones​Editar) 

2.2.4 La interpolación bilineal calcula la contribución de cada punto de muestreo a las ocho direcciones del punto semilla

2.2.5 Eliminar la influencia de la luz y normalizar

2.2.6 Umbral de vector descriptor

2.2.7 Clasificación de vectores de descripción de características según la escala de puntos característicos

2.2.8 Resumen

3. Implementación del código

Cuatro Resumen

referencia:


Prefacio:

        Después de la calibración de parámetros de la cámara, el UAV se utiliza para recopilar los datos, y la secuencia de imágenes del UAV se utiliza para la reconstrucción 3D. Primero, se lleva a cabo la detección de características y la coincidencia entre las secuencias de imágenes. Este documento registra principalmente la detección de características. y Notas de estudio que coincidan con el conocimiento relevante.


1. Resumen preliminar de puntos característicos

        Es un método común usar regiones representativas (esquinas, bordes) en la imagen para hacer coincidir las imágenes. En muchos procesos de visión por computadora, los puntos de esquina se extraen como características para hacer coincidir las imágenes, como SFM, SLAM visual, etc.

        Sin embargo, a veces los puntos de esquina puros no pueden reflejar toda la información de los puntos correspondientes en la imagen, y los puntos de esquina pueden cambiar debido al movimiento de la cámara. En este momento, necesitamos algunos cambios que no seguirán el movimiento, la rotación o la iluminación de la cámara y el cambio de puntos característicos.

        Los puntos característicos de una imagen se componen de dos partes: puntos clave (Keypoint) y descriptores (Descriptor) . El punto clave se refiere a la posición del punto característico en la imagen, y algunos también tienen información de dirección y escala; el descriptor suele ser un vector , que describe la información de los píxeles alrededor del punto clave de una manera diseñada artificialmente. Por lo general, los descriptores se diseñan de acuerdo con las características que tienen una apariencia similar y deben tener descriptores similares. Por lo tanto, al hacer coincidir , siempre que los descriptores de dos puntos característicos tengan distancias similares en el espacio vectorial, se pueden considerar como el mismo punto característico.

1.1 Descriptor

        El descriptor de una característica suele ser un vector que describe la información del punto clave y los píxeles que lo rodean. Tiene las siguientes características:

  1. Invariancia: significa que las características no cambiarán cuando la imagen se acerque, se aleje y se gire.
  2. Robustez: insensible al ruido, la iluminación u otras pequeñas deformaciones
  3. Distinguibilidad: cada descriptor de característica es único y exclusivo, minimizando la similitud entre sí.

Contradicción: la distinguibilidad del descriptor y su invariancia son contradictorios. Un descriptor de características con muchas invariancias tiene una capacidad más débil para distinguir el contenido de una imagen local; y si un descriptor de características es fácil de distinguir diferentes contenidos de imágenes locales, los descriptores de características suelen ser menos sólidos. Por lo tanto, al diseñar un descriptor de características, es necesario considerar de manera integral estas tres características y encontrar un equilibrio entre las tres.

La invariancia de los descriptores de características se refleja principalmente en dos aspectos:

1. Invariante de escala

        La misma característica permanece sin cambios en diferentes escalas de la misma imagen. Para mantener la invariancia de la escala, al calcular el descriptor del punto característico, la imagen generalmente se transforma en un espacio de escala uniforme y se agrega el factor de escala. Sin esta característica, el mismo punto característico no se puede igualar bien entre imágenes ampliadas o reducidas.

2. Rotación invariable
        se refiere a la misma función.Después de rotar el ángulo de imagen, la función aún puede permanecer sin cambios. Similar a la invariancia de escala, para mantener la invariancia de rotación, la información de dirección de los puntos clave debe agregarse al calcular los descriptores de puntos característicos.

        El siguiente es el método de cálculo de los descriptores de uso común: (este artículo presenta principalmente el método de cálculo de SIFT )

 

1.2 Espacio de escala y PERRO

1.2.1 Espacio de escala y convolución gaussiana

        La escala y el espacio de escala se han mencionado muchas veces anteriormente, y sus significados se explican aquí.

        Primero revise la expresión de la función gaussiana bidimensional:

         Cuando usamos funciones gaussianas con diferentes valores de σ para convolucionar una imagen, se generan múltiples imágenes gaussianas con diferentes valores de σ, donde los valores de σ son escalas diferentes.

        Se puede entender como el grado en que la computadora observa la imagen: cuando observamos una imagen, cuanto más lejos de la imagen, más borrosa es la imagen; todos sabemos que podemos usar diferentes núcleos de convolución gaussiana para filtrar en paso bajo la imagen. imagen para reducir la información detallada de la imagen, para desenfocar la imagen, que es similar a observar la imagen con el ojo humano, y el ancho del filtro gaussiano (que determina el grado de suavidad) se caracteriza por el parámetro σ, y σ está relacionado con el grado de suavidad.

        Por lo tanto, la escala es el valor σ en la función gaussiana bidimensional, y todas las imágenes a diferentes escalas constituyen el espacio de escala de una única imagen original. "Expresión espacial de escala de imagen" es la descripción de la imagen en todas las escalas.

        Las escalas existen de forma natural y objetiva, no se crean subjetivamente. La convolución gaussiana es solo una forma de representar el espacio de escala.

        Expresión del espacio de escala:

         El kernel de convolución gaussiana se muestra en la figura:

        El valor de píxel original en el centro del kernel de convolución tiene el mayor peso, y el peso de los valores de píxel adyacentes más alejados del centro es menor.

        La convolución gaussiana mencionada anteriormente desenfoca la imagen de forma similar al desenfoque del ojo humano cuando está lejos de la imagen, pero las personas pueden conocer la información del objeto conociendo el contorno clave del objeto, por lo que la computadora también puede usar estos información clave para identificar la imagen.

 1.2.2 Pirámide del PERRO

        Antes de presentar la pirámide DOG, primero entendamos la pirámide:

         Al reducir la resolución de una imagen, la imagen contiene píxeles y el tamaño de la imagen se reducirá en consecuencia. Después de múltiples submuestreos, los resultados se apilan para formar una pirámide. Tenga en cuenta que la pirámide en la imagen de arriba se obtiene reduciendo la resolución de la imagen fina subyacente.

        La diferencia entre la pirámide y la expresión del espacio de escala aquí es que:

        1. La resolución de cada capa de la pirámide de imagen se reduce, mientras que la resolución del espacio de escala no cambia.

        2. La velocidad de procesamiento de la pirámide de imágenes se acelera a medida que disminuye la resolución.

        Para hacer que la escala refleje su continuidad, se obtiene un método relativamente neutral, que combina la pirámide de imagen y la expresión del espacio de escala para obtener la pirámide LOG (Laplasmian of Gaussian).

        Primero, se reduce la muestra de la foto para obtener pirámides de imagen a diferentes resoluciones, y luego se realiza la convolución gaussiana en cada capa de la imagen. El resultado final es que, sobre la base de la pirámide, cada capa tiene la misma resolución de imagen de diferentes escalas. Las imágenes múltiples de cada capa de la pirámide se denominan colectivamente un grupo (Octava), cada capa de la pirámide tiene solo un grupo de imágenes, el número de grupos es igual al número de capas de la pirámide, y cada grupo contiene múltiples Imágenes de intervalo.

        Finalmente, DOG se genera de acuerdo con LOG.

        k es una constante del múltiplo de espacios de dos escalas adyacentes. Divida la pirámide de la imagen en O grupos, un grupo se llama Octava, cada grupo se divide en varias capas y el número de intervalos de capa es S, por lo que hay S+3 (S+1+2, 2 representa agregar una capa encima y debajo de la imagen, el extremo de búsqueda solo se busca en la imagen de capa intermedia S+1) imagen de capa, la imagen del siguiente grupo desciende de la penúltima capa del grupo anterior (si el índice de capa comienza en 0, es la capa Sth) se obtiene el muestreo de imagen (para reducir la carga de trabajo de las operaciones de convolución), y luego se restan las imágenes adyacentes de cada capa de la pirámide LOG (a la izquierda en la figura a continuación), y la pirámide reconstruida de todas las imágenes es la Pirámide de PERRO (a la derecha en la figura de abajo).

        En el espacio de escala anterior, \sigmala relación entre O y S es la siguiente: 

         donde \sigma _{0}es la escala de la capa base, o es el índice de la octava del grupo y s es el índice de la capa interna del grupo. Las coordenadas de escala de los puntos clave se calculan según el grupo donde se encuentran los puntos clave y la capa dentro del grupo, utilizando la fórmula anterior.

        Al construir la pirámide al principio, la imagen de entrada debe estar previamente borrosa como la imagen de la capa 0 del grupo 0, lo que equivale a descartar la frecuencia de muestreo del espacio aéreo más alto. Por lo tanto, la práctica habitual es duplicar primero la escala de la imagen para generar el grupo -1. Suponemos que la imagen de entrada inicial se ha \sigma _{-1} = 0,5desdibujado por Gauss para luchar contra el alias. Si el tamaño de la imagen de entrada se duplica con la interpolación bilineal, entonces es equivalente \sigma _{-1} = 1.

        Elegir:

        Al construir una pirámide gaussiana, las coordenadas de escala de cada capa del grupo se calculan de acuerdo con la siguiente fórmula:

        Las coordenadas de escala intragrupo de la misma capa en diferentes grupos \sigma(s)son las mismas. La imagen de la siguiente capa del grupo se \sigma(s)obtiene realizando un desenfoque gaussiano sobre la imagen de la capa anterior. La fórmula anterior se usa para generar imágenes gaussianas de diferentes escalas en el grupo al mismo tiempo, y al calcular la escala de una determinada capa de imágenes en el grupo, use directamente la siguiente fórmula para el cálculo:     

         La escala dentro de este grupo determina el tamaño de la ventana de muestreo durante la caracterización y asignación de orientación. Finalmente obtuve:

2. Detección de características 

2.1 Cálculo de la posición, escala y dirección del punto clave 

2.1.1 Puntos extremos locales DOG

        Los puntos clave se componen de puntos extremos locales en el espacio DOG.

        En la imagen, cada píxel se compara con los píxeles que lo rodean, y cuando su valor de píxel es mayor o menor que todos los puntos adyacentes, es un punto extremo. En la pirámide DOG, los puntos de píxeles circundantes no son solo los puntos circundantes en una imagen de diferencia de escala de la capa actual, sino que también se tienen en cuenta las diferentes imágenes de diferencia de escala en un punto de esta capa.

        El punto de detección medio se compara con sus 8 puntos adyacentes de la misma escala y 9×2 puntos correspondientes a las escalas adyacentes superior e inferior, un total de 26 puntos, para asegurar que los puntos extremos se detecten tanto en el espacio de la escala como en los dos. -espacio de imagen dimensional.

        El método anterior obtiene los puntos extremos en el espacio discreto. Es necesario determinar con precisión la posición y la escala de los puntos clave mediante el ajuste de la función cuadrática tridimensional y, al mismo tiempo, eliminar los puntos característicos de bajo contraste y el borde inestable. puntos de respuesta (porque el algoritmo DOG The sub producirá una respuesta de borde fuerte) para mejorar la estabilidad de coincidencia y mejorar la inmunidad al ruido.

2.1.2 Posicionamiento preciso de puntos clave

        La expansión de Taylor (función de ajuste) de la función PERRO en el espacio de escala es:

         Entre X = (x, y,\sigma)^{T}ellos El otro lado toma la derivada y la iguala a cero para obtener el desplazamiento del punto extremo:

         Este desplazamiento representa el desplazamiento relativo al centro de interpolación. Cuando su desplazamiento en cualquier dimensión es superior a 0,5 (es decir, x, y o ), significa que el centro de interpolación se ha desplazado con respecto a sus puntos vecinos. Por lo tanto, la posición del el punto clave actual debe cambiarse. Después de cambiar la posición, repita la interpolación en la nueva posición hasta la convergencia.Si se excede el número de iteraciones o el rango de la imagen, se determina que este punto debe eliminarse.

        Lleva los puntos extremos a la ecuación:

2.1.3 Eliminación de respuestas de borde

        De acuerdo con el punto de esquina de Harris, se puede saber que la traslación de un punto de esquina en cualquier dirección debería asegurar el cambio drástico del valor de píxel en la ventana local, y el valor de píxel en la ventana local básicamente no cambia cuando el punto en el borde se mueve a lo largo de la dirección del borde. El extremo de una diferencia mal definida del operador gaussiano tiene una gran curvatura principal a lo largo del borde y una pequeña curvatura principal perpendicular al borde. El operador DOG producirá una respuesta de borde fuerte, por lo que es necesario eliminar los puntos de respuesta de borde inestables.

        Primero, obtenemos la matriz hessiana a partir de los puntos característicos,

        Los valores propios de H son proporcionales a la curvatura principal de D. Se puede evitar encontrar valores propios específicos porque solo nos importa la proporción de valores propios. Los valores propios α (mayor) y β (menor) de H representan el gradiente en las direcciones x e y:

        Tr(H) representa la suma de los elementos diagonales de la matriz H, y Det(H) representa el determinante de la matriz H. Suponiendo que el valor propio de α es mayor, pero el valor propio de β es menor, entonces \alfa =r\beta:

         De esta manera, obtenemos una \gamafórmula que solo está relacionada con la relación de dos vectores propios, y no tiene nada que ver con los valores propios específicos.Cuando los dos valores propios son iguales (= \gama 1), la fórmula anterior alcanza el mínimo, y \gamacuanto mayor sea la fórmula anterior, mayor será. \gamaCuanto mayor sea el valor, mayor será el gradiente en una dirección y menor en la otra dirección Para evitar lo mencionado anteriormente: hay una curvatura principal más grande a lo largo del borde y una curvatura principal más grande en la dirección vertical En el caso de pequeñas curvaturas principales, establecemos un \gamaumbral de , de modo que solo necesitamos verificar:

         Si se cumplen las condiciones, se considera reservado.

2.1.4 Escala de cálculo de puntos clave

        Se ha introducido en 1.2.2:

 Las coordenadas de escala de cada capa del grupo se calculan según la siguiente fórmula:

La fórmula anterior se usa para generar imágenes gaussianas de diferentes escalas en el grupo al mismo tiempo, y al calcular la escala de una determinada capa de imágenes en el grupo, use directamente la siguiente fórmula para el cálculo:     

2.1.5 Coincidencia de direcciones de puntos clave

         Para lograr la invariancia de rotación del descriptor, las características locales de la imagen se usan para obtener una orientación para cada punto clave, y la orientación del gradiente de la imagen se usa para obtener la orientación estable de la estructura local. Para los puntos clave que se han detectado, conocemos la posición y la escala del punto en la pirámide DOG, y usamos la diferencia finita en la imagen gaussiana correspondiente a la escala (consulte 4.3 en 6 para obtener detalles), calcule el punto característico como el centro, y su La magnitud y el ángulo del píxel dentro de la ventana de vecindad de la imagen de la pirámide gaussiana:

        El módulo m(x, y) del gradiente \sigma = 1,5\veces\sigma octse suma según la distribución gaussiana y según el principio 3σ de escala de muestreo, por lo que el radio de la ventana de vecindad es 3\times 1.5 \times \sigma oct(s).

         Después de completar el cálculo del gradiente de la imagen gaussiana del vecindario del punto clave, use el histograma para contar la dirección del gradiente y la magnitud de los píxeles en el vecindario. El eje horizontal del histograma de dirección del gradiente es el ángulo de dirección del gradiente, y el eje vertical es la acumulación de amplitud de gradiente correspondiente al ángulo de dirección del gradiente. El histograma de dirección del gradiente divide el rango de 0 a 360 grados en 36 intervalos, un intervalo cada 10 grados. El pico del histograma representa la dirección principal del gradiente de la imagen en la vecindad del punto clave, es decir, la dirección principal del punto clave:

         Para mejorar la solidez de la coincidencia, solo las direcciones cuyo valor máximo es superior al 80 % del valor máximo de la dirección principal se reservan como direcciones auxiliares de este punto clave. El artículo del autor de SIFT, Lowe, señaló que alrededor del 15% de los puntos clave tienen múltiples direcciones, pero estos puntos son críticos para la estabilidad de la correspondencia.

2.2 Cálculo de descriptores de características (vectores)

        A través de los pasos anteriores, para cada punto clave , hay tres piezas de información: posición, escala y dirección . El siguiente paso es crear un descriptor para cada punto clave y usar un conjunto de vectores para describir este punto clave para que no cambie con varios cambios, como cambios de iluminación, cambios de ángulo de visión, etc. El descriptor de características está relacionado con la escala del punto característico, por lo que el cálculo del gradiente debe realizarse sobre la imagen gaussiana correspondiente al punto característico .

        Una representación de los resultados estadísticos del gradiente de imagen gaussiana de la vecindad del punto clave cuando se usa el descriptor SIFT Al calcular el histograma de gradiente dentro del bloque dividiendo los píxeles circundantes, se genera una información de imagen única, abstracta y única para este bloque. vector.

        Lowe explicó en el artículo que el descriptor se usa para calcular los valores de gradiente en 8 direcciones en una ventana de 4×4 en el espacio de escala de punto clave, con un total de 4×4×8 = vectores de 128 dimensiones.

        Los principales pasos de la expresión son los siguientes:

2.2.1 Determinar el área de imagen requerida por el descriptor (preparación)

       Divida la vecindad alrededor del punto clave en subregiones , cada subregión se usa como un punto inicial y el punto inicial tiene 8 direcciones, lo que significa que cada subregión tiene 8 direcciones, y luego según el punto de muestreo Calcular los pesos de estas 8 direcciones.

        El tamaño de cada subárea es el mismo que el de la asignación de la dirección del punto clave, es decir, cada área tiene 3\sigma octun subpíxel y cada subárea \sqrt{3\sigma oct}puede estar rodeada por un área rectangular con una longitud lateral de , 3\sigma oct(3\sigma oct\leqslant 6\sigma _0)pero no es grande, y el número de puntos de muestreo debe ser mayor que menor. , para simplificar el cálculo y tomar la longitud de sus lados 3\sigma oct, por lo que a cada subregión se le asigna un área rectangular con una longitud3\sigma oct de lado de .

        Teniendo en cuenta que la interpolación bilineal debe adoptarse más adelante, la longitud lateral de la ventana de imagen requerida es: 3\sigma oct\times(d+1). Y considere el factor de rotación (es conveniente rotar el eje de coordenadas en la dirección del punto clave en el siguiente paso, que se introducirá en el siguiente paso), como se muestra en la figura a continuación, el radio del área de la imagen requerida para el cálculo real es (el resultado del cálculo se redondea):

 

2.2.2 Rotar el eje de coordenadas en la dirección del punto clave (rotar primero (x', y')

        Para garantizar la invariancia de la rotación, el eje de coordenadas se gira en la dirección del punto clave. La imagen de la izquierda es antes de la rotación, la flecha roja en la imagen marca la dirección del punto clave actual y la imagen de la derecha es después de la rotación.

        Las nuevas coordenadas de los puntos de muestreo en la vecindad rotada (x', y')son:

2.2.3 Asigne los puntos de muestreo en la vecindad de los puntos clave a la subárea correspondiente, asigne el valor de gradiente de la subárea a 8 direcciones y calcule el peso (y luego mapéelo a cada pequeña subárea para obtener su valor en cada subárea coordenada (x', y') en(x'', y'')

        Las coordenadas rotadas del punto de muestreo se asignan a subáreas d×d (4×4) dentro de un círculo con un radio de radio, y el gradiente y la dirección de los puntos de muestreo que afectan a las subáreas se calculan y asignan a 8 direcciones.

        El punto de muestreo rotado (x', y')cae en la posición de la subárea subíndice como (x'', y''):

        Entre ellos 3\sigma octestá la longitud lateral de cada subregión obtenida en el primer paso de preparación, y d es el parámetro para el muestreo bilineal en la etapa posterior. Lowe sugirió que el tamaño del gradiente de los píxeles en la subregión \sigma = 0,5 rese calcule mediante ponderación gaussiana, es decir

Donde a, b son las coordenadas de posición de los puntos clave en la imagen de la pirámide gaussiana.

2.2.4 La interpolación bilineal calcula la contribución de cada punto de muestreo a las ocho direcciones del punto semilla

         La asignación tiene un subíndice en la subárea (x'', y''). Por ejemplo, el punto rojo en la figura anterior es un punto asignado en la subárea superior derecha. Se interpola linealmente y se calcula para cada punto inicial (cada subárea se usa como punto semilla) contribución.

         El punto rojo en la figura cae entre la fila 0 y la fila 1 y contribuye a ambas filas. El factor de contribución al punto semilla en la fila 0, columna 3 es dr, y el factor de contribución a la fila 1, columna 3 es 1 dr. De manera similar, los factores de contribución a las dos columnas adyacentes son dc y 1-dc, y el los factores de contribución a las dos columnas adyacentes son dc y 1-dc.Los factores de contribución de cada dirección son do y 1-do. Entonces el peso final acumulado en cada dirección es:

   

         Donde k, m, n son 0 o 1. Aquí se explica que este punto está en la fila 0 y la columna 3, y suponiendo que la dirección es 6, entonces se agrega el peso correspondiente a hist[0][3][6].

2.2.5 Eliminar la influencia de la luz y normalizar

        A través de los pasos anteriores, podemos obtener los valores de gradiente de 8 direcciones en la ventana de 4×4 en el espacio de escala de puntos clave, un total de 4×4×8 = vector H de 128 dimensiones. A continuación, normalice la imagen:

         Entre ellos, H = (h_1, h_2, ..., h_{128})se encuentra el vector de 128 dimensiones obtenido antes de la normalización, L = (l_1, l_2, ..., l_{128})y es el resultado después de la normalización.

2.2.6 Umbral de vector descriptor

        La iluminación no lineal, los cambios en la saturación de la cámara harán que el valor del gradiente en algunas direcciones sea demasiado grande, así que configure el valor de umbral (después de la normalización del vector, generalmente 0.2) para truncar los valores de gradiente más grandes. Luego, se vuelve a realizar un proceso de normalización para mejorar la discriminación de las características.

2.2.7 Clasificación de vectores de descripción de características según la escala de puntos característicos

        Ordene los vectores de descripción de características según la escala de los puntos característicos.

2.2.8 Resumen

        Hasta ahora, la generación de vectores de descripción de características SIFT se puede resumir de la siguiente manera: después de dividir el rango para el cálculo de los vectores de descripción, primero gire para obtener y luego asigne a cada (x', y')subregión (x', y')pequeña para obtener sus coordenadas en cada subregión. región (x'', y'') , interpolación bilineal Calcule el peso (contribución) de cada punto de muestreo a las ocho direcciones de la subregión (punto inicial), normalice y establezca el umbral y, finalmente, ordene el vector de descripción de características de acuerdo con la escala del punto característico.

3. Implementación del código

        Debido a que SIFT solicitó los derechos de autor en una etapa posterior, cv2.xfeatures2d.SIFT_create() se puede usar para crear descriptores SIFT en versiones anteriores. Después de OpenCV  3.4, la biblioteca relacionada de SIFT/SURF se eliminó debido a problemas de derechos de autor de patentes, por lo que una versión más reciente se usa la versión Se informará un error al usar la biblioteca cv.

sift = cv2.xfeatures2d.SIFT_create()
key_points, desc = sift.detectAndCompute(img, None)

        La función devuelve puntos clave y vectores de características.

        Los puntos clave incluyen información sobre:

pt: coordenadas de puntos clave

ángulo: Ángulo, que indica la dirección del punto clave.Según la tesis de Lowe, para garantizar que la dirección no se deforme, el algoritmo SIFT obtiene la dirección del punto realizando cálculos de gradiente en la vecindad alrededor del punto clave. -1 es el valor inicial.

tamaño: el tamaño del diámetro del punto

class_id: cuando queremos clasificar imágenes, podemos usar class_id para distinguir cada punto de característica. Si no está configurado, es -1. Debe configurarlo usted mismo

octava: Representa los datos extraídos de qué capa de la pirámide.

respuesta: El grado de respuesta, para ser precisos, el grado de la esquina.

Cuatro Resumen

        Este artículo presenta cómo extraer las características de la imagen. Después de extraer las características, al hacer coincidir , siempre que los descriptores de los dos puntos de característica estén cerca en el espacio vectorial, se pueden considerar como el mismo punto de característica.

referencia:

1, http://t.csdn.cn/OSm5h

2, http://t.csdn.cn/JyupC

3, http://t.csdn.cn/P12m0

4. Odometría visual para entrada SLAM (1): Coincidencia de puntos característicos - Brook_icv - Blog Garden (cnblogs.com)

5, http://t.csdn.cn/5TLRn

6, http://t.csdn.cn/KWgLE

Supongo que te gusta

Origin blog.csdn.net/shisniend/article/details/129802075
Recomendado
Clasificación