© Liashko/Shutterstock.com
Maschinelle Bilderkennung mit Big Data und Deep Learning

Einblicke in die Königsdisziplin


Die Arbeit mit unstrukturierten Daten dient gerne als Paradebeispiel für Big Data, weil die technologischen Möglichkeiten das Speichern und Verarbeiten großer Datenmengen erlauben und die Mehrheit dieser Daten unstrukturiert ist [1]. Allerdings ist im Zusammenhang mit unstrukturierten Daten meist von der Analyse und der Extraktion von Informationen aus Texten die Rede. Viel weniger hingegen wird das Thema der Bildanalyse thematisiert. Diese gilt aber nach wie vor als eine Königdisziplin der modernen Computerwissenschaft.

Wie unstrukturierte Texte, so tragen auch Bilder zahlreiche Informationen in sich. Ein Mensch kann diese Zusammenhänge sofort erkennen und Erkenntnisse daraus für sich ableiten. Maschinen haben es da schwerer und benötigen für die Bildanalyse komplexe Verarbeitungsmechanismen. Vor allem brauchen sie hierfür aber auch zwei technologische Grundbedingungen: Sie brauchen eine skalierbare Plattform zum Speichern der Bilder und eine ebenfalls skalierbare und objektunabhängige Methode zur Extraktion der Merkmale aus den Bildern.

Eine maschinelle Bildanalyse teilt sich in viele Unterbereiche auf, vom einfachen Sortieren nach Farbstimmungen bis hin zum komplexen Themen, die heutzutage unter Computer Vision zusammengefasst werden. Auf drei wichtige Bereiche gehen wir näher ein: ähnliche Bilder anzeigen, Objekterkennung und Objektklassifizierung.

Fangen wir mit der einfachsten Problemstellung in der Bildanalytik an, nämlich dem Zeigen von allen ähnlichen Bildern in einer Datenbank. Hierzu machen sich die Entwickler Hashing- und Histogrammverfahren zu Nutze. Sie erstellen pro Bild ein Histogramm und kodieren dieses entweder in einem Vektor oder einem Hash. Anschließend clustern sie die sortierten Vektoren entsprechend ihrem Abstand zueinander und errechnen aus diesen Clustern einen Index. LIRE, ein Plug-in für Lucene, funktioniert z. B. auf diese Weise und ermöglicht so eine Bildersuche nach ähnlich aussehenden Bildern (Lucene Image Retrieval). Dabei geht LIRE nach einem fest definierten Regelsatz vor. Das System unterscheidet nicht zwischen einem Pferd und einem Menschen, sondern abstrahiert die Farbstimmung des Bilds.

In der Bildanalytik geht es aber noch deutlich komplexer. So benötigt ein Programm für die Objekt­erken­nung eine genaue Vorgabe und muss wissen, nach welchen Alleinstellungsmerkmalen (Features) in einem Bild gesucht werden soll. Damit nur eine bestimmte Art von Objekten gefunden wird, gibt ein Entwickler den Algorithmus vor, mit dem Features aus einem Bild extrahiert werden. So werden beispielsweise für eine Gesichtserkennung mehrere Merkmale definiert, die ein menschliches Gesicht ausmachen. Meist sind das Hell-Dunkel-Unterschiede (Haar Cascades), die der Maschine eine Schablone für die Suche vorgeben. Findet der Algorithmus in einem Bild eine gewisse Anzahl an Übereinstimmungen mit dieser Featureschablone, wird das Bild als TRUE klassifiziert. Zur Klassifizierung der gefundenen Features kommen meist Support Vector Machines (SVM) zum Einsatz. OpenCV ist eine bekannte Bibliothek, die viele solcher Objekterkennungsverfahren zusammenfasst. So lässt sich beispielsweise eine Gesichtserkennung ohne großen Aufwand implementieren.

Der anspruchsvollste Bereich in der Bildanalytik ist die Objektklassifizierung. Sie benötigt einen Algorithmus, der robust genug ist, alle Merkmale eines Objekts wiederzuerkennen, und zwar unabhängig vom Bildhintergrund.

Machine Learning und Deep Learning

Schon früher haben Experten versucht, die Merkmale eines Bilds von Hand vorzugeben und manuell zu definieren. Doch das funktionierte nur für rudimentäre Aufgaben, wie das Finden eines runden Objekts auf einem eintönigen Hintergrund. Während ein Mensch einem anderen Menschen problemlos in wenigen Sätzen ein neues Objekt verständlich beschreiben kann, war eine Maschine bislang nicht in der Lage, ein solches Objekt eigenständig zu identifizieren.

gross_bildanalyse_1.tif_fmt1.jpgAbb. 1: Dedizierter Feature-Extraction-Algorithmus für Menschenerkennung [2]

Viele Jahre wurde bereits in Featurealgorithmen investiert, die aus einem Bildobjekt Muster extrahieren. Das Lösen bestimmter Teilprobleme der Bilderkennung funktioniert mit diesen auch sehr gut (Abb. 1). Sie können zwar Gesichter erkennen oder menschliche Silhouetten unterscheiden, aber nicht beides zu einem Gesamteindruck zusammenfügen. Es fehlte also noch ein Verfahren, das ein Programm in die Lage versetzt, die Features aus einem Bild ohne vorgegebene Logik selbstständig zu extrahieren und mit einem Label zu verknüpfen. Und das immer wieder für jedes beliebige Objekt auf einer beliebigen Anzahl von Bildern.

Möchte man also beliebige Bilder klassifizieren, ohne das zugrunde liegende Verfahren zu verändern, braucht man eine dynamische und für jede Objektklasse gesonderte Extraktion von Features. Bis vor einigen Jahren war das noch nicht möglich. Erst seit 2010 wurde umfangreich mit gefalteten neuronalen Netzwerken experimentiert. Deren Schwerpunkt liegt darin, jedes einmal eintrainierte Objekt in vielen Variationen wiederzuerkennen, indem das Netzwerk repräsentative Features aus Bildern extrahiert und mit jeder weiteren Faltungsst...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang