Fahrzeugsegmentierung und -verfolgung

9

Ich arbeite seit einiger Zeit an einem Projekt, um Fahrzeuge in Videos zu erkennen und zu verfolgen, die von UAVs aufgenommen wurden. Derzeit verwende ich eine SVM, die auf der Darstellung von Merkmalen lokaler Merkmale trainiert ist, die aus Fahrzeug- und Hintergrundbildern extrahiert wurden. Ich verwende dann einen Schiebefenster-Erkennungsansatz, um zu versuchen, Fahrzeuge in den Bildern zu lokalisieren, die ich dann verfolgen möchte. Das Problem ist, dass dieser Ansatz viel zu langsam ist und mein Detektor nicht so zuverlässig ist, wie ich es gerne hätte. Ich bekomme also einige Fehlalarme.

Ich habe überlegt, die Autos aus dem Hintergrund zu segmentieren, um die ungefähre Position zu finden, um den Suchraum zu verringern, bevor ich meinen Klassifikator anwende. Ich bin mir jedoch nicht sicher, wie ich vorgehen soll, und hatte gehofft, jemand könnte helfen?

Außerdem habe ich über Bewegungssegmentierung mit Ebenen gelesen und den optischen Fluss verwendet, um das Bild nach Flussmodell zu segmentieren. Hat jemand Erfahrung mit dieser Methode? Wenn ja, könnten Sie einen Beitrag dazu leisten, ob diese Methode Ihrer Meinung nach anwendbar wäre mein Problem.

UPDATE : Ich habe diese Frage auch zum Stapelüberlauf gestellt und hatte eine ausgezeichnete Antwort . Ich habe diese Idee bereits umgesetzt und sie funktioniert überraschend gut. Ich untersuche jetzt die Verwendung des optischen Flusses zusätzlich zu dieser Technik.

Unten sehen Sie zwei Bilder aus einem Beispielvideo

Frame 0: Geben Sie hier die Bildbeschreibung ein

Rahmen 5: Geben Sie hier die Bildbeschreibung ein

Jono Brogan
quelle

Antworten:

6

Leider ist der optische Fluss auch ein schwieriges Problem ;-)

Um konstruktiver zu sein, hier einige Algorithmen, die es wert sein sollten, ausprobiert zu werden (oder an dieser bestimmten Sequenz ausprobiert wurden):

  • Trainieren Sie Ihre Taschen mit Funktionen in einer Fahrzeugdatenbank, die (in Größe und Ausrichtung) repräsentativer für Ihr tatsächliches Problem ist, um bessere Ergebnisse zu erzielen
  • Verwenden Sie die Tatsache, dass der Boden eine flache Ebene ist, um einen parametrischen optischen Fluss durchzuführen (Suche nach einem affinen Fluss) oder um eine affine Registrierung zwischen den Frames der Sequenz zu berechnen. Die sich bewegenden Fahrzeuge sind dann Ausreißer dieser dominanten Bewegung
  • Verwenden Sie einen optischen Flussalgorithmus, um den Fluss zu berechnen, und versuchen Sie dann, die optischen Flussvektoren zu klassifizieren / zu gruppieren (dies ist immer noch ein weit offenes Problem!). Abhängig von der verwendeten Sprache können Sie den optischen Fluss von OpenCV verwenden, den von TU Graz , den optischen Fluss von D. Sun oder sogar meinen ;-). Beachten Sie jedoch, dass das Segmentieren des Flusses eine nicht triviale Aufgabe ist, die Sie wahrscheinlich in zwei Schritten ausführen sollten: globale (dominante) Bewegungs-Etsimation und dann Erkennung kleiner Bewegungen.
Sansuiso
quelle