Verwenden Sie Den Super-Resolution-Leader-Algorithmus ESRGAN, Um Das Bildverbesserungsmodell Zu Trainieren

Um Bilder oder Videos von einer niedrigen Auflösung in eine hohe Auflösung umzuwandeln und verlorene Details (also hochfrequente Informationen) wiederherzustellen oder zu ergänzen, ist häufig Super-Resolution-Technologie erforderlich.
Abhängig von der Anzahl der verwendeten Bilder mit niedriger Auflösung,Die Superauflösungstechnologie kann in Einzelbild-Superauflösung (SISR) und Mehrfachbild-Superauflösung (MISR) unterteilt werden.

SISR verwendet ein Bild mit niedriger Auflösung.Um den Effekt einer Vergrößerung des Bildes oder einer Erhöhung der Pixel zu erzielen,Dadurch entsteht ein hochauflösendes Bild.
MISR verwendet mehrere Bilder derselben Szene mit niedriger Auflösung.Erhalten Sie verschiedene Details und synthetisieren Sie ein oder mehrere hochauflösende Bilder. Die Ausgabe von MISR kann entweder ein einzelnes Bild oder eine Reihe von Bildern (d. h. ein Video) sein.
Drei Wunderwaffen für Superauflösung: Interpolation, Rekonstruktion und Lernen
Methoden zur Bild-Superauflösung können in drei Kategorien unterteilt werden: interpolationsbasierte, rekonstruktionsbasierte und lernbasierte Methoden.
Methode 1: Basierend aufInterpolation
Bei der Interpolation wird das Bild vergrößert, um Lücken zu finden.Füllen Sie die entsprechenden Pixelwerte aus,Dadurch kann der Bildinhalt wiederhergestellt und die Bildauflösung verbessert werden.
Zu den häufig verwendeten Interpolationsmethoden gehören: Nearest-Neighbor-Interpolation, lineare Interpolation, bilineare Interpolation und bikubische Interpolation.
Nächster-Nachbar-Interpolation
Die Interpolationsmethode „Nearest Neighbor“ ist am einfachsten und gröbsten zu implementieren und erfordert den geringsten Rechenaufwand.Kopieren Sie einfach den Pixelwert des nächstgelegenen Pixels, um es zu füllen.Das auffälligste Merkmal beim Kopieren der daneben liegenden Pixel ist jedoch, dass der Effekt schwach ist und der Blockeffekt deutlich sichtbar ist.

Lineare Interpolation
Lineare Interpolation besteht darin, in eine Richtung zu interpolieren.Bei ausschließlich eindimensionalen Daten handelt es sich bei der Gleichung um ein univariates Polynom, das heißt, es gibt nur eine Variable.

Bilineare Interpolation
Die bilineare Interpolation ähnelt der linearen Interpolationsmethode für eindimensionale Daten.Der Unterschied besteht darin, dass die bilineare Interpolation auf zweidimensionale Bilder erweitert wird und sowohl in X- als auch in Y-Richtung interpoliert werden muss.
Der bilineare Interpolationsprozess ist etwas komplizierter als die Nearest-Neighbor-Interpolation, der Effekt ist jedoch gleichmäßiger, was jedoch auch dazu führt, dass einige Details des interpolierten Bildes unscharf aussehen.
Bikubische Interpolation
Bikubische Interpolation Ähnlich,Interpolation von Funktionen dreier Variablen.Die bikubische Interpolation ist komplexer und die ausgegebenen Bildkanten sind glatter und genauer als bei der bilinearen Interpolation, sie ist jedoch auch die langsamste.
Methode 2: Rekonstruktionsbasiert
Bei der auf Rekonstruktion basierenden Wiederherstellungsmethode mit Superauflösung werden mehrere Bilder derselben Szene mit niedriger Auflösung verwendet.Subpixelgenaue Ausrichtung im Raum, Der Prozess zum Ermitteln des Bewegungsversatzes zwischen hochauflösenden und niedrig aufgelösten Bildern, zum Erstellen der räumlichen Bewegungsparameter im Beobachtungsmodell und zum Erhalten eines hochauflösenden Bildes.

Die Kernidee rekonstruktionsbasierter Superauflösungsmethoden besteht darin,Dabei wird die zeitliche Bandbreite (Erhalten einer Mehrbild-Bildsequenz derselben Szene) im Austausch gegen die räumliche Auflösung genutzt.Realisieren Sie die Umwandlung der zeitlichen Auflösung in die räumliche Auflösung.
Derzeit können Rekonstruktionsmethoden mit Superauflösung in zwei Kategorien unterteilt werden: Methoden im Frequenzbereich und Methoden im Raumbereich.
Die Frequenzbereichsmethode löst das Bildinterpolationsproblem im Frequenzbereich. Sein Beobachtungsmodell basiert auf den Verschiebungseigenschaften der Fourier-Transformation.Die Theorie ist einfach, die Rechenkomplexität gering und die Parallelverarbeitung lässt sich leicht implementieren.
Das lineare räumliche Beobachtungsmodell der räumlichen Methode umfasst globale und lokale Bewegung, optische Unschärfe, Bewegungsunschärfe innerhalb des Frames usw.Zu den typischen Methoden gehören die Methode der ungleichmäßigen Interpolation, die Methode der iterativen Rückprojektion, die Methode der Maximum-a-posteriori-Wahrscheinlichkeit (die in praktischen Anwendungen und der wissenschaftlichen Forschung am häufigsten verwendete Methode) und die Methode der konvexen Mengenprojektion.
Methode 3: Lernbasiert
Bei der lernbasierten Superauflösungsmethode handelt es sich um das direkte Erlernen der End-to-End-Mapping-Funktion von Bildern mit niedriger Auflösung zu Bildern mit hoher Auflösung durch ein neuronales Netzwerk.Verwenden Sie das vom Modell erlernte Vorwissen, um hochfrequente Details des Bildes zu erhalten.Dadurch wird ein besserer Bildwiederherstellungseffekt erzielt.
Die auf oberflächlichem Lernen basierenden Algorithmusschritte umfassen:Merkmalsextraktion -> Lernen -> Rekonstruktion. Zu den gängigen Methoden gehören: beispielbasierte Methode, Nachbarschafts-Einbettungsmethode, Support-Vektor-Regressionsmethode, Methode der spärlichen Darstellung usw.
Unter ihnen ist die beispielbasierte Methode der erste auf Lernen basierende Algorithmus zur Einzelbild-Superauflösung.Erstmals von Freeman vorgeschlagen. Es verwendet Trainingsdatensätze für maschinelles Lernen, um die Beziehung zwischen niedriger und hoher Auflösung zu erlernen und erreicht dann eine Rekonstruktion mit Superauflösung.
Die auf Deep Learning basierenden Algorithmusschritte umfassen:Merkmalsextraktion–> Nichtlineare Abbildung–> Bildrekonstruktion
Zu den auf Deep Learning basierenden Methoden zur Bildrekonstruktion mit superhoher Auflösung gehören SRCNN, FSRCNN, ESPCN, VDSR, SRGAN, ESRGAN usw.Hier konzentrieren wir uns auf die drei Algorithmen: SRCNN, SRGAN und ESRGAN.
SRCNN
SRCNN ist die Pionierarbeit, die Deep Learning für die Rekonstruktion mit Superauflösung nutzt. Seine Netzwerkstruktur ist sehr einfach.Es umfasst nur 3 Faltungsschichten.

Die Implementierungsmethode ist sehr ausgefeilt: Geben Sie ein Bild mit niedriger Auflösung ein, verwenden Sie die bikubische Interpolationsmethode, um das Bild auf die Zielgröße zu vergrößern, verwenden Sie dann ein dreischichtiges Convolutional Neural Network, um die nichtlineare Abbildung zwischen dem Bild mit niedriger Auflösung und dem Bild mit hoher Auflösung anzupassen, und geben Sie schließlich das rekonstruierte Bild mit hoher Auflösung aus.
Vorteil:Die Netzwerkstruktur ist einfach (es werden nur 3 Faltungsschichten verwendet); Das Framework ist bei der Auswahl der Parameter flexibel und unterstützt die Anpassung.
Mangel: Das Training wird nur mit einem einzigen Skalierungsfaktor durchgeführt, und sobald sich die Datenmenge ändert, muss das Modell neu trainiert werden. Für die Merkmalsextraktion wird nur eine Faltungsschicht verwendet, was relativ begrenzt ist und die Details nicht vollständig darstellt. Wenn das Bild mehr als viermal vergrößert wird, ist das Ergebnis zu glatt und unrealistisch.
SRGAN
SRGAN ist das erste Framework, das eine vierfache Bildvergrößerung bei gleichzeitiger Wahrung des Realismus unterstützt.Forscher schlugen das Konzept der Wahrnehmungsverlustfunktion vor, das einen gegnerischen Verlust und einen Inhaltsverlust umfasst.

Der Adversarial Loss verwendet ein Diskriminatornetzwerk, um den Authentizitätsunterschied zwischen dem Ausgabebild und dem Originalbild zu bestimmen. Der Inhaltsverlust ist auch eher auf die Ähnlichkeit in der Wahrnehmung als auf die Ähnlichkeit im Pixelraum zurückzuführen.
Die Einführung der Wahrnehmungsverlustfunktion,Dadurch kann SRGAN bei der Bildrekonstruktion mit Superauflösung echte Texturen erzeugen und verlorene Details für ein einzelnes Bild ergänzen.
ESRGAN
ESRGAN basiert auf SRGAN.Die Netzwerkstruktur, der Gegnerverlust und der Wahrnehmungsverlust werden weiter verbessert.Verbesserte Bildqualität für die Verarbeitung mit Superauflösung. Die Modellverbesserungen umfassen die folgenden drei Aspekte:
1 Führen Sie den Residual-in-Residual Dense Block (RRDB) mit größerer Kapazität und einfacherem Training ein, um die Netzwerkstruktur zu verbessern, löschen Sie die Batch Normalization (BN)-Schicht und verwenden Sie Residual Scaling und kleinere Initialisierung, um das Training tiefer Netzwerke zu verbessern;
2 Verwenden Sie RaGAN, um den Diskriminator zu verbessern und die relative Authentizität zwischen dem hochauflösenden Bild und dem Originalbild anstelle des absoluten Werts vorherzusagen, sodass der Generator realistischere Texturdetails des Originalbilds wiederherstellen kann.
3 Verbessern Sie den Wahrnehmungsverlust, indem Sie die VGG-Funktionen nach der Aktivierung im vorherigen SRGAN ändern, sodass sie vor der Aktivierung ausgeführt werden. Dadurch werden die Kantenschärfe und der Texturrealismus des Ausgabebilds verbessert.

Im Vergleich zu SRGAN,ESRGAN gibt Bilder mit besserer Qualität und realistischeren und natürlicheren Texturen aus.Es gewann den ersten Platz bei der PIRM2018-SR-Challenge. Der Code ist unter github.com/xinntao/ESRGAN zu finden.
Tutorial: Bildverbesserung mit ESRGAN
Dieses Tutorial zeigt, wie Sie den ESRGAN-Algorithmus im TensorFlow Hub zur Bildverbesserung verwenden. Die Ausgabe von ESRGAN wird unten angezeigt:

Schnellstart mit ESRGAN
Open-Source-Vereinbarung:Apache-Lizenz 2.0
Installationsumgebung:Python 3.6, TensorFlow 2.3.1
Gebrauchsanweisung:Das Modell wird anhand von 128 x 128 Bildern aus dem DIV2K-Datensatz (bikubisch heruntergesampelte Bilder) trainiert.
Notiz:Um das Tutorial auszuführen, verwenden Sie bitte „Using ESRGAN for Image Super-Resolution Reconstruction.ipynb“ und führen Sie die Zellen der Reihe nach aus. Der Modellordner im Verzeichnis enthält die Modelldatei und die Datei esrgan-tf2_1.tar.gz ist das Modellkomprimierungspaket (das Komprimierungspaket wird in diesem Lernprogramm nicht verwendet).
Greifen Sie auf das vollständige Tutorial zu
Vorbereiten der Umgebung

Definieren von Hilfsfunktionen

Führt eine Superauflösung für ein von einem Pfad geladenes Bild aus

Vergleichen Sie die Ausgabegrößen nebeneinander

Greifen Sie auf das vollständige Tutorial zu
Über OpenBayes
OpenBayes ist eine führende Forschungseinrichtung für maschinelle Intelligenz in China.Bietet eine Reihe grundlegender Dienste im Zusammenhang mit der KI-Entwicklung, darunter Rechenleistungscontainer, automatische Modellierung und automatische Parameteranpassung.
Gleichzeitig hat OpenBayes auch viele gängige öffentliche Ressourcen wie Datensätze, Tutorials und Modelle veröffentlicht.Damit Entwickler schnell lernen und ideale Modelle für maschinelles Lernen erstellen können.
Jetzt besuchen openbayes.com und registrieren,Erhalten Sie 600 Minuten/Woche vGPU-Nutzung,Und 300 Minuten/Woche kostenlose CPU-Rechenzeit
Handeln Sie jetzt und trainieren Sie Ihr Bildverbesserungsmodell mit Superauflösung mit ESRGAN!