Bildverarbeitung und Deep Learning (BDL)

Belegbar Nur im Wintersemester
ECTS-Punkte 10 (ca. 300 Stunden)
Fachgebiet Angewandte Informatik

Ziel des Moduls

In einer Vielzahl industrieller Anwendungen, angefangen von der automatisierten Produktion bis hin zur Qualitätssicherung werden optische Kamerasysteme eingesetzt, um effizient und berührungslos Produktionsprozesse zu überwachen oder zu steuern. Auch in den gegenwärtig hoch innovativen Bereichen des autonomen Fahrens, der Robotik oder der Medizintechnik ist der Einsatz spezialisierter Bilderfassungssysteme weit verbreitet. Die Analyse derartiger Bilddaten erfordert den Einsatz leistungsfähiger, computergestützter Verfahren aus dem Bereich der Bildverarbeitung, welche darauf abzielen, eine automatisierte Interpretation der Bildinhalte vorzunehmen.
Ziel des Moduls ist es, grundlegenden Methoden der Bildverarbeitung vorzustellen und deren praktischen Einsatz zu demonstrieren. Hierbei wird auf die gesamte Verarbeitungskette eingegangen, ausgehend von der Bildvorverarbeitung zur Bildverbesserung, über Segmentierungsverfahren bis hin zur Merkmalsextraktion zur Klassifikation von Bildinhalten.
Neben der algorithmisch geprägten, klassischen Bildverarbeitung werden weiterhin die sich gegenwärtig sehr dynamisch entwickelnden Methoden tiefer Neuronaler Netze (Deep Learning) zur Bild- und Szeneninterpretation behandelt. Das Ziel des Moduls liegt dabei sowohl in der Vermittlung der theoretischen Grundlagen als auch in der konkreten Realisierung der behandelten Verfahren in der Programmiersprache Python.

Inhalt des Moduls

Vorkurs "Einführung in Python"

Algorithmische Bildverarbeitung

  • Repräsentation von Bildern, Farbräume
  • Verfahren der Bildvorverarbeitung
  • Filterung im Orts- und Spektralbereich
  • Texturanalyse
  • Segmentierungsverfahren
  • Merkmalsextraktion und Klassifikation

Deep Learning

  • Theoretische Grundlagen Neuronaler Netze
  • Vollständig verknüpfte Netze
  • Convolutional Neural Networks
  • Rekurrente Netze
  • Architekturen zur Bildklassifikation
  • Semantische Segmentierung
Inhalt im Detail

BDL 0: Vorkurs "Einführung in Python"

  • Grundlagen
  • Datenanalyse und Visualisierung

BDL 1:

  • Bildaufnahme, digitale Bilder und Dateiformate
  • Farbbilder und Farbräume
  • Histogramme (1D und Bi-Dimensional)
  • Wahrscheinlichkeiten und Entropie
  • Globale Schwellwertsegmentierung

BDL 2:

  • Punktoperationen, Kontrastverbesserung
  • Lineare Filterung im Ortsbereich
  • Rangordnungsfilter
  • Filterung im Frequenzbereich

BDL 3:

  • Geometrische Transformation
  • Interpolation
  • Template Matching
  • Detektion von Kanten und Konturen
  • Radon- und Hough-Transformation
  • Automatische Schwellwertoperationen

BDL 4:

  • Morphologische Filter
  • Texturanalyse: Statistik 1. und 2. Ordnung
  • Hauptachsentransformation
  • Segmentierungsverfahren

BDL 5:

  • Validierung der Güte von Segmentierungsergebnissen
  • Merkmalsextraktion
  • Clusterverfahren (k-means)
  • Klassifikation

BDL 6:

  • Grundlagen Neuronaler Netze
  • Aufbau und Training von Feed-Forward-Netzen
  • Backpropagation-Verfahren
  • Aktivierungs- und Zielfunktionen
  • Realisierung einfacher Klassifikations- und Regressionsnetze in TensorFlow

BDL 7:

  • Regularisierung und Overfitting
  • Aufbau und Verwendung von Convolutional Neural Networks (CNN)
  • Tiefe Neuronale Netze zur Bildklassifizierung
  • Implementierung und Training von CNNs mittels TensorFlow

BDL 8:

  • Aufbau und Verwendung von CNN zur semantischen Bildsegmentierung
  • Rekurrenter Netze (LSTM)
  • Implementierung und Training einer Bildsegmentierung mittels TensorFlow
Umfang des Moduls
  • Vorkurs Python
    Der Vorkurs wird 3-4 Wochen vor Lehrveranstaltungsbeginn zur Verfügung gestellt.
  • 8 Kurseinheiten
    Für Teile der Kurseinheiten gibt es Jupyter Notebooks.
  • Lehrbuch, Lehrvideos
  • Übungsaufgaben: Theorie / Python / TensorFlow / Jupyter Notebooks
  • Regelmäßige Webmeetings für fachliche Fragen
  • Prüfung - Art der Durchführung
Empfohlene Vorkenntnisse

Voraussetzung für das Studium des Moduls sind elementare Kenntnisse der objektorientierten Programmierung sowie grundlegende Python-Kenntnisse. Das für das Modul erforderliche Wissen zur Programmiersprache Python wird in einem Vorkurs vor Beginn des Semesters vermittelt. Eine vertiefte Einarbeitung in die Python-Programmierung ist nicht erforderlich.

Für das Modul sind grundlegende Mathematikkenntnisse in linearer Algebra und Analysis erforderlich. Die weiteren für das Modul relevanten Mathematikkenntnisse werden innerhalb des Moduls vermittelt (Statistik, komplexe Zahlen, Faltung, Fourier-Transformation, ...).

Kursdauer
1 Semester

Kosten
zur Kostenübersicht Einzelmodule

Abschluss
Das Modul ist verwendbar für die Abschlüsse:

Leseprobe

Lehrbuch
Digitale Bildverarbeitung
(in den Modulkosten enthalten)

Lehrtext
Grundlagen Neuronaler Netze

back-to-top nach oben