---- SIFT funciona el programa de imagen característica de algoritmo de extracción

la teoría de algoritmos de extracción de características SIFT imagen Notas de Estudio ----

Tang Yu Di en el presente documento por clase de combate proyecto de referencia OpenCV

el blog de zddhub

Papel: Escala invariante Característica Transform (SIFT) durante un máximo de 56 :)

1 Información general

SIFT Algoritmo (Escala invariante Característica Transform) algoritmo de traducción invariante imagen característica coincidente.
Características algoritmo SIFT

  1. característica SIFT es una característica local de una imagen, que se escala la rotación, escala, la variación de luminancia permanece invariante a los cambios en perspectiva, una transformación afín, el ruido es mantener un cierto grado de estabilidad
  2. Informativa, adecuado para las características de masas rápidos en las bases de datos y precisa partido
  3. Grandes cantidades de incluso los pocos objetos también pueden producir grandes cantidades de SIFT vector de características
  4. Alta velocidad, optimizado algoritmo de coincidencia SIFT puede incluso alcanzar requisitos de tiempo real
  5. Escalabilidad, fácilmente puede ser combinado con otras formas de vectores de características

SIFT Algoritmo en diferente escala espacio punto clave de búsqueda (punto de función), y calcular el punto crítico dirección . El punto clave es encontrar cribar algunas curvas muy prominentes, no a causa de la luz, el ruido y otros factores afines transformación y cambio en puntos, como por ejemplo, los bordes punto, se destacan las áreas oscuras y áreas brillantes tales como manchas oscuras.

algoritmo SIFT Paso

  1. imágenes del espacio escala
  2. resolución multi-pirámide
  3. Diferencia de la pirámide gaussiana
  4. El posicionamiento preciso punto clave
  5. Eliminar el efecto frontera
  6. La dirección principal de la característica punto
  7. Genera una descripción de la entidad

2 etapas de algoritmo

imágenes del espacio escala 2.1

Dentro de un cierto rango, si el objeto es grande o pequeña, para el ojo humano puede distinguir la diferencia. SIFT algoritmo es una computadora con el propósito del objeto a diferentes escalas y una percepción unificada. Esa es la rotación del objeto, escala de zoom, restos de variación de luminancia invariante a los cambios en perspectiva, una transformación afín, el ruido es mantener un cierto grado de estabilidad.
Así que debemos tener en cuenta las características de la imagen a diferentes escalas.
Por gaussiano filtrado para lograr la adquisición de espacio de escala

Aquí Insertar imagen DescripciónCuanto mayor es la desviación estándar de una distribución normal, un filtrado gaussiano de la imagen más borrosa.

Como se muestra en la figura curvadas gaussiana bidimensional:
Aquí Insertar imagen Descripción
ponderación Gaussiana es centralmente simétrica. Valor de cada píxel es un promedio ponderado de los valores de los píxeles vecinos alrededor.
Aquí desenfoque gaussiano función de filtro de Gauss no se llama directamente en el dominio del tiempo gussian = cv2.GaussianBlur(img, (5, 5), 1)
, pero puede cambiar los valores de la desviación estándar, para cambiar el grado de borrosidad de la imagen.

from PIL import Image, ImageFont
from PIL import ImageFilter
import cv2


im = Image.open('ggg.jpg')
im = im.filter(ImageFilter.GaussianBlur(radius=1))
im.show()
im = im.filter(ImageFilter.GaussianBlur(radius=2))
im.show()
im = im.filter(ImageFilter.GaussianBlur(radius=3))
im.show()

Los resultados se muestran:
original de Aquí Insertar imagen Descripción
desviación estándar de 3:
Aquí Insertar imagen Descripción
desviación estándar de 5:
Aquí Insertar imagen Descripción
desviación estándar de 7:
Aquí Insertar imagen Descripción

2.2 Diferencia de la pirámide gaussiana (DOG)

Multi-resolución pirámide imagen
Aquí Insertar imagen Descripción
principio de pirámide de imagen (para la extracción de características)
Gaussian diferencia pirámide de abajo hacia arriba, a través de la toma de muestras, un núcleo de convolución gaussiana, todas las filas y columnas de números pares eliminado.
definición pirámide gaussiana de ecuaciones diferenciales:
Aquí Insertar imagen Descripción
Gaussian pirámide diferencial
Gaussian pirámide Diferencia esquemática:
Aquí Insertar imagen Descripción
mismo tamaño en la misma capa como una imagen en la pirámide de la imagen, pero eligió una desviación estándar diferente del desenfoque gaussiano, que tienen diferente grado de desenfoque.
Diferencia de Gaussian pirámide (DOG) de la diferencial en la misma capa que la imagen borrosa para obtener un resultado diferencia.
Aquí Insertar imagen Descripción
Si X es un punto extremo, no sólo en la misma capa X es el punto extremo de alrededor de 9 puntos, y, en el caso del esquema original también una capa y la siguiente capa se comparan, con el fin de ser visto como el punto es el punto extremo. Punto X se compara con 3 × 9-1 = 26 puntos además de su propio, se determina si el punto extremo.

El posicionamiento preciso del punto 2.3 extrema

Obtenidos por el método anterior candidata puntos clave, pero estos puntos no son necesariamente la localización exacta del punto extremo, posiblemente en las inmediaciones del punto extremo real.
Por lo que queremos escalar el espacio PERRO curva de función de ajuste, para lograr un posicionamiento preciso de los puntos clave.
Aquí Insertar imagen Descripción
puntos huecos representan el último paso de los puntos clave del candidato, origen continuas representan un verdadero puntos extremos.
Los puntos clave candidatos son puntos extremos locales Diferencia del espacio pirámide gaussiana (DOG). Estos puntos extremos son discretas. La pregunta entonces es una función de un número de puntos discretos, encontrar los puntos extremos reales de esta función.

Nos paso en los puntos clave y obtener una verdadera puntos extremos candidatos al mismo tiempo en la misma curva de función de distribución.
Utilizamos las series de Taylor encajan función original.
Aquí Insertar imagen Descripción
Un punto de una función de ajuste original f (x). Función Variable y luego discreta volvió, de modo que el IS derivada igual a 0, los verdaderos puntos extremos determinados.

En Diferencia de Gaussian pirámide (DOG) de cada espacio de clave candidata se puede expresar como:
Aquí Insertar imagen Descripción
En un ejemplo de 3 × 3 matriz, la matriz está escrito en forma de expansión de Taylor:
Aquí Insertar imagen Descripción
Simplificación después expresarse como:
Aquí Insertar imagen DescripciónAquí Insertar imagen Descripción

2.4 Eliminación de la frontera correspondiente

operador perro tendrá una fuerte respuesta a la orilla, la necesidad de respuesta de borde para eliminar los puntos inestables. La obtención de puntos de característica en la matriz de Hesse, las curvaturas principales de un 2x2 Hessian matriz H se obtiene, en respuesta a eliminar límites.
Aquí Insertar imagen Descripción

2.5 Cómo identificar el punto clave de que fuera

La dirección principal de la característica punto

Aquí Insertar imagen Descripción
se obtiene Cada punto de función (x, y, σ, θ) tres datos: la ubicación, escala y orientación.

Generación de una caracterización 2,6

Un punto clave en el centro como se muestra en la figura dibujar rango apropiado para hacer un histograma de las ocho direcciones, la dirección del pico del histograma representa la dirección característica de la pendiente en el punto vecino, el valor máximo en el histograma como la dirección principal de los puntos clave.
Aquí Insertar imagen Descripción

invariancia en rotación
Aquí Insertar imagen Descripción
a fin de garantizar la cantidad adecuada de rotación invariancia punto característica como el centro, en la proximidad de la zona del eje de rotación, la dirección de la dirección principal del punto de función como los ejes de coordenadas.

Después de la dirección principal de rotación ventana toma de 8x8 centrada, en busca de la magnitud del gradiente y la dirección, la dirección de la flecha que representa la dirección del gradiente para cada píxel, representa la longitud de la magnitud del gradiente, y después se sometió a Gaussian ventana de cálculo ponderado, en cada uno de la última 4x4 8 representa en el histograma de las direcciones de gradiente de piezas, se calcula para cada dirección del gradiente del valor acumulado, para formar un punto de semilla, es decir, los cuatro puntos de cada uno semillas de características, cada punto semilla tiene ocho direcciones información vectorial.
Aquí Insertar imagen Descripción
Cada clave es descrito por 4 x 4 = 16 puntos de semillas. Dicha tienda de colgar una que producirá SIFT vector de características de 128 dimensiones.
Aquí Insertar imagen Descripción
En el código:

import cv2
import numpy as np

img = cv2.imread('box.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
print(cv2.__version__)
sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray, None)
img = cv2.drawKeypoints(gray, kp, img)

cv2.imshow('drawKeypoints', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
kp, des = sift.compute(gray, kp)
print(np.array(kp).shape)
print(des.shape)
print(des[0])

La función cv2.xfeatures2d.SIFT_create()es un ejemplo de la función SIFT.
Función sift.detect(gray, None)para identificar los puntos clave en un gráfico.
A continuación, cv2.drawKeypoints(gray, kp, img)dibuje un punto crítico.
Programa kp, des = sift.compute(gray, kp)de aquí para descubrir kp será una lista de puntos clave, des es una configuración de red numpy Number_of_Keypoints * 128 de
salida:
Aquí Insertar imagen Descripción
En este punto, el proyecto de extracción de características de imagen algoritmo SIFT se ha completado.
Necesidad de ser mejorado, gracias a la ayuda proporcionan para mi blog y clases de entrenamiento proyecto Tang Yu Di OpenCV.

Publicado 10 artículos originales · ganado elogios 0 · Vistas 215

Supongo que te gusta

Origin blog.csdn.net/weixin_43227526/article/details/105020660
Recomendado
Clasificación