Alla fine e semplificando un po ', tutto quello che serve per rilevare gli oggetti specifici dell'immagine è:
"punti di interesse"
- Localizzare per estrarre le patch:
Al fine di ottenere punti di interesse, è possibile utilizzare alcuni algoritmi come rivelatore d'angolo Harris, in modo casuale o semplicemente qualcosa come finestre scorrevoli.
- Da questi punti ottenere patch:
si dovrà prendere la decission della dimensione patch.
- Da queste patch calcolare il descrittore di funzione. (come HOG).
Invece di HOG è possibile utilizzare un altro descrittore funzionalità come SIFT, SURF ...
implementazione di HOG non è troppo difficile. Devi calcolare i gradienti della patch estratta facendo uso dei kernel Sobel X e Y, dopo di che devi dividere il patch in celle NxM, ad esempio 8x8, e calcolare un istogramma di gradienti, angolo e grandezza. Nel seguente link si può vedere spiegazione più dettagliata: HOG Person Detector Tutorial
- Controlla la tua funzione di vettore nel classificatore in precedenza allenato
Una volta ottenuto questo vettore, controllare se è l'oggetto desiderato o no con un classificatore precedentemente addestrato come SMV. Invece SVM potresti usare NeuralNetworks per esempio.
L'implementazione SVM è più difficile, ma ci sono alcune librerie come opencv che è possibile utilizzare.
Sono un po 'in ritardo ma per un esempio semplice e diretto VEDERE: http://stackoverflow.com/questions/6090399/get-hog-image-features-from-opencv-python – jmunsch