Zum Hauptinhalt springen

Ob in der Lagerung, der Produktion oder im Kundenservice – in völlig unterschiedlichen Geschäftsprozessen werden Bilder genutzt, die analysiert und bewertet werden müssen. Die manuelle Auswertung dieser Bilder ist dabei allerdings sowohl zeitaufwendig als auch fehleranfällig. Dank Computer Vision, also der maschinellen Analyse und Verarbeitung von Bildern, lassen sich derartige Prozesse automatisieren. Dabei sind Maschinen heute dank eines hohen methodischen Reifegrads in der Lage, selbst komplizierte Analysen durchzuführen.

Watt denn nu - Hund oder Katze?

Legt man jeweils ein Bild einer Katze und das eines Hundes nebeneinander, sind schon Kleinkinder in der Lage, die Tiere zu identifizieren. Doch anhand welcher Merkmale ist das möglich? Wie sieht ein Regelwerk aus, um die beiden Tiere auseinander zu halten?

Hunde sind größer als Katzen <-> Aber eine Maine-Coone-Katze ist größer als ein Chihuahua

Hunde haben spitzere Schnauzen <-> Und der Mops?

Katzen haben dicke Schnurrhaare <-> Aber auch ohne Schnurrhaare bleibt es eine Katze

Obwohl es sich hier um eine triviale Fragestellung handelt, die ein Mensch völlig intuitiv beantworten kann, bedarf die Erstellung eines robusten Regelwerkes enorm viel Aufwand. Aber ist ein solches Regelwerk überhaupt notwendig, damit eine Maschine Bilder voll automatisiert analysieren kann?

Wie Maschinen lernen

Statt erheblichen Aufwand zu betreiben, Gesetzmäßigkeiten zu definieren, können wir Maschinen die Möglichkeit geben, die zu Grunde liegenden Muster selbstständig zu entdecken bzw. zu erlernen.  Der Lernprozess lässt sich dabei in vier grundlegende Schritte unterteilen:

  1. Labeling: Maschinen lernen auf Basis eines Datasets. Zunächst müssen viele Beispielbilder gesammelt werden. Diese werden anschließend gelabelt – das bedeutet, dass jedes Beispielbild manuell einer der beiden Klassen (Hund | Katze) zu geordnet wird. Wichtig ist dabei, dass die Beispielbilder möglichst repräsentativ ausgewählt werden. Sind alle Katzenbilder in Wohnzimmer entstanden, aber alle Hundebilder auf einer Wiese, könnte die Maschine unbeabsichtigt den Unterschied in der Umgebung und nicht dem Tier lernen.
  2. Splitting: Unseren gelabelten Datensatz müssen wir nun in zwei unabhängige Sets aufteilen- Training und Test. Mit dem Trainingsdatensatz werden wir anschließend unser Modell trainieren. Der Testdatensatz wird später verwendet, um zu bestimmen, ob das Modell wirklich gelernt hat, Hunde und Katzen zu unterscheiden – und sich nicht bloß alle Bilder des Trainingsdatensatzes gemerkt hat.
  3. Training: Alle Bilder unseres Trainingssatzes zeigen wir nun in einem Modell - und sagen dem Modell zusätzlich, welche die richtige Klasse des Bildes ist. Auf Basis dieser Zuordnung kann das Modell Muster finden, mit deren Hilfe sich Hunde und Katzen unterscheiden lassen.
  4. Testing: Nachdem das Modell trainiert wurde, werden ihm nun die Bilder des Testdatensatzes gezeigt – allerdings ohne Klasse. Das Modell muss nun für jedes Bild entscheiden, ob es sich um einen Hund oder eine Katze handelt. Durch einen Vergleich der Modellvorhersagen und den tatsächlichen Klassen lässt sich das Modell abschließend bewerten.

Was können Modelle?

Bei dem oben genannten Beispiel handelt es sich um eine einfache Computer Vision Fragestellung. Das Modell muss lediglich entscheiden, was auf einem Bild zu sehen ist. Es handelt sich hierbei um ein single-label Bildklassifizierung, bei der nur entschieden wird, ob ein Hund oder eine Katze auf dem Bild zu sehen ist. Zur Beantwortung verschiedener Fragestellungen stehen dabei allerdings weitere Modelltypen zur Verfügung:

Anomaly Detection: Das Modell lernt, wie Bilder normalerweise aussehen und kann Abweichungen hiervon erkennen. „Negativbeispiele“ werden hier zum Training nicht benötigt.

Image Classification: Wie erwähnt erkennt das Modell, was auf einem Bild zu sehen ist. Hierbei kann zwischen single- und multi-label unterschieden werden. Bei multi-label Problemen kann ein Bild auch mehreren Klassen zugeordnet werden – auf einem Bild kann also ein Hund und eine Katze zu sehen sein.

Object Detection: Das Modell erkennt die Position von Objekten und ordnet jedes Objekt einer Klasse zu. Es gibt also Koordinaten eines Rechtecks an, das die Katze auf dem Bild umschließt.

Image Segmentation: Das Modell ordnet jedem Pixel eine Klasse zu. So kann beispielsweise eine Katze vom Hintergrund unterschieden und somit freigestellt werden.

Instance Segmentation: Es wird zunächst eine Object Detection durchgeführt, um die Katze mit ihrer Position zu erkennen. Zusätzlich wird die Form der Katze pixelgenau erkannt.

 

Die Methoden unterscheiden sich dabei nicht nur in der Fragestellung, die sie beantworten, sondern auch hinsichtlich des Aufwands der Modellerstellung. Auch der Labeling-Aufwand hängt maßgeblich vom gewählten Modelltyp ab. So gilt es bei jedem Use-Case, den Modelltyp (oder eine Kombination mehrere) zu finden, der sich am besten zur Beantwortung der Fragestellung eignet.

 

 

 

Keine Lust mehr, Bilder manuell auszuwerten? Oder Du brennst darauf, mit Bildern neue Business Cases zu entwickeln? Lass uns gemeinsam Dein Projekt planen!

 

Hier entlang!

 

 

 

Dein Ansprechpartner
Yannick Franke
Senior Consultant
In der weiten Welt des Machine Learnings ist Yannicks gar nicht so heimliche Leidenschaft Computer Vision. Doch so beeindruckend er Modelle an sich auch findet – damit sie nachhaltig Mehrwert generieren, bedarf es einer Integration in komplexe Systemlandschaften. Diese Kombination aus Methodik und Technik ist es, was ihn am meisten fasziniert.
#MachineLearning #ComputerVision #CloudComputing