Blog

Wie man Computern das Sehen beibringt

Von Daniel Zettler am 06. April 2021

Nachdem wir in einem unserer Blogartikel auf die Theorie hinter Neuronalen Netzen zur Objekterkennung eingegangen sind, geht es in diesem Artikel um die konkrete Umsetzung. Wir zeigen, wie wir beispielhaft ein System trainiert haben, das Personen und ihre Gesichter auf einem Bild erkennen kann.

Daten

Einer der wichtigsten Faktoren beim Überwachten Lernen eines Systems sind die eingesetzten Trainingsdaten. Der Deep-Learning-Boom (DL) der letzten Jahre lässt sich unter anderem auch auf die riesigen Datenmengen zurückführen, die inzwischen durch das Internet verfügbar sind. Die Herausforderung besteht nicht nur im Sammeln von – in unserem Fall – einer großen Menge von möglichst unterschiedlichen Bildern von Menschen und Gesichtern aller Art, sondern auch im Beschriften dieser Bilder, damit sie überhaupt für das Training eingesetzt werden können. Für jedes Bild muss eine genaue Beschreibung existieren, die alle Objekte erfasst. Hier ist somit zuerst menschliche Intelligenz gefordert, diese Informationen für das Training zu erfassen.

Glücklicherweise ist die Erkennung von Menschen und insbesondere von Gesichtern ein häufiger Anwendungsfall, weswegen eine große Auswahl an frei verfügbaren Datensätzen existiert. Darunter befindet sich beispielsweise der Open Images Dataset mit mehr als neun Millionen Bildern und dazugehörigen Beschreibungen. Aus dieser Quelle werden für unser Training etwa 50 000 Bilder von Menschen entnommen. Dies sollte ausreichend groß sein, sodass möglichst viele Variationen erlernt werden können.

Frameworks und Modelle

Ein weiterer Faktor im Deep-Learning-Hype stellen die frei verfügbaren und sehr mächtigen DL-Frameworks dar. Am bekanntesten sind dabei sicherlich TensorFlow oder auch PyTorch. Diese hoch optimierten Bibliotheken erlauben es verhältnismäßig einfach ein DL-Modell zu trainieren. Speziell die Objekterkennung wird aktuell stark erforscht, zahlreiche neue Deep-Learning-Architekturen werden jedes Jahr veröffentlicht. Ziel ist es jeweils, die möglichst beste Erkennungsleistung und die schnellste Verarbeitungszeit zu erreichen. Innerhalb dieses Projektes wurden vier aktuelle und etablierte Modellarchitekturen trainiert und ausgewertet.

Training

Hat man sich für ein bestimmtes Modell entschieden und alle notwendigen Daten gesammelt, kann das Training beginnen. Hier lohnt sich vor allem der Einsatz spezialisierter Hardware, wie beispielsweise GPUs oder TPUs. Diese können unter anderem durch eine starke Parallelisierung und extrem schnellen Zwischenspeicher die notwendigen Berechnungen stark beschleunigen. Dennoch ist eine Trainingsdauer von mehr als zehn Stunden nicht unüblich.

Das Ergebnis

Am Ende des Trainings erhält man ein trainiertes Modell, mit dem man Vorhersagen auf neuen Bildern machen kann. Typischerweise werden mehrere Modelle trainiert und dann im Anschluss miteinander verglichen. Dazu benötigt man einen neuen Datensatz, der noch nicht für das Training verwendet worden ist, um zu prüfen, wie sich die Modelle auf ungesehenen Daten verhalten. Bei der Objekterkennung besteht die Schwierigkeit darin, sowohl den Ort als auch das Label des Objektes auf dem Bild korrekt zuzuordnen. Nachdem das beste Modell bestimmt worden ist, lässt es sich leicht in eine Anwendung einbinden, die Zugriff auf eine Kamera hat.

Lässt man nun das trainierte Modell auf einem Zoom-Gruppenfoto ausführen, erhält man korrekte Vorhersagen. Interessanterweise ist für die Erkennung einer Person für das Modell ein größerer Bildausschnitt wichtig.

Nicht grundlos ist Computer Vision (CV) eine Disziplin, in der sich Deep Learning als fester Bestandteil schnell integrieren konnte. Jede CV-Anwendung, die nicht in einer kontrollierten Umgebung ausgeführt wird (z.B. Produktkontrolle auf einem Fließband), profitiert stark von der hohen Flexibilität des DL-Ansatzes.

Wollen Sie in Zukunft benachrichtigt werden, wenn es wieder einen neuen Blogartikel gibt?
Folgen Sie uns auf LinkedIn und bleiben Sie auf dem Laufenden.

Bringen Sie Ihr Unternehmen auf die nächste Stufe!

Wir entwickeln KI-Lösungen für den innovativen Mittelstand.