2011-10-04 23 views
11

Mi piacerebbe sapere se è disponibile un codice o una buona documentazione per l'implementazione delle funzionalità HOG? Ho provato a leggere la documentazione here ma è molto difficile da capire e ha bisogno di SVM ..HOG per "oggetto di rilevamento" opencv

Che cosa ho bisogno è solo di realizzare un rilevatore HOG per gli oggetti .... Come quello che lo fa SIFT o SURF

Btw, non sono interessante nel lavoro this.

grazie ..

+0

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

risposta

4

si può dare un'occhiata a http://szproxy.blogspot.com/2010/12/testtest.html

ha pubblicato anche "tutorial" per HOG su Source Forge qui: http://sourceforge.net/projects/hogtrainingtuto/?_test=beta

So che questo visto che sono avere lo stesso problema di te. Il tutorial però non è quello che chiamerei un tutorial, è un sacco di codici sorgente, nessuna documentazione, ma presumo che funzioni e possa almeno portarti da qualche parte.

+0

Grazie per la risposta , ma per rilevare le persone, è già implementato un tutorial nei campioni in open source opencv, ma non conosco i parametri richiesti per il rilevamento degli oggetti. – Mario

1

C'è una funzione extractHOGFeatures nella casella degli strumenti del sistema di visione artificiale per MATLAB.

1

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.