Filmora
Filmora - KI Video Editor
Bearbeiten Sie schneller, intelligenter und einfacher!
ÖFFNEN
Filmora Video Editor
Erstellen Sie mühelos Videos mit KI.
  • Verschiedene KI-Tools zur Steigerung der Effizienz bei der Videoerstellung.
  • Bieten Sie beliebte Vorlagen und lizenzfreie kreative Ressourcen an
Empfohlen von endorse

OpenCV Objektverfolgung: Das vollständige Handbuch 2023

Maria Wiedermann
Maria Wiedermann Veröffentlicht am 04-11-2022, Aktualisiert am 04-11-2024

OpenCV Tracking ist eine beliebte Methode, um Objekte in einem Video in Echtzeit zu verfolgen. OpenCV ist eine leistungsstarke Bibliothek, die für Bildverarbeitungs- und Computer Vision-Anwendungen verwendet wird.

Von der Echtzeit-Videoanalyse bis hin zu Augmented Reality bietet OpenCV Tracking ein breites Spektrum an Einsatzmöglichkeiten und kann sowohl im privaten als auch im öffentlichen Sektor helfen, das gewünschte Objekt in einem Bild oder Video zu erkennen und zu verfolgen.

In diesem umfassenden Leitfaden werden wir uns mit OpenCV Tracking und seinen vorgefertigten Trackern beschäftigen. Wir werden die OpenCV-Bibliothek und Python verwenden, um diese Anwendung zur Objektverfolgung zu implementieren.

In diesem Artikel
    1. SOT & MOT
    2. Der Unterschied zwischen Verfolgung und Erkennung
    1. Bildverfolgung
    2. Video Verfolgung
  1. Was sind die Schwierigkeiten bei der Objektverfolgung?
    1. Die Phasen des Objektverfolgungsprozesses
    2. Methoden zur Objektverfolgung
    1. Was ist OpenCV
    2. Die vorgefertigten Algorithmen, die OpenCV für die Objektverfolgung bietet
    3. Implementierung in Python und OpenCV

Teil 1. Was ist Object Tracking?

Die Objektverfolgung bestimmt den Standort eines Objekts in einem Video und kann für eine Vielzahl von Zwecken verwendet werden, darunter Überwachung, Sicherheit, Verkehrskontrolle, digitale Forensik, Erkennung von Anomalien, Gestenerkennung, visuelle Überwachung, Mensch-Computer-Interaktion, Augmented Reality und Robotervision.

Auch wenn es für einen Durchschnittsmenschen einfach zu sein scheint, ist die Objektverfolgung für Computer recht komplex, da sie eine Reihe von Einzelbildern analysieren und die Flugbahn des Objekts auf der Grundlage von Zahlen anstatt von Bildern schätzen müssen.

Die Objektverfolgung gilt aufgrund ihrer Komplexität als eine der schwierigsten Aufgaben in der Computer Vision. Auch wenn es eine Herausforderung ist, ist es nicht unmöglich, es zu schaffen.

Und es gibt zwei Ebenen der Objektverfolgung, die Sie kennenlernen sollten:

1. SOT & MOT

  1. Single Object Tracking (SOT): SOT ist ein Tracking-Algorithmus, der erweiterte Erscheinungsbildmodelle und/oder Bewegungsmodelle erstellt, um schwierige Probleme wie Drehungen außerhalb der Ebene, Beleuchtungsvariationen oder Maßstabsänderungen zu bewältigen.
  2. Multiple Object Tracking (MOT): MOT verfolgt jeden Teil eines Videos und befasst sich hauptsächlich mit Aufgaben der mittleren Ebene und dient als Grundlage für Aufgaben der höheren Ebene.

Um ein tieferes Verständnis der beiden Ebenen der Objektverfolgung zu erhalten, lesen Sie bitte unseren Artikel über: Ein kompletter Leitfaden für Multi Object Tracking.

2. Der Unterschied zwischen Verfolgung und Erkennung

Nachdem Sie wissen, was Object Tracking ist, sollten Sie auch ein weiteres Konzept kennen - Object Detection.

Die Objektverfolgung und die Objekterkennung sind zwei wichtige Methoden in der Computer Vision. Object Tracking verfolgt die Position eines bestimmten Objekts in einem Bild in Echtzeit, während Object Detection Objekte in einem Bild oder Video identifiziert und lokalisiert. Das ist der Unterschied.

Teil 2. Arten der Objektverfolgung

Bildverfolgung

Die Bildverfolgung ermöglicht eine natürlichere Interaktion mit digitalen Inhalten und hilft dem Benutzer, sich mit digitalen Objekten genauso zu bewegen und zu interagieren, wie mit realen physischen Objekten.

Die Bildverfolgung kann in verschiedenen Augmented Reality (AR)-Anwendungen eingesetzt werden, z.B. für AR-Spiele, Shopping und Navigation. Darüber hinaus können Sie es auch für pädagogische Zwecke verwenden, z.B. für den Anatomieunterricht oder als Anleitung für eine schwierige Aufgabe.

Video Verfolgung

Video-Tracking ist der Prozess der Verfolgung von Objekten in einer Videosequenz und kann für verschiedene Anwendungen eingesetzt werden, z.B. zum Erkennen und Zählen von Objekten in einer Szene, zum Verstehen ihrer Bewegungen und zum Erkennen von Aktivitäten.

Teil 3. Was sind die Schwierigkeiten bei der Objektverfolgung?

Wie bereits erwähnt, ist die Verwendung der Objektverfolgung vielseitig. Es gibt jedoch einige Herausforderungen im Zusammenhang mit der Objektverfolgung, wie z.B.:

Unordnung im Hintergrund: Der Hintergrund kann die Extraktion der Merkmale eines Objekts beeinträchtigen. Wenn der Hintergrund dichter bevölkert ist, kann die Erkennung oder Verfolgung des gewünschten Objekts schwieriger sein.

Okklusion: Dies ist ein Phänomen, bei dem das verfolgte Objekt durch den Hintergrund oder den Vordergrund beeinflusst wird. Dies führt dazu, dass der Verfolgungsalgorithmus durch mehrere nahe beieinander liegende Objekte verwirrt wird und somit die Spur des Objekts verliert.

Unterschiedliche räumliche Maßstäbe: Unterschiedliche räumliche Maßstäbe beziehen sich darauf, dass das Zielobjekt eine unterschiedliche Größe oder Form hat, was den Algorithmus verwirren und zu Fehlern führen kann.

Training und Verfolgungsgeschwindigkeit: Wenn sich das Objekt zu schnell bewegt oder zu klein ist, kann es schwierig sein, es zu verfolgen. Daher muss das Tracking-Modul so konzipiert sein, dass es Objekte in Sekundenschnelle verfolgen, identifizieren und lokalisieren kann.

Teil 4. Die Phasen des Objektverfolgungsprozesses

Nach der technischen Einführung in die Objektverfolgung wollen wir den Mechanismus der Objektverfolgung von zwei Seiten kennenlernen: Von der Arbeitsweise und der Art und Weise, wie die Verfolgung erfolgt.

1. Die Phasen des Objektverfolgungsprozesses

Nachfolgend finden Sie die Phasen des Objektverfolgungsprozesses:

Ziel-Initialisierung

Die Zielinitialisierung ist der erste Schritt bei der Objektverfolgung und beinhaltet die Definition der Ziele oder Objekte von Interesse und das Zeichnen eines Begrenzungsrahmens um diese im ersten Bild. Danach muss der Tracker beim Zeichnen des Begrenzungsrahmens die Position des Objekts im Bild erkennen.

Erscheinungsbild Modellierung

Die Modellierung des Aussehens ist wichtig, um zu verstehen, wie ein Objekt unter verschiedenen Umständen aussehen wird. Wenn das verfolgte Objekt sein Aussehen aufgrund unterschiedlicher Beleuchtung, Winkel oder Geschwindigkeit ändert, kann der Verfolgungsalgorithmus seine Informationen und das Objekt selbst verlieren. Daher muss sie durchgeführt werden, damit der Algorithmus die Veränderungen und Verzerrungen erkennen kann.

Schätzung der Bewegung

Bei der Bewegungsschätzung geht es um die Fähigkeit des Modells, die künftige Position eines Objekts genau zu bestimmen.

Ziel-Positionierung

Die Bewegungsschätzung ist ein Prozess der Annäherung an die wahrscheinlichste Region, in der sich ein Objekt befinden könnte. Nachdem der Standort des Objekts angenähert wurde, kann ein visuelles Modell verwendet werden, um den Standort des Ziels genauer zu bestimmen.

2. Methoden der Objektverfolgung

Hier sind einige Methoden der Objektverfolgung:

OpenCV-basierte Objektverfolgung

Die OpenCV Object Tracking Methode ist weit verbreitet, da sie mehrere eingebaute Funktionen bietet, die speziell für diesen Zweck entwickelt wurden, wie GOTURN, MIL, MediandFlow und CSRT. Welchen Tracker-Typ Sie wählen, hängt von Ihrem spezifischen Anwendungsdesign ab. Jeder Tracker hat seine Vor- und Nachteile, so dass es nicht einen einzigen Tracker-Typ gibt, der für alle Anwendungen ideal ist.

MDNet

Multi-Domain Convolutional Neural Network Tracker ist ein auf Faltungsneuronen basierender visueller Tracker und hat die VOT2015 Challenge gewonnen. Außerdem besteht er aus bereichsspezifischen Ebenen, Verzweigungen und mehreren gemeinsamen Ebenen.

Der MDNetT Tracker ist ein tiefes neuronales Netzwerk, das auf zahlreichen Objektverfolgungsdatensätzen trainiert wurde. Der Tracker ist so konzipiert, dass er in mehreren Bereichen funktioniert, einschließlich Video, Text und Bilder.

DeepSort

Der DeepSort-Algorithmus kann Objekte in Echtzeit verfolgen und verwendet YOLO v3, um die Bounding-Boxen um die Objekte in einem Bild zu berechnen.

DeepSort verwendet den Kalman-Filter des Algorithmus Simple Online and Realtime Tracking und ein Identifikationsmodell, ReID, um Bounding Boxes und Objektspuren miteinander zu verknüpfen.

ROLO

ROLO ist eine neuartige Objektverfolgungsmethode, die rekurrente neuronale Netze (RNNs) verwendet, um objektspezifische räumlich-zeitliche Repräsentationen zu lernen. Diese Methode arbeitet mit YOLO, einem Algorithmus zur Objekterkennung, und einem LTSM zur Bestimmung der Flugbahn eines Objekts.

Teil 5. Das leistungsstarke Backup: OpenCV

Wir haben gezeigt, wie leistungsfähig OpenCV Tracking ist und wie es funktioniert. Aber fragen Sie sich nicht, was OpenCV ist? Wie unterstützt es das Erreichen der Tracking-Ziele? In diesem Teil werden wir uns auf OpenCV konzentrieren und Ihnen helfen, die zugrunde liegenden Mechanismen besser zu verstehen.

1. Was ist OpenCV?

OpenCV ist eine leistungsstarke Bibliothek, mit der Sie Aufgaben der Bildverarbeitung, des Deep Learning, des maschinellen Lernens und der Computer Vision auf Live-Video-Feeds durchführen können. Außerdem können Sie damit Objekte erkennen, ihre Bewegungen verfolgen und Gesichter erkennen.

Es kann bei der Verarbeitung von Video- und Bilddaten helfen und wurde in verschiedenen Anwendungen eingesetzt, z.B. bei der Objekterkennung und -erfassung, bei autonomen Autos, Robotern, der medizinischen Bildanalyse, der automatischen Überwachung und der Erkennung von Anomalien.

2. Die vorgefertigten Algorithmen, die OpenCV für die Objektverfolgung bietet

Es gibt 8 vorgefertigte Algorithmen, die OpenCV für Objects Tracking anbietet. Alle haben ihre Eigenheiten und wir stellen Ihnen hier ihre Vor- und Nachteile vor, damit Sie sie besser verstehen.

Tracker Vorteile Nachteile
BOOSTING Tracker
  • Verfolgt Objekte genau.
  • Relativ langsam.
  • Sie können nicht anhalten, wenn ein Objekt verloren gegangen ist.
MIL Tracker
  • Starke Widerstandsfähigkeit gegen Lärm.
  • Liefert genaue Ergebnisse.
  • Niedrige Geschwindigkeit.
  • Die Verfolgung kann nicht beendet werden, wenn das Objekt verloren gegangen ist.
KCF Tracker
  • Hohe Geschwindigkeit und Genauigkeit.
  • Beendet die Verfolgung, wenn das Objekt verloren geht.
  • Unfähigkeit, einmal verlorene Objekte weiter zu verfolgen.
TLD Tracker
  • Widerstandsfähigkeit gegen Überlappung und Objektskalierung.
  • Instabil bei der Objekterkennung und -verfolgung.
  • Verliert ständig sein Objekt.
MEDIANFLOW Tracker
  • Hohe Genauigkeit und Geschwindigkeit.
  • Genaue Bestimmung des Verlusts des Objekts.
  • Verliert durch die hohe Geschwindigkeit schnell das Objekt.
GOTURN Tracker
  • Zeigt Widerstand gegen Hindernisse und Lärm.
  • Wenn die Geschwindigkeit eines Objekts hoch ist, verschiebt es sich zu einem anderen Objekt.
MOSSE Tracker
  • Kann die Verfolgung fortsetzen, nachdem das Objekt verloren gegangen ist.
  • Hohe Geschwindigkeit.
  • Verliert bei sehr hoher Geschwindigkeit leicht das Objekt.
CSRT Tracker
  • Gute Resistenz gegen Überschneidungen.
  • Hohe Genauigkeit.
  • Niedrige Geschwindigkeit.
  • Instabil, wenn ein Objekt verloren geht.

3. Implementierung in Python und OpenCV

Nach der theoretischen Erläuterung von OpenCV und OpenCV Tracking lernen Sie nun Object Tracking OpenCV Python mit Coding und unserer einfachen und schrittweisen Anleitung:

Installieren Sie die Abhängigkeiten

Installieren Sie die Anwendung pycharm auf Ihrem PC und starten Sie sie. Erstellen Sie ein neues Projekt und gehen Sie zu Terminal. Installieren Sie das Paket opencv-contrib-python, indem Sie den folgenden Befehl in das Terminal einfügen.

Einrichten der Tracker

Erstellen Sie nun ein Jupyter-Notebook und richten Sie die Tracker mit diesem Code ein:

Aufgaben:

  • cv2. version gibt die Versionsnummer der OpenCV-Bibliothek zurück.
  • Speichern Sie die Namen der acht Tracker.
  • Überprüfen Sie die Liste auf die Version, an der Sie arbeiten und erstellen Sie ein Tracker-Objekt anhand der Nummer.

Erfassen Sie den Videoeingang

Um den Videoeingang zu erfassen, schreiben Sie die folgenden Codezeilen:

Aufgaben:

  • Verwenden Sie die VideoCapture Klasse, um ein Video über die Webcam aufzunehmen oder ein gespeichertes Video von Ihrem PC abzurufen.
  • Geben Sie in VideoCapture - Zeile 2 den Pfad zu Ihrem Video an.
  • Kommentieren Sie die zweite Zeile, um die Webcam für die Verfolgung zu verwenden und entfernen Sie die dritte Zeile.

Erstellen der Bounding Box und Initialisierung des Trackers

Definieren Sie ein anfängliches zufälliges Begrenzungsrechteck oder wählen Sie die Optionen für das Objekt, das Sie verfolgen möchten, mit dem folgenden Code aus:

Starten Sie den Tracker und prüfen Sie die Ausgabe

Schreiben Sie schließlich die folgenden Codezeilen, um den Tracker zu starten:

Aufgaben

  • Lesen Sie jedes Videobild.
  • Starten Sie den Timer und bestimmen Sie über den Tracker die Flugbahn des Objekts.
  • Verwenden Sie die Trajektorie, um den Begrenzungsrahmen zu zeichnen.
  • Das Programm beginnt mit der Verfolgung. Drücken Sie anschließend die Leertaste, um die Verfolgung zu beenden.

Video - Objektverfolgung mit Opencv und Python

Fazit

In diesem Artikel haben wir die Objektverfolgung im Detail besprochen und wie sie mit der Objekterkennung verglichen wird. Außerdem haben wir uns mit den Methoden zur Verfolgung von Objekten befasst und eine umfassende Anleitung zur OpenCV Tracking-Methode und ihren integrierten Funktionen gegeben.

Wir hoffen, dass Sie diese Anleitung hilfreich finden und dass Sie jetzt problemlos Objekte in Echtzeit verfolgen können.

Kostenloser Download 
Kostenloser Download 
Maria Wiedermann
Maria Wiedermann Redakteur
Weiterteilen:
Weiterteilen:
filmora logo filmora logo