Prima di sapere come funziona H. O. G fateci sapere quali sono i gradienti in questo contesto. Prendi la seguente immagine per esempio:
Quando passi da sinistra a destra pixel per pixel, scoprirai che dopo alcuni passaggi, c’è un improvviso cambiamento nel valore del pixel, cioè da un numero di pixel inferiore nero a un numero di pixel più alto bianco. Questo improvviso cambiamento nel colore è chiamato gradiente e passando da un tono più scuro a un tono più chiaro è chiamato gradiente positivo e viceversa. Andando da sinistra a destra ci dà il gradiente orizzontale e come previsto andando dall’alto verso il basso dà un gradiente verticale.
Come funziona l’HOG
HOG funziona con qualcosa chiamato blocco che è simile a una finestra scorrevole. Un blocco è considerato come una griglia di pixel in cui i gradienti sono costituiti dalla grandezza e dalla direzione del cambiamento nelle intensità del pixel all’interno del blocco.
Cose da notare: HOG funziona su immagini in scala di grigi.
1 — Quindi il primo passo sarebbe convertire un’immagine RGB in scala di grigi.
2 — Per ottenere uno sguardo più da vicino, concentriamoci su una tale griglia di dimensioni 8*8. Guarda la seguente immagine.
Nel blocco di 64 pixel, per ogni pixel, vengono calcolati i gradienti orizzontali e verticali. Come nell’immagine sopra, i gradienti orizzontali e verticali sono calcolati come:
Gradiente orizzontale: 120 -70 = 50
Gradiente verticale : 100 -50 = 50
3 — Una volta ottenuti i gradienti, proviamo a calcolare qualcosa chiamato gradient magnitude e gradient angle per ciascuno di 64 pixel.
Ora con quei 64 vettori di gradiente, proviamo a comprimerli in 9 vettori, cercando di mantenere la struttura massima. Per fare questo cerchiamo di tracciare un istogramma di grandezze e angoli. Qui l’asse x è angoli e sono binned in 9 bidoni ciascuno con una dimensione di 20 gradi.
Nota: la creazione di 9 contenitori è decisa dagli autori del documento HOG. Quindi è praticamente costante ovunque.
I risultati di cui sopra sono per una griglia 8 * 8 e abbiamo compresso la rappresentazione a 9 vettori.
4 – Quando facciamo scorrere quella griglia 8*8 lungo l’intera immagine e proviamo a interpretare i risultati dell’istogramma otteniamo qualcosa di simile al di sotto.
5 — E tracciando le caratteristiche del MAIALE scopriremo che la struttura dell’oggetto o del viso è ben mantenuta, perdendo tutte le caratteristiche insignificanti.
E tale input può essere sfruttato da qualsiasi algoritmo di apprendimento automatico per eseguire la classificazione o la regressione.
È una tecnica molto potente utilizzata ancora oggi e il rilevamento degli oggetti può essere ottenuto senza l’uso di architetture pesanti da DL.
Il posto migliore per ottenere la funzionalità di rilevamento del MAIALE è dalla libreria Dlib.
Ora che conosci un vecchio strumento utile per rappresentare un’immagine in un formato compresso e ne mantiene ancora la struttura, puoi incorporarlo in molti casi d’uso di computer vision.