Video-Objekterkennung und -detektion

Video-Objekterkennung und -detektion

July 30, 2021

Inhaltsverzeichnis

    Martin Anderson

    Unabhängiger KI-Experte

    Abgesehen von einer minimalen Menge an Standard-Metadaten ist Video ein undurchsichtiges Medium - eine "Black Box", in der es den Daten an Schema, Kontext oder Struktur fehlt.

    Das muss nicht immer so sein - bereits jetzt können mobile Kameras wie TrueDepth von Apple und DepthVision von Samsung Tiefeninformationen erfassen und direkt in computer-vision-Anwendungen einspeisen, um Augmented-Reality-Frameworks, Umweltforschung und viele andere Einsatzmöglichkeiten zu entwickeln. In den letzten Jahren haben wir beispielsweise eine stetig wachsende Akzeptanz von Computer-Vision-Anwendungen für den Einzelhandel beobachtet.

    Nachfolgende Generationen der fortschrittlichsten mobilen Aufnahmegeräte könnten auch über eine semantische Live-Segmentierung verfügen, bei der komplexe Beschreibungen direkt zu den Metadaten des Filmmaterials hinzugefügt werden, und zwar über eine Nachbearbeitung der Bild-zu-Text-Interpretation, die auf einer neuen Welle von Chips für mobile neuronale Netze läuft. Standard-Videomaterial der nahen Zukunft könnte sogar granulare und aktualisierte Geolokalisierungsdaten enthalten und die Fähigkeit, gefährliche oder gewalttätige Situationen zu erkennen und entsprechende lokale Aktionen auf dem Gerät auszulösen.

    Abgesehen von datenschutzrechtlichen Bedenken, die die Entwicklung von KI-fähigen Videoaufnahmesystemen behindern könnten, wäre eine Aufrüstung auf diese Systeme auf lange Sicht jedoch unerschwinglich teuer. Daher konzentrierten sich die Bemühungen der akademischen und unternehmerischen Computer-Vision-Forscher in den letzten 5-6 Jahren auf die Extraktion aussagekräftiger Daten aus "stummen" Videos, wobei der Schwerpunkt auf optimierten und leichtgewichtigen Frameworks für die automatisierte Datenerfassung und Objekterkennung in Videomaterial lag.

    Dieser Prozess wurde durch die zunehmende Verfügbarkeit von marktführender freier und quelloffener Software (FOSS) beschleunigt, was zu einer Vielzahl von beliebten und effektiven plattformunabhängigen Modulen, Bibliotheken und Repositories geführt hat. Viele dieser FOSS-Lösungen werden auch von großen SaaS/MLaaS-Anbietern implementiert, deren Angebote entweder langfristig in Ihr Projekt integriert oder in der Ideenphase für das Rapid Prototyping genutzt werden können.

    Die Herausforderungen der Video-Objekterkennung

    Die Erkennung von Objekten und die automatisierte-sichtprüfung erfordert das Training von Modellen des maschinellen Lernens, wie z.B. rekurrente neuronale Netze (RNNs) und konvolutionale neuronale Netze (CNNs), auf Bildern, bei denen die Objekte manuell beschriftet und mit einem übergeordneten Konzept (z.B. "Gesicht", "Pferd" oder "Gebäude") verknüpft wurden.

    Manual labeling in a MATLAB workflow

    Nach dem Training mit den Daten kann ein maschinelles Lernsystem innerhalb bestimmter Toleranzparameter auf die Existenz ähnlicher Objekte in neuen Daten schließen, vorausgesetzt, dass die Daten nicht durch überwachtes oder unüberwachtes Lernen, schlechte Datenauswahl, ungeeignete Lernratenpläne oder andere Faktoren, die einen Algorithmus bei "ungesehenen" Eingaben (d. h. Daten, die den Daten, mit denen das Modell trainiert wurde, ähnlich, aber nicht identisch sind) unwirksam machen können, übermäßig angepasst wurden.

    Behandlung von Okklusion, Wiedererfassung und Bewegungsunschärfe

    Ein Ansatz zur Erkennung von Videoobjekten besteht darin, ein Video in seine Einzelbilder zu zerlegen und einen Bilderkennungsalgorithmus auf jedes Bild anzuwenden. Dadurch werden jedoch alle potenziellen Vorteile der Ableitung von zeitlichen Informationen aus dem Video zunichte gemacht.

    Betrachten wir zum Beispiel die Herausforderung der Verdeckung und Wiedererfassung: Wenn ein Video-Objekterkennungssystem einen Mann identifiziert, der dann kurz von einem vorbeigehenden Fußgänger verdeckt wird, benötigt das System eine zeitliche Perspektive, um zu verstehen, dass es das Objekt "verloren" hat, und um die Wiedererfassung zu priorisieren.

    Ein Motiv kann nicht nur aufgrund von Verdeckung verloren gehen, sondern auch aufgrund von Bewegungsunschärfe, wenn entweder die Kamerabewegung oder die Bewegung des Motivs (oder beides) das Bild so stark stört, dass die Merkmale streifenförmig oder unscharf werden und vom Erkennungssystem nicht mehr identifiziert werden können.

     

    Motion blur destroys the visual integrity of an object

    Wenn das System nur Frames analysiert, ist ein solches Verständnis nicht möglich, da jedes Frame als vollständige (und abgeschlossene) Episode behandelt wird.

    Abgesehen von dieser Überlegung ist es für ein System zur Erkennung von Videoobjekten rechnerisch weniger aufwändig, ein Objekt zu identifizieren und zu verfolgen, als das gleiche Objekt wiederholt pro Bild zu registrieren, da das System ab Bild 2 ungefähr weiß, wonach es sucht.

    Offline-Video-Objekterkennung

    Frühere Ansätze zur Erkennung der zeitlichen Kohärenz stützten sich auf die Nachbearbeitung, bei der der Benutzer die Berechnung abwarten muss und das System genügend Verarbeitungszeit (und Zugang zu großzügigen Offline-Ressourcen) erhält, um ein hohes Maß an Genauigkeit zu erreichen.

    Zum Beispiel bewertete Seq-NMS (Sequence Non-Maximal Suppression), ein Preisträger der ImageNet Large Scale Visual Recognition Challenge 2015, die Wahrscheinlichkeit eines wiedererkannten Objekts auf der Grundlage von Inhalten aus benachbarten Bildern, die aus kurzen Sequenzen innerhalb des Eingabevideos analysiert wurden.

    Seq-NMS in action

    Dieser Ansatz bewertet das Verhalten von wahrgenommenen Objekten, anstatt sich auf ihre Erkennung und Identifizierung zu konzentrieren, und funktioniert am besten als Ergänzung für andere offline videobasierte Objekterkennungssysteme.

    In den letzten zehn Jahren sind verschiedene andere postfaktische Video-Objekterkennungssysteme aufgetaucht, darunter einige, die versucht haben, 3D-Faltungsnetzwerke zu verwenden, die viele Bilder gleichzeitig analysieren, aber nicht in einer Weise, die allgemein für die Entwicklung von Echtzeit-Algorithmen zur Video-Objekterkennung geeignet ist.

    Echtzeit-Video-Objekterkennung

    Die derzeitige Forderung der Industrie geht in Richtung der Entwicklung von Echtzeit-Erkennungssystemen, wobei Offline-Frameworks effektiv in die Rolle der "Datensatzentwicklung" für Erkennungssysteme mit geringer oder ohne Latenzzeit übergehen.

    Da sich rekurrente neuronale Netze auf sequenzielle Daten konzentrieren, eignen sie sich gut für die Erkennung von Videoobjekten. Im Jahr 2017 bot eine Zusammenarbeit zwischen dem Georgia Institute of Technology (GIT) und Google Research eine RNN-basierte Methode zur Erkennung von Videoobjekten an, die eine Inferenzgeschwindigkeit von bis zu 15 Bildern pro Sekunde auf einer mobilen CPU erreichte.

     

    A video object detection algorithm by the GIT and Google Research

    Haben Sie ein Computer-Vision-Projekt im Sinn?

    Buchen Sie Ihre kostenlose Beratung bei Itransition

    Kontakt aufnehmen

    Optischer Fluss

    Die Schätzung des optischen Flusses erzeugt ein 2D-Vektorfeld, das die Verschiebung von Pixeln zwischen einem Bild und einem benachbarten Bild (vorhergehend oder nachfolgend) darstellt.

    Optical flow

    Der optische Fluss kann den Verlauf einzelner Pixelgruppierungen über eine bestimmte Länge von Videomaterial abbilden und so Leitlinien liefern, entlang derer nützliche Operationen durchgeführt werden können. Es wird seit langem in traditionellen Videoumgebungen mit hohem Datenaufkommen, wie z. B. Videoschnittplätzen, verwendet, um Bewegungsvektoren bereitzustellen, entlang derer Filter angewendet werden können, und für Animationszwecke.

    In Bezug auf die Video-Objekterkennung ermöglicht der optische Fluss die Berechnung von diskontinuierlichen Trajektorien von Objekten, da er Medianpfade auf eine Weise berechnen kann, die mit älteren Methoden wie dem Lucas-Kanade-Ansatz nicht möglich ist. Letzterer berücksichtigt den konstanten Fluss nur zwischen gruppierten Einzelbildern und kann keine übergreifende Verbindung zwischen mehreren Aktionsgruppen herstellen, auch wenn diese Gruppierungen dasselbe Ereignis darstellen können, das durch Faktoren wie Verdeckung und Bewegungsunschärfe unterbrochen wird.

    Lucas-Kanade optical flow implemented in a local project
    Lucas-Kanade optical flow implemented data source

    Eine End-to-End-Auswertung des optischen Flusses ist naturgemäß nur als Post-Processing-Aufgabe möglich. Die Ergebnisse können dann zur Entwicklung von Algorithmen zur Schätzung des optischen Flusses verwendet werden, die auf Live-Videoströme angewendet werden können.

    Viele der neuen auf optischem Fluss basierenden Videoerkennungsalgorithmen verwenden spärliche Merkmalsausbreitung, um kontinuierliche Flussschätzungen zu generieren und die Lücken zu überbrücken, in denen der Zufall das Geschehen unterbrochen hat.

    Außerdem werden häufig neue Datensätze für den optischen Fluss erstellt, wie z. B. der MPI-Sintel Optical Flow Dataset, der ausgedehnte Sequenzclips, Bewegungsunschärfe, unscharfe Instanzen, atmosphärische Verzerrungen, spiegelnde Reflexionen, große Bewegungen und viele andere schwierige Aspekte für die Erkennung von Videoobjekten enthält.

    Open-Source-Frameworks und -Bibliotheken zur Video-Objekterkennung

    TensorFlow Objekt-Erkennung API

    Die TensorFlow Object Detection API (TOD API) bietet GPU-beschleunigte Video-Objekterkennung im Kontext der vielleicht am weitesten verbreiteten und beliebtesten Bibliothek im Bereich Computer Vision. Sie ist daher ein bemerkenswerter Anwärter für die Aufnahme in ein benutzerdefiniertes Video-Objekt-Erkennungsprojekt.

    Facile object recognition pipelines with TensorFlow
    Facile object recognition pipelines with TensorFlow

    Die TOD-API ermöglicht den direkten Zugriff auf nützliche Rahmenbibliotheken wie Faster R-CNN und Mask R-CNN (auf COCO) und kann als Frontend für eine Vielzahl von anderen Objekterkennungsnetzwerken wie z.B. YOLO (siehe unten) verwendet werden - allerdings müssen viele dieser Netzwerke manuell implementiert werden.

    Wenn Ihr Hauptinteresse in der agilen und mobilen Video-Objekterkennung liegt, bietet der TensorFlow-Hub derzeit sieben native Modelle, die ohne weitere Hooks oder Architektur implementiert werden können. Eine größere Auswahl an Modellen ist für Desktop- und Server-Architekturen verfügbar.

    Die Tutorial-Datenbank von TOD API enthält eine Anleitung zur Erkennung von Objekten mit einer Webcam, und der Standard und der Umfang der Dokumentation ist ein bemerkenswerter Vorteil für dieses Framework.

    YOLO: Objekt-Erkennung in Echtzeit

    You-Only-Look-Once (YOLO) ist ein unabhängig gewartetes System zur Erkennung von Videoobjekten, das in Echtzeit mit sehr hohen Bildwiederholraten arbeiten kann - ein öffentliches Limit von 45fps, mit berichteten nützlichen Bildwiederholraten von bis zu 155fps. YOLO wurde erstmals 2015 in Zusammenarbeit mit Forschungsbeiträgen von Facebook veröffentlicht.

    Real-time object detection with YOLO

    In der aktuellen Version 5 verwendet YOLO ein voll gefaltetes neuronales Netzwerk (FCNN), um mehrere Bounding Boxes gleichzeitig vorherzusagen, anstatt ein Bild mehrfach zu iterieren, um eine Reihe von Vorhersagen zu sammeln, wie bei den meisten nativen Methoden in TensorFlow und in bestimmten anderen populären Frameworks.

    Dieser Ansatz bietet die höchste Geschwindigkeit, die in einem vergleichbaren Framework verfügbar ist, obwohl es einen Kompromiss zwischen Genauigkeit und Latenzzeit geben kann, abhängig von der Art und dem Umfang des regelnden Modells, das für die Erkennung verwendet wird - sowie von der Qualität der lokalen Hardwareressourcen. YOLO ist in hohem Maße verallgemeinerbar und kann für "ungesehene" Domänen empfänglicher sein als herkömmliche RCNNs.

    SSD MultiBox

    SSD MultiBox ist ein auf Caffe basierendes Single-Shot-Detektorsystem (SSD), das wie YOLO ein einziges neuronales Netzwerk verwendet, um eine Merkmalskarte zu erstellen, aus der Wahrscheinlichkeitswerte für Objekte berechnet werden, die innerhalb von Slices aus einem einzigen Bild erkannt werden.

    SSD MultiBox evaluating each frame of urban footage

    Auch wenn die beiden Versionen des Systems - SSD300 und SSD512 - jeweils eine höhere Bildrate/Genauigkeit als YOLO für sich beanspruchen, sollte man bedenken, dass sie nicht gegen eine Standard-YOLO-Installation getestet wurden und dass YOLO inzwischen in viele nützliche Iterationen aufgeteilt wurde.

    In einer Studie aus dem Jahr 2020, in der SSD mit YOLO verglichen wurde, kamen unabhängige Forscher zu dem Schluss, dass YOLO V3 im Durchschnitt bessere Erkennungsergebnisse lieferte, allerdings eine höhere Rate an Fehlalarmen als SSD. Beide kamen zu dem Schluss, dass sie sehr fähige Frameworks für eine kundenspezifische Lösung zur Erkennung von Videoobjekten sind. Im Gegensatz dazu kam eine Studie im folgenden Jahr zu dem Schluss, dass SSD MobileNet v2 von TensorFlow eine bessere Genauigkeit und Generalisierung als YOLO V4 aufweist, wenn auch nicht mit überwältigendem Vorsprung.

    ImageAI

    ImageAI ist eine von Patreon unterstützte Open-Source-Bibliothek für maschinelles Lernen in Python, die die Erkennung und Analyse von Videoobjekten unterstützt. Sie kann als Host für mehrere relevante Bibliotheken und andere Frameworks dienen, darunter RetinaNet, YOLO V3 und TinyYOLO V3, die auf dem ImageNet-1000-Datensatz trainiert wurden.

    Die Bibliothek wurde im Juni 2021 auf ein PyTorch-Backend umgestellt. Sie bietet eine umfangreiche Dokumentation, verfügt aber nicht über die ausgereifte Ökostruktur und Erweiterbarkeit der oben genannten Branchenführer.

    Die beabsichtigte Einfachheit in der Anwendung und die begrenzte Konfigurierbarkeit können ein Hindernis für komplexere Projektanforderungen darstellen, aber auch eine willkommene Plug-and-Play-Lösung für Frameworks, deren Anwendungsbereich über die Bilderkennung hinausgeht - insbesondere für Projekte, die sich auf Objektklassen konzentrieren, die in gängigen und beliebten Datensätzen vorkommen.

    TorchVision

    TorchVision bietet Computer-Vision-Funktionalität für das von Facebook geführte PyTorch-Projekt. Es bietet von Haus aus direkte Unterstützung für dreißig der beliebtesten Datensätze, darunter COCO, CelebA, Cityscapes, ImageNet und KITTI. Diese können als native Unterklassen aufgerufen werden.

    Natürlich GPU-beschleunigt über PyTorch, bietet TorchVision auch eine Reihe von vortrainierten Modellen, mit 3D ResNet-18 speziell für Aufgaben der Videoerkennung.

    TorchVision applying semantic segmentation to street footage

    TorchVision ist vielleicht ein wenig überladen für ein benutzerdefiniertes Projekt, bei dem Latenzzeiten und eine sparsame Ressourcenauslastung die wichtigsten Faktoren sind. Die Leichtigkeit, mit der ein Projekt zum Laufen gebracht werden kann, kann später durch den Overhead des Frameworks zunichte gemacht werden. Andere oben beschriebene führende FOSS-Erkennungsressourcen sind im Allgemeinen schlanker und flexibler, je nach Konfiguration und zugewiesenen Ressourcen.

    Dennoch profitiert TorchVision direkt von der beträchtlichen Skalierbarkeit von PyTorch und verfügt über einen ausgereiften Funktionssatz für die Video-Objekt-Erkennung.

    Zum gegenwärtigen Zeitpunkt sind schätzungsweise fast 500 Open-Source-Modelle für die Objekterkennung verfügbar, wobei sich nicht alle mit Video befassen und viele von ihnen sich mit den oben aufgeführten populären Frameworks überschneiden oder diese in benutzerdefinierten Host-Umgebungen verwenden.

    Vehicle Detection, Tracking and Counting (VDTAC) in action

    Kommerzielle APIs für Objekterkennung und -detektion

    Wie wir in einem kürzlich erschienenen Artikel über OCR-Algorithmen festgestellt haben, können kommerzielle High-End-APIs als Testgelände für einen Objekterkennungs-Workflow nützlich sein. Ihre Hauptvorteile sind ein schneller Start, eine zuverlässige Betriebszeit und ein reichhaltiger Funktionsumfang. Nachteilig ist, dass sie in großem Maßstab oft teurer sind als eine gut konzipierte kundenspezifische API, während mögliche künftige Einschränkungen - und Preiserhöhungen - nur schwer vorherzusehen sind.

    Google Video Intelligence API

    Als führender FAANG-Investor in der Computer-Vision-Forschung bietet Googles Video Intelligence-Framework eine breite Palette produktionsreifer Funktionen, darunter Objekterkennung in Videos, Live-OCR-Funktionen, Logoerkennung, Erkennung expliziter Inhalte und Personenerkennung. Cloud Video Intelligence wird mit einem beachtlichen Angebot an vortrainierten Modellen geliefert, obwohl auch kundenspezifisches Training möglich ist.

    Die Preisstruktur von CVI ist zwar ausführlich beschrieben, aber dennoch komplex und verwirrend und eine Studie für sich. Ein Kalkulator hilft bei der Kostenabschätzung.

    Applying labels to unlabeled images in Google Cloud Platform

    Amazon Rekognition

    Das 2017 gestartete Videoanalyse-Angebot von Amazon ist weitgehend mit CVI vergleichbar und verfügt über eine enorm erweiterbare Ökostruktur, die eine Vielzahl von vortrainierten Modellen und Möglichkeiten für maßgeschneidertes Modelltraining umfasst.

    Die Objekterkennungsfunktionen von Rekognition werden regelmäßig um neue Funktionen erweitert, wie z. B. die Erkennung von PSA, und Rekognition kann Videos auch nach bestimmten Sequenzinhalten scannen, z. B. nach dem Abspann eines Films oder nach Strichcodes, und kann eine Kapitelsegmentierung vornehmen.

    Die Preisgestaltung von Rekognition für die Videoanalyse hat eine separate Stufe für die Speicherung von Gesichtsmetadaten, ist aber ansonsten in eine Reihe von preislich ähnlichen Kategorien unterteilt, von denen einige das besondere Interesse von Amazon am /de/ecommerce widerspiegeln, wie z. B. Etikettenerkennung und Kundenverfolgung.

    Video analysis in Amazon Rekognition

    Microsoft Image Processing API

    Das Videoverarbeitungsangebot von Microsoft ist in der weitaus breiteren Palette der Azure-Abonnementdienste ziemlich versteckt, bietet aber eine Reihe von leicht einsetzbaren Algorithmen zur Video-Objekterkennung. Modelle für die Objekterkennung können über die Azure-Ressourcen für benutzerdefiniertes Bildverarbeitungs-Training und -Vorhersage oder über das breitere Spektrum der kognitiven Dienste erstellt werden.

    Die Preisgestaltung von Microsoft Computer Vision ist von diesen drei FAANG-Führern bei der Video-Objekterkennung vielleicht am schwierigsten einzuschätzen.

    Indexing video content in Azure

    Andere kommerzielle Video-Objekt-Erkennungs-APIs sind:

    • Clarifai: Das in Delaware ansässige Unternehmen Clarifai bietet eine Bilderkennungs-API mit 14 vortrainierten Modellen an, die auf die Erkennung von Mode und Lebensmitteln sowie von gewöhnlichen Objekten, expliziten Inhalten, Prominenten und Gesichtern spezialisiert sind.
    • Valossa Video Recognition API: Valossa bietet in seiner Video Recognition API eine breite Palette von Erkennungsarten an, darunter Live-Gesichtsanalyse, Überwachung expliziter Inhalte und Szenenindexierung. Der Schwerpunkt liegt jedoch auf Videoüberwachungslösungen vor Ort.
    • Ximilar Visual Automation: Ximilar ist eine geschäftsorientierte API für die Erkennung von Videoobjekten mit klarem Schwerpunkt auf Anwendungen im Modeeinzelhandel. Obwohl kundenspezifische Modelle möglich sind, positioniert sich Ximilar als One-Stop-Shop für eine begrenzte Anzahl von Objektdomänen.