2013-04-26 14 views
8

Sto cercando di implementare un sistema di conteggio delle persone utilizzando la visione artificiale per il progetto uni. Attualmente, il metodo è:Come gestire l'occlusione e la frammentazione

  1. sottrazione Sfondo utilizzando MOG2
  2. filtro morfologico per rimuovere il rumore
  3. blob cingolati
  4. conte blob passando una regione determinata (linea)

Il problema è se le persone vengono come gruppo, il mio metodo conta solo una persona. Dalle mie letture, credo che questo sia ciò che viene chiamato come occlusione. Un altro problema è quando le persone sembrano simili allo sfondo (usano vestiti scuri e passano un pilastro/muro nero), il blob viene separato mentre è in realtà una persona. enter image description here

Da quello che ho letto, dovrei implementare un rilevatore + tracker (per esempio rilevare l'uomo usando HOG). Ma il mio risultato di rilevamento è scarso (ad esempio il 50% di falsi positivi con il 50% di hit rate, utilizzando il rivelatore umano OpenCV e il mio rilevatore esperto) quindi non sono convinto di usare il rilevatore come base per il tracciamento. Grazie per le tue risposte e il tempo per leggere questo post!

risposta

3

Non c'è una sola risposta "buona" a questa, poiché la gestione dell'occlusione (e della sottostruttura di fondo) sono ancora problemi aperti! Ci sono diverse indicazioni che possono essere fornite che potrebbero aiutarti insieme al tuo progetto.

Si desidera rilevare se un "blob" è una persona o un gruppo di persone. Ci sono molte cose che potresti fare per gestirlo.

  • Utilizzare telecamere multiple (è improbabile che un gruppo di persone viene rilevato come un unico blob da tutte le angolazioni)
  • cercare di individuare le parti del corpo umano. Se rilevi due teste su un singolo blob, ci sono più persone. Lo stesso si può dire per 3 gambe, 5 spalle, ecc.

Sull'area di tracciamento di una persona "persa" (uno che cammina dietro un altro oggetto), è di estrapolare la sua posizione. Sai che una persona può muoversi così tanto tra fotogrammi. Tenendo conto di ciò, sai che è impossibile che un utente venga rilevato nel mezzo dell'immagine e poi improvvisamente scompaia. Dopo diversi fotogrammi di non vedere quella persona, puoi scartare l'osservazione, poiché la persona potrebbe aver avuto abbastanza tempo per andarsene.

+0

Vedo, quindi quello di cui ho bisogno è di migliorare e modificare il mio rilevatore, dal rivelatore umano completo al rivelatore umano basato su parti. Ne leggerò di più, perché ho più familiarità con il rilevamento, usando HOG, LBP, Latent SVM piuttosto che più telecamere. Grazie Nallath! – bonchenko

+0

È un po 'come il cosiddetto modello "Borsa delle parole". – Nallath

5

Tracciare le persone nelle sequenze di videosorveglianza è ancora un problema aperto nella comunità di ricerca. Tuttavia, particule filters (PF) (aka monte-carlo sequenziale) dà buoni risultati verso l'occlusione e la scena complessa. Dovresti leggere this. Ci sono anche collegamenti extra per esempio il codice sorgente dopo biblio.

Un vantaggio nell'utilizzo di PF è il guadagno in termini di tempo di computazione verso il rilevamento mediante rilevamento (solo).

Se andate in questo modo, sentitevi liberi di chiedere una migliore comprensione della matematica dietro il PF.

+1

Grazie per l'avviso, @Eric.Ho trovato diversi articoli correlati o discussioni sulle persone che monitoravano la menzione del filtro antiparticolato. - http://stackoverflow.com/questions/15873484/particle-filter-for-multi-object-tracking - http://stackoverflow.com/questions/4903016/tracking-blobs-with-opencv/4904213#4904213 Mi addentrerò sicuramente più nei soggetti! PS. Immagino tu intenda il filtro antiparticolato, non il filtro particolare – bonchenko

+0

Sì, hai ragione. – Eric

Problemi correlati