HOG: Histograma de Gradientes Orientados para Detección Humana

1. Introducción al artículo

Título del artículo: Histogramas de gradientes orientados para detección humana

Dirección en papel: HOG

Autores del artículo: Navneet Dalal y Bill Triggs

Tiempo de tesis: 2015

ilustrar:

HOG (Histograma de gradiente orientado) es un histograma de gradientes orientados (descriptores de características) para la detección humana propuesto por Dalal et al., del Instituto Nacional Francés de Informática y Control Automático sobre CVPR en 2005. Mediante imagen estadística local El histograma de dirección del gradiente de la región se utiliza para formar características de imagen y luego se combina con el clasificador SVM para realizar la detección humana. HOG es robusto a las deformaciones geométricas y ópticas.

Se puede decir que el descriptor de características es la representación de la imagen. Al extraer la información útil de la imagen y descartar la información adicional de la imagen, se simplifica la representación de la imagen. Normalmente, el descriptor de características puede convertir una imagen en color de 3 canales en un vector de características.

En el descriptor de características del HOG, la distribución de las direcciones de los gradientes, es decir, el histograma de las direcciones de los gradientes, se considera una característica. En términos generales, la magnitud del gradiente de los bordes y las esquinas de la imagen será relativamente grande y también contendrá información más relevante sobre la forma objetivo.

2. Flujo básico del método HOG

El proceso completo dado en el artículo original.

El proceso de uso de HOG para obtener características

2.1 Ventana de detección

El autor señaló en el artículo que el tamaño de la ventana de detección es: 64x128 (las imágenes posteriores se refieren principalmente a esta detección, excepto la imagen en la etapa de preprocesamiento de imágenes se refiere a la imagen original), que contendrá alrededor de 16 píxeles el cuerpo humano Los experimentos muestran que, 16 es un número más apropiado, demasiado grande o demasiado pequeño afectará los resultados finales de detección.

2.2 Preprocesamiento de imágenes

Este paso es en realidad para hacer algunas operaciones de preprocesamiento en la imagen: recortar la imagen y escalarla a un tamaño fijo.

 El autor señaló en el artículo que usaron imágenes de diferentes espacios de color (escala de grises, RGB, LAB) y realizaron la corrección gamma, pero el efecto no fue obvio, por lo que la corrección de color y gamma se puede hacer o no. Puede ser porque la normalización también se hizo más tarde, lo que tiene efectos similares.

Acerca de la corrección gamma: puede ajustar el contraste de la imagen, reducir el impacto de la luz en la imagen (incluida la iluminación desigual y las sombras parciales) y restaurar la imagen sobreexpuesta o subexpuesta a la normalidad, que está más cerca de la imagen vista por el ojo humano.

2.2 Cálculo de gradientes

Para las imágenes en escala de grises, se calcula el degradado de cada píxel; para las imágenes en color, se calcula el degradado de cada canal y el degradado con el mayor valor de degradado se toma como el degradado del píxel.

El autor mencionó en el artículo que diseñaron diferentes filtros (también llamados máscara derivada en el artículo) además de suavizado gaussiano para obtener el gradiente de cada píxel, y encontraron que el filtro más simple funciona mejor.

Estos diferentes filtros o plantillas son: [-1,1], [-1,0,1], [1,-8,0,8,1], sobel,

Entre ellos, [-1,0,1] tiene el mejor efecto final.

 Luego , el gradiente horizontal (dirección x) y el gradiente vertical (dirección y) de cada píxel se pueden calcular usando  [-1,0,1] y  respectivamente.\begin{bmatriz} -1\\ 0\\ 1 \end{bmatriz}

Luego, calcule la magnitud y la dirección del gradiente de cada píxel:

Para cada píxel, el degradado tiene magnitud y dirección. El degradado en dirección x reforzará las características del borde vertical, y el mapa de degradado en la dirección y reforzará las características del borde horizontal. Esto permite conservar características útiles (contornos) y eliminar información irrelevante y sin importancia. 

2.3 Calcular la acumulación ponderada de la dirección del gradiente de cada celda para obtener un histograma

Primero, la imagen se divide en varias celdas de 8x8 y se calcula el histograma de gradiente de cada celda. (El tamaño de esta celda también puede tener otros valores, dependiendo de las características específicas).

Una celda de 8 x 8, después de calcular el gradiente, obtendrá 8 x 8 x 2 = 128 valores, de los cuales 64 son magnitudes de gradiente y 64 valores de dirección de gradiente (tamaño del ángulo). La cantidad de valores sigue siendo relativamente grande (especialmente una imagen con varias celdas), y ahora se convierte en la característica del histograma de gradiente dividido en 9 contenedores, lo que hace que la expresión de la característica sea más compacta y también hace que la característica actual menos robusta Mayor pegajosidad. (Se puede incluir la información de gradiente de un píxel y la información de gradiente de una celda será más estable).

Sobre el tamaño de la celda: HOG se usa para la detección de humanoides, y el tamaño de celda de 8x8 es suficiente para extraer algunas características importantes de la imagen de 64x128. Si se utiliza para detectar otros objetivos, el tamaño de la celda se puede ajustar según sea necesario.

A continuación, echemos un vistazo a las operaciones específicas:

Tome la imagen de arriba como ejemplo, el lado izquierdo es una imagen que contiene personas, el tamaño es de 64x128 y se han dividido varias celdas de 8x8; la imagen del medio es una de las celdas de 8x8, cada píxel se dibuja con un degradado y el la flecha es la dirección. La longitud es la amplitud; la figura superior derecha es la amplitud del gradiente de la celda, y la figura inferior derecha es el valor de la dirección del gradiente de la celda.

Tenga en cuenta aquí que el rango de valores del ángulo de gradiente es de 0 ° ~ 180 °. El autor mencionó en el artículo que el efecto de 0 ° ~ 180 ° (gradiente "sin signo") es mejor que el de 0 ° ~ 360 °. En este momento, las dos direcciones opuestas se consideran iguales, es decir, si la dirección del gradiente calculado es de 270°, en realidad se representa como 90°.

Luego, divida 180 ° en 9 contenedores, y cada 20 ° es un contenedor. Esto se puede considerar como el eje horizontal. Lo que tenemos que hacer es dividir los valores de degradado de píxeles en la celda de tamaño 8x8 en estos 9 grupos según el ángulo y Acumulado, este es el eje vertical, donde la magnitud del gradiente se divide en dos contenedores adyacentes mediante interpolación bilineal, y el histograma final se compone de estos 9 valores.

Siguiendo con la figura anterior como ejemplo,

El píxel donde se encuentra el círculo azul en la figura tiene una dirección de gradiente de 80°, y la amplitud del gradiente es 2, y 2 se acumula en el contenedor donde se encuentra el histograma a 80°; el píxel donde se encuentra el círculo rojo , la dirección del gradiente es 10°, a 0° y 20° Entre, la amplitud del gradiente es 4, luego este valor de gradiente se acumulará proporcionalmente a los intervalos de 0° y 20°, por lo que en el histograma, el intervalo de 0° y el bin de 20° se acumulan por 2.

Otra cosa a tener en cuenta es que si la dirección del gradiente de un píxel está entre 160° y 180°, la magnitud del gradiente de este píxel se agregará proporcionalmente al contenedor donde se encuentran 0° y 160°.

Después de agregar las magnitudes de gradiente de todos los píxeles en la celda de 8x8 a los contenedores de los ángulos respectivos, se forma el siguiente histograma.

Puede verse que los intervalos de 0° y 180° en el histograma tienen pesos relativamente grandes, lo que indica que el gradiente de la mayoría de los píxeles es hacia arriba o hacia abajo, lo que significa que es probable que la celda sea un borde horizontal.

Así que ahora podemos usar este histograma de gradiente (9 valores) en lugar de los valores originales de 8x8x2.

2.4 Normalizar el histograma de gradiente de la celda en cada bloque

Hasta ahora, se ha creado un histograma para cada celda.

En el método HOG, el autor selecciona además una ventana de tamaño 2x2 para usar celdas de 2x2 como un grupo, llamado bloque. Ya sabemos que cada celda generará 9 valores y 2×2 celdas generarán 36 valores. Luego desliza esta ventana de 2x2 sobre la imagen para obtener diferentes bloques con superposición (overlapping).

Debido a que el degradado de la imagen es sensible a la luz, por ejemplo, puede dividir el valor de píxel de la imagen por 2 y la imagen se oscurecerá, la amplitud del degradado será la mitad del valor original y el valor en el histograma también se convertirá en la mitad del original. Y esperamos que el descriptor de funciones no se vea afectado por la iluminación, por lo que debemos "normalizar" el histograma. Es decir, los valores de 4 celdas en cada bloque se empalman para obtener 36 valores y luego se normalizan. El autor verificó los efectos de diferentes métodos de normalización y encontró que los efectos de L2-Hys, L2-Norm y L1-sqrt son similares, y el efecto de L1-Norm se reduce.

Tome L2-Norm como ejemplo: utilícelo para la normalización, es decir, primero calcule la suma de los cuadrados de los 36 valores y luego use los 36 valores para dividir el resultado. \epsilonEvite los denominadores de 0. 

 Estos bloques normalizados se denominan descriptores de características HOG.

2.5 Concatenar las características HOG de todos los bloques en la ventana de detección para obtener el vector de características final

Por cada deslizamiento, un bloque obtiene un vector de características de 36 valores. En el caso de un tamaño de ventana de detección de 64x128, hay 8 celdas en la dirección horizontal y 16 celdas en la dirección vertical, cada bloque contiene 2x2 = 4 celdas, y la zancada = 1 celda para cada deslizamiento, entonces hay 7 bloques en sentido horizontal y 15 en sentido vertical bloque, un total de 7x15=105 bloques.

Finalmente, los 105 bloques se combinan para obtener la descripción de características de toda la ventana de detección, con una longitud de 36x105=3780.

3. Clasificación

Finalmente, el autor utiliza SVM para la clasificación.

referencia:

Histograma de Gradientes Orientados explicado usando OpenCV (learnopencv.com)

Supongo que te gusta

Origin blog.csdn.net/m0_55308155/article/details/123813436
Recomendado
Clasificación