Computer Vision: Wie lernen Maschinen zu sehen?

|Eingabebild: Rückseite einer 20ct Münze|Ergebnis: Rückseite einer 20ct Münze|Beispiel der Repräsentation eines 5*6 Pixel großen RGB-Bildes|Fahrzeugklasse wird durch einen Klassifikator erkannt|Objekt-Detektion erfasen alle Fahrzeuge auf dem Gelände|Bild-Segmentierung ermöglicht eine genaue Erkennung der befahrbaren Flächen und Hindernisse|Ein Beispiel des menschlichen Bildverarbeitungsvermögens anhand einer optischen Täuschung|Beispiel gelernter Merkmale in einem beliebten CNN-Modell|||||||||
|© Gabriel Santos & Fraunhofer IML|© Kendall Henderson & Fraunhofer IML|© Wouter Dijkstra & Fraunhofer IML|© Edward H. Adelson (CC BY-SA 4.0)

Das Fachgebiet der Computer Vision beschäftigt sich mit der Aufgabe aus digitalen Bildern und Videos Informationen zu extrahieren und deren Inhalt zu verstehen. Es wird daher auch oft Bilderkennung genannt. In der Industrie gibt es für den Einsatz von Computer Vision eine Vielzahl von Einsatzmöglichkeiten, vor allem um zeitaufwändige Arbeitsschritte automatisiert durchzuführen. Beispiele sind etwa die Sortierung von Sendungen nach Zieladressen, die Überprüfung produzierter Güter auf Schäden und das autonome Fahren.

Machine-Learning-Verfahren, wie beispielsweise Support Vektor Maschinen (SVMs), sind schon lange im Bereich Computer Vision im Einsatz. Seit einigen Jahren werden insbesondere Deep Learning-basierte Methoden in vielen Bereichen eingesetzt und erzielen herausragende Leistungen, zum Beispiel in folgenden Problemfällen:

  • Bildklassifikation: Das Zuordnen eines Bildes zu einer oder mehreren Kategorien, womit Entscheidungen über Bilder als Ganzes getroffen werden können – also zum Beispiel, ob ein Werkstück beschädigt ist oder welche Art von Fahrzeug sich auf dem Bild befindet.
  • Objekt-Detektion: Die Erkennung und Verortung von (mehreren) Objekten und Personen in Bildern zu sogenannten rechteckigen „Bounding-Boxen“ (Begrenzungsrahmen). Hierdurch ist es möglich, Positionen von Objekten im Bild zu Positionen in der echten Welt zuzuordnen sowie Objekte zu zählen.
  • Bild-Segmentierung: Das Zuordnen von pixelgenauen Bildbereichen zu bestimmten Kategorien. Somit können ganze Flächen und Polygone im Bild erkannt werden, etwa wo im Bild eine Straße verläuft und wo der Bürgersteig anfängt.

Wie sehen wir Menschen die Welt?

Das menschliche Sehen ist sehr leistungsfähig und erkennt verschiedene Objekte, Formen, Bewegungen und Gesichter mühelos. Während der Aufbau des menschlichen Auges und die darüber stattfindende Aufnahme von Licht weitreichend erforscht sind, geschieht die Interpretation dieser Sinneswahrnehmungen vornehmlich unbewusst. Dabei verarbeitet das Gehirn auch viele nicht-lineare und relative Zusammenhänge.

Bild 5 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Edward H. Adelson (CC BY-SA 4.0)
Abbildung 2: Ein Beispiel des menschlichen Bildverarbeitungsvermögens anhand einer optischen Täuschung: Obwohl die Felder A und B die exakt gleiche Helligkeit aufweisen, nimmt das menschliche Gehirn Feld B als deutlich heller wahr (relativer Zusammenhang).

Die vorangegangene Abbildung 2 zeigt einen solchen relativen Zusammenhang und verdeutlicht die Herausforderung für computerbasierte Bildverarbeitungsprogramme. Denn: Felder A und B haben die gleiche Helligkeit, für einen Rechner also dieselben Pixelwerte. Das menschliche Gehirn nimmt jedoch Feld B als heller wahr, da es stärker auf den Vergleich zu den benachbarten Feldern achtet als auf absolute Werte. Solche und weitere Effekte wie die Gestaltgesetze, welche Regeln in der Wahrnehmung von zusammengehörenden Elementen beschreiben und vor allem im UI/UX-Design wichtig sind, müssen zwar nicht explizit bei der Verarbeitung von Bildern in Programmen berücksichtigt werden, um gute Ergebnisse zu erzielen. Sie können jedoch als Inspiration für die Entwicklung von neuen Methoden und für ein besseres Verständnis und die Analyse bisheriger Verfahren dienen, wenn man die Leistungsfähigkeit des menschlichen Sehens nachbilden möchte.

Maschinelle Bildverarbeitung

Zur Verarbeitung von Bildern mit Computerprogrammen werden hauptsächlich Matrix-ähnliche Datenstrukturen verwendet. Bei Farbbildern, welche im RGB-Farbraum verarbeitet werden, bestehen die Matrizen zum Beispiel aus den Dimensionen W, H und C. Dabei stehen W und H für die Position der Pixel in der Breite und Höhe des Bildes und C beschreibt die Farbintensität der Pixel für die Farben Rot, Grün und Blau.

Bild1 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
Abbildung 3: Beispiel der Repräsentation eines 5*6 Pixel großen RGB-Bildes im Computer mit den RGB-Werten der Pixel an verschiedenen Positionen.

Die einzelnen Werte der Pixel werden üblicherweise mit 8 Bit dargestellt – nehmen demnach ganzzahlige Werte von 0 bis 255 an – und werden für bessere Recheneigenschaften oft in andere Wertebereiche umgewandelt. Um nun aus diesen Pixelwerten sinnvolle Informationen zu berechnen, können Filter eingesetzt werden. Diese bestehen aus sogenannten Kernels, oder Masken, welche Schritt für Schritt über das Bild geschoben werden und meistens per Konvolution (Faltung) auf benachbarten Pixeln Berechnungen durchführen. Das Ergebnis wiederum ist ein neues Bild, beziehungsweise eine Matrix.

Zur Veranschaulichung betrachten wir einen Filter, welcher Kanten („edges“) erkennt, also starke Unterschiede in der Intensität zwischen benachbarten Pixeln: der Prewitt Filter.

Gif1 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Fraunhofer IML
Abbildung 5: Zur Veranschaulichung die Konvolution eines kleinen Bildausschnittes mit einem Prewitt-Filter. Die einzelnen Elemente werden dabei entsprechend ihrer Positionen multipliziert und schließlich aufsummiert. Damit das Resultat die gleichen Maße behält, wie das Ursprungsbild wurden hier zusätzliche Nullen eingefügt. Dies wird auch „Zero-Padding“ genannt. Das Ergebnis wird anschließend quadriert, um den Filter richtungsunabhängig zu machen.

Ausgehend von diesen „Kantenbildern“ können nun, zum Beispiel über geometrische Berechnungen, verschiedene Formen detektiert werden. Neben einfachen Filtern existieren auch komplexere Methoden, um beispielsweise sogenannte Bild- beziehungsweise Merkmalsdeskriptoren zu berechnen, welche lokale (also auf kleinen Bildausschnitten) Merkmale beschreiben. Beispiele für solche Methoden sind SIFT und HOG.

Zu wissen, welche Filter, Bilddeskriptoren und darauf aufbauend weitere Methoden für bestimmte Anwendungsfälle benötigt werden, ist hochrelevant. Hier zeigt Deep Learning seine Stärke, da geeignete Filter und Merkmale über Datensätze eigenständig von DL-Modellen gelernt werden können.

Bilderkennung durch Convolutional Neural Networks

Ein großer Vorteil von Deep-Learning-Verfahren ist in diesem Zusammenhang das „End-to-End“ Learning. Hierbei wird eine sonst mehrstufige, manuell ausgewählte Pipeline aus Datenvorverarbeitung, (eventuell mehrfacher) Merkmalsextraktion und Vorhersagemethode durch ein einzelnes Modell ersetzt. Ein solches Deep-Learning-Modell ist fähig, aus einem (hinreichend großen) Datensatz, die nötigen Vorverarbeitungsschritte und Merkmale eigenständig zu lernen, die es für eine Vorhersage benötigt.

Für die Bilderkennung kommen dazu Convolutional Neural Networks (CNNs) zum Einsatz. Diese verfügen über spezielle Faltungsschichten, die ähnlich zu den oben genannten Filtern funktionieren. Die einzelnen Parameter der Filtermasken werden im Trainingsprozess von dem Modell gelernt und sind daher nicht fest vorgegeben. Dadurch kann das Modell genau die Merkmale lernen, die es zur Optimierung der Zielmetrik, zum Beispiel die Genauigkeit der Klassifikation, benötigt. Das heißt, dass auf Basis anfangs simpler Merkmale, wie Kanten und Farben, Schritt für Schritt immer komplexere Merkmale, wie Gesichter oder Reifen, erkannt werden.

Bild 8 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Olah, et al. (2017, CC-BY 4.0)
Abbildung 6: Beispiel gelernter Merkmale in einem beliebten CNN-Modell. Bei dieser Visualisierung der Merkmale entstehen Bilder, die in etwa das darstellen, was der Filter erkennt. In den ersten Schichten werden noch sehr allgemeine Merkmale, wie Kanten und Texturen, erkannt. Die späteren Schichten erkennen immer komplexere Objekte, wie Blüten und Blätter oder die Köpfe bestimmter Hunderassen inklusive der korrekten Zusammensetzung aus Ohren, Schnauze und Augen.

CNNs haben zusätzlich den Vorteil, dass inzwischen sehr große Modelle mit über 100 solcher Faltungsschichten existieren und diese durch ihre Komplexität in der Lage sind, aus immer größeren Datensätzen mehr Vorhersageleistung gewinnen zu können.

Fazit

Deep Learning und CNNs ermöglichen es Entwickler*innen von Bilderkennungssystemen sich auf die Sammlung diverser Datensätze, die Auswahl geeigneter neuronaler Netzwerk-Architekturen sowie die Optimierung von Modellparametern zu konzentrieren. Deep-Learning-Modelle können als Ganzes entwickelt, trainiert und getestet werden. Sie haben so einen Vorteil gegenüber traditionellen Verfahren, bei denen für jeden Anwendungsfall erneut eine Pipeline aus geeigneter Merkmalsextraktion und Vorhersagemethoden entwickelt und Schritt-für-Schritt getestet werden muss. Insbesondere erzielen Deep-Learning-Modelle in vielen Anwendungsfällen eine bessere Vorhersageleistung als traditionellere Methoden.

Der Einsatz von Deep Learning stellt uns jedoch auch vor Herausforderungen: Modellentscheidungen sind nur schwierig zu analysieren und Fehler daher mitunter nur schwer zu erkennen. Außerdem ist nicht klar, ob Deep-Learning-Verfahren spezielle Problemfälle, die über gesammelte Daten hinaus gehen, lösen können.

Wir müssen uns diese Einschränkungen beim Einsatz von Deep Learning für Aufgaben der Computer Vision vor Augen führen. Insgesamt sind Deep Learning basierte Verfahren jedoch eine sehr gute erste Wahl, um diverse Anwendungsfälle im Bereich der Bilderkennung zu lösen.

Weitere Quellen:

CS231n: Convolutional Neural Networks for Visual Recognition

Feature Visualization. Olah, et al., Distill, 2017, Link

Computer Vision: Algorithms and Applications (2. Aufl.).
Richard Szeliski, Springer Science & Business Media, 2022, Link

Digital Image ProcessingRafael Gonzalez, Richard Woods, Steven Eddins, Gatesmark Publishing, 2020, Link

Christian Pionzewski,

9. März 2022

Themen

lamarr institute Pionzewski Christian - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
|© Gabriel Santos & Fraunhofer IML|© Kendall Henderson & Fraunhofer IML|© Wouter Dijkstra & Fraunhofer IML|© Edward H. Adelson (CC BY-SA 4.0)
zum Profil

Christian Pionzewski

Christian Pionzewski ist wissenschaftlicher Mitarbeiter am Fraunhofer IML in der Abteilung für Software & Information Engineering. Er beschäftigt sich mit Softwareentwicklung und dem Einsatz von ML-basierter Bildverarbeitung in Industrie- und Forschungsprojekten in der Logistik.

Weitere Blogartikel