Conteggio dei veicoli da un video


10

Disclaimer : ho pubblicato questa domanda su StackOverFlow ma ho appreso che qui è più adatto.

Sono un po 'nuovo nell'elaborazione delle immagini, quindi vorrei chiederti di trovare la soluzione ottimale per il mio problema, non di aiuto per il codice. Non riuscivo a pensare a una buona idea, ma volevo chiedere il tuo consiglio.

Sto lavorando a un progetto usando OpenCV per contare i veicoli da un file video o una videocamera live. Altre persone che lavorano su un progetto del genere generalmente tengono traccia degli oggetti in movimento, quindi li contano, ma invece di quello, volevo lavorare con un punto di vista diverso; chiedendo all'utente di impostare un ROI (Regione di interesse) sulla finestra del video e di lavorare solo per questa regione (per alcuni motivi, come non occuparsi dell'intero frame e un aumento delle prestazioni), come mostrato di seguito. (L'utente può impostare più di un ROI e all'utente viene chiesto di impostare l'altezza del ROI circa due volte di un'auto normale in base al senso della proporzione.)

picture1

Finora ho fatto alcuni progressi di base, come l'aggiornamento dello sfondo, i filtri morfologici, il limite e ottenere l'oggetto in movimento come immagine binaria come qualcosa di seguito.

picture2

Dopo averli fatti, ho provato a contare i pixel bianchi del fotogramma di primo piano con soglia finale e stimare se si trattava di un'auto o meno controllando il numero totale di pixel bianchi (ho impostato un limite inferiore da un calcolo statico conoscendo l'altezza del ROI) . Per illustrare, ho disegnato un esempio grafico:

picture3

Come puoi vedere, è stato facile calcolare i pixel bianchi e controllare se traccia una curva nel tempo e determinare se un'auto o qualcosa di simile al rumore.

Problema

Ho avuto un discreto successo fino a quando due macchine non hanno superato il mio ROI contemporaneamente. Il mio algoritmo li ha erroneamente contati come una macchina. Ho provato approcci diversi per questo problema e simile a questo come i veicoli lunghi, ma non ho trovato una soluzione soddisfacente.

Domanda

È possibile gestire questa attività con questo approccio al conteggio del valore dei pixel? In caso contrario, cosa suggerisci?


Il tuo problema è il motivo per cui le persone usano il monitoraggio. Inoltre, vuoi che le auto che si muovono insieme (diciamo, un'auto con un rimorchio) siano conteggiate come un veicolo o due?
Emre,

Innanzitutto, grazie per l'edizione. Non mi aspetto una precisione del 100%, le auto con rimorchio possono essere ignorate. ma se si tratta di due macchine separate che si avvicinano molto, devo fare in modo che il programma distingua entrambe, ma non ne ho idea.
Horizon1710,

Risposte:


5

È possibile tenere traccia degli ultimi 10-15 fotogrammi e contare il numero di pixel bianchi di questi fotogrammi. Puoi differenziare se è un veicolo o meno, poiché il grafico sarà alto per 10-15 fotogrammi, sarai in grado di dire che è un veicolo altrimenti è rumore.

Per contare più auto in più corsie affiancate puoi controllare la colonna di pixel in senso verticale, intendo in senso verticale. Per ora devi controllare i pixel in orizzontale per i pixel bianchi.


Sì, hai ragione sul controllo delle linee verticali, ma come? Posso determinare il punto di ingresso dei veicoli controllando la prima riga del mio ROI?
Horizon1710,
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.