28
.
August
2022
·
8
Minuten Lesezeit

Bilderkennung: Vergangenheit, Gegenwart und Zukunft

Stell dir vor, du möchtest gern automatisch die Objekte in Abbildung 1 (zwei verschiedene Arten von Ringen) unterscheiden. Dies kann im industriellen Kontext sinnvoll sein. Dort müssen häufig geometrische Objekte für Sortierung oder Qualitätskontrolle unterschieden werden.

Zur englischen Version. English version here.

Vergangenheit

Wenn die zu unterscheidenden Objekte so regelmäßig sind wie die dargestellten Ringe, ist eine solche Aufgabe oft mit den Mitteln der klassischen Bilderkennung zu lösen. Diese kommen in Frage, wenn die Objekte in einer kontrollierten Situation überprüft werden können. Dabei sollten Umgebung, Kamera und Beleuchtung konstant gehalten werden.

Abbildung 1: Zwei verschiedene Arten von Ringen
Abbildung 1: Zwei verschiedene Arten von Ringen

So eine Unterscheidung könnte in zwei Schritten ablaufen. Im ersten Schritt finden wir den Ring in dem Bild und im zweiten Schritt erkennen wir die Art des Rings anhand eines bestimmten Merkmals. In diesem Beispiel könnte es einfach lauten: Finde einen Ring und prüfe seinen Durchmesser, wie in Abbildung 2 dargestellt.

Abbildung 2: Mit der Hough-Transformation erkannte unterschiedliche Durchmesser
Abbildung 2: Mit der Hough-Transformation erkannte unterschiedliche Durchmesser

Die Erkennung eines Kreises kann mithilfe der so genannten Hough-Transformation erfolgen, die z.B. die bekannte Bibliothek OpenCV zur Verfügung stellt. Nachdem wir die Konturen der Ringe erkannt haben, können wir den Durchmesser berechnen. Dieser erlaubt uns ziemlich eindeutig eine Art von Ring von der anderen zu unterscheiden.

Gegenwart

Abbildung 3: Zwei Eichhörnchen tarnen sich in ihrer natürlichen Umgebung
Abbildung 3: Zwei Eichhörnchen tarnen sich in ihrer natürlichen Umgebung

In Abbildung 3 sehen wir weitaus weniger geometrische Objekte, die zudem eine natürliche Tarnung entwickelt haben. Ihr Fell sieht den Bäumen, in denen sie sich verstecken, sehr ähnlich.

 

Gut für das Eichhörnchen, schlecht für uns. Die Suche nach einfachen Merkmalen wie bestimmten Farben oder Mustern wird kaum erfolgreich sein. Stattdessen müssen wir auf komplexere Muster zurückgreifen.

 

Dies ist extrem schwer von Hand mit bestehenden klassischen Techniken umzusetzen. Das liegt vor allem daran, dass es gar nicht so einfach ist, die richtigen Muster für solch komplexe Objekte herauszufinden.

 

Aktuell werden derartige Probleme gelöst, indem nicht wir, sondern der Computer passende Muster herausfindet. Dazu müssen wir passende Beispiele von Eichhörnchen sammeln und diese einem Algorithmus für Machine Learning präsentieren. Dieser Ansatz ist in Abbildung 4 dargestellt.

Abbildung 4: Klassische Software-Entwicklung und Machine Learning haben unterschiedliche Ansätze
Abbildung 4: Klassische Software-Entwicklung und Machine Learning haben unterschiedliche Ansätze

Aktuelle Ansätze nutzen dazu tiefe Neuronale Netzwerken. Diese bestehen aus bestimmte Abfolgen von Schichten. Intuitiv wird in jeder Schicht eine bestimmte Art von Merkmal erkannt und an die nächste Schicht weitergeleitet, die darin ein komplexeres Muster erkennt. Ein solcher Aufbau wird auch Architektur genannt.

 

Herauszufinden, welche Architektur am besten für Bilderkennungsaufgaben geeignet ist, sollten wir der akademischen Welt überlassen. Stattdessen ist es für uns hilfreich zu wissen, welche Arten von vordefinierten Architekturen es gibt, wie man die richtige auswählt und wie man sie auf unsere Beispiele trainiert.

TensorFlow mit seiner Keras-API hat all diese Architekturen vordefiniert und sogar vor trainiert. Diese können wir weiter trainieren oder an unsere spezifischen Anwendungen anpassen und fein abstimmen.

Wie können wir sicherstellen, dass wir nach den richtigen Merkmalen suchen?

Die Literatur über Bilderkennung ist voll von Anekdoten, in denen z. B. Panzer anhand des Schnees oder des blauen Himmels erkannt werden und nicht anhand des Panzers selbst. Das hier beschriebene Problem wird als "Overfitting", also Überanpassung, bezeichnet.

 

Überanpassung liegt vor, wenn ein maschinelles Lernmodell alle möglichen Merkmale der Beispiele lernt, sich aber nicht auf die relevanten konzentriert. Es ist daher nicht allgemein genug, um ähnliche Objekte zu erkennen, die nicht in der Trainingsmenge enthalten waren.

 

Mit Tools wie Alibi Explain können wir das Bild in seine Teile, die sogenannten Superpixel, zerlegen. Diese können dann zu sogenannten Ankern (Anchors) kombiniert und durch das Neuronale Netzwerk geschickt werden, bis das Netz sicher ist, dass es dasselbe sieht wie im vollständigen Bild. Auf diese Weise können wir überprüfen, was das Netz im Bild als wesentlich ansieht. In Abbildung 5 haben wir das anhand des Beispiels einer Katze gemacht, die von einem Standard-Modell anhand sinnvoller Merkmale erkannt wird.

Abbildung 5: Unser neuronales Netz erkennt eine Katze anhand ihres Gesichts
Abbildung 5: Unser neuronales Netz erkennt eine Katze anhand ihres Gesichts

Das Beispiel sieht das vernünftig aus, weil auch wir eine Katze sinnvoll anhand des Kopfes erkennen könnten. In den Beispielen mit den Panzern würde ein solches Verfahren eher den Hintergrund sehen und nicht das Objekt selbst. Auf diese Weise wüssten wir, dass das Netz nicht richtig trainiert wurde und nicht gut auf etwas verallgemeinern kann, was es noch nie gesehen hat.

Zukunft

Die hier beschriebenen klassischen Techniken und das maschinelle Lernen sind beide etabliert und funktionieren in der Praxis gut. Sie können als die Vergangenheit und die Gegenwart der Bilderkennung angesehen werden. Aber was kommt als nächstes? Es gibt eine Reihe von Techniken, die vielversprechend, aber bisher noch nichtverfügbar oder nicht ganz so ausgereift sind.

 

Der vielversprechendste Ansatz für die Zukunft wird Vision Transformer (ViT) genannt. Die Idee ist, die Bilderkennung als Sprachproblem zu formulieren und dabei die erfolgreiche Transformer-Architektur zu verwenden. Bilder werden in Teilbilder zerlegt und in Tokens umgewandelt, die dann an eine ziemlich standardisierte Transformer-Architektur übergeben werden.

 

Diese Art der Architektur erlebt im Moment die größte Entwicklung und birgt viel Potential für die Zukunft. Allerdings sind die erforderlichen Rechenleistungen noch höher als für auf Bilderkennung spezialisierten Netzwerke. Zudem erreichen sie nur mit hohem Aufwand eine Vergleichbare Genauigkeit. Aber es gibt Hoffnung darauf, auf schnellere und gleichzeitig leistungsfähige Architekturen.

 

Ein anderer Ansatz besteht darin, Bilder zusammen mit ihren Beschreibungen zu trainieren. Anhand von neuen Beschreibungen können wir nun eigene Bilder erzeugen. Um bei unserem vorherigen Beispiel mit den Eichhörnchen zu bleiben, habe ich versucht, ein derartiges System (DALL-E 2) mit der Beschreibung "Ein pummeliges grünes Eichhörnchen auf dem Mond" einige ganz besondere Eichhörnchen für uns generieren zu lassen:

Abbildung 6: DALLE-E 2 generiert ein "Ein pummeliges grünes Eichhörnchen auf dem Mond"
Abbildung 6: DALLE-E 2 generiert ein "Ein pummeliges grünes Eichhörnchen auf dem Mond"

Die Qualität solcher erzeugten Bilder ist bisher leider selten ausreichend für einen ernsthaften Einsatz. Zwar kursieren viele gute Bilder auf Social Media, aber diese unterliegen einer doppelten Auswahl. Zuerst sucht der Mensch, der das Prompt -also die Beschreibung für das Bild - geschrieben hat, die beste Version heraus oder feilt am Prompt und erzeugt einen neuen Satz an Bildern.

 

Als nächstes werden nur die Bilder, die besonders beeindruckend sind, auf Social Media weitergegeben. Was bei uns ankommt ist somit eine unrealistisch gute Auswahl der generierten Bilder.

 

Auf der anderen Seite ist DALLE-E 2 bereits deutlich besser als die Version 1 und alternative Ansätze für ähnliche Aufgaben wie Diffusion Models sind vielversprechend. Sobald Ergebnisse besserwerden bieten sich Anwendungsfelder von Kunst über Erzeugung von Spiel-Szenen bis hin zur Generierung von Grafiken, um Artikel oder Sachverhalte zu illustrieren.

 

Bereits jetzt kann man erzeugte Bilder zur Evaluierung von trainierten Modellen nutzen. Dadurch kann sichergestellt werden, dass die zur Evaluierung genutzten Bilder einen anderen Ursprung als die Trainingsdaten haben. Wie in Abbildung 7 dargestellt, haben wir zum Überprüfen eines Modells zur Emotions-Erkennung ein Bild einer angeekelten Person erzeugt.

 

Abbildung 7: DALLE-E 2 generiert eine angeekelte Person zur Überprüfung unseres Emotions-Modells
Abbildung 7: DALLE-E 2 generiert eine angeekelte Person zur Überprüfung unseres Emotions-Modells

Auch hier habe ich das Beste aus einer Reihe von Bildern ausgewählt und den Prompt mehrfach angepasst, um bessere Ergebnisse zu bekommen. Dennoch kann man ein leicht unrealistische Aussehen der Nase und eine sonderbare Position der Zunge erkennen. Fairerweise sind wir Menschen aber auch besonders sensibel auf jegliche Abweichung, wenn ein Bild sehr menschenähnlich wird.

Und nun?

Wir haben jetzt schon einen Eindruck von den möglichen Anwendungen bekommen. Objekte auf einem Foto oder einem Video können einer Kategorie zugeordnet werden. Diese sind häufig binär, also Ring 1 oder 2 bzw. Eichhörnchen da, ja oder nein. Aber das ist keine Notwendigkeit.

 

Die Domäne, also was erkannt werden soll, spielt dabei erst einmal keine Rolle. Wichtig ist, wie groß die Bandbreite der zu erkennenden Objekte ist und wie ähnlich sie sich sehen.

 

Dazu kommt, wie aufwändiges ist, eine sinnvolle Menge von Beispieldaten für das Machine Learning bereit zu stellen. Was dabei eine sinnvolle Menge ist hängt wieder von der Komplexität des Problems und der für den Anwendungsfall notwendigen Genauigkeit der Vorhersage. Bekannte Anwendungen basieren dabei auf einigen Hundert bis einigen Millionen von Beispielen pro Kategorie.

Abbildung 8: Ob eine Idee mit Machine Learning umsetzbar ist, zeigt letztlich nur das Experiment
Abbildung 8: Ob eine Idee mit Machine Learning umsetzbar ist, zeigt letztlich nur das Experiment

Abbildung 8 zeigt den typischen Verlauf eines solchen Projekts. Nach einer Ideenfindung wird diese im tatsächlichen Experiment überprüft. Erst nach erfolgreicher Überprüfung geht man in die Umsetzung. In dieser Experimentierphase klärt man auch, wie gut das Modell werden kann und wie viele Beispiele man dafür braucht.

No items found.

Zur englischen Version. English version here.

Vergangenheit

Wenn die zu unterscheidenden Objekte so regelmäßig sind wie die dargestellten Ringe, ist eine solche Aufgabe oft mit den Mitteln der klassischen Bilderkennung zu lösen. Diese kommen in Frage, wenn die Objekte in einer kontrollierten Situation überprüft werden können. Dabei sollten Umgebung, Kamera und Beleuchtung konstant gehalten werden.

Abbildung 1: Zwei verschiedene Arten von Ringen
Abbildung 1: Zwei verschiedene Arten von Ringen

So eine Unterscheidung könnte in zwei Schritten ablaufen. Im ersten Schritt finden wir den Ring in dem Bild und im zweiten Schritt erkennen wir die Art des Rings anhand eines bestimmten Merkmals. In diesem Beispiel könnte es einfach lauten: Finde einen Ring und prüfe seinen Durchmesser, wie in Abbildung 2 dargestellt.

Abbildung 2: Mit der Hough-Transformation erkannte unterschiedliche Durchmesser
Abbildung 2: Mit der Hough-Transformation erkannte unterschiedliche Durchmesser

Die Erkennung eines Kreises kann mithilfe der so genannten Hough-Transformation erfolgen, die z.B. die bekannte Bibliothek OpenCV zur Verfügung stellt. Nachdem wir die Konturen der Ringe erkannt haben, können wir den Durchmesser berechnen. Dieser erlaubt uns ziemlich eindeutig eine Art von Ring von der anderen zu unterscheiden.

Gegenwart

Abbildung 3: Zwei Eichhörnchen tarnen sich in ihrer natürlichen Umgebung
Abbildung 3: Zwei Eichhörnchen tarnen sich in ihrer natürlichen Umgebung

In Abbildung 3 sehen wir weitaus weniger geometrische Objekte, die zudem eine natürliche Tarnung entwickelt haben. Ihr Fell sieht den Bäumen, in denen sie sich verstecken, sehr ähnlich.

 

Gut für das Eichhörnchen, schlecht für uns. Die Suche nach einfachen Merkmalen wie bestimmten Farben oder Mustern wird kaum erfolgreich sein. Stattdessen müssen wir auf komplexere Muster zurückgreifen.

 

Dies ist extrem schwer von Hand mit bestehenden klassischen Techniken umzusetzen. Das liegt vor allem daran, dass es gar nicht so einfach ist, die richtigen Muster für solch komplexe Objekte herauszufinden.

 

Aktuell werden derartige Probleme gelöst, indem nicht wir, sondern der Computer passende Muster herausfindet. Dazu müssen wir passende Beispiele von Eichhörnchen sammeln und diese einem Algorithmus für Machine Learning präsentieren. Dieser Ansatz ist in Abbildung 4 dargestellt.

Abbildung 4: Klassische Software-Entwicklung und Machine Learning haben unterschiedliche Ansätze
Abbildung 4: Klassische Software-Entwicklung und Machine Learning haben unterschiedliche Ansätze

Aktuelle Ansätze nutzen dazu tiefe Neuronale Netzwerken. Diese bestehen aus bestimmte Abfolgen von Schichten. Intuitiv wird in jeder Schicht eine bestimmte Art von Merkmal erkannt und an die nächste Schicht weitergeleitet, die darin ein komplexeres Muster erkennt. Ein solcher Aufbau wird auch Architektur genannt.

 

Herauszufinden, welche Architektur am besten für Bilderkennungsaufgaben geeignet ist, sollten wir der akademischen Welt überlassen. Stattdessen ist es für uns hilfreich zu wissen, welche Arten von vordefinierten Architekturen es gibt, wie man die richtige auswählt und wie man sie auf unsere Beispiele trainiert.

TensorFlow mit seiner Keras-API hat all diese Architekturen vordefiniert und sogar vor trainiert. Diese können wir weiter trainieren oder an unsere spezifischen Anwendungen anpassen und fein abstimmen.

Wie können wir sicherstellen, dass wir nach den richtigen Merkmalen suchen?

Die Literatur über Bilderkennung ist voll von Anekdoten, in denen z. B. Panzer anhand des Schnees oder des blauen Himmels erkannt werden und nicht anhand des Panzers selbst. Das hier beschriebene Problem wird als "Overfitting", also Überanpassung, bezeichnet.

 

Überanpassung liegt vor, wenn ein maschinelles Lernmodell alle möglichen Merkmale der Beispiele lernt, sich aber nicht auf die relevanten konzentriert. Es ist daher nicht allgemein genug, um ähnliche Objekte zu erkennen, die nicht in der Trainingsmenge enthalten waren.

 

Mit Tools wie Alibi Explain können wir das Bild in seine Teile, die sogenannten Superpixel, zerlegen. Diese können dann zu sogenannten Ankern (Anchors) kombiniert und durch das Neuronale Netzwerk geschickt werden, bis das Netz sicher ist, dass es dasselbe sieht wie im vollständigen Bild. Auf diese Weise können wir überprüfen, was das Netz im Bild als wesentlich ansieht. In Abbildung 5 haben wir das anhand des Beispiels einer Katze gemacht, die von einem Standard-Modell anhand sinnvoller Merkmale erkannt wird.

Abbildung 5: Unser neuronales Netz erkennt eine Katze anhand ihres Gesichts
Abbildung 5: Unser neuronales Netz erkennt eine Katze anhand ihres Gesichts

Das Beispiel sieht das vernünftig aus, weil auch wir eine Katze sinnvoll anhand des Kopfes erkennen könnten. In den Beispielen mit den Panzern würde ein solches Verfahren eher den Hintergrund sehen und nicht das Objekt selbst. Auf diese Weise wüssten wir, dass das Netz nicht richtig trainiert wurde und nicht gut auf etwas verallgemeinern kann, was es noch nie gesehen hat.

Zukunft

Die hier beschriebenen klassischen Techniken und das maschinelle Lernen sind beide etabliert und funktionieren in der Praxis gut. Sie können als die Vergangenheit und die Gegenwart der Bilderkennung angesehen werden. Aber was kommt als nächstes? Es gibt eine Reihe von Techniken, die vielversprechend, aber bisher noch nichtverfügbar oder nicht ganz so ausgereift sind.

 

Der vielversprechendste Ansatz für die Zukunft wird Vision Transformer (ViT) genannt. Die Idee ist, die Bilderkennung als Sprachproblem zu formulieren und dabei die erfolgreiche Transformer-Architektur zu verwenden. Bilder werden in Teilbilder zerlegt und in Tokens umgewandelt, die dann an eine ziemlich standardisierte Transformer-Architektur übergeben werden.

 

Diese Art der Architektur erlebt im Moment die größte Entwicklung und birgt viel Potential für die Zukunft. Allerdings sind die erforderlichen Rechenleistungen noch höher als für auf Bilderkennung spezialisierten Netzwerke. Zudem erreichen sie nur mit hohem Aufwand eine Vergleichbare Genauigkeit. Aber es gibt Hoffnung darauf, auf schnellere und gleichzeitig leistungsfähige Architekturen.

 

Ein anderer Ansatz besteht darin, Bilder zusammen mit ihren Beschreibungen zu trainieren. Anhand von neuen Beschreibungen können wir nun eigene Bilder erzeugen. Um bei unserem vorherigen Beispiel mit den Eichhörnchen zu bleiben, habe ich versucht, ein derartiges System (DALL-E 2) mit der Beschreibung "Ein pummeliges grünes Eichhörnchen auf dem Mond" einige ganz besondere Eichhörnchen für uns generieren zu lassen:

Abbildung 6: DALLE-E 2 generiert ein "Ein pummeliges grünes Eichhörnchen auf dem Mond"
Abbildung 6: DALLE-E 2 generiert ein "Ein pummeliges grünes Eichhörnchen auf dem Mond"

Die Qualität solcher erzeugten Bilder ist bisher leider selten ausreichend für einen ernsthaften Einsatz. Zwar kursieren viele gute Bilder auf Social Media, aber diese unterliegen einer doppelten Auswahl. Zuerst sucht der Mensch, der das Prompt -also die Beschreibung für das Bild - geschrieben hat, die beste Version heraus oder feilt am Prompt und erzeugt einen neuen Satz an Bildern.

 

Als nächstes werden nur die Bilder, die besonders beeindruckend sind, auf Social Media weitergegeben. Was bei uns ankommt ist somit eine unrealistisch gute Auswahl der generierten Bilder.

 

Auf der anderen Seite ist DALLE-E 2 bereits deutlich besser als die Version 1 und alternative Ansätze für ähnliche Aufgaben wie Diffusion Models sind vielversprechend. Sobald Ergebnisse besserwerden bieten sich Anwendungsfelder von Kunst über Erzeugung von Spiel-Szenen bis hin zur Generierung von Grafiken, um Artikel oder Sachverhalte zu illustrieren.

 

Bereits jetzt kann man erzeugte Bilder zur Evaluierung von trainierten Modellen nutzen. Dadurch kann sichergestellt werden, dass die zur Evaluierung genutzten Bilder einen anderen Ursprung als die Trainingsdaten haben. Wie in Abbildung 7 dargestellt, haben wir zum Überprüfen eines Modells zur Emotions-Erkennung ein Bild einer angeekelten Person erzeugt.

 

Abbildung 7: DALLE-E 2 generiert eine angeekelte Person zur Überprüfung unseres Emotions-Modells
Abbildung 7: DALLE-E 2 generiert eine angeekelte Person zur Überprüfung unseres Emotions-Modells

Auch hier habe ich das Beste aus einer Reihe von Bildern ausgewählt und den Prompt mehrfach angepasst, um bessere Ergebnisse zu bekommen. Dennoch kann man ein leicht unrealistische Aussehen der Nase und eine sonderbare Position der Zunge erkennen. Fairerweise sind wir Menschen aber auch besonders sensibel auf jegliche Abweichung, wenn ein Bild sehr menschenähnlich wird.

Und nun?

Wir haben jetzt schon einen Eindruck von den möglichen Anwendungen bekommen. Objekte auf einem Foto oder einem Video können einer Kategorie zugeordnet werden. Diese sind häufig binär, also Ring 1 oder 2 bzw. Eichhörnchen da, ja oder nein. Aber das ist keine Notwendigkeit.

 

Die Domäne, also was erkannt werden soll, spielt dabei erst einmal keine Rolle. Wichtig ist, wie groß die Bandbreite der zu erkennenden Objekte ist und wie ähnlich sie sich sehen.

 

Dazu kommt, wie aufwändiges ist, eine sinnvolle Menge von Beispieldaten für das Machine Learning bereit zu stellen. Was dabei eine sinnvolle Menge ist hängt wieder von der Komplexität des Problems und der für den Anwendungsfall notwendigen Genauigkeit der Vorhersage. Bekannte Anwendungen basieren dabei auf einigen Hundert bis einigen Millionen von Beispielen pro Kategorie.

Abbildung 8: Ob eine Idee mit Machine Learning umsetzbar ist, zeigt letztlich nur das Experiment
Abbildung 8: Ob eine Idee mit Machine Learning umsetzbar ist, zeigt letztlich nur das Experiment

Abbildung 8 zeigt den typischen Verlauf eines solchen Projekts. Nach einer Ideenfindung wird diese im tatsächlichen Experiment überprüft. Erst nach erfolgreicher Überprüfung geht man in die Umsetzung. In dieser Experimentierphase klärt man auch, wie gut das Modell werden kann und wie viele Beispiele man dafür braucht.

No items found.

Weitere Artikel aus unserem Blog