Computer Vision mit TensorFlow

Deep Learning für Computer Vision mit TensorFlow

Computer Vision Anwendungen haben mittlerweile großen Einfluss auf unsere Wirtschaft und Gesellschaft: Autos fahren teilautonom, Gesichtserkennung versucht in manchen Staaten Straftäter zu erkennen, in der Landwirtschaft werden Drohnenaufnahmen automatisiert ausgewertet um Ernten zu optimieren und in der produzierenden Industrie werden visuelle Inspektionen automatisiert.

Diese stärkere Verbreitung ist auf Durchbrüche im Bereich Deep Learning zurückzuführen, welche zunehmend genauere und performantere Computer Vision Modelle ermöglichen. Infolgedessen wurde die Nutzung aktueller Computer Vision Technologie durch entsprechende Softwarebibliotheken immer einfacher.

In diesem Kurs werden wir die verbreitete TensorFlow-Bibliothek kennenlernen und nutzen, um verschiedene Praxisbeispiele mit Computer Vision gemeinsam zu lösen. Insbesondere zeigen wir auf, welche Fallstricke es gibt und wie diese vermieden werden können. Durch diesen Kurs werden Sie befähigt Computer Vision gewinnbringend in ihrem Arbeitsalltag zu nutzen.

Trainer und Dozenten

Jannis Walk ist wissenschaftlicher Mitarbeiter und Doktorand an dem Karlsruher Institut für Technologie. Er fokussiert sich auf die Entwicklung von Machine Learning basierten System, insbesondere im Bereich Computer Vision. Im Rahmen seiner anwendungsorientierten Forschung unterstützt er seit vielen Jahren Unternehmen in Deutschland, Österreich und Norwegen in verschiedenen Branchen wie Metallverarbeitung, Kunststoffverarbeitung und Maschinenbau in der erfolgreichen Umsetzung von Machine Learning Projekten. Jörn Kuhlenkamp ist technischer Leiter und Mitbegründer der PDT. Zuvor war er als leitender wissenschaftlicher Mitarbeiter an der TU Berlin und am Karlsruher Instituts für Technologie (KIT) tätig. Zudem arbeiteter er als assoziierter Wissenschaftler am IBM Thomas J. Watson Research Center in Yorktown Heights, New York. Herr Kuhlenkamp hat ein Diplom und einen Master in Information Engineering and Management vom KIT.

Voraussetzungen

Wünschenswert sind Grundkenntnisse in Python (oder ähnlichen Programmiersprachen), Linux und optional in Maschinellem Lernen.

Inhalt

Einführung

Zuerst präsentieren wir das Ziel von Computer Vision sowie traditionelle Computer Vision Verfahren und ihre Limitierungen. Anschließend folgt eine kurze Einführung in das Thema Maschinelles Lernen: Was ist das? Welche Arten gibt es? Welche Grundprinzipien und Fallstricke gibt es?

Grundlagen zu Neuronalen Netzen

Wir besprechen kurz verschiedene neuronale Netze von Perzeptron bis zu state-of-the-art Convolutional Neural Networks für Computer Vision. Letztere nutzen wir im weiteren Verlauf des Kurses.

Computer Vision Workflow und Paradigmen

Computer Vision Workflows sind mehrstufig und iterativ – wir stellen einen typischen Workflow vor. Außerdem grenzen wir die Paradigmen model-centric und data-centric voneinander ab und lernen diese gewinnbringend einsetzen zu können. Entsprechende praktische Anwendungen wie Hyperparameteroptimierung und semi-automatisches Data Cleaning implementieren wir gemeinsam im Rahmen der Praxisbeispiele.

Grundlagen Bildverarbeitung und Arten von Computer Vision

Bevor wir Computer Vision Modelle implementieren, trainieren, evaluieren und deployen, lernen wir Bilder einzulesen und zu manipulieren. Anschließend besprechen wir verschiedene Computer Vision Aufgaben und passende Herangehensweisen und Modellarchitekturen.

Praxisbeispiele:

Dies ist der größte Block dieses Kurses. Gemeinsam bearbeiten wir drei verschiedene Praxisbeispiele: eine Bildklassifikationsaufgabe, eine Objekterkennungsaufgabe und eine Aufgabe bezüglich Semantischer Segmentierung.

Hierbei bearbeiten wir den Gesamtprozess von Datenakquise und Annotation über Datenvorverarbeitung bis hin zu Modelltraining und Evaluation. Wir lernen zu allen Schritten die entsprechenden Tools in TensorFlow 2 oder wenn nötig außerhalb kennen. Wir nutzen zum Beispiel entsprechende Modellarchitekturen, Loss-Funktionen und Evaluationsmetriken. Ein besonderer Fokus liegt hier auf der Evaluation, um eine sinnvolle Nutzung der trainierten Modelle in der realen Welt zu ermöglichen - zu diesem Zweck beschäftigen wir uns mit Verfahren zur Erklärbarkeit der Entscheidungen von neuronalen Netzen wie Saliency Maps und LIME. Des Weiteren beschäftigen wir uns mit der Optimierung von trainierten Modellen für den Betrieb in unterschiedlichen Ausführungsumgebungen, wie der Cloud und Edge Devices.

Praxisbeispiel 1: Bildklassifikation

Mittels Deep Learning trainieren wir ein Computer Vision Modell dafür, Kategorien auf gesamten Bildern zu erkennen.

Beispielhafte Aufgabe: Ist auf diesem Bild eines Metallproduktes ein Defekt zu erkennen: ja oder nein? Welcher Fehlertyp ist auf diesem Bild eines Metallproduktes zu erkennen?

Praxisbeispiel 2: Objekterkennung

Mittels Deep Learning trainieren wir ein Computer Vision Modell dafür, die Kategorie und Lokalisation von Objekten auf Bildern zu erkennen.

Beispielhafte Aufgabe: wo auf diesem Bild eines Metallproduktes ist ein Defekt zu erkennen und zu welcher Klasse gehört er?

Praxisbeispiel 3: Semantische Segmentierung

Mittels Deep Learning trainieren wir ein Computer Vision Modell dafür, jedem Pixel eines Bildes eine Kategorie zuzuordnen.

Beispielhafte Aufgabe: welche Pixel des Bildes eines Metallproduktes gehören zu welche Defektklasse?

Deployment von Machine Learning Modellen

Die meisten Machine Learning Modelle liefern erst im realen Einsatz Mehrwert. Wir lernen verschiedenen Arten des Deployment (z.B. API und Edge Device) kennen und implementieren diese.

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.