Liczenie pojazdów z filmu


10

Zastrzeżenie : Wysłałem to pytanie na StackOverFlow, ale dowiedziałem się, że lepiej tu pasuje.

Jestem trochę nowy w przetwarzaniu obrazu, więc chciałbym cię zapytać o znalezienie optymalnego rozwiązania mojego problemu, a nie pomoc w kodzie. Nie mogłem wymyślić dobrego pomysłu, dlatego chciałem zapytać o radę.

Pracuję nad projektem wykorzystującym OpenCV do liczenia pojazdów z pliku wideo lub kamery na żywo. Inni ludzie pracujący nad takim projektem zwykle śledzą poruszające się obiekty, a następnie je liczą, ale zamiast tego chciałem pracować z innym punktem widzenia; prosząc użytkownika o ustawienie ROI (regionu zainteresowania) w oknie wideo i pracę tylko dla tego regionu (z niektórych powodów, jak na przykład nie zajmowanie się całą klatką i pewien wzrost wydajności), jak pokazano poniżej. (Użytkownik może ustawić więcej niż jeden ROI, a użytkownik jest proszony o ustawienie wysokości ROI około dwa razy w stosunku do normalnego samochodu na podstawie proporcji.)

obrazek 1

Dotychczas poczyniłem pewne podstawowe postępy, takie jak aktualizowanie tła, filtry morfologiczne, progowanie i uzyskiwanie ruchomego obiektu jako obrazu binarnego, jak poniżej.

zdjęcie 2

Po ich wykonaniu próbowałem policzyć białe piksele ostatniej progowej klatki pierwszego planu i oszacować, czy był to samochód, czy nie, sprawdzając całkowitą liczbę białych pikseli (ustawiłem dolną granicę na podstawie obliczeń statycznych, znając wysokość ROI) . Aby to zilustrować, narysowałem przykładową grafikę:

zdjęcie 3

Jak widać, łatwo było obliczyć białe piksele i sprawdzić, czy rysuje krzywą do czasu i określić, czy samochód, czy coś w rodzaju hałasu.

Problem

Byłem całkiem udany, dopóki dwa samochody nie przejechały jednocześnie mojego ROI. Mój algorytm nieprawidłowo policzył je jako jeden samochód. Próbowałem różnych podejść do tego problemu i podobnych do takich jak długie pojazdy, ale nie znalazłem zadowalającego rozwiązania.

Pytanie

Czy można poradzić sobie z tym zadaniem poprzez takie podejście zliczania wartości pikseli? Jeśli nie, co sugerujesz?


Twój problem powoduje, że ludzie używają śledzenia. Czy też chcesz, aby samochody, które jadą razem (np. Samochód z przyczepą), były liczone jako jeden pojazd lub dwa?
Emre

Po pierwsze, dzięki za wydanie. Nie spodziewam się 100% dokładności, samochody z przyczepami można zignorować. ale jeśli to dwa osobne samochody zbliżają się bardzo blisko siebie, muszę sprawić, by program je rozróżniał, ale nie mam pojęcia.
Horizon1710

Odpowiedzi:


5

Możesz śledzić ostatnie 10-15 klatek i policzyć liczbę białych pikseli tych klatek. Możesz rozróżnić, czy jest to pojazd, czy nie, ponieważ wykres będzie wysoki dla 10-15 klatek, będziesz mógł powiedzieć, że jest to pojazd, w przeciwnym razie jest to hałas.

Aby policzyć wiele samochodów na wielu pasach obok siebie, możesz sprawdzić kolumnę pikseli pod kątem, to znaczy pionowo. Na razie musisz sprawdzać piksele w poziomie pod kątem białych pikseli.


Tak, masz rację, sprawdzając linie pionowe, ale jak? Czy mogę ustalić punkt wejścia pojazdów, sprawdzając pierwszą linię ROI?
Horizon1710
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.