Avant de savoir comment fonctionne H.O.G, laissez-nous savoir quels sont les gradients dans ce contexte. Prenez l’image suivante par exemple:
Lorsque vous passez de gauche à droite pixel par pixel, vous constaterez qu’après quelques étapes, il y a un changement soudain de la valeur du pixel, c’est-à-dire d’un nombre de pixels inférieur noir à un nombre de pixels supérieur blanc. Ce changement soudain de couleur s’appelle un dégradé et passer d’un ton plus foncé à un ton plus clair s’appelle un dégradé positif et vice versa. Aller de gauche à droite nous donne le gradient horizontal et comme prévu, aller de haut en bas donne un gradient vertical.
Comment fonctionne le H.O.G
HOG fonctionne avec quelque chose appelé un bloc qui est similaire à une fenêtre coulissante. Un bloc est considéré comme une grille de pixels dans laquelle des gradients sont constitués à partir de l’amplitude et de la direction du changement des intensités du pixel à l’intérieur du bloc.
Choses à noter: HOG fonctionne sur des images en niveaux de gris.
1 — La première étape serait donc de convertir une image RVB en niveaux de gris.
2 — Pour y regarder de plus près, concentrons-nous sur une telle grille de taille 8 * 8. Regardez l’image suivante.
Dans le bloc de 64 pixels, pour chaque pixel, les gradients horizontaux et verticaux sont calculés. Comme dans l’image ci-dessus, les gradients horizontaux et verticaux sont calculés comme suit:
Gradient horizontal: 120 -70 = 50
Gradient vertical : 100 -50 = 50
3 — Une fois que nous obtenons les gradients, nous essayons de calculer quelque chose appelé amplitude de gradient et angle de gradient pour chacun des 64 pixels.
Maintenant, avec ces 64 vecteurs de gradient, nous essayons de les compresser en 9 vecteurs, en essayant de conserver la structure maximale. Pour ce faire, nous essayons de tracer un histogramme des grandeurs et des angles. Ici, l’axe des abscisses est des angles et ils sont regroupés en 9 bacs d’une taille de 20 degrés chacun.
Remarque: La création de 9 bacs est décidée par les auteurs du document HOG. C’est donc à peu près constant partout.
Les résultats ci-dessus sont pour une grille 8 * 8 et nous avons compressé la représentation à 9 vecteurs.
4 – Lorsque nous glissons cette grille de 8 * 8 sur toute l’image et essayons d’interpréter les résultats de l’histogramme, nous obtenons quelque chose comme ci-dessous.
5 — Et en traçant les caractéristiques du PORC, nous constaterons que la structure de l’objet ou du visage est bien entretenue, perdant toutes les caractéristiques insignifiantes.
Et une telle entrée peut être exploitée par n’importe quel algorithme d’apprentissage automatique pour effectuer la classification ou la régression.
C’est une technique très puissante utilisée encore aujourd’hui et la détection d’objets peut être réalisée sans l’utilisation d’architectures lourdes de DL.
Le meilleur endroit pour obtenir la fonctionnalité de détection de PORCS est à partir de la bibliothèque Dlib.
Maintenant que vous connaissez un vieil outil pratique pour représenter une image dans un format compressé et en conserve la structure, vous pouvez l’intégrer dans de nombreux cas d’utilisation de la vision par ordinateur.