Faltungen

Unser Unternehmen entwickelt Systeme die mit Hilfe von Deep Learning selbstständig lernen Bilder zu unterscheiden und zu klassifizieren.
Für diese Systeme des maschinellen Lernens gibt es unterschiedlichste Anwendungsbereiche wie die Sichtprüfung von Fertigungsteilen, Handschrift- oder Gesichtserkennung.

Bildverarbeitung: Auswertung und Darstellung von Bildern und Bildinhalten

Faltungen bei Signal- und Bildverarbeitung

Faltungen bei Signal- und Bildverarbeitung

Eine der wichtigsten Operationen in der Signal- und Bildverarbeitung ist die sogenannte Faltung (engl. „Convolution“). Eine Faltung ist eine Anordnung von Pixeln, wie z. B. eine Kante, also der Wechsel der Intensitäten von benachbarten Pixeln entsprechend einem Muster.

Mit Hilfe einer Filtermaske wird die gewichtete Summe der Pixel einer Bildnachbarschaft berechnet und somit die Pixel des Ausgangsbildes gebildet. Die Gewichte sind die Koeffizienten der Filtermaske. Zur Berechnung der Convolution werden die Ein- und Ausgangsbilder sowie die Filtermaske als Matrizen definiert. Um einen eindeutigen Mittelpunkt festlegen zu können, sind für Faltungsmatrizen nur ungerade Dimensionen (z. B. 3×3, 5×5 etc.) zulässig. Die Berechnung der Convolution erfolgt bei gegebenen Matrizen mit folgender Gleichung:

O[i, j] =
W/2 W/2
p=X− 2 =X− 2
I[i − p, j − q] ∗ M[p, q]
W/ q W/

Gesucht ist jeweils ein Pixel im Ausgangsbild O[i, j]. Die 3×3 Filtermaske wird auf das Eingangsbild I gelegt und die gewichtete Summe der benachbarten Pixel gebildet. Vereinfacht ergibt sich die Formel:

O = I ∗ M (Faltung)

Die Filtermaske wird jeweils um ein Pixel versetzt und so schrittweise über alle Bildpositionen gelegt. Dabei liefert die Faltung an einer Position im Eingangsbild den Bildwert der entsprechenden Position im Ausgangsbild. Da der Filter je nach Größe mindestens die äußerste Pixelreihe nicht erfassen kann, entsteht dort ein Bildrand, dessen Pixel nicht wie in der Faltungsgleichung angegeben, berechnet werden können. Es existieren verschiedene Methoden zur Randbehandlung wie Zero-/Grauwert-Padding, Last-Value oder einfach der Verzicht auf einen Filter im Randbereich. Da die Randbereiche bei der Verwendung von Convolutions zur Bilderkennung meist keine relevanten Informationen enthalten, kann dort auf eine Randbehandlung verzichtet werden.