Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

Image Processing: Grundlagen und praktische Anwendung

-
4
 Minuten Lesezeit
-
image processing

Bilder enthalten viele wichtige Informationen. Während sie für unsere geübten Augen leicht zu erkennen sind, stellen sie eine echte Herausforderung für die Datenanalyse dar. Die Gesamtheit dieser Techniken ist unter dem Namen „Image Processing“ oder Bildverarbeitung bekannt. In diesem Artikel erfährst du mehr über die klassischen Algorithmen, Techniken und Werkzeuge zur Verarbeitung von Daten in Form von Bildern.

Was ist Image Processing ?

Wie der Name schon sagt, geht es bei der Bildverarbeitung um die Bearbeitung von Bildern, was viele verschiedene Techniken beinhalten kann. Das Endergebnis kann ein anderes Bild, eine Variation oder einfach ein Parameter dieses Bildes sein. Dieses Ergebnis kann dann für eine weitere Analyse oder Entscheidungsfindung verwendet werden.

Dies ist der zentrale Teil der Computervision die in vielen Beispielen aus der realen Welt wie Robotik, selbstfahrenden Autos und der Erkennung von Objekten eine entscheidende Rolle spielt. Die Bildverarbeitung ermöglicht es uns, Tausende von Bildern auf einmal umzuwandeln und zu manipulieren und daraus nützliche Informationen zu extrahieren.

Was ist ein Bild ?

Ein Bild kann als eine 2D-Funktion F(x,y) dargestellt werden, wobei x und y Raumkoordinaten sind. Es handelt sich also um eine Tabelle von Pixeln, die in Spalten und Reihen angeordnet sind. Der Wert von F an einem Punkt x,y ist als die Intensität eines Bildes an diesem Punkt bekannt. Wenn x, y und der Wert der Amplitude endlich sind, spricht man von einem digitalen Bild.

Ein Bild kann auch in 3D dargestellt werden, dessen Koordinaten x, y und z sind. Die Pixel sind dann in Form einer Matrix angeordnet. Das nennt man ein RGB-Bild (oder RGB auf Englisch). Wenn das Bild in Graustufen vorliegt, gibt es nur einen Kanal: z = 1.

Klassische Techniken der Bildbearbeitung

Historisch gesehen wurden Bilder mit mathematischen Analysemethoden bearbeitet, von denen wir im Folgenden einige vorstellen wollen:

  • Gaußsche Unschärfe oder Gaußsche Glättung ist das Ergebnis der Anwendung einer Gaußschen Funktion auf ein Bild, d. h. auf eine Matrix wie oben definiert. Sie wird verwendet, um das Bildrauschen zu reduzieren und Details abzuschwächen. Der visuelle Effekt dieser Unschärfetechnik ist ähnlich wie das Betrachten eines Bildes durch eine lichtdurchlässige Leinwand. Sie wird manchmal als Datenerhöhungstechnik für Deep Learning verwendet, auf das wir weiter unten noch genauer eingehen werden.
  • Die Fourier-Transformation zerlegt ein Bild in seine Sinus- und Kosinuskomponenten. Sie hat zahlreiche Anwendungen wie die Rekonstruktion von Bildern, die Komprimierung von Bildern oder die Filterung von Bildern. Da wir von Bildern sprechen, wollen wir die diskrete Fourier-Transformation in Betracht ziehen.

Betrachten wir eine Sinuskurve, sie setzt sich aus drei Komponenten zusammen:

  • Die Amplitude – verbunden mit dem Kontrast.
  • Die Ortsfrequenz – verbunden mit der Helligkeit
  • Die Phase – verbunden mit der Farbinformation.

Die Kantenerkennung ist eine Bildverarbeitungstechnik, mit der man die Grenzen von Objekten in Bildern finden kann. Sie funktioniert, indem sie Diskontinuitäten in der Helligkeit erkennt. Genauer gesagt werden Kanten als lokale Maxima des Bildgradienten definiert, d. h. Bereiche, in denen es eine große Wertevariation zwischen zwei Pixelbereichen gibt. Der gängigste Algorithmus zur Erkennung von Rändern ist der Sobel-Algorithmus.

Image Processing mit neuronalen Netzen

Mit dem Aufkommen von neuronalen Netzen und erhöhter Rechenleistung wurde die Bildverarbeitung revolutioniert. Insbesondere Faltungsnetze, die auf den oben genannten Techniken basieren, zeichnen sich bei der Erkennung und dem Erkennen von Objekten oder Personen aus. Wie funktionieren sie?

Ein neuronales Faltungsnetz, kurz CNN, besteht aus drei Hauptschichten:

Die Faltungsschicht (CONV): Sie ist für die Ausführung der Faltungsoperation verantwortlich. Das Element, das an der Ausführung der Faltungsoperation beteiligt ist, wird als Kern/Filter (Matrix) bezeichnet. Der Kern führt horizontale und vertikale Verschiebungen durch, bis das gesamte Bild durchlaufen wird. Er funktioniert ähnlich wie die Technik zur Erkennung von Konturen.
Pooling-Schicht (POOL): Diese Schicht ist für die Reduzierung der Dimensionalität verantwortlich. Sie verringert die Rechenleistung, die für die Verarbeitung der Daten erforderlich ist. Es gibt zwei Arten von Pooling: Maximales Pooling und mittleres Pooling.

Maximales Pooling gibt den maximalen Wert des Bereichs zurück, der vom Kern auf dem Bild abgedeckt wird. Das Durchschnitts-Pooling gibt den Mittelwert aller Werte des vom Kern abgedeckten Bereichs des Bildes zurück.
Fully Connected Layer (FC): Der Fully Connected Layer (FC) ist am Ende der CNN-Architekturen vorhanden. Sie ähnelt einer herkömmlichen Schicht in neuronalen Netzen und ermöglicht es, nach Anwendung einer Aktivierungsfunktion die vom Netz erwartete Ausgabe, z. B. eine Klassifizierung, zurückzugeben.

Durch das Hinzufügen von nichtlinearen Funktionen („RELU“) innerhalb der Netze oder durch spezielle Architekturen können komplexere Probleme gelöst werden. Es gibt zahlreiche Beispiele: DenseNet, U-Net, VGG…

Generative Adversarial Networks

Da die gelabelten Daten manchmal nicht ausreichen, um komplexe Netzwerke zu trainieren, werden heute besonders generative Modelle, sogenannte GANs für Generative Adversarial Networks, verwendet.

GANs bestehen aus zwei Modellen: Generator und Discriminator. Der Generator lernt, falsche Bilder zu erzeugen, die realistisch aussehen, um den Diskriminator zu täuschen, und der Diskriminator lernt, falsche von echten Bildern zu unterscheiden.

Der Generator darf keine echten Bilder sehen und kann daher in der Startphase schlechte Ergebnisse liefern, während der Diskriminator echte Bilder sehen darf, die aber mit den vom Generator erzeugten falschen Bildern vermischt werden, die er als echt oder falsch einstufen muss.

In den Generator wird ein gewisses Rauschen eingebracht, damit er in der Lage ist, jedes Mal andere Beispiele und nicht denselben Bildtyp zu erzeugen. Auf der Grundlage der vom Diskriminator vorhergesagten Punktzahlen versucht der Generator, seine Ergebnisse zu verbessern. Nach einiger Zeit wird der Generator in der Lage sein, Bilder zu produzieren, die schwerer zu unterscheiden sind. Auch der Diskriminator wird besser, da er dem Generator mit jeder Runde immer realistischere Bilder entlockt.

Die beliebtesten Arten von GANs sind Deep Convolutional GANs (DCGAN), Conditional GANs (cGAN), StyleGANs, CycleGANs etc.

GANs eignen sich hervorragend für die Erzeugung und Manipulation von Bildern: Gesichtsalterung, Mischen von Fotos, Superauflösung, Malen von Fotos, Übersetzen von Kleidung.

Fazit

Es gibt viele Techniken der Bildbearbeitung, und wie in vielen Fällen heutzutage, kann man mit neuronalen Netzen viele Informationen und sehr genaue Schlussfolgerungen erhalten. Python ist die Sprache der Wahl für diese Art von Aufgaben, mit Tools wie OpenCv, Scikit Image, Tensorflow oder Pytorch.

Die von DataScientest angebotenen Kurse bieten zahlreiche Tools, um zu lernen, wie man Daten in Bildform verarbeitet und wie man die komplexesten neuronalen Netze verwendet.

 

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.