Domanda

Si prega di spiegare a me, in poche parole, come il rilevamento del volto metodo funziona Viola-Jones.

È stato utile?

Soluzione

Il rilevatore Viola-Jones è un forte, binario classificatore di compilazione di diversi debole rilevatori

Each weak detector is an extremely simple binary classifier

Durante la fase di apprendimento, una cascata di rilevatori deboli è addestrato in modo da ottenere la velocità desiderata hit rate / perdere (o di precisione / richiamo) usando AdaBoost Di rilevare oggetti, l'immagine originale viene suddiviso in vari rettangolare patch, ognuno dei quali è sottoposto alla cascata

Se una patch un'immagine rettangolare passa attraverso tutti gli stadi in cascata, allora è classificato come “positivo” Il processo viene ripetuto a diverse scale

entrare descrizione dell'immagine qui

In realtà, ad un livello basso, il componente di base di un rilevatore di oggetti è solo qualcosa da dire, se necessario un certo sottoregione dell'originale immagine contiene un'istanza del oggetto di interesse o meno. Questo è quello che un classificatore binario fa.

La base, classificatore debole si basa su una semplice funzione visiva (quelli tipo di caratteristiche sono spesso indicati come “Haar-come le caratteristiche”)
entrare descrizione dell'immagine qui

Haar-come le caratteristiche consistono in una classe di di locali caratteristiche che sono calcolati sottraendo la somma di una subregione della funzione dalla somma dei restanti regione della funzione .

entrare descrizione dell'immagine qui
Tali funzionalità sono caratterizzati dal fatto che sono facili da calcolare e con l'uso di un'immagine integrale, molto efficiente per calcolare.

Lienhart introdotto un set esteso di funzionalità come Haar (vedi immagine) contorta di

entrare descrizione dell'immagine qui
Questi sono la caratteristica Haar-come standard che sono stati intrecciati di 45 gradi. Lienhart non originariamente avvalersi della scacchiera twisted Haar-like feature (X2Y2) poiché gli elementi diagonali che rappresentano può essere semplicemente rappresentato usando twisted caratteristiche, tuttavia è chiaro che una versione distorta di questa funzione può anche essere implementato e utilizzato.

Questi twisted Haar-simili caratteristiche possono anche essere veloce ed efficiente calcolate utilizzando un'immagine integrale che si è ritorto 45 gradi. L'unico problema è che l'attuazione le caratteristiche ritorti devono essere arrotondati a valori interi in modo che siano allineati con i limiti dei pixel. Questo processo è simile a quello di arrotondamento usato durante il ridimensionamento un Haar simile funzionalità per pozzetti più grandi o più piccoli, ma una differenza è che per a 45 gradi caratteristica ritorto, il numero intero di pixel utilizzati per l'altezza e la larghezza della Funzione medio che le coordinate diagonali del pixel saranno sempre sullo stesso insieme diagonale di pixel

entrare descrizione dell'immagine qui
Ciò significa che include disponibile il numero di diverse dimensioni 45 gradi ritorto è notevolmente ridotto rispetto allo standard verticalmente e orizzontalmente caratteristiche allineate.

Quindi, abbiamo qualcosa di simile: entrare descrizione dell'immagine qui

A proposito della formula, il calcolo rapido di Haar-come le caratteristiche che utilizzano immagini integrali assomiglia:

entrare descrizione dell'immagine qui

Infine, ecco un c ++ applicazione quali usi ViolaJones.h di Ivan Kusalic

per vedere il C ++ progetto completo andate qui

Altri suggerimenti

Il rivelatore Viola-Jones è un strong binario classificatore build più rivelatori deboli. Ogni rivelatore debole è estremamente semplice classificatore binario

La rilevazione è costituito da sotto le parti:

Haar Filter: estratto di caratteristiche da immagine a calssify (caratteristiche agiscono per codificare ad hoc conoscenza di dominio)

Integral Image: permette per la valutazione caratteristica molto veloce

Cascade Classifier: Una cascata classificatore è costituito da più strati di filtri, per classificare un'immagine (finestra scorrevole di un'immagine) è una faccia

.

Ecco una panoramica di come rilevare un volto in un'immagine.

entrare descrizione dell'immagine qui

una finestra di riconoscimento turni circa l'intera funzione immagine estratto (da haar filter calcolato Integral Image quindi inviare la caratteristica estratto di Cascade Classifier classificare se è una faccia). Gli spostamenti delle finestre scorrevoli pixel-by-pixel. Ogni volta che i turni delle finestre, l'area di immagine all'interno della finestra passerà attraverso il classificatore a cascata.

Haar Filter:. Si può capire il filtro in grado di estrarre le caratteristiche come eyes, bridge of the nose e così via

entrare descrizione dell'immagine qui

Integral Image: permette per la valutazione caratteristica molto veloce

entrare descrizione dell'immagine qui

Cascade Classifier:

Un classificatore cascata è costituito da più strati di filtri, come mostrato in figura. Ogni volta che i turni di scorrimento delle finestre, la nuova regione all'interno della finestra scorrevole passerà attraverso il classificatore a cascata fase-by-stage. Se la regione di ingresso non supera la soglia di una fase, il classificatore cascata immediatamente respingere la regione come una faccia. Se una regione passare tutte le fasi correttamente, verrà classificato come candidato del viso, che può essere raffinato mediante ulteriore elaborazione.

entrare descrizione dell'immagine qui

Per ulteriori dettagli:

In primo luogo, vi suggerisco di leggere il giornale fonte Rapid Object Detection utilizza un Cascade Boosted di semplici caratteristiche per avere una panoramica comprensione del metodo.

Se non è possibile capire chiaramente, si può vedere Viola-Jones Face Detection o implementazione dell'algoritmo Face Detection Viola-Jones Studio di Viola-Jones Tempo reale Viso Detector per maggiori dettagli .

Ecco un codice pitone attuazione Python dell'algoritmo rilevamento del volto di Paul Viola e Michael J. Jones .

qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top