Koehn AI Firmenlogo

Echtzeit-Objekterkennung mittels YOLO

4. Juli 2022

Eine der faszinierendsten und am schnellsten voranschreitenden KI-Disziplinen ist die automatisierte Objekterkennung. Unter diesem Begriff versteht man die selbstständig erlernte Erkennung und Klassifizierung von Objekten in Bildern oder Videos. Dank enormer Leistungsfortschritte im Bereich des GPU-beschleunigten Rechnens werden KI-basierte Objekterkennungsalgorithmen schon heute in der Praxis eingesetzt. Einige der prominentesten Anwendungsgebiete sind:

  • Autonomes Fahren bzw. Fahrassistenzsysteme
  • Optische Qualitätskontrolle, automatisierte Barcodeerkennung
  • Unterstützung in bildgebenden Verfahren in der Medizin (CT, MRT)
  • Verkehrsflussanalyse bzw. Nummernschilderkennung
  • Sicherheitssystemen (z. B. Personen im Gleisbett)

Insgesamt steht der praktische Einsatz von Objekterkennungssytemen jedoch erst am Anfang, das Potenzial dieser Technologie ist nahezu unbegrenzt.

Technisch gesehen haben sich zwei verschiedene Ansätze durchgesetzt, die einstufigen und die zweistufigen Verfahren.

Zweistufige Verfahren

Bei den zuerst entwickelten zweistufigen Verfahren werden in einem ersten Schritt interessante Bildregionen isoliert, welche dann im zweiten Schritt mittels eines gewöhnlichen Klassifizierungsmodells auf das Vorhandensein von Objekten geprüft werden. Ein einfacher Algorithmus zur Erzeugung von Bildausschnitten ist beispielsweise der Sliding-Window-Algorithmus, bei dem die zu klassifizierenden Bildausschnitte generiert werden, indem mit einem sich bewegenden Fenster das komplette Bild abgetastet wird. Fortgeschrittenere Systeme benutzen wiederum künstliche Intelligenz um interessante Bildausschnitte zu isolieren. Unabhängig vom genauen Aufbau der ersten Stufe sind jedoch im zweiten Schritt stets mehrere Auswertungen pro Bild nötig. Dadurch erreichen diese KI-Systeme eine hohe Präzision, sind aber aufgrund der für die Auswertung benötigten Rechenzeit nur bedingt für Echtzeitanwendungen geeignet. Eine etablierte zweistufige KI-Architektur ist beispielsweise das Region Based Convolutional Neural Network (R-CNN), welches mittlerweile in den Ausbaustufen Fast R-CNN, Faster R-CNN und Granulated R-CNN Anwendung findet.

Einstufige Verfahren

Demgegenüber stehen die später entwickelten einstufigen Verfahren, bei denen die komplette Auswertung, d. h. Objekterkennung, Klassifizierung und Ausgabe eines begrenzenden Objektrahmens (Bounding Box) in nur einem Schritt mit nur einer Auswertung erfolgt. Eine der erfolgreichsten KI-Architekturen überhaupt, YOLO („You Only Look Once“), gehört zur Klasse der einstufigen Objekterkennungssysteme und trägt die Eigenschaft der Einstufigkeit bereits im Namen. Wie keine andere Architektur hat YOLO den Weg für die Echtzeitanalyse von (bewegten) Bildern geebnet und wurde somit zu einem Standardalgorithmus für Objekterkennungsaufgaben. Mittlerweile liegt die YOLO KI-Architektur in den Entwicklungsstufen YOLOv3, YOLOv4 bis hin zu YOLOR vor. Aufgrund der Popularität dieser Architektur sollen im Nachfolgenden einmal die Grundzüge dieses Objekterkennungssystems besprochen werden.

Der Ausgabevektor

Um zu verstehen, wie die YOLO-Architektur funktioniert, lohnt es sich, sich einmal den Ausgabevektor des Modells näher anzusehen bzw. für ein Beispiel den gewünschten Ausgabevektor (Ground Truth) zu konstruieren. Dazu betrachten wir folgendes Beispielfoto, auf dem Vögel und Felsen detektiert werden sollen: YOLO-Objekterkennung

Für den Moment fokussieren wir uns auf die linke Möwe und stellen uns vor, dass keine weiteren Möwen bzw. Felsen auf dem Foto zu sehen wären. Die allgemeine Form des YOLO-Ausgabevektors für ein Modell mit zwei Klassen und maximal einem Objekt pro Bild lautet:
YOLO-Ausgabevektor
Hierbei entspricht p_c dem Konfidenzniveau, dass in der vorhergesagten Bounding Box ein Objekt präsent ist. Bei b_x,b_y handelt es sich um die Koordinaten des Mittelpunktes der Bounding Box. Die Größen b_h,b_w bezeichnen die Höhe bzw. Breite der Bounding Box. Die letzten Komponenten des Vektors bezeichnen die Klassenlabels. Sie geben Aufschluss darüber, ob es sich bei dem Objekt um einen Vogel oder Fels handelt. Genauer gesagt handelt es sich bei c_Vogel bzw. c_Fels um bedingte Wahrscheinlichkeiten, d. h. unter der Bedingung, dass die Bounding Box ein Objekt enthält, wie wahrscheinlich ist es, dass das Objekt ein Vogel bzw. Fels ist. Für das obige Beispielfoto mit nur der linken Möwe lautet der entsprechende Ground-Truth-Vektor demnach
YOLO-Ground-Truth-Vektor
mit entsprechenden numerischen Werten für die Koordinaten und Abmessungen der Bounding Box.

Schon im oben gezeigten Bild sind jedoch mehrere Objekte im Bild zu sehen, sodass ein einzelner siebenkomponentiger Vektor zur Beschreibung offensichtlich nicht ausreicht. Gelöst wird dieses Problem in YOLO dadurch, dass das Bild gerastert wird: YOLO-Objekterkennung-Raster

Statt mit einem einzelnen siebenkomponentigen Vektor wird im obigen Beispiel mit einem 6x9 Array an siebenkomponentigen Vektoren gearbeitet, für jede Zelle ein Vektor. Verantwortlich für Erkennung, Klassifizierung und Umrandung eines Objekts ist jeweils die Zelle, in der der Mittelpunkt des Objektes liegt. Die Bounding Box kann dabei selbstverständlich über die Zelle selbst hinausgehen. In der tatsächlichen Praxis wird der in unserem Beispiel siebenkomponentige Vektor noch einmal vervielfacht, sodass auch mehrere Objekte in derselben Zelle detektiert werden können. Um den Artikel möglichst verständlich zu halten, wird an dieser Stelle jedoch von noch detaillierten Erläuterungen abgesehen.

Die Netzwerkarchitektur

Mit einem wie zuvor aufbereiteten Datensatz von Bildern, in welchen manuell Bounding Boxen und Klassenlabels für diese Boxen hinzugefügt wurden, lässt sich nun das System trainieren. Die eigentliche Architektur besteht aus mehreren Gruppen von Convolutional Layern, gefolgt von einer kleineren Anzahl an Fully-Connected Layern [1] CNN
wobei das Output-Layer im vorliegenden Fall die Dimension 6x9x7 hat. Zum initialen Training der KI-Architektur wird eine große Anzahl an präparierten Bildern benötigt sowie ein Computersystem/Cluster mit ausreichend GPU-Leistung. Aufgrund dieser Umstände bietet es sich in der Praxis häufig an, mit vortrainierten Systemen zu arbeiten, die bereits anhand eines großen Datensatzes trainiert wurden und frei verfügbar sind. Sollte die gewünschte Klasse im vortrainierten Modell nicht enthalten sein, so reicht es oft aus, das Output-Layer des Systems zu modifizieren und mit einigen Hundert Beispielen der neuen Klasse nachzutrainieren. Dieses Vorgehen gewährleistet die praktische Anwendbarkeit dieser Technologie auch im kleineren Rahmen, da somit der arbeitsintensive Schritt der Datenaufbereitung auf ein Minimum reduziert wird.

Wendet man ein so trainiertes System auf nicht im Trainingssatz enthaltene Bilder an, so kommt es nicht selten vor, dass der Algorithmus pro Objekt mehrere Bounding Boxen ausgibt mit verschiedenen Wahrscheinlichkeiten. Dies kann beispielsweise vorkommen, wenn sich ein Objekt über mehrere Zellen erstreckt. YOLO-Bounding-Boxes

Eine einfache globale Non-Maximum-Suppression kommt klarerweise nicht in Betracht, da bei dieser Operation nur das Objekt mit der höchsten Wahrscheinlichkeit überleben würde. Eine Non-Maximum-Suppression muss daher in den einzelnen Gruppen erfolgen. Doch wie identifiziert man diese Gruppen algorithmisch? Das Konzept, welches dazu in YOLO genutzt wird, ist unter dem Namen Intersection Over Union (IOU) bekannt. Bei diesem Verfahren wird der Flächeninhalt des Durchschnitts zweier Bounding Boxen durch den der Vereinigung geteilt: Intersection-Over-Union

Durch die geeignete Wahl eines Schwellenwertes können mit diesem Konzept die einzelnen zusammengehörigen Gruppen identifiziert werden und anschließend per gruppenweiser Non-Maximum-Suppression die finalen Bounding Boxen und Klassenwahrscheinlichkeiten ermittelt werden. Wie bereits angesprochen muss der Vorwärtspfad des Netzwerks pro Bild nur einmal durchlaufen werden, wodurch sich das Netzwerk für nahezu alle Objekterkennungstasks, insbesondere auch Echtzeitanwendungen, eignet.

[1] https://arxiv.org/abs/1506.02640



Bleiben Sie up-to-date mit unserem kostenlosen Newsletter

0 Kommentare

Hinterlassen Sie einen Kommentar