El histograma de gradientes orientados (HOG) es un descriptor de características que se utiliza en la visión por computadora y el procesamiento de imágenes con el fin de detectar objetos . La técnica cuenta las apariciones de la orientación de gradiente en porciones localizadas de una imagen. Este método es similar al de los histogramas de orientación de borde , descriptores de transformación de características invariantes de escala y contextos de forma , pero se diferencia en que se calcula en una cuadrícula densa de celdas espaciadas uniformemente y utiliza la normalización de contraste local superpuesta para mejorar la precisión.
Robert K. McConnell de Wayland Research Inc. describió por primera vez los conceptos detrás de HOG sin usar el término HOG en una solicitud de patente en 1986. [1] En 1994, los conceptos fueron utilizados por Mitsubishi Electric Research Laboratories . [2] Sin embargo, el uso sólo se generalizó en 2005 cuando Navneet Dalal y Bill Triggs , investigadores del Instituto Nacional Francés de Investigación en Ciencias de la Computación y Automatización ( INRIA ), presentaron su trabajo complementario sobre descriptores HOG en la Conferencia sobre Visión y Patrones por Computadora. Reconocimiento (CVPR). En este trabajo se centraron en la detección de peatones en imágenes estáticas, aunque desde entonces ampliaron sus pruebas para incluir la detección humana en videos, así como a una variedad de animales y vehículos comunes en imágenes estáticas.
Teoría
El pensamiento esencial detrás del descriptor del histograma de gradientes orientados es que la apariencia y la forma del objeto local dentro de una imagen se pueden describir mediante la distribución de gradientes de intensidad o direcciones de borde. La imagen se divide en pequeñas regiones conectadas llamadas celdas, y para los píxeles dentro de cada celda, se compila un histograma de direcciones de gradiente. El descriptor es la concatenación de estos histogramas. Para mejorar la precisión, los histogramas locales se pueden normalizar por contraste calculando una medida de la intensidad en una región más grande de la imagen, llamada bloque, y luego usando este valor para normalizar todas las celdas dentro del bloque. Esta normalización da como resultado una mejor invariancia a los cambios en la iluminación y el sombreado.
El descriptor HOG tiene algunas ventajas clave sobre otros descriptores. Dado que opera en celdas locales, es invariante a las transformaciones geométricas y fotométricas, excepto por la orientación del objeto. Tales cambios solo aparecerían en regiones espaciales más grandes. Además, como descubrieron Dalal y Triggs, el muestreo espacial aproximado, el muestreo de orientación fina y la normalización fotométrica local fuerte permiten ignorar el movimiento corporal individual de los peatones siempre que mantengan una posición más o menos erguida. Por tanto, el descriptor HOG es especialmente adecuado para la detección humana en imágenes. [3]
Implementación de algoritmos
Cálculo de gradientes
El primer paso del cálculo en muchos detectores de características en el preprocesamiento de imágenes es garantizar valores de color y gamma normalizados. Sin embargo, como señalan Dalal y Triggs, este paso se puede omitir en el cálculo del descriptor HOG, ya que la normalización del descriptor resultante esencialmente logra el mismo resultado. Por tanto, el preprocesamiento de imágenes tiene un impacto mínimo en el rendimiento. En cambio, el primer paso del cálculo es el cálculo de los valores del gradiente. El método más común es aplicar la máscara de derivada discreta de punto centrada en 1-D en una o ambas direcciones horizontal y vertical. Específicamente, este método requiere filtrar los datos de color o intensidad de la imagen con los siguientes núcleos de filtro:
Dalal y Triggs probaron otras máscaras más complejas, como la máscara Sobel 3x3 o las máscaras diagonales, pero estas máscaras generalmente funcionaron peor en la detección de humanos en imágenes. También experimentaron con el suavizado gaussiano antes de aplicar la máscara derivada, pero de manera similar encontraron que la omisión de cualquier suavizado funciona mejor en la práctica. [4]
Binning de orientación
El segundo paso del cálculo es crear los histogramas de celda. Cada píxel dentro de la celda emite un voto ponderado para un canal de histograma basado en la orientación en función de los valores encontrados en el cálculo del gradiente. Las celdas en sí pueden tener forma rectangular o radial, y los canales del histograma se distribuyen uniformemente entre 0 y 180 grados o entre 0 y 360 grados, dependiendo de si el gradiente está "sin firmar" o "con signo". Dalal y Triggs descubrieron que los gradientes sin firmar utilizados junto con 9 canales de histograma se desempeñaron mejor en sus experimentos de detección en humanos. En cuanto al peso del voto, la contribución de los píxeles puede ser la propia magnitud del gradiente o alguna función de la magnitud. En las pruebas, la magnitud del gradiente en sí misma generalmente produce los mejores resultados. Otras opciones para el peso del voto podrían incluir la raíz cuadrada o el cuadrado de la magnitud del gradiente, o alguna versión recortada de la magnitud. [5]
Bloques de descriptores
Para tener en cuenta los cambios en la iluminación y el contraste, las intensidades del gradiente deben normalizarse localmente, lo que requiere agrupar las celdas en bloques más grandes conectados espacialmente. El descriptor HOG es entonces el vector concatenado de los componentes de los histogramas de células normalizados de todas las regiones de bloques. Estos bloques generalmente se superponen, lo que significa que cada celda contribuye más de una vez al descriptor final. Existen dos geometrías de bloque principales: bloques R-HOG rectangulares y bloques C-HOG circulares. Los bloques R-HOG son generalmente cuadrículas cuadradas, representadas por tres parámetros: el número de celdas por bloque, el número de píxeles por celda y el número de canales por histograma de celda. En el experimento de detección humana de Dalal y Triggs, se encontró que los parámetros óptimos eran cuatro celdas de 8x8 píxeles por bloque (16x16 píxeles por bloque) con 9 canales de histograma. Además, encontraron que se podría obtener una pequeña mejora en el rendimiento aplicando una ventana espacial gaussiana dentro de cada bloque antes de tabular los votos del histograma para ponderar menos los píxeles alrededor del borde de los bloques. Los bloques R-HOG parecen bastante similares a los descriptores de transformación de características invariantes de escala (SIFT); sin embargo, a pesar de su formación similar, los bloques R-HOG se calculan en cuadrículas densas a una escala única sin alineación de orientación, mientras que los descriptores SIFT generalmente se calculan en puntos de imagen clave dispersos e invariantes a escala y se rotan para alinear la orientación. Además, los bloques R-HOG se utilizan en conjunto para codificar información de forma espacial, mientras que los descriptores SIFT se utilizan individualmente.
Los bloques circulares HOG (C-HOG) se pueden encontrar en dos variantes: aquellos con una celda central única y aquellos con una celda central dividida angularmente. Además, estos bloques C-HOG se pueden describir con cuatro parámetros: el número de contenedores angulares y radiales, el radio del contenedor central y el factor de expansión para el radio de contenedores radiales adicionales. Dalal y Triggs descubrieron que las dos variantes principales proporcionaban el mismo rendimiento y que dos contenedores radiales con cuatro contenedores angulares, un radio central de 4 píxeles y un factor de expansión de 2 proporcionaban el mejor rendimiento en su experimentación (para lograr un buen rendimiento, por último use esta configuración). Además, la ponderación gaussiana no proporcionó ningún beneficio cuando se usó junto con los bloques C-HOG. Los bloques C-HOG parecen similares a los descriptores de contexto de forma , pero difieren mucho en que los bloques C-HOG contienen celdas con varios canales de orientación, mientras que los contextos de forma solo utilizan un recuento de presencia de un solo borde en su formulación. [6]
Normalización de bloque
Dalal y Triggs exploraron cuatro métodos diferentes para la normalización de bloques. Dejar ser el vector no normalizado que contiene todos los histogramas en un bloque dado, ser su k -norm para y ser una pequeña constante (el valor exacto, con suerte, no es importante). Entonces, el factor de normalización puede ser uno de los siguientes:
- Norma L2:
- L2-hys: norma L2 seguida de recorte (limitando los valores máximos de va 0.2) y renormalización, como en [7]
- Norma L1:
- L1-sqrt:
Además, el esquema L2-hys se puede calcular tomando primero la norma L2, recortando el resultado y luego renormalizando. En sus experimentos, Dalal y Triggs encontraron que los esquemas L2-hys, L2-norma y L1-sqrt proporcionan un rendimiento similar, mientras que la norma L1 proporciona un rendimiento ligeramente menos confiable; sin embargo, los cuatro métodos mostraron una mejora muy significativa con respecto a los datos no normalizados. [8]
Reconocimiento de objetos
Los descriptores HOG se pueden utilizar para el reconocimiento de objetos proporcionándolos como características de un algoritmo de aprendizaje automático . Dalal y Triggs utilizaron descriptores HOG como características en una máquina de vectores de soporte (SVM); [9] sin embargo, los descriptores de HOG no están vinculados a un algoritmo de aprendizaje automático específico.
Actuación
En su experimento original de detección humana, Dalal y Triggs compararon sus bloques descriptores R-HOG y C-HOG con wavelets de Haar generalizados , descriptores PCA-SIFT y descriptores de contexto de forma . Las ondas de Haar generalizadas son ondas de Haar orientadas y fueron utilizadas en 2001 por Mohan, Papageorgiou y Poggio en sus propios experimentos de detección de objetos. Los descriptores de PCA-SIFT son similares a los descriptores de SIFT, pero difieren en que el análisis de componentes principales se aplica a los parches de gradiente normalizados. Los descriptores PCA-SIFT fueron utilizados por primera vez en 2004 por Ke y Sukthankar y se afirmó que superaban a los descriptores SIFT habituales. Por último, los contextos de formas utilizan contenedores circulares, similares a los utilizados en los bloques C-HOG, pero solo tabulan los votos en función de la presencia de bordes, sin hacer distinciones con respecto a la orientación. Los contextos de formas fueron utilizados originalmente en 2001 por Belongie, Malik y Puzicha.
La prueba comenzó con dos conjuntos de datos diferentes. La base de datos de peatones del Instituto de Tecnología de Massachusetts (MIT) contiene 509 imágenes de entrenamiento y 200 imágenes de prueba de peatones en las calles de la ciudad. El conjunto solo contiene imágenes que muestran el frente o la parte posterior de figuras humanas y contiene poca variedad en la pose humana. El conjunto es bien conocido y se ha utilizado en una variedad de experimentos de detección humana, como los realizados por Papageorgiou y Poggio en 2000. La base de datos del MIT está actualmente disponible para investigación en https://web.archive.org/web/ 20041118152354 / http: //cbcl.mit.edu/cbcl/software-datasets/PedestrianData.html . El segundo conjunto fue desarrollado por Dalal y Triggs exclusivamente para su experimento de detección humana debido al hecho de que los descriptores HOG funcionaron casi perfectamente en el conjunto del MIT. Su set, conocido como INRIA, contiene 1805 imágenes de humanos tomadas de fotografías personales. El set contiene imágenes de humanos en una amplia variedad de poses e incluye fondos difíciles, como escenas de multitudes, lo que lo hace más complejo que el set del MIT. La base de datos INRIA está actualmente disponible para investigación en http://lear.inrialpes.fr/data .
El sitio anterior tiene una imagen que muestra ejemplos de la base de datos de detección humana de INRIA.
En cuanto a los resultados, los descriptores de bloque C-HOG y R-HOG funcionan de manera comparable, y los descriptores C-HOG mantienen una ligera ventaja en la tasa de detección fallida a tasas fijas de falsos positivos en ambos conjuntos de datos. En el conjunto del MIT, los descriptores C-HOG y R-HOG produjeron una tasa de detección fallida de esencialmente cero a una tasa de falsos positivos de 10 -4 . En el conjunto de INRIA, los descriptores C-HOG y R-HOG produjeron una tasa de detección fallida de aproximadamente 0,1 a una tasa de falsos positivos de 10 -4 . Las ondas de Haar generalizadas representan el siguiente enfoque de mayor rendimiento: produjeron aproximadamente una tasa de errores de 0.01 a una tasa de falsos positivos de 10 −4 en el conjunto MIT, y aproximadamente una tasa de errores de 0.3 en el conjunto INRIA. Los descriptores de PCA-SIFT y los descriptores de contexto de forma tuvieron un desempeño bastante pobre en ambos conjuntos de datos. Ambos métodos produjeron una tasa de errores de 0,1 a una tasa de falsos positivos de 10 -4 en el conjunto MIT y casi una tasa de errores de 0,5 a una tasa de falsos positivos de 10 -4 en el conjunto INRIA.
Mayor desarrollo
Como parte del Taller Pascal Visual Object Classes 2006, Dalal y Triggs presentaron resultados sobre la aplicación de histogramas de descriptores de gradientes orientados a objetos de imagen que no son humanos, como automóviles, autobuses y bicicletas, así como animales comunes como perros, gatos, y vacas. Incluyeron con sus resultados los parámetros óptimos para la formulación y normalización de bloques en cada caso. La imagen de la siguiente referencia muestra algunos de sus ejemplos de detección para motocicletas. [10]
Como parte de la Conferencia Europea de Visión por Computador (ECCV) de 2006, Dalal y Triggs se asociaron con Cordelia Schmid para aplicar detectores HOG al problema de la detección humana en películas y videos. Combinaron descriptores HOG en fotogramas de video individuales con sus histogramas de movimiento interno (IMH) recientemente introducidos en pares de fotogramas de video posteriores. Estos histogramas de movimiento interno utilizan las magnitudes de gradiente de los campos de flujo óptico obtenidos de dos fotogramas consecutivos. Estas magnitudes de gradiente se utilizan luego de la misma manera que las producidas a partir de datos de imágenes estáticas dentro del enfoque del descriptor HOG. Al realizar pruebas en dos grandes conjuntos de datos tomados de varias películas, el método combinado HOG-IMH arrojó una tasa de error de aproximadamente 0,1 atasa de falsos positivos. [11]
En el Simposio de vehículos inteligentes de 2006, F. Suard , A. Rakotomamonjy y A. Bensrhair presentaron un sistema completo para la detección de peatones basado en descriptores HOG. Su sistema funciona con dos cámaras de infrarrojos. Dado que los seres humanos parecen más brillantes que su entorno en las imágenes infrarrojas, el sistema primero ubica las posiciones de interés dentro del campo de visión más grande donde los humanos posiblemente podrían estar ubicados. Luego, los clasificadores de máquinas de vectores de soporte operan en los descriptores HOG tomados de estas posiciones más pequeñas de interés para formular una decisión con respecto a la presencia de un peatón. Una vez que los peatones se encuentran dentro del campo de visión, la posición real del peatón se estima mediante visión estéreo. [12]
En la Conferencia IEEE sobre Visión por Computadora y Reconocimiento de Patrones en 2006, Qiang Zhu , Shai Avidan , Mei-Chen Yeh y Kwang-Ting Cheng presentaron un algoritmo para acelerar significativamente la detección humana utilizando métodos descriptores HOG. Su método utiliza descriptores HOG en combinación con el algoritmo de clasificadores en cascada que normalmente se aplica con gran éxito a la detección de rostros. Además, en lugar de depender de bloques de tamaño uniforme, introducen bloques que varían en tamaño, ubicación y relación de aspecto. Con el fin de aislar los bloques más adecuados para la detección humana, aplicaron el algoritmo AdaBoost para seleccionar aquellos bloques que se incluirían en la cascada. En su experimentación, su algoritmo logró un rendimiento comparable al algoritmo original de Dalal y Triggs, pero operó a velocidades hasta 70 veces más rápidas. En 2006, Mitsubishi Electric Research Laboratories solicitó la patente estadounidense de este algoritmo con el número de solicitud 20070237387. [13]
En la Conferencia Internacional IEEE sobre Procesamiento de Imágenes en 2010, Rui Hu , Mark Banard y John Collomosse ampliaron el descriptor HOG para su uso en la recuperación de imágenes basada en bocetos (SBIR). Se extrapoló un campo de orientación denso a partir de las respuestas dominantes en el detector de bordes Canny bajo una restricción de suavidad laplaciana , y HOG se calculó sobre este campo. El descriptor de campo de gradiente resultante HOG (GF-HOG) capturó la estructura espacial local en bocetos o mapas de bordes de imágenes. Esto permitió que el descriptor se usara dentro de un sistema de recuperación de imágenes basado en contenido que se puede buscar mediante formas dibujadas a mano alzada. [14] Se demostró que la adaptación de GF-HOG supera a los descriptores de histograma de gradiente existentes como SIFT , SURF y HOG en alrededor de un 15 por ciento en la tarea de SBIR. [15]
En 2010, Martin Krückhans introdujo una mejora del descriptor HOG para nubes de puntos 3D. [16] En lugar de gradientes de imagen, utilizó distancias entre puntos (píxeles) y planos, los llamados residuos, para caracterizar una región local en una nube de puntos. Su histograma de descriptor de residuos orientados (HOR) se utilizó con éxito en tareas de detección de objetos de nubes de puntos 3d. [17]
Ver también
- Detección de esquinas
- Detección de peatones
- Característica (visión por computadora)
- Detección de características (visión por computadora)
- Extracción de características
- Detección de puntos de interés
- Reconocimiento de objetos
- Transformación de características invariantes de escala
Referencias
- ^ "Método y aparato para el reconocimiento de patrones" .
- ^ "Histogramas de orientación para el reconocimiento de gestos con las manos" .
- ^ "Histogramas de gradientes orientados para detección humana" (PDF) . pag. 2.
- ^ "Histogramas de gradientes orientados para detección humana" (PDF) . pag. 4.
- ^ "Histogramas de gradientes orientados para detección humana" (PDF) . pag. 5.
- ^ "Histogramas de gradientes orientados para detección humana" (PDF) . pag. 6.
- ^ DG Lowe. Características de imagen distintivas de puntos clave invariantes de escala. IJCV, 60 (2): 91-110, 2004.
- ^ "Histogramas de gradientes orientados para detección humana" (PDF) . pag. 6.
- ^ "Histogramas de gradientes orientados para detección humana" (PDF) . pag. 1.
- ^ "Detección de objetos mediante histogramas de gradientes orientados" (PDF) . Archivado desde el original (PDF) el 25 de enero de 2013 . Consultado el 10 de diciembre de 2007 .
- ^ "Detección humana mediante histogramas orientados de flujo y apariencia" (PDF) . Archivado desde el original (PDF) el 2008-09-05 . Consultado el 10 de diciembre de 2007 .(documento original ya no disponible; papel similar )
- ^ "Detección de peatones mediante imágenes infrarrojas e histogramas de gradientes orientados" (PDF) .
- ^ "Detección humana rápida mediante una cascada de histogramas de gradientes orientados" (PDF) .
- ^ "Descriptor de campo de degradado para localización y recuperación de imágenes basadas en bocetos" (PDF) .
- ^ "Una evaluación del rendimiento del descriptor HOG de campo de gradiente para la recuperación de imágenes basada en bocetos" (PDF) .
- ^ Krückhans, Martin. "Ein Detektor für Ornamente auf Gebäudefassaden auf Basis des" histograma-de-gradientes-orientados "-Operadores" (PDF) . (alemán)
- ^ "Mapas semánticos de octárbol 3D basados en campos aleatorios condicionales" (PDF) .
enlaces externos
- http://www.mathworks.com/matlabcentral/fileexchange/33863 Una implementación para Matlab (archivo mex)
- https://www.cs.cmu.edu/~yke/pcasift/ - Código para la detección de objetos PCA-SIFT
- http://lear.inrialpes.fr/software/ - Kit de herramientas de software para la detección de objetos HOG (página de inicio del equipo de investigación)
- https://web.archive.org/web/20100502032344/http://www.navneetdalal.com/software - Kit de herramientas de software para la detección de objetos HOG (página de inicio de Navneet Dalal)
- http://dlib.net/imaging.html#scan_fhog_pyramid - Kit de herramientas de software C ++ y Python para la detección de objetos HOG
- http://pascal.inrialpes.fr/data/human/ - Conjunto de datos de imágenes humanas de INRIA
- http://cbcl.mit.edu/software-datasets/PedestrianData.html - Conjunto de datos de imágenes de peatones del MIT