Eine ausführliche Diskussion über die verschiedenen Komponenten, Verlustfunktionen und Metriken, die für die Superauflösung mit Deep Learning verwendet werden.
- Einführung
- Überwachte Methoden
- Aufbereiten der Daten
- Arten von Windungen
- Gruppe 1 — Pre-Upsampling
- Gruppe 2— Post-Upsampling
- Gruppe 3 — Progressives Upsampling
- Gruppe 4 — Iteratives Auf- und Ab-Sampling
- Verlustfunktionen
- Pixelverlust
- Inhaltsverlust
- Texturverlust
- Gesamtabweichungsverlust
- Kontradiktorischer Verlust
- Metriken
- PSNR
- SSIM
- Andere IQA-Scores
- Fazit
Einführung
Super Resolution ist der Prozess der Wiederherstellung eines hochauflösenden (HR) Bildes aus einem gegebenen Bild mit niedriger Auflösung (LR). Ein Bild kann aufgrund einer geringeren räumlichen Auflösung (d. H. Größe) oder aufgrund einer Verschlechterung (z. B. Unschärfe) eine „niedrigere Auflösung“ aufweisen. Wir können die HR- und LR-Bilder durch die folgende Gleichung in Beziehung setzen: LR = degradation(HR)
Beim Anwenden einer Degradationsfunktion erhalten wir eindeutig das LR-Bild vom HR-Bild. Aber können wir das Gegenteil tun? Im Idealfall ja! Wenn wir die genaue Degradationsfunktion kennen, können wir das HR-Bild wiederherstellen, indem wir seine Umkehrung auf das LR-Bild anwenden.
Aber hier liegt das Problem. Wir kennen die Degradationsfunktion normalerweise nicht von Hand. Die direkte Schätzung der inversen Degradationsfunktion ist ein schlecht aufgestelltes Problem. Trotzdem haben sich Deep-Learning-Techniken für die Superauflösung als effektiv erwiesen.
Dieser Blog konzentriert sich in erster Linie darauf, eine Einführung in die Durchführung von Super Resolution mit Deep Learning unter Verwendung von überwachten Trainingsmethoden zu geben. Einige wichtige Verlustfunktionen und Metriken werden ebenfalls diskutiert. Ein Großteil des Inhalts stammt aus dieser Literaturübersicht, auf die sich der Leser beziehen kann.
Überwachte Methoden
Wie bereits erwähnt, kann Deep Learning verwendet werden, um das Bild mit hoher Auflösung (HR) bei einem Bild mit niedriger Auflösung (LR) zu schätzen. Indem wir das HR-Bild als Ziel (oder Grundwahrheit) und das LR-Bild als Eingabe verwenden, können wir dies wie ein überwachtes Lernproblem behandeln.
In diesem Abschnitt gruppieren wir verschiedene Deep-Learning-Ansätze in der Art und Weise, wie die Faltungsschichten organisiert sind. Bevor wir zu den Gruppen übergehen, wird eine Einführung in die Datenaufbereitung und die Arten von Windungen gegeben. Die Funktionen, die zur Optimierung des Modells verwendet werden, werden gegen Ende dieses Blogs separat vorgestellt.
Aufbereiten der Daten
Eine einfache Methode, LR-Daten zu erhalten, besteht darin, HR-Daten zu degradieren. Dies geschieht häufig durch Verwischen oder Hinzufügen von Rauschen. Bilder mit geringerer räumlicher Auflösung können auch durch ein klassisches Upsampling-Verfahren wie bilineare oder bikubische Interpolation skaliert werden. JPEG- und Quantisierungsartefakte können ebenfalls eingeführt werden, um das Bild zu verschlechtern.
Eine wichtige Sache zu beachten ist, dass es empfohlen wird, das HR-Bild in einem unkomprimierten (oder verlustfrei komprimierten) Format zu speichern. Dies dient dazu, eine Verschlechterung der Qualität des HR-Bildes aufgrund einer verlustbehafteten Komprimierung zu verhindern, die zu einer suboptimalen Leistung führen kann.
Arten von Windungen
Neben klassischen 2D-Windungen können mehrere interessante Varianten in Netzwerken für verbesserte Ergebnisse verwendet werden. Erweiterte (Atrous) Windungen können ein größeres effektives Sichtfeld bereitstellen und daher Informationen verwenden, die durch einen großen Abstand voneinander getrennt sind. Überspringen Sie Verbindungen, räumliches Pyramiden-Pooling und dichte Blöcke, indem Sie sowohl Low-Level- als auch High-Level-Funktionen kombinieren, um die Leistung zu verbessern.
Das obige Bild erwähnt eine Reihe von Netzwerkdesignstrategien. Weitere Informationen finden Sie in diesem Dokument. Eine Einführung in die verschiedenen Arten von Windungen, die häufig beim Deep Learning verwendet werden, finden Sie in diesem Blog.
Gruppe 1 — Pre-Upsampling
Bei diesem Verfahren werden die Bilder mit niedriger Auflösung zuerst interpoliert, um ein „grobes“ Bild mit hoher Auflösung zu erhalten. Jetzt werden CNNs verwendet, um eine End-to-End-Zuordnung von den interpolierten Bildern mit niedriger Auflösung zu den Bildern mit hoher Auflösung zu lernen. Die Intuition war, dass es möglicherweise einfacher ist, die Bilder mit niedriger Auflösung zuerst mit herkömmlichen Methoden (wie der bilinearen Interpolation) hochzutasten und dann das Ergebnis zu verfeinern, als eine direkte Zuordnung von einem niedrigdimensionalen Raum zu einem hochdimensionalen Raum zu lernen.
Einige Modelle, die diese Technik verwenden, finden Sie auf Seite 5 dieses Dokuments. Der Vorteil ist, dass der CNN, da das Upsampling mit herkömmlichen Methoden durchgeführt wird, nur lernen muss, wie das Grobbild verfeinert wird, was einfacher ist. Da wir hier keine transponierten Windungen verwenden, können Schachbrettartefakte möglicherweise umgangen werden. Der Nachteil ist jedoch, dass die vordefinierten Upsampling-Methoden das Rauschen verstärken und Unschärfen verursachen können.
Gruppe 2— Post-Upsampling
In diesem Fall werden die Bilder mit niedriger Auflösung als solche an das CNNs übergeben. Das Upsampling wird in der letzten Ebene unter Verwendung einer lernbaren Ebene durchgeführt.
Der Vorteil dieser Methode besteht darin, dass die Merkmalsextraktion im niederdimensionalen Raum (vor dem Upsampling) durchgeführt wird und somit die Rechenkomplexität reduziert wird. Darüber hinaus kann das Modell durch die Verwendung einer lernbaren Upsampling-Schicht End-to-End trainiert werden.
Gruppe 3 — Progressives Upsampling
In der obigen Gruppe wurde, obwohl die Rechenkomplexität reduziert wurde, nur eine einzige Upsampling-Faltung verwendet. Dies erschwert den Lernprozess für große Skalierungsfaktoren. Um diesen Nachteil zu beheben, wurde ein progressives Upsampling-Framework von Werken wie Laplacian Pyramid SR Network (LapSRN) und Progressive SR (ProSR) übernommen. Die Modelle verwenden in diesem Fall eine Kaskade von CNNs, um bei jedem Schritt hochauflösende Bilder mit kleineren Skalierungsfaktoren schrittweise zu rekonstruieren.
Durch die Zerlegung einer schwierigen Aufgabe in einfachere Aufgaben wird die Lernschwierigkeit erheblich verringert und eine bessere Leistung erzielt. Darüber hinaus können Lernstrategien wie das Lernen von Lehrplänen integriert werden, um Lernschwierigkeiten weiter zu reduzieren und die endgültige Leistung zu verbessern.
Gruppe 4 — Iteratives Auf- und Ab-Sampling
Eine weitere beliebte Modellarchitektur ist die Sanduhr- (oder U-Net-) Struktur. Einige Varianten wie das gestapelte Sanduhrnetzwerk verwenden mehrere Sanduhrstrukturen in Reihe, effektiv abwechselnd zwischen dem Prozess des Upsampling und Downsampling.
Die Modelle unter diesem Framework können die tiefen Beziehungen zwischen den LR-HR-Bildpaaren besser verstehen und somit qualitativ hochwertigere Rekonstruktionsergebnisse liefern.
Verlustfunktionen
Verlustfunktionen werden verwendet, um die Differenz zwischen dem erzeugten hochauflösenden Bild und dem Ground Truth-Bild mit hoher Auflösung zu messen. Diese Differenz (Fehler) wird dann verwendet, um das überwachte Lernmodell zu optimieren. Es gibt mehrere Klassen von Verlustfunktionen, von denen jede einen anderen Aspekt des erzeugten Bildes bestraft.
Oft wird mehr als eine Verlustfunktion verwendet, indem die von jeder Verlustfunktion erhaltenen Fehler einzeln gewichtet und summiert werden. Dadurch kann sich das Modell auf Aspekte konzentrieren, die von mehreren Verlustfunktionen gleichzeitig beigetragen werden.
total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3
In diesem Abschnitt werden wir einige beliebte Klassen von Verlustfunktionen untersuchen, die zum Trainieren der Modelle verwendet werden.
Pixelverlust
Pixelweiser Verlust ist die einfachste Klasse von Verlustfunktionen, bei der jedes Pixel im erzeugten Bild direkt mit jedem Pixel im Ground-Truth-Bild verglichen wird. Beliebte Verlustfunktionen wie der L1- oder L2-Verlust oder erweiterte Varianten wie der glatte L1-Verlust werden verwendet.
Die PSNR-Metrik (siehe unten) korreliert stark mit der pixelweisen Differenz, und daher maximiert die Minimierung des Pixelverlusts direkt den PSNR-Metrikwert (was auf eine gute Leistung hinweist). Der Pixelverlust berücksichtigt jedoch nicht die Bildqualität, und das Modell gibt oft wahrnehmbare unbefriedigende Ergebnisse aus (oft fehlen hochfrequente Details).
Inhaltsverlust
Dieser Verlust bewertet die Bildqualität anhand ihrer Wahrnehmungsqualität. Eine interessante Möglichkeit, dies zu tun, besteht darin, die High-Level-Features des generierten Bildes und des Ground-Truth-Bildes zu vergleichen. Wir können diese High-Level-Funktionen erhalten, indem wir beide Bilder durch ein vortrainiertes Bildklassifizierungsnetzwerk (z. B. ein VGG-Net oder ein ResNet) leiten.
Die obige Gleichung berechnet den Inhaltsverlust zwischen einem Ground-Truth-Bild und einem generierten Bild bei einem vortrainierten Netzwerk (Φ) und einer Schicht (l) dieses vortrainierten Netzwerks, bei dem der Verlust berechnet wird. Dieser Verlust ermutigt das erzeugte Bild, dem Grundwahrheitsbild wahrnehmbar ähnlich zu sein. Aus diesem Grund wird es auch als Wahrnehmungsverlust bezeichnet.
Texturverlust
Damit das erzeugte Bild den gleichen Stil (Textur, Farbe, Kontrast usw.) hat.) als Grundwahrheitsbild wird Texturverlust (oder Stilrekonstruktionsverlust) verwendet. Die Textur eines Bildes, wie von Gatys et. al ist definiert als die Korrelation zwischen verschiedenen Merkmalskanälen. Die Merkmalskanäle werden üblicherweise aus einer Merkmalskarte gewonnen, die unter Verwendung eines vortrainierten Bildklassifizierungsnetzwerks (Φ) extrahiert wurde.
Die Korrelation zwischen den Merkmalskarten wird durch die Grammatrix (G) dargestellt, die das innere Produkt zwischen den vektorisierten Merkmalskarten ist i
und j
auf der Ebene l
siehe oben). Sobald die Grammatrix für beide Bilder berechnet wurde, ist die Berechnung des Texturverlusts einfach, wie unten gezeigt:
Durch die Verwendung dieses Verlusts wird das Modell motiviert, realistische Texturen und visuell zufriedenstellendere Ergebnisse zu erzielen.
Gesamtabweichungsverlust
Der Gesamtabweichungsverlust (TV) wird verwendet, um Rauschen in den erzeugten Bildern zu unterdrücken. Es nimmt die Summe der absoluten Unterschiede zwischen benachbarten Pixeln und misst, wie viel Rauschen im Bild ist. Für ein generiertes Bild wird der Variationsverlust wie folgt berechnet:
Hier iteriert i,j,k
über die Höhe, Breite und Kanäle.
Kontradiktorischer Verlust
Generative Kontradiktorische Netzwerke (GANs) wurden zunehmend für verschiedene bildbasierte Anwendungen einschließlich Super Resolution verwendet. GANs bestehen typischerweise aus einem System von zwei neuronalen Netzen — dem Generator und dem Diskriminator —, die sich duellieren.
Bei einer Reihe von Zielsamples versucht der Generator, Samples zu erzeugen, die den Diskriminator täuschen können, zu glauben, dass sie real sind. Der Diskriminator versucht, echte (Ziel-) Samples von gefälschten (generierten) Samples aufzulösen. Mit diesem iterativen Trainingsansatz erhalten wir schließlich einen Generator, der wirklich gut darin ist, Samples zu generieren, die den Ziel-Samples ähneln. Das folgende Bild zeigt die Struktur eines typischen GAN.
Zur Verbesserung der Leistung wurden Fortschritte bei der grundlegenden GAN-Architektur eingeführt. Zum Beispiel, Park et. Al. verwendete einen Feature-Level-Diskriminator, um aussagekräftigere potenzielle Attribute von echten hochauflösenden Bildern zu erfassen. In diesem Blog finden Sie eine ausführlichere Umfrage zu den Fortschritten bei GANs.
Typischerweise haben Modelle, die mit kontradiktorischem Verlust trainiert wurden, eine bessere Wahrnehmungsqualität, obwohl sie im Vergleich zu Modellen, die mit Pixelverlust trainiert wurden, PSNR verlieren könnten. Ein kleiner Nachteil ist, dass der Trainingsprozess von GANs etwas schwierig und instabil ist. Es wird jedoch aktiv an Methoden zur Stabilisierung des GAN-Trainings gearbeitet.
Metriken
Eine große Frage ist, wie wir die Leistung unseres Modells quantitativ bewerten. Eine Reihe von Bildqualitätsbewertungstechniken (IQA) (oder Metriken) werden für dasselbe verwendet. Diese Metriken können grob in zwei Kategorien eingeteilt werden — Subjektive Metriken und objektive Metriken.Subjektive Metriken basieren auf der Wahrnehmungsbewertung des menschlichen Beobachters, während objektive Metriken auf Rechenmodellen basieren, die versuchen, die Bildqualität zu bewerten. Subjektive Metriken sind oft „wahrnehmungsgenauer“, aber einige dieser Metriken sind unbequem, zeitaufwändig oder teuer zu berechnen. Ein weiteres Problem ist, dass diese beiden Kategorien von Metriken möglicherweise nicht miteinander konsistent sind. Daher zeigen Forscher häufig Ergebnisse mit Metriken aus beiden Kategorien an.
In diesem Abschnitt werden wir kurz einige der weit verbreiteten Metriken untersuchen, um die Leistung unseres Super Resolution-Modells zu bewerten.
PSNR
Das Spitzensignal-Rausch-Verhältnis (PSNR) ist eine häufig verwendete objektive Metrik, um die Rekonstruktionsqualität einer verlustbehafteten Transformation zu messen. PSNR ist umgekehrt proportional zum Logarithmus des mittleren quadratischen Fehlers (MSE) zwischen dem Grundwahrheitsbild und dem erzeugten Bild.
In der obigen Formel ist L der maximal mögliche Pixelwert (für 8-Bit-RGB-Bilder sind es 255). Es überrascht nicht, dass PSNR, da es sich nur um den Unterschied zwischen den Pixelwerten kümmert, die Wahrnehmungsqualität nicht so gut darstellt.
SSIM
Structural Similarity (SSIM) ist eine subjektive Metrik zur Messung der strukturellen Ähnlichkeit zwischen Bildern, die auf drei relativ unabhängigen Vergleichen basiert, nämlich Luminanz, Kontrast und Struktur. Abstrakt kann die SSIM-Formel als gewichtetes Produkt des Vergleichs von Luminanz, Kontrast und Struktur dargestellt werden, das unabhängig berechnet wird.
In der obigen Formel sind Alpha, Beta und Gamma die Gewichte der Luminanz-, Kontrast- und Strukturvergleichsfunktionen. Die häufig verwendete Darstellung der SSIM-Formel ist wie folgt:
In der obigen Formel μ(I)
repräsentiert den Mittelwert eines bestimmten Bildes, σ(I)
repräsentiert die Standardabweichung eines bestimmten Bildes,σ(I,I’)
repräsentiert die Kovarianz zwischen zwei Bildern und C1, C2
sind Konstanten, die zur Vermeidung von Instabilität gesetzt sind. Der Kürze halber wird die Bedeutung der Begriffe und die genaue Ableitung in diesem Blog nicht erläutert und der interessierte Leser kann Abschnitt 2.3.2 in diesem Artikel lesen.
Aufgrund der möglichen ungleichmäßigen Verteilung statistischer Bildmerkmale oder Verzerrungen ist die lokale Beurteilung der Bildqualität zuverlässiger als die globale Anwendung. Mean SSIM (MSSIM), das das Bild in mehrere Fenster aufteilt und die an jedem Fenster erhaltene SSIM mittelt, ist eine solche Methode zur lokalen Beurteilung der Qualität.
Da SSIM die Rekonstruktionsqualität aus der Perspektive des menschlichen visuellen Systems bewertet, erfüllt es in jedem Fall die Anforderungen der Wahrnehmungsbewertung besser.
Andere IQA-Scores
Ohne Erklärung sind einige andere Methoden zur Beurteilung der Bildqualität unten aufgeführt. Der interessierte Leser kann sich für weitere Details auf dieses Papier beziehen.
- Mean Opinion Score (MOS)
- Task-based Evaluation
- Information Fidelity Criterion (IFC)
- Visual Information Fidelity (VIF)
Fazit
In diesem Blogartikel wurden einige einführende Materialien und Verfahren zum Trainieren von Deep-Learning-Modellen für Super Resolution behandelt. Es gibt in der Tat fortgeschrittenere Techniken, die durch Forschung auf dem neuesten Stand der Technik eingeführt wurden und zu einer besseren Leistung führen können. Darüber hinaus könnte die Erforschung von Wegen wie unbeaufsichtigter Superauflösung, besseren Normalisierungstechniken und besseren repräsentativen Metriken dieses Feld erheblich fördern. Der interessierte Leser wird ermutigt, mit seinen innovativen Ideen zu experimentieren, indem er an Herausforderungen wie der PIRM Challenge teilnimmt.