Eine Einführung in die Superauflösung mit Deep Learning

Eine ausführliche Diskussion über die verschiedenen Komponenten, Verlustfunktionen und Metriken, die für die Superauflösung mit Deep Learning verwendet werden.

Foto von Jeremy Thomas auf Unsplash

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)

Ein Bild mit niedriger Auflösung, das neben seiner hochauflösenden Version beibehalten wurde. (Foto von Jarrad Horne auf Unsplash)

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.

Degradieren eines Bildes mit hoher Auflösung, um eine Version mit niedriger Auflösung zu erhalten. (Foto von Jarrad Horne auf Unsplash)

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.

Netzwerk-Design-Strategien. (Quelle)

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.

Ein typisches Pre-Upsampling-Netzwerk. (Quelle)

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.

Ein typisches Post-Upsampling-Netzwerk. (Quelle)

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.

Ein typisches Progressive-Upsampling-Netzwerk. (Quelle)

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.

Ein typisches iteratives Auf- und Ab-Abtastnetzwerk. (Quelle)

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.

Darstellung des glatten L1-Verlusts. (Quelle)

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.

Inhaltsverlust zwischen einem Ground Truth-Bild und einem generierten Bild. (Quelle)

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.

Berechnung der Grammatrix. (Quelle)

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:

Berechnung des Texturverlusts. (Quelle)

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:

Gesamtvariationsverlust, der für ein generiertes hochauflösendes Bild verwendet wird. (Quelle)

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.

GANs in Aktion. (Quelle)

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.

Berechnung der PSNR. (Quelle)

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.

SSIM ist ein gewichtetes Produkt von Vergleichen wie oben beschrieben. (Quelle)

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:

Häufig verwendete Darstellung der SSIM-Formel. (Quelle)

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.

Jetzt teilen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.