Verwendung von KI zur Überkomprimierung von Bildern

Verwendung von KI zur Überkomprimierung von Bildern
Datengesteuerte Algorithmen wie neuronale Netze haben die Welt im Sturm erobert. Ihre Entwicklung hat mehrere Gründe, darunter billige und leistungsstarke Geräte und eine große Datenmenge. Neuronale Netze stehen derzeit an vorderster Front bei allem, was mit „kognitiven“ Aufgaben wie Bilderkennung, Verständnis natürlicher Sprache usw. zu tun hat. Aber sie sollten nicht auf solche Aufgaben beschränkt sein. In diesem Artikel geht es um die Komprimierung von Bildern mithilfe neuronaler Netze und des Restlernens. Der im Artikel vorgestellte Ansatz ist schneller und besser als Standard-Codecs. Schemata, Gleichungen und natürlich eine Tabelle mit Tests unter dem Schnitt.

Dieser Artikel basiert auf diese arbeiten. Es wird davon ausgegangen, dass Sie mit neuronalen Netzen und ihren Konzepten vertraut sind. Faltung и verlustfunktion.

Was ist Bildkomprimierung und wie funktioniert sie?

Bei der Bildkomprimierung wird ein Bild so konvertiert, dass es weniger Platz beansprucht. Das bloße Speichern von Bildern würde viel Platz beanspruchen, weshalb es Codecs wie JPEG und PNG gibt, die darauf abzielen, die Größe des Originalbilds zu reduzieren.

Wie Sie wissen, gibt es zwei Arten der Bildkomprimierung: kein Verlust и mit Verlusten. Wie der Name schon sagt, kann die verlustfreie Komprimierung die ursprünglichen Bilddaten beibehalten, während bei der verlustbehafteten Komprimierung einige Daten während der Komprimierung verloren gehen. Beispielsweise handelt es sich bei JPG um verlustbehaftete Algorithmen [ca. übers. - Vergessen wir im Grunde auch nicht das verlustfreie JPEG], und PNG ist ein verlustfreier Algorithmus.

Verwendung von KI zur Überkomprimierung von Bildern
Vergleich von verlustfreier und verlustbehafteter Komprimierung

Beachten Sie, dass das Bild rechts viele blockartige Artefakte enthält. Das sind verlorene Informationen. Benachbarte Pixel mit ähnlichen Farben werden aus Platzgründen als ein einziger Bereich komprimiert, es gehen jedoch Informationen über die tatsächlichen Pixel verloren. Natürlich sind die in den Codecs JPEG, PNG usw. verwendeten Algorithmen viel komplexer, aber dies ist ein gutes intuitives Beispiel für verlustbehaftete Komprimierung. Die verlustfreie Komprimierung ist gut, aber verlustfrei komprimierte Dateien beanspruchen viel Speicherplatz. Es gibt bessere Möglichkeiten, Bilder zu komprimieren, ohne viele Informationen zu verlieren, diese sind jedoch recht langsam und viele verwenden iterative Ansätze. Dies bedeutet, dass sie nicht parallel auf mehreren CPU- oder GPU-Kernen ausgeführt werden können. Diese Einschränkung macht sie im täglichen Gebrauch völlig unpraktisch.

Eingabe eines Faltungs-Neuronalen Netzwerks

Wenn etwas berechnet werden muss und die Berechnungen ungefähr sein können, fügen Sie hinzu neurales Netzwerk. Die Autoren verwendeten ein ziemlich standardmäßiges Faltungs-Neuronales Netzwerk, um die Bildkomprimierung zu verbessern. Die vorgestellte Methode ist nicht nur auf Augenhöhe mit den besten Lösungen (wenn nicht sogar besser), sie kann auch paralleles Rechnen nutzen, was zu einer dramatischen Geschwindigkeitssteigerung führt. Der Grund dafür ist, dass Convolutional Neural Networks (CNNs) sehr gut räumliche Informationen aus Bildern extrahieren können, die dann in einer kompakteren Form dargestellt werden (so bleiben beispielsweise nur die „wichtigen“ Teile des Bildes erhalten). Die Autoren wollten diese CNN-Funktion nutzen, um die Bilder besser darzustellen.

Architektur

Die Autoren schlugen ein doppeltes Netzwerk vor. Das erste Netzwerk nimmt ein Bild als Eingabe und generiert eine kompakte Darstellung (ComCNN). Die Ausgabe dieses Netzwerks wird dann von einem Standard-Codec (z. B. JPEG) verarbeitet. Nach der Verarbeitung durch den Codec wird das Bild an ein zweites Netzwerk weitergeleitet, das das Bild vom Codec „repariert“ und versucht, das Originalbild zurückzugeben. Die Autoren nannten dieses Netzwerk Reconstructive CNN (RecCNN). Beide Netzwerke werden wie GANs iterativ trainiert.

Verwendung von KI zur Überkomprimierung von Bildern
Die ComCNN Compact-Darstellung wird an den Standard-Codec übergeben

Verwendung von KI zur Überkomprimierung von Bildern
RecCNN. Die ComCNN-Ausgabe wird hochskaliert und an RecCNN weitergeleitet, das versucht, den Rest zu lernen

Die Codec-Ausgabe wird hochskaliert und dann an RecCNN übergeben. RecCNN wird versuchen, das Bild so nah wie möglich am Original wiederzugeben.

Verwendung von KI zur Überkomprimierung von Bildern
End-to-End-Bildkomprimierungs-Framework. Co(.) ist ein Bildkomprimierungsalgorithmus. Die Autoren verwendeten JPEG, JPEG2000 und BPG

Was ist ein Rest?

Der Rest kann als Nachbearbeitungsschritt betrachtet werden, um das vom Codec dekodierte Bild zu „verbessern“. Da ein neuronales Netzwerk über viele „Informationen“ über die Welt verfügt, kann es kognitive Entscheidungen darüber treffen, was repariert werden muss. Diese Idee basiert auf Restlernen, lesen Sie die Details, über die Sie können hier.

Verlustfunktionen

Die beiden Verlustfunktionen werden verwendet, weil wir zwei neuronale Netze haben. Das erste davon, ComCNN, trägt die Bezeichnung L1 und ist wie folgt definiert:

Verwendung von KI zur Überkomprimierung von Bildern
Verlustfunktion für ComCNN

Erklärung

Diese Gleichung mag kompliziert erscheinen, ist aber tatsächlich der Standard (mittlerer quadratischer Fehler). MSE. ||² bedeutet die Norm des Vektors, den sie einschließen.

Verwendung von KI zur Überkomprimierung von Bildern
Gleichung 1.1

Cr bezeichnet die Ausgabe von ComCNN. θ bezeichnet die Lernfähigkeit der ComCNN-Parameter, XK ist das Eingabebild

Verwendung von KI zur Überkomprimierung von Bildern
Gleichung 1.2

Re() steht für RecCNN. Diese Gleichung vermittelt RecCNN lediglich die Bedeutung von Gleichung 1.1. θ bezeichnet die trainierbaren RecCNN-Parameter (ein Hut oben bedeutet, dass die Parameter festgelegt sind).

Intuitive Definition

Gleichung 1.0 führt dazu, dass ComCNN seine Gewichte ändert, sodass das endgültige Bild bei der Neuerstellung mit RecCNN dem Eingabebild so ähnlich wie möglich aussieht. Die zweite RecCNN-Verlustfunktion ist wie folgt definiert:

Verwendung von KI zur Überkomprimierung von Bildern
Gleichung 2.0

Erklärung

Auch hier mag die Funktion kompliziert aussehen, aber es handelt sich größtenteils um eine standardmäßige Verlustfunktion für neuronale Netze (MSE).

Verwendung von KI zur Überkomprimierung von Bildern
Gleichung 2.1

Co() bedeutet Codec-Ausgabe, x mit einem Hut oben bedeutet ComCNN-Ausgabe. θ2 sind RecCNN-trainierbare Parameter, res() ist nur die Restausgabe von RecCNN. Es ist erwähnenswert, dass RecCNN auf den Unterschied zwischen Co() und dem Eingabebild trainiert wird, nicht jedoch auf das Eingabebild.

Intuitive Definition

Gleichung 2.0 führt dazu, dass RecCNN seine Gewichte ändert, sodass die Ausgabe dem Eingabebild so ähnlich wie möglich aussieht.

Trainingsplan

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

Tests

Die Autoren verglichen ihre Methode mit bestehenden Methoden, einschließlich einfacher Codecs. Ihre Methode ist leistungsfähiger als andere und behält gleichzeitig eine hohe Geschwindigkeit auf der entsprechenden Hardware bei. Darüber hinaus versuchten die Autoren, nur eines der beiden Netzwerke zu nutzen und stellten einen Leistungsabfall fest.

Verwendung von KI zur Überkomprimierung von Bildern
Vergleich des strukturellen Ähnlichkeitsindex (SSIM). Hohe Werte weisen auf eine bessere Ähnlichkeit zum Original hin. Fettschrift kennzeichnet das Ergebnis der Arbeit der Autoren

Abschluss

Wir untersuchten eine neue Möglichkeit, Deep Learning auf die Bildkomprimierung anzuwenden, und sprachen über die Möglichkeit, neuronale Netze für Aufgaben zu verwenden, die über „allgemeine“ Aufgaben hinausgehen, wie z. B. Bildklassifizierung und Sprachverarbeitung. Diese Methode steht nicht nur modernen Anforderungen in nichts nach, sondern ermöglicht Ihnen auch eine deutlich schnellere Bildverarbeitung.

Das Erlernen neuronaler Netze ist einfacher geworden, da wir speziell für Habravchan einen Promo-Code erstellt haben Hainbuche, wodurch ein zusätzlicher Rabatt von 10 % auf den auf dem Banner angegebenen Rabatt gewährt wird.

Verwendung von KI zur Überkomprimierung von Bildern

Weitere Kurse

Ausgewählte Artikel

Source: habr.com

Kommentar hinzufügen