Einsatz von KI zur extremen Bildkompression

Einsatz von KI zur extremen Bildkompression
Datengetriebene Algorithmen wie neuronale Netze haben die Welt im Sturm erobert. Ihre Entwicklung ist durch mehrere Faktoren bedingt, darunter günstige und leistungsstarke Hardware sowie eine riesige Menge an Daten. Neuronale Netze stehen derzeit an der Spitze aller 'kognitiven' Aufgaben, wie z. B. Bild- und Sprachverständnis usw. Doch sie sollten nicht auf solche Aufgaben beschränkt bleiben. In diesem Artikel erfahren Sie, wie man Bilder mit Hilfe von neuronalen Netzen und Residual Learning komprimiert. Der in dem Artikel vorgestellte Ansatz arbeitet schneller und besser als herkömmliche Codecs. Diagramme, Gleichungen und natürlich eine Tabelle mit Tests finden Sie im Anhang.

Dieser Artikel basiert auf dieser Arbeit. Es wird davon ausgegangen, dass Sie mit neuronalen Netzen und deren Konzepten vertraut sind. Faltung und Kostenfunktion.

Was ist Bildkompression und welche Arten gibt es?

Bildkompression ist der Prozess, ein Bild so zu transformieren, dass es weniger Platz benötigt. Das einfache Speichern von Bildern würde viel Platz beanspruchen, weshalb es Codecs wie JPEG und PNG gibt, die darauf abzielen, die Größe des ursprünglichen Bildes zu reduzieren.

Wie bekannt, gibt es zwei Arten der Bildkompression: verlustfrei und mit Verlusten. Wie aus den Bezeichnungen hervorgeht, können bei der verlustfreien Kompression die Originaldaten des Bildes wiederhergestellt werden, während bei der verlustbehafteten Kompression einige Daten während der Kompression verloren gehen. Zum Beispiel sind JPG verlustbehaftete Algorithmen [Anm. d. Übers. — insbesondere sollten wir auch JPEG ohne Verlust nicht vergessen], während PNG ein verlustfreier Algorithmus ist.

Einsatz von KI zur extremen Bildkompression
Vergleich von verlustfreier und verlustbehafteter Kompression

Bitte beachten Sie, dass das Bild rechts viele blockartige Artefakte aufweist. Dies ist verlorene Information. Angrenzende Pixel ähnlicher Farben werden als ein Bereich komprimiert, um Platz zu sparen, wodurch Informationen über die tatsächlichen Pixel verloren gehen. Natürlich sind die Algorithmen, die in JPEG-, PNG-Codecs usw. verwendet werden, viel komplexer, aber dies ist ein gutes intuitives Beispiel für verlustbehaftete Kompression. Verlustfreie Kompression ist gut, aber verlustfrei komprimierte Dateien nehmen viel Speicherplatz ein. Es gibt effizientere Methoden zur Bildkompression, die nicht viel Informationen verlieren, aber sie sind ziemlich langsam, und viele verwenden iterative Ansätze. Das bedeutet, dass sie nicht parallel auf mehreren Kernen der Zentral- oder Grafikkarte ausgeführt werden können. Eine solche Einschränkung macht sie im alltäglichen Gebrauch vollkommen unpraktisch.

Eingabe der Faltungsneuronalen Netzwerk

Wenn etwas berechnet werden muss und die Berechnungen ungefähre Werte sein können, fügen Sie hinzu neuronales Netzwerk. Die Autoren verwendeten ein recht typisches Convolutional Neural Network (CNN), um die Bildkompression zu verbessern. Das vorgestellte Verfahren funktioniert nicht nur auf Augenhöhe mit den besten Lösungen (wenn nicht sogar besser), sondern ermöglicht auch paralleles Rechnen, was zu einer drastischen Geschwindigkeitssteigerung führt. Der Grund dafür ist, dass Convolutional Neural Networks (CNNs) sehr gut darin sind, räumliche Informationen aus Bildern zu extrahieren, die dann in kompakter Form dargestellt werden (zum Beispiel werden nur die „wichtigen“ Bits des Bildes gespeichert). Die Autoren wollten diese Fähigkeit von CNNs nutzen, um Bilder besser darzustellen.

Architektur von

Die Autoren schlugen ein duales Netzwerk vor. Das erste Netzwerk nimmt ein Bild als Eingabe und erzeugt eine kompakte Darstellung (ComCNN). Die Ausgaben dieses Netzwerks werden dann von einem Standard-Codec (zum Beispiel JPEG) verarbeitet. Nach der Verarbeitung durch den Codec wird das Bild an das zweite Netzwerk übergeben, das das Bild des Codecs „korrigiert“, um zu versuchen, das Originalbild wiederherzustellen. Die Autoren nannten dieses Netzwerk das rekonstruktive CNN (RecCNN). Ähnlich wie bei GAN werden beide Netzwerke iterativ trainiert.

Einsatz von KI zur extremen Bildkompression
ComCNN Kompakte Darstellung wird an den Standard-Codec übergeben

Einsatz von KI zur extremen Bildkompression
RecCNN. Die Ausgaben von ComCNN skalieren mit der Zunahme und werden an RecCNN übergeben, das versuchen wird, den Rest zu lernen

Die Ausgaben des Codecs skalieren mit der Zunahme und werden dann an RecCNN übergeben. RecCNN wird versuchen, ein Bild zu erzeugen, das so ähnlich wie das Original ist, wie es nur möglich ist.

Einsatz von KI zur extremen Bildkompression
Durchgängiger Framework für die Bildkompression. Co(.) ist ein Algorithmus zur Bildkompression. Die Autoren haben JPEG, JPEG2000 und BPG angewendet

Was ist der Rest?

Der Rest kann als Schritt der Nachbearbeitung betrachtet werden, um das vom Codec dekodierte Bild zu "verbessern". Eine neuronale Netzwerk mit mehr "Informationen" über die Welt kann kognitive Entscheidungen darüber treffen, was zu korrigieren ist. Diese Idee basiert auf Residual Learning, Details dazu können Sie lesen hier.

Verlustfunktionen

Zwei Verlustfunktionen werden verwendet, weil wir zwei neuronale Netzwerke haben. Das erste, ComCNN, ist als L1 gekennzeichnet und definiert sich so:

Einsatz von KI zur extremen Bildkompression
Verlustfunktion für ComCNN

Erklärung

Diese Gleichung mag kompliziert erscheinen, aber in Wirklichkeit ist es der Standard (mittlere quadratische Fehler) MSE. ||² bedeutet die Norm des Vektors, den sie einschließen.

Einsatz von KI zur extremen Bildkompression
Gleichung 1.1

Cr steht für die Ausgaben von ComCNN. θ steht für die lernbaren Parameter von ComCNN, XK ist das Eingangssignal.

Einsatz von KI zur extremen Bildkompression
Gleichung 1.2

Re() steht für RecCNN. Diese Gleichung überträgt einfach den Wert der Gleichung 1.1 in RecCNN. θ steht für die lernbaren Parameter von RecCNN (das Dachsymbol bedeutet, dass die Parameter fixiert sind).

Intuitive Definition

Gleichung 1.0 zwingt ComCNN dazu, seine Gewichte so zu ändern, dass das endgültige Bild nach der Rekonstruktion durch RecCNN dem Eingangssignal so ähnlich wie möglich sieht. Die zweite Verlustfunktion von RecCNN wird wie folgt definiert:

Einsatz von KI zur extremen Bildkompression
Gleichung 2.0

Erklärung

Die Funktion mag kompliziert erscheinen, aber es handelt sich größtenteils um eine Standard-Verlustfunktion eines neuronalen Netzwerks (MSE).

Einsatz von KI zur extremen Bildkompression
Gleichung 2.1

Co() steht für die Codec-Ausgabe, x mit Dachsymbol steht für die Ausgabe von ComCNN. θ2 sind die lernbaren Parameter von RecCNN, res() stellt einfach die residuale Ausgabe von RecCNN dar. Es ist wichtig zu beachten, dass RecCNN auf der Differenz zwischen Co() und dem Eingangssignal trainiert wird, jedoch nicht auf dem Eingangssignal selbst.

Intuitive Definition

Die Gleichung 2.0 zwingt RecCNN dazu, seine Gewichte so zu ändern, dass die Ausgaben den Eingabebildern so ähnlich wie möglich sehen.

Trainingsschema

Modelle werden iterativ trainiert, ähnlich wie GAN. Die Gewichte des ersten Modells werden fixiert, während die Gewichte des zweiten Modells aktualisiert werden, dann werden die Gewichte des zweiten Modells fixiert, während das erste Modell trainiert wird.

Tests

Die Autoren verglichen ihre Methode mit bestehenden Ansätzen, einschließlich einfacher Codecs. Ihre Methode funktioniert besser als andere und bleibt dabei auf der entsprechenden Hardware schnell. Darüber hinaus versuchten die Autoren, nur eines der beiden Netzwerke zu verwenden, und bemerkten einen Leistungsabfall.

Einsatz von KI zur extremen Bildkompression
Vergleich des strukturellen Ähnlichkeitsindex (SSIM). Hohe Werte weisen auf eine bessere Ähnlichkeit zum Original hin. Die Ergebnisse der Autoren sind fett hervorgehoben.

Fazit

Wir haben einen neuen Ansatz zur Anwendung von Deep Learning in der Bildkompression untersucht und über die Möglichkeit gesprochen, neuronale Netze auch für andere Aufgaben wie Bildklassifizierung und Sprachverarbeitung zu nutzen. Diese Methode erfüllt nicht nur die modernen Anforderungen, sondern ermöglicht auch eine deutlich schnellere Verarbeitung von Bildern.

Das Studium von neuronalen Netzen ist einfacher geworden, denn speziell für unsere Hub-Community haben wir einen Promo-Code erstellt. HABR, der zusätzliche 10% Rabatt auf den im Banner angegebenen Rabatt gewährt.

Einsatz von KI zur extremen Bildkompression

Weitere Kurse

Empfohlene Artikel

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster