Einsatz von KI zur übermäßigen Komprimierung von Bildern

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Datengetriebene Algorithmen wie neuronale Netze haben die Welt im Sturm erobert. Ihre Entwicklung wird durch mehrere Faktoren unterstützt, darunter kostengünstige und leistungsstarke Hardware sowie riesige Datenmengen. Neuronale Netze stehen derzeit an der Spitze aller "kognitiven" Aufgaben, wie z. B. der Bild- und Sprachverarbeitung. Doch sie sollten nicht auf diese Aufgaben beschränkt sein. In diesem Material wird ein Verfahren zur Bildkompression mithilfe neuronaler Netze und Residuallernen vorgestellt. Der in dem Artikel beschriebene Ansatz arbeitet schneller und besser als herkömmliche Codecs. Diagramme, Gleichungen und natürlich eine Tabelle mit Tests sind unter dem Cut.

Dieser Artikel basiert auf dieser Arbeit. Es wird vorausgesetzt, dass Sie bereits mit neuronalen Netzen und ihren Konzepten vertraut sind. Faltung und Verlustfunktion.

Was ist Bildkompression und welche Arten gibt es?

Bildkompression ist der Prozess der Umwandlung eines Bildes, sodass es weniger Speicherplatz benötigt. Eine einfache Speicherung 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 ist, gibt es zwei Arten von Bildkompression: verlustrate und mit Verlusten. Wie die Namen andeuten, können bei der verlustfreien Kompression die Daten des ursprünglichen 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 den verlustfreien JPEG nicht vergessen], während PNG ein verlustfreier Algorithmus ist.

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Vergleich zwischen verlustfreier und verlustbehafteter Kompression

Bitte beachten Sie, dass das Bild auf der rechten Seite viele Blockartefakte aufweist. Dies ist verlorene Information. Benachbarte Pixel ähnlicher Farben werden zu einem einzigen Bereich zusammengefasst, um Platz zu sparen, wobei jedoch 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 auf der Festplatte ein. Es gibt effizientere Methoden zur Kompression von Bildern, die nicht viel Information verlieren, aber sie sind recht langsam, und viele verwenden iterative Ansätze. Dies bedeutet, dass sie nicht parallel auf mehreren Kernen der CPU oder GPU ausgeführt werden können. Diese Einschränkung macht sie im Alltagsgebrauch völlig unpraktisch.

Eingabe der Convolutional Neural Network

Wenn etwas berechnet werden muss und die Berechnungen ungefähr sein können, fügen Sie hinzu neuronales Netzwerk. Die Autoren verwendeten ein ziemlich standardmäßiges Convolutional Neural Network zur Verbesserung der Bildkompression. Die vorgestellte Methode funktioniert nicht nur auf dem gleichen Niveau wie die besten Lösungen (wenn nicht sogar besser), sondern kann auch parallele Berechnungen nutzen, was zu einer drastischen Geschwindigkeitssteigerung führt. Der Grund dafür ist, dass Convolutional Neural Networks (CNN) sehr gut darin sind, räumliche Informationen aus Bildern zu extrahieren, die dann in kompakterer Form dargestellt werden (z. B. werden nur die "wichtigen" Bits des Bildes gespeichert). Die Autoren wollten diese Fähigkeit von CNN nutzen, um Bilder besser darzustellen.

Architektur

Die Autoren schlugen ein doppeltes 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 (z. B. JPEG) verarbeitet. Nach der Bearbeitung durch den Codec wird das Bild an das zweite Netzwerk weitergegeben, welches das Bild vom Codec "korrekt stellt", um zu versuchen, das ursprüngliche Bild zurückzugeben. Die Autoren nannten dieses Netzwerk rekonstruktives CNN (RecCNN). Ähnlich wie GAN werden beide Netzwerke iterativ trainiert.

Einsatz von KI zur übermäßigen Komprimierung von Bildern
ComCNN Die kompakte Darstellung wird an den Standard-Codec weitergeleitet

Einsatz von KI zur übermäßigen Komprimierung von Bildern
RecCNN. Die Ausgaben von ComCNN werden skaliert und an RecCNN weitergegeben, welches versuchen wird, den Rest zu lernen.

Die Ausgabe des Codecs skaliert mit der Erhöhung und wird dann an RecCNN übergeben. RecCNN wird versuchen, ein Bild zu erzeugen, das so nah wie möglich am Original ist.

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Durchgängiges Framework zur Bildkompression. Co(.) ist ein Bildkompressionsalgorithmus. Die Autoren verwendeten JPEG, JPEG2000 und BPG.

Was ist der Rest?

Der Rest kann als Nachbearbeitungsschritt betrachtet werden, um das vom Codec decodierte Bild zu "verbessern". Mit einer größeren Menge an "Informationen" über die Welt kann das neuronale Netzwerk kognitive Entscheidungen darüber treffen, was zu korrigieren ist. Diese Idee basiert auf Restlernen, lesen Sie die Einzelheiten dazu hier.

Verlustfunktionen

Zwei Verlustfunktionen werden verwendet, weil wir zwei neuronale Netzwerke haben. Das erste, ComCNN, ist als L1 markiert und wird wie folgt definiert:

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Verlustfunktion für ComCNN

, warum ndots=5 in Kubernetes;

Diese Gleichung mag kompliziert erscheinen, aber tatsächlich handelt es sich um einen Standard (mittlere quadratische Abweichung). MSE. ||² bedeutet die Norm des Vektors, den sie zusammenfassen.

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Gleichung 1.1

Cr steht für die Ausgaben von ComCNN. θ steht für die Lernbarkeit der Parameter von ComCNN, XK ist das Eingangsbild.

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Gleichung 1.2

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

Intuitive Definition

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

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Gleichung 2.0

, warum ndots=5 in Kubernetes;

Wieder scheint die Funktion kompliziert zu sein, aber es handelt sich größtenteils um eine Standardverlustfunktion eines neuronalen Netzwerks (MSE).

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Gleichung 2.1

Co() bedeutet die Ausgabe des Codecs, x mit einem Hut oben bedeutet die Ausgabe von ComCNN. θ2 sind die lernbaren Parameter von RecCNN. res() stellt einfach die verbleibende Ausgabe von RecCNN dar. Es ist erwähnenswert, dass RecCNN auf der Differenz zwischen Co() und dem Eingangsbild trainiert wird, nicht auf dem Eingangsbild selbst.

Intuitive Definition

Gleichung 2.0 wird RecCNN dazu bringen, seine Gewichte so zu ändern, dass die Ausgaben so ähnlich wie möglich dem Eingangsbild erscheinen.

Lernschema

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

Tests

Die Autoren haben ihre Methode mit bestehenden Methoden, einschließlich einfacher Codecs, verglichen. Ihre Methode schneidet besser ab als andere und behält dabei eine hohe Geschwindigkeit auf entsprechender Hardware bei. Darüber hinaus versuchten die Autoren, nur ein von zwei Netzwerken zu verwenden, und stellten einen Leistungsverlust fest.

Einsatz von KI zur übermäßigen Komprimierung von Bildern
Vergleich des strukturellen Ähnlichkeitsindex (SSIM). Hohe Werte deuten auf eine bessere Ähnlichkeit mit dem Original hin. Das Ergebnis der Autoren ist fett hervorgehoben.

Fazit

Wir haben einen neuen Ansatz für die Anwendung von Deep Learning zur Bildkompression untersucht und über die Möglichkeit gesprochen, neuronale Netze für Aufgaben über die 'allgemeinen' Anwendungen hinaus, wie Bildklassifikation und Sprachverarbeitung, zu nutzen. Diese Methode entspricht nicht nur den modernen Anforderungen, sondern ermöglicht auch eine deutlich schnellere Bildbearbeitung.

Es ist einfacher geworden, neuronale Netze zu studieren, denn speziell für die Hubber haben wir einen Rabattcode erstellt. HABR, der einen zusätzlichen Rabatt von 10% auf den Rabatt auf dem Banner bietet.

Einsatz von KI zur übermäßigen Komprimierung von Bildern

Weitere Kurse

Empfohlene Artikel

Quelle: habr.com

60GB SSD 8Gb DDR4