Rilevamento di persone dall'alto


16

Sto cercando di trovare un metodo per rilevare le persone che usano solo una telecamera a 3 metri dal suolo. Questa è una cornice restituita dalla fotocamera:

inserisci qui la descrizione dell'immagine

AGGIORNAMENTO: test video -> http://dl.dropbox.com/u/5576334/top_head_shadow.avi

Per fare ciò, per prima cosa capisco che devo eseguire una segmentazione in primo piano. Questa è la parte facile.

Con la maschera in primo piano, sono in grado di eseguire semplici operazioni come Hough per trasformare i cerchi, ma in questo modo rileva solo il 60% delle teste, inclusi molti falsi positivi.

Potrei usare altre semplici tecniche come la segmentazione del colore, ma ho scoperto che le teste delle persone sono molto diverse viste dall'alto a causa della loro acconciatura, colore, quantità di capelli, ...

Un'altra opzione che ho a riguardo è la possibilità di utilizzare descrittori HOG o funzionalità simili a Haar, ma avrei bisogno di un ampio database di persone viste dall'alto per addestrare i modelli. Non ho trovato niente del genere.

Ho pensato che questo sarebbe stato un problema molto ricorrente, ma non riesco a trovarlo molto in letteratura o in Internet. Qualsiasi aiuto per risolvere questo compito sarà apprezzato :-)

AGGIORNAMENTO: per ulteriori informazioni, l'obiettivo è implementare alcuni metodi generici per effettuare il monitoraggio del flusso pedonale. Il primo prototipo sarà testato in un centro commerciale.


1
Se puoi pubblicare alcuni video, c'è la possibilità che qualcuno scriva un prototipo. Puoi pubblicare per favore?
Andrey Rubshtein,

@Andrey, ho caricato un test video che mostra il problema.
emepetres

@emepetres Se hai risorse per testare questo problema, forse hai anche risorse per trovare una fotocamera secondaria? Combinazione di viste da due telecamere (una vista dall'alto e una frontale o da un'angolazione) e utilizzo di informazioni provenienti da entrambi i suoni interessanti e come un approccio plausibile al tracciamento del flusso pedonale (a seconda dell'accuratezza di cui hai bisogno)
penelope

4
questo compito è chiamato "conteggio delle persone" in letteratura.
MrGloom,

Puoi fornire il link per questo video. Non è più disponibile nel collegamento fornito
Garvita Tiwari,

Risposte:


11

Ci sono altri oggetti che possono muoversi accanto alle persone? In caso contrario, è possibile trovare solo i BLOB (componenti connessi) nella maschera di primo piano e queste sono le persone.

Possono anche "scontrarsi" tra loro, creando un blob anziché due. In questo caso, è possibile eseguire un rilevamento del movimento e risolvere l'ambiguità utilizzando il fatto che la traiettoria e la velocità sono fluide.

Se ci sono altri oggetti (come cani, automobili), è necessario creare un classificatore che ottenga parametri BLOB come:

  • Statistiche BLOB (dimensioni, solidità, ecc.)
  • Colore
  • Informazioni sui bordi
  • Velocità (in caso di tracciamento)

E restituisce la classe corretta (Human / No Human).


1
Sto cercando un metodo robusto in grado di distinguere anche tra umano / non umano. In questo modo, dopo aver pensato alla tua risposta, penso che l'utilizzo dei parametri BLOB come hai suggerito, combinato con alcune funzionalità di tracciamento e alcune informazioni statistiche del BLOB dovrebbe essere abbastanza robusto.
emepetres

8

Sono stato nel "al fine di utilizzare metodi ben testati avrei bisogno di un ampio database di esempi che non ho" posizione in una società molto piccola che "non poteva permetterselo". Mi dispiace molto di non aver semplicemente fatto tutto il necessario per ottenere quanti più dati possibili. Penso che avrebbe fatto la differenza per loro alla fine.

Qualsiasi tipo di rilevamento della visione del mondo reale ha un milione di cose a cui non hai pensato fino a quando non l'hai provato e non è riuscito. È un vecchio problema molte, molte volte più difficile di quanto sembri. Consiglierei di attenersi al metodo newton di "stare in piedi sulle spalle dei giganti" (o, quasi altrettanto bene, in cima a una grande pila di nani). Cioè, utilizzare un metodo che già conosci funziona ed è robusto. Tutte le cose che sembrano essere "abbastanza buone" invece falliranno miseramente.

Lo stato dell'arte del rilevamento pedonale è stato l' ultimo che ho saputo essere HOG che è stato originariamente testato esattamente in quel contesto. Volete tracciare, quindi dovrete giocare un po 'su Google Scholar per trovarlo. Acquista il mio punto principale è che sono stato in una posizione simile e da ciò ti consiglierei di ottenere il tuo database, qualunque cosa tu debba fare, e usare qualcosa che conosci funziona, che è già testato con un tasso di fallimento noto, non qualcosa che suona bene. La marcia della morte di 40 anni degli algoritmi di visione artificiale che "sembrano funzionare" non è qualcosa di cui vuoi far parte.

PS Non sto cercando di criticare la visione artificiale. È una delle mie aree preferite. Ma la sua storia suggerisce che ci sono mille passi sbagliati da prendere e non molti quelli giusti. È meglio seguire qualcuno che ha già trovato alcuni di quei passi giusti.


Forse hai ragione, e dovrei dedicare un po 'di tempo a creare un buon database per addestrare e testare un descrittore HOG. In questo modo, sai quale dimensione minima avrebbe questo database per rendere la formazione corretta?
emepetres

1
Non lo so. La più ampia varietà possibile. Inoltre, HOG è un rilevatore, restituisce una risposta "sì, c'è una persona" o "nessuna persona" per un'immagine e nient'altro. Non dice nulla su dove si trova la persona (posizione) o quali pixel sono la persona (segmentazione) o se ci sono più persone contro una persona. Penso che siano stati fatti alcuni adattamenti a HOG (alcuni brevettati), ma il punto è quello che vuoi è il monitoraggio delle persone e HOG così com'è solo per il rilevamento , nemmeno per la posizione. Non l'ho mai fatto, ma il monitoraggio delle persone è un argomento di vecchia data. Consulta i documenti sul monitoraggio delle persone.
John Robertson,

1
@John Robertson HOG non è un rilevatore, è solo un descrittore ed è usato con alcuni classificatori (SVM + HOG per esempio) e può restituire la posizione dell'oggetto.
MrGloom,

1
@mrgloom Hai ragione. Restituisce la posizione eseguendo una ricerca con finestre. Questo è veloce solo usando un metodo brevettato da una grande azienda. Non intendevo usare il rilevatore di parole in senso tecnico qui, solo nel semplice senso inglese che è qualcosa che rileva. Fornisce solo la posizione in senso lato che all'interno di quella finestra c'è qualcuno a circa l'80-90% della scala della finestra, ma senza alcuna identificazione di quali parti della finestra potrebbero appartenere alla persona. Conosco la distinzione tecnica descrittore / rivelatore.
John Robertson,

3

Penso che potresti iniziare combinando alcune risposte da qui.

Ci sono due approcci diversi menzionati in questa risposta, con la principale differenza che è impossibile per te fare il rilevamento dei volti poiché non vedi i volti. Ma l'altro approccio è ancora applicabile: decidere il tempo in cui qualcosa è pedonale o non si basa sulle sue azioni (movimenti) .

Questo, come previsto, suggerirebbe di utilizzare una sorta di segmentazione in primo piano. Un googling molto veloce ha trovato questo recente articolo che sembrava piuttosto promettente, ma dal momento che non l'ho mai fatto personalmente, tu o qualcun altro potresti avere suggerimenti migliori per algoritmi specifici da utilizzare in questo passaggio.

Ora, la prima risposta che ho collegato dà solo un'idea di approccio molto generale. Questa risposta, tuttavia, potrebbe darti un'idea dei tuoi prossimi passi: traccia gli oggetti e prova a distinguerli in base alla velocità o alla direzione di movimento .

Infine, non ho mai affrontato il problema che hai avuto, quindi probabilmente non sono di grande aiuto, ma forse le risposte a cui mi sono collegato possono darti un'idea generale da dove cominciare. Mi ha anche sorpreso il fatto che non sono riuscito a trovare lavori e articoli precedenti durante la ricerca di una risposta al tuo problema, ma forse hai solo bisogno di qualcuno che ti dica le parole chiave corrette per descrivere questo problema .


La ringrazio per la risposta. L'articolo sulla segmentazione in primo piano sembra molto interessante. Come hai suggerito tu e @Andrey, seguirò l'approccio dell'analisi BLOB per determinare il numero di umani in ciascun BLOB.
emepetres

@emepetres Sarebbe bello se ci facessi sapere i tuoi risultati e quanto successo è stato l'approccio dopo averlo provato e testato
penelope,

1

Ho una sorta di compito come descritto qui, contare le persone. Ma il mio requisito è che la fotocamera dovrebbe essere rivolta verso le persone dal lato sinistro / destro, non sopra la testa.

Detto questo, esplorando la possibile soluzione per il mio caso, mi imbatto in un metodo interessante per il tuo caso (rilevamento ambientale). Queste soluzioni utilizzano la videocamera stereo in modo da poter gestire i BLOB (le persone che si avvicinano troppo vicine) osservando la profondità (ad es. Vedere solo i BLOB a livello medio delle persone).

Questo prodotto potrebbe darti una spiegazione migliore: digiop . Vedi la brochure per ulteriori spiegazioni tecniche.

PS Non sto rappresentando l'azienda, sto solo indicando una soluzione ben documentata


Grazie per la condivisione, sembra essere un modo interessante per risolvere il problema.
emepetres
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.