Qui è un eccellente codice Matlab che implementa completamente l'algoritmo di Dalal. Ho testato e utilizzato questo codice per molti importanti progetti accademici.
http://hi.baidu.com/fpmaldfoamdfmze/item/4f3b3ac881affcb00c0a7b11 Tutto il credito va alla persona che ha pubblicato questo!
HOG non è specifico per il rilevamento dei pedoni. Puoi usarlo con qualsiasi oggetto rigido (o approssimativamente rigido).
Per utilizzare questo codice, è necessario capire come HOG è calcolato su una regione. La regione è divisa in "blocchi" sovrapposti. I blocchi consistono in un numero di "celle". Un istogramma di orientamento spaziale è calcolato in ciascun blocco. Il vettore finale è formato concatenando questi istogrammi spaziali. I parametri che è possibile modificare sono
cellpw, cellph: larghezza e altezza del pixel della cella rispettivamente.
nblockw, nblockh: dimensione del blocco contata dal numero di celle rispettivamente in direzione xe y.
nthet: numero di scomparti angolari.
issigned: firmata o gradiente senza segno viene acquistata
sovrapposizione: quantità di sovrapposizione tra blocchi indicati come frazione
isglobalinterpolate: se interpolazione globale o locale di 3d istogramma
normmethod: tipo di norma utilizzato
È possibile provare con i parametri predefiniti -
cellpw = 8; cellph = 8; nblockw = 2; nblockh = 2; nthet = 9; sovrapposizione = 0,5; isglobalinterpolate = 'localinterpolate'; assegnato = 'non firmato'; normmethod = 'l2hys';
in MATLAB ottenendo la caratteristica è qualcosa di simile
I = imread('car.png');
Ig = rgb2gray(I);
F = hogcalculator(Ig, 8, 8, 2, 2, 9, 0.5,'localinterpolate', 'unsigned', 'l2hys');
La dimensione/lunghezza F dipende dalle paramenters si sceglie.
Risposta al tuo commento, Sì, devi costruire queste funzioni per le tue immagini positive (auto) e negative (non auto) per costruire un sistema di rilevamento. SVM viene in genere utilizzato come classificatore.Io suggerisco di usare biblioteca libsvm -
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Una volta che si genera il training set, in treno con il training set. Modificare i parametri SVM per ottenere la massima precisione. I parametri forniti nell'esempio potrebbero non essere i migliori, puoi sempre provare un set diverso. Proverei a cambiare nthet, cellpw e cellph prima. Buona fortuna!
Salve, vorrei suggerire di provare prima a google .. Comunque qui è un link per codice MATLAB si dà un'immagine in input (non solo gli esseri umani qualsiasi immagine lo farà produrre un vettore di funzionalità di maiale di lunghezza 81) [HOG] (http://www.mathworks.com/matlabcentral/fileexchange/28689-hog-descriptor-for-matlab) – G453
@Sistu questo codice senza alcuna descrizione più è usato per rilevamento umano :( – Mario
Dai un'occhiata al documento a cui si riferisce la descrizione o almeno un estratto dagli atti IEEE La mia (molto generale) comprensione è che questa funzione è progettata per restituire i descrittori HOG per l'immagine fornita. quindi usa quei descrittori per r la tua applicazione. Quindi se gli dai una "macchina" otterrai dei descrittori che puoi usare per "macchine". –