Histogramme de gradient orienté
Un histogramme de gradient orienté (en anglais, histogram of oriented gradients ou HOG) est une caractéristique utilisée en vision par ordinateur pour la détection d'objet. La technique calcule des histogrammes locaux de l'orientation du gradient sur une grille dense, c'est-à -dire sur des zones réguliÚrement réparties sur l'image. Elle possÚde des points communs avec les SIFT, les Shape contexts[1] et les histogrammes d'orientation de contours[2], mais en diffÚre notamment par l'utilisation d'une grille dense. La méthode est particuliÚrement efficace pour la détection de personnes.
Les HOG ont été proposés par Navneet Dalal et Bill Triggs, chercheurs à l'INRIA de Grenoble, à la conférence CVPR de [3].
MĂ©thode
Description générale
L'idĂ©e importante derriĂšre le descripteur HOG est que l'apparence et la forme locale d'un objet dans une image peuvent ĂȘtre dĂ©crites par la distribution de l'intensitĂ© du gradient ou la direction des contours. Ceci peut ĂȘtre fait en divisant l'image en rĂ©gions adjacentes de petite taille, appelĂ©es cellules, et en calculant pour chaque cellule l'histogramme des directions du gradient ou des orientations des contours pour les pixels Ă l'intĂ©rieur de cette cellule. La combinaison des histogrammes forme alors le descripteur HOG. Pour de meilleurs rĂ©sultats, les histogrammes locaux sont normalisĂ©s en contraste, en calculant une mesure de l'intensitĂ© sur des zones plus larges que les cellules, appelĂ©es des blocs, et en utilisant cette valeur pour normaliser toutes les cellules du bloc. Cette normalisation permet une meilleure rĂ©sistance aux changements d'illuminations et aux ombres.
Dalal et Triggs ont testé de nombreuses combinaisons de pré et post-traitements ou de valeurs de paramÚtres. On ne décrit ici que les valeurs et les méthodes retenues.
Calcul du gradient
Une Ă©tape de prĂ©-traitement peut ĂȘtre effectuĂ©e avant le calcul du gradient, afin que les couleurs de l'image soient normalisĂ©es et une correction gamma correcte. Cette Ă©tape ne s'est finalement pas avĂ©rĂ©e nĂ©cessaire, la normalisation du descripteur lui-mĂȘme s'avĂ©rant suffisante. Dalal et Triggs ont Ă©galement testĂ© plusieurs espaces de couleurs, le meilleur Ă©tant RGB.
La premiÚre étape de la méthode est le calcul du gradient, la méthode la plus courante pour cela consistant à appliquer un filtre dérivatif 1-D centré, dans les directions horizontales et verticales. Les masques suivants sont utilisés pour cela:
Dans le cas des images couleurs, le gradient est calculé séparément pour chaque composante, et on retient pour chaque pixel le gradient de plus grande norme.
D'autres types de masques plus complexes ont été testés, comme des filtres de Sobel 3x3, ou des masques diagonaux, ou non centrés. Dalal et Triggs ont également essayé d'appliquer un filtrage gaussien avant l'application du masque, mais toutes ces opérations font baisser sensiblement les performances par rapport à l'application du masque dérivatif le plus simple, et sans filtrage préalable[3].
Construction de l'histogramme
La seconde étape est la création des histogrammes de l'orientation des gradients. Ceci est fait dans des cellules carrées de petite taille (de 4x4 à 12x12 pixels). Chaque pixel de la cellule vote alors pour une classe de l'histogramme, en fonction de l'orientation du gradient à ce point. Le vote du pixel est pondéré par l'intensité du gradient en ce point. Les histogrammes sont uniformes de 0 à 180° (cas non signé) ou de 0 à 360° (cas signé).
Dalal et Triggs font remarquer qu'une quantification fine de l'histogramme est nĂ©cessaire, et ils obtiennent leurs meilleurs rĂ©sultats avec un histogramme Ă 9 classes. Prendre en compte le signe du gradient n'amĂ©liore pas les performances pour la dĂ©tection de personnes, mais peut ĂȘtre significatif pour d'autres types d'objets[3].
Formation des blocs
Une étape importante est la normalisation des descripteurs afin d'éviter les disparités dues aux variations d'illumination. Cette étape introduit également de la redondance dans le descripteur.
Pour cela, les auteurs regroupent plusieurs cellules dans un bloc, qui est l'unitĂ© sur laquelle est effectuĂ©e la normalisation. Les blocs se recouvrent, donc une mĂȘme cellule participe plusieurs fois au descripteur final, comme membre de blocs diffĂ©rents. Deux types de gĂ©omĂ©trie de blocs sont proposĂ©es: rectangulaire (R-HOG) ou circulaire (C-HOG). Les expĂ©riences faites par Dalal et Triggs ont montrĂ© que la meilleure performance Ă©tait obtenue pour des blocs rectangulaires contenant 3x3 cellules de 6x6 pixels chacune. Une amĂ©lioration mineure de performance est obtenue en pondĂ©rant les pixels par une fenĂȘtre gaussienne sur le bloc, diminuant la contribution des pixels sur les bords. Les auteurs remarquent que la formation du descripteur R-HOG est assez semblable au descripteur SIFT, Ă la diffĂ©rence que les R-HOG sont calculĂ©s sur une grille dense et Ă une seule Ă©chelle, et non sur des points d'intĂ©rĂȘts Ă plusieurs Ă©chelles comme les SIFT.
Normalisation des blocs
Quatre types de normalisation sont explorées. Le vecteur non normalisé contenant tous les histogrammes d'un seul bloc est désigné par , sa k-norme par et est une constante de faible valeur. Le facteur de normalisation est alors défini par:
- L2-norme:
- L1-norme:
- L1-racine:
Une quatriÚme norme L2-hys, consistant à calculer v tout d'abord par la L2-norme, puis limiter les valeurs maximales de v à 0.2, et ensuite à renormaliser. Les normes L2-Hys, L2-norme, et L1-racine obtiennent des performances similaires, tandis que L1-norme obtient de moins bons résultats, mais toutefois bien meilleurs que l'absence de normalisation[3].
Classification
L'Ă©tape finale dans le processus de dĂ©tection d'objet est l'utilisation des descripteurs HOG pour entraĂźner un classifieur supervisĂ©. Cette Ă©tape ne fait pas partie de la dĂ©finition du descripteur HOG Ă proprement parler et diffĂ©rents types de classifieurs peuvent ĂȘtre utilisĂ©s. Dalal et Triggs choisissent volontairement un classifeur simple, un SVM Ă noyau linĂ©aire, afin de mesurer essentiellement l'apport des HOG. Ils prĂ©cisent en particulier qu'il serait intĂ©ressant de dĂ©velopper une mĂ©thode Ă base de cascade comme la mĂ©thode de Viola et Jones, en utilisant les HOG[3].
Ils prĂ©cisent que l'utilisation d'un noyau gaussien amĂ©liore les performances de 3 %, pour un taux de faux positifs par fenĂȘtre de , mais un coĂ»t de calcul bien plus Ă©levĂ©.
Extensions
Lors du workshop PASCAL sur la dĂ©tection de classe d'objet en 2006, Dalal et Triggs ont prĂ©sentĂ© des rĂ©sultats de l'application des HOG sur d'autres types d'objets, en particulier des voitures, des bus, des vĂ©los, ainsi que des animaux comme des chiens, chats, vaches. Pour obtenir de bons rĂ©sultats, les paramĂštres de taille de blocs et la mĂ©thode normalisation doivent ĂȘtre adaptĂ©s pour chaque classe d'objet[4]. Toujours en 2006, Ă ECCV, Dalal et Triggs, avec Cordelia Schmid ont proposĂ© une extension Ă la vidĂ©o, pour dĂ©tecter des personnes dans des films. Cela consiste Ă combiner les HOG calculĂ©s sur chaque image de la vidĂ©o, avec un histogramme de mouvement (Internal Motion Histograms IMH) entre deux images successives. Les IMH utilisent l'amplitude du gradient provenant du Flux optique calculĂ© sur deux images consĂ©cutives, et ces amplitudes sont utilisĂ©es de la mĂȘme maniĂšre que les HOG calculĂ©s sur les images statiques. Lors de tests sur des corpus extraits de plusieurs DVD de films, la mĂ©thode qui combine HOG et IMH obtient un taux de ratĂ©s de 0.1, pour de taux de fausse alarme[5].
Les HOG ont rapidement été repris par d'autres chercheurs pour des systÚmes de détection de personnes. En 2006, des chercheurs de l'INSA Rouen et de l'université de Parme proposent un systÚme basé sur les HOG et deux caméras infrarouges, et la position des personnes est estimée par stéréovision[6]
Lors de la conférence CVPR de 2006, des chercheurs de Mitsubishi Electric proposent d'utiliser les HOG en combinaison avec une cascade de classifieurs, similaire à celle présente dans la méthode de Viola et Jones. Ils introduisent également des blocs qui varient en taille et en position, et les meilleurs sont sélectionnés par AdaBoost. Leurs expériences donnent des résultats similaires à ceux de Dalal et Triggs, mais avec des temps de détection jusqu'à 70 fois plus rapide[7]. Un brevet a été déposé par Mitsubishi sur cette méthode.
Notes et références
- (en) Cet article est partiellement ou en totalitĂ© issu de lâarticle de WikipĂ©dia en anglais intitulĂ© « Histogram of oriented gradients » (voir la liste des auteurs).
- S. Belongie, J. Malik, and J. Puzicha. Matching shapes. ICCV, Vancouver, Canada, 2001, p. 454â461.
- W. T. Freeman and M. Roth. Orientation histograms for hand gesture recognition. Intl. Workshop on Automatic Face-and Gesture- Recognition, juin 1995, p. 296â301.
- N. Dalal et B. Triggs, « Histograms of Oriented Gradients for Human Detection », 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05), IEEE, vol. 1,â , p. 886â893 (ISBN 978-0-7695-2372-9, DOI 10.1109/CVPR.2005.177, lire en ligne, consultĂ© le )
- (en) « Object Detection using Histograms of Oriented Gradients »
- (en) « Human Detection Using Oriented Histograms of Flow and Appearance » [archive du ] (consulté le )
- (en) « Pedestrian Detection using Infrared images and Histograms of Oriented Gradients »
- (en) « Fast Human Detection Using a Cascade of Histograms of Oriented Gradients »