Fahrzeugzählung aus einem Video

10

Haftungsausschluss : Ich habe diese Frage auf StackOverFlow gepostet, aber festgestellt, dass sie hier besser geeignet ist.

Ich bin ein bisschen neu in der Bildverarbeitung, daher möchte ich Sie fragen, ob Sie die optimale Lösung für mein Problem finden, nicht um Hilfe für Code. Ich konnte mir noch keine gute Idee vorstellen und wollte Sie um Rat fragen.

Ich arbeite an einem Projekt mit OpenCV, bei dem die Fahrzeuge aus einer Videodatei oder einer Live-Kamera gezählt werden. Andere Leute, die an einem solchen Projekt arbeiten, verfolgen im Allgemeinen die sich bewegenden Objekte und zählen sie dann. Stattdessen wollte ich mit einem anderen Blickwinkel arbeiten. Bitten Sie den Benutzer, im Videofenster einen ROI (Region of Interest) festzulegen und nur für diesen Bereich zu arbeiten (aus bestimmten Gründen, z. B. um nicht den gesamten Frame und eine gewisse Leistungssteigerung zu behandeln), wie unten dargestellt. (Der Benutzer kann mehr als einen ROI festlegen, und der Benutzer wird aufgefordert, die Höhe des ROI nach Proportionssinn etwa zweimal so hoch wie bei einem normalen Auto einzustellen.)

Bild 1

Ich habe bisher einige grundlegende Fortschritte gemacht, wie Hintergrundaktualisierung, morphologische Filter, Schwellenwertbildung und das Erhalten des sich bewegenden Objekts als Binärbild, wie unten dargestellt.

Bild2

Nachdem ich sie ausgeführt hatte, versuchte ich, die weißen Pixel des endgültigen Vordergrundrahmens mit Schwellenwert zu zählen und zu schätzen, ob es sich um ein Auto handelte oder nicht, indem ich die Gesamtzahl der weißen Pixel überprüfte (ich legte eine Untergrenze durch eine statische Berechnung fest, indem ich die Höhe des ROI kannte). . Zur Veranschaulichung habe ich eine Beispielgrafik gezeichnet:

Bild3

Wie Sie sehen können, war es einfach, die weißen Pixel zu berechnen und zu überprüfen, ob sie zu der Zeit eine Kurve zeichnen, und festzustellen, ob es sich um ein Auto oder etwas Ähnliches handelt.

Problem

Ich war ziemlich erfolgreich, bis zwei Autos gleichzeitig meinen ROI durchliefen. Mein Algorithmus hat sie fälschlicherweise als ein Auto gezählt. Ich habe verschiedene Ansätze für dieses Problem ausprobiert und ähnliche wie lange Fahrzeuge, aber ich habe keine zufriedenstellende Lösung gefunden.

Frage

Ist es möglich, diese Aufgabe durch diesen Ansatz der Pixelwertzählung zu bewältigen? Wenn nicht, was schlagen Sie vor?

Horizon1710
quelle
Ihr Problem ist der Grund, warum Benutzer Tracking verwenden. Möchten Sie auch, dass Autos, die sich zusammen bewegen (z. B. ein Auto mit Anhänger), als ein oder zwei Fahrzeuge gezählt werden?
Emre
Zunächst einmal vielen Dank für die Ausgabe. Ich erwarte keine 100% Genauigkeit, Autos mit Anhängern können ignoriert werden. aber wenn es zwei getrennte Autos sind, die sehr nahe beieinander fahren, muss ich das Programm beide unterscheiden lassen, aber ich habe keine Ahnung.
Horizon1710

Antworten:

5

Sie können die letzten 10-15 Bilder verfolgen und die Anzahl der weißen Pixel dieser Bilder zählen. Sie können unterscheiden, ob es sich um ein Fahrzeug handelt oder nicht. Da die Grafik für 10-15 Frames hoch ist, können Sie sagen, dass es sich um ein Fahrzeug handelt, ansonsten handelt es sich um Lärm.

Um mehrere Autos in mehreren nebeneinander liegenden Fahrspuren zu zählen, können Sie die Pixel spaltenweise überprüfen, ich meine vertikal. Vorerst müssen Sie die Pixel horizontal auf weiße Pixel überprüfen.

Ruhi Akaboy
quelle
Ja, Sie haben Recht, wenn Sie die vertikalen Linien überprüfen, aber wie? Kann ich den Einstiegspunkt von Fahrzeugen ermitteln, indem ich die erste Zeile meines ROI überprüfe?
Horizon1710