Coding-Beispiele
Von Aron Petau • 3 Minuten gelesen •
Neuronale Netze und Computer Vision
Eine Auswahl von Coding-Projekten
Obwohl reines Programmieren und Debugging oft nicht meine Leidenschaft sind, erkenne ich die Bedeutung von neuronalen Netzen und anderen neueren Entwicklungen in der Computer Vision. Aus mehreren Projekten zu KI und maschinellem Lernen, die ich während meines Bachelor-Programms mitentwickelt habe, habe ich dieses ausgewählt, da ich denke, dass es gut dokumentiert ist und Schritt für Schritt erklärt, was wir dort tun.
Bild-Superauflösung mittels Faltungsneuronaler Netze (Nachbildung einer Arbeit von 2016)
Bild-Superauflösung ist ein enorm wichtiges Thema in der Computer Vision. Wenn es ausreichend fortgeschritten funktioniert, könnten wir all unsere Screenshots, Selfies und Katzenbilder aus der Facebook-Ära 2006 und sogar von davor nehmen und sie auf moderne 4K-Anforderungen hochskalieren.
Um ein Beispiel dafür zu geben, was im Jahr 2020, nur 4 Jahre nach der hier vorgestellten Arbeit, möglich ist, wirf einen Blick auf dieses Video von 1902:
Die von uns betrachtete Arbeit von 2016 ist deutlich bescheidener: Sie versucht nur ein einzelnes Bild hochzuskalieren, aber historisch gesehen war sie eine der ersten, die Rechenzeiten erreichte, die klein genug waren, um solche Echtzeit-Video-Hochskalierung zu ermöglichen, wie du sie im Video (von 2020) siehst oder wie sie Nvidia heutzutage zur Hochskalierung von Videospielen verwendet.
Beispiel einer Super-Resolution-Aufnahme. Das neuronale Netz fügt künstlich Pixel hinzu, sodass wir unser bescheidenes Selfie endlich auf einem Werbeplakat platzieren können, ohne von unserem durch Technologie verformten und verpixelten Gesicht entsetzt zu sein.
-
Eine niedrigauflösende Probe
-
Eine hochauflösende Probe. Dies wird auch als 'Ground Truth' bezeichnet
-
Der künstlich vergrößerte Bildausschnitt, der aus dem Algorithmus resultiert
-
Ein Graph, der eine exemplarische Verlustfunktion zeigt, die während des Trainings angewendet wurde
-
Eine qualitative Messung, die wir verwendeten, war die pixelweise Kosinus-Ähnlichkeit. Sie wird verwendet, um zu messen, wie ähnlich die Ausgabe- und Ground-Truth-Bilder sind
Das Python-Notebook für Bild-Superauflösung in Colab
MTCNN (Anwendung und Vergleich einer Arbeit von 2016)
Hier kannst du auch einen Blick auf ein anderes, viel kleineres Projekt werfen, bei dem wir einen eher klassischen maschinellen Lernansatz für die Gesichtserkennung nachgebaut haben. Hier verwenden wir bestehende Bibliotheken, um die Unterschiede in der Wirksamkeit der Ansätze zu demonstrieren und zu zeigen, dass Multi-task Cascaded Convolutional Networks (MTCNN) einer der leistungsfähigsten Ansätze im Jahr 2016 war. Da ich in das obige Projekt viel mehr Liebe und Arbeit investiert habe, würde ich dir empfehlen, dir dieses anzusehen, falls zwei Projekte zu viel sind.
Gesichtserkennung mit einem klassischen KI-Ansatz (Nachbildung einer Arbeit von 2016)