Erschienen am: 11.08.2017, Ausgabe SPS-MAGAZIN 8 2017

Deep Learning mit Convolutional Neural Networks

Von Hunden und Katzen

Deep Learning ist eine der Schlüsseltechnologien für künftige Entwicklungen im Bereich Bildverarbeitung. Wir sprachen mit Jeff Bier, Gründer der Embedded Vision Alliance (EVA), über die Möglichkeiten von Deep Learning, dessen Einfluss auf Computer/Machine Vision und das erste Deep Learning-Training in Deutschland, das die EVA auf Basis des Open Source Frameworks TensorFlow von Google durchführt.


Deep Learning scheint derzeit eine Art magischer Begriff zu sein. Können Sie diese Technologie kurz beschreiben?

Jeff Bier: Klassische Algorithmen für die optische Erkennung werden häufig noch für sehr spezifische Aufgaben entwickelt. Um zum Beispiel bestimmte Typen von Objekten zu identifizieren, spezifizieren die Entwickler von Algorithmen typischerweise kleine Objektmerkmale wie z.B. Ecken oder Kanten, die durch den Algorithmus dann erkannt werden sollen. Danach geben die Entwickler vor, wie Gruppen dieser kleinen Merkmale dazu verwendet werden können, um größere Merkmale zu identifizieren. Solche Ansätze funktionieren gut, solange die zu erkennenden Objekte sehr ähnlich und die Bedingungen für die Erkennung günstig sind, z.B. wenn Flaschen auf einer Abfüllanlage daraufhin überprüft werden, ob die richtigen Etiketten auf korrekte Weise angebracht wurden. Diese Ansätze erweisen sich allerdings häufig als problematisch, sobald die Randbedingungen schwieriger werden, also wenn z.B. die Prüfobjekte deformiert sind, es signifikante Variationen des Aussehens von einem zum nächsten Objekt gibt oder die Beleuchtungssituation nicht optimal ist. Auf Basis der jüngsten Weiterentwicklungen bei Prozessoren und Sensoren kann man davon ausgehen, das Algorithmen heute den Flaschenhals bei der Entwicklung von effektiven Visionsystemen darstellen. Neuronale Netze stellen einen völlig anderen Ansatz für die optische Erkennung dar, und nicht nur dafür, denn diese Technologie kommt auch in vielen anderen Bereichen zum Einsatz. Kurz gesagt: Statt einer Maschine zu 'sagen', wie sie Objekte erkennen soll, ist es mit neuronalen Netzen möglich, Algorithmen zu trainieren, indem man ihnen eine große Anzahl von Beispielen zeigt und dann eine Feedback-Prozedur nutzt, die automatisch und auf Basis der Beispiele die Funktionalität des Algorithmus adaptiert. Convolutional Neural Networks (CNN) sind massive parallele Algorithmen, die aus mehrlagigen Berechnungsknoten bzw. Neuronen bestehen. Solche Netze führen keine Programme aus. Stattdessen wird ihr Verhalten bestimmt durch ihre Struktur, die Möglichkeit einfacher Berechnungen, die jeder Knoten durchführt, und Koeffizienten oder Gewichtungen, die durch eine Anlernprozedur bestimmt werden. Anstatt also zu versuchen, Hunde von Katzen zu unterscheiden, indem man schrittweise eine Art Rezept anwendet, lernt ein CNN diese Kategorisierung durch das Zeigen einer großen Anzahl von Beispielbildern. Drei Dinge machen diesen Ansatz nun sehr spannend: (a) In vielen Bereichen der Bilderkennung übertreffen CNN die Genauigkeit der bislang leistungsfähigsten Techniken deutlich. (b) Das Tempo, mit dem sich die Genauigkeit von CNN bei optischen Erkennungsaufgaben verbessert, ist deutlich höher. (c) Mit CNN können wir eine Reihe von Techniken anwenden, um eine Vielzahl optischer Erkennungsaufgaben zu lösen. Das ist ein Fortschritt im Vergleich zu klassischen Techniken, wo viele verschiedene Typen von Algorithmen verwendet werden, um unterschiedliche Aufgaben zu lösen.

Wie können Vision-Entwickler von dieser Technologie profitieren?

Bier: CNN liefern in vielen Bereichen der visuellen Erkennung exzellente Ergebnisse, z.B. bei der Erkennung von Gesichtern und Objekten oder auch beim optischer Fluss. Selbst anspruchsvolle Aufgabenstellungen, wie das Lesen von Lippen, führen beim Einsatz solcher Algorithmen zu vielversprechenden Ergebnissen. Aus diesen Gründen sollten Entwickler, die sich mit der Lösung schwieriger Bilderkennungsaufgaben befassen, Techniken aus dem Deep Learning Bereich als mögliche Basis für ihre Arbeit in Betracht ziehen.

Welche Applikationen oder Systeme können dazu führen, dass die Nutzung von Deep Learning Technologien neue Vision Märkte erschließt?

Bier: Bisher war Bildverarbeitung vor allem bei Anwendungen wie der Inspektion von Produkten erfolgreich, wo die Rahmenbedingungen für die Bilderfassung kontrolliert und die Kriterien für IO-/NIO-Entscheidungen relativ einfach quantifiziert werden können. Es gibt jedoch zahllose Einsatzfälle, wo die Rahmenbedingungen für die Bilderfassung nicht kontrollierbar sind und die Prüfobjekte große Variationen aufweisen. CNN sind speziell in diesen Fällen hilfreich. Für den Menschen ist es z.B. sehr einfach, Erdbeeren von anderen Früchten zu unterscheiden. Für einen Algorithmus ist diese Aufgabe bei weitem nicht trivial, wenn man bedenkt, wie stark die Größen und Formen von Erdbeeren variieren können. Das Problem verschärft sich noch, wenn man Variationen der Kameraansicht, Beleuchtung oder benachbarter Objekte mit einbezieht. Auf ähnliche Weise stellt das Erkennen von Fußgängern für ein Kfz-Sicherheitssystem eine große Herausforderung dar, da Menschen unterschiedlich groß sind, verschiedenste Kleidung tragen und sich völlig unterschiedlich bewegen.

Googles Open Source Framework TensorFlow basiert auf Deep Learning Technologien. Laut einer kürzlich veröffentlichten Studie ist TensorFlow derzeit die beliebteste Deep Learning Plattform für die Bildverarbeitung und hat dabei Caffe, OpenCV und andere Optionen hinter sich gelassen. Worin liegen Ihrer Meinung nach die Gründe für diesen Erfolg?

Bier: Ein Grund für die Popularität von TensorFlow ist sicher, dass Google ein Technologieführer ist und es selbst extensiv einsetzt. Ingenieure anderer Firmen haben daher großes Interesse daran, die selbe Technologie zu verwenden wie Google. Die Tatsache, dass TensorFlow eine Open Source Plattform ist, spielt sicher auch eine große Rolle - es kostet schlichtweg nichts, es zu benutzen. Hinzu kommt, dass TensorFlow das erste Deep Learning Framework ist, das sich auf den Einsatz von CNN nicht nur in Rechenzentren, sondern auch in Embedded Systemen und in mobilen Geräten fokussiert.

Die Embedded Vision Alliance veranstaltet am 7. September 2017 in Hamburg das erste TensorFlow Training in Deutschland. Wer sollte daran teilnehmen und was steht auf dem Programm?

Bier: Die Schulung eignet sich für Ingenieure, die Algorithmen und Software für die Bildverarbeitung entwickeln und TensorFlow für diese Aufgaben nutzen wollen. Auch für Manager, die Grundlagen für das Entwickeln von CNN und den Einsatz von TensorFlow aufbauen wollen, ist das Training eine Möglichkeit, ihr Wissen zu erweitern. Allgemein gesagt werden von diesem Training alle profitieren, die sich mit jeglicher Form des Computer/Machine Vision befassen, ganz gleich, ob sie Methoden der optischen Erkennung in der Cloud, auf einem PC, in Embedded Systemen oder auf Mobilgeräten implementieren. Inhalt der Schulung ist eine Einführung in das TensorFlow Framework, wobei der Schwerpunkt darauf liegt, zu demonstrieren, wie man es nutzen kann, um CNN für Aufgaben im Bereich der Bildverarbeitung zu entwickeln, zu trainieren, zu evaluieren und einzusetzen. Weitere Details gibt es unter https://tensorflow.embedded-vision.com.

Werden Kenntnisse zu CNN vor dem Training vorausgesetzt?

Bier: Am meisten profitieren Teilnehmer von der Schulung, wenn ihnen grundlegende Konzepte und Terminologien neuronaler Netzen bekannt sind. Interessierten, die eine Einführung in Algorithmen für tiefe neuronale Netze benötigen, stellt die Embedded Vision Alliance vor der Schulung ein kostenloses, zweistündiges Online-Video-Tutorial zur Verfügung. n