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

Superauflösung ist der Prozess der Wiederherstellung eines Bildes mit hoher Auflösung (HR) 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“ haben. Wir können die HR- und LR-Bilder durch die folgende Gleichung in Beziehung setzen: LR = degradation(HR)

Ein Bild mit niedriger Auflösung bleibt neben seiner hochauflösenden Version erhalten. (Foto von Jarrad Horne auf Unsplash)

Es ist klar, dass wir durch Anwendung einer Degradationsfunktion das LR-Bild aus dem HR-Bild erhalten. Aber können wir auch den umgekehrten Weg gehen? Im Idealfall, ja! Wenn wir die genaue Degradationsfunktion kennen, können wir durch Anwendung ihrer Umkehrung auf das LR-Bild das HR-Bild wiederherstellen.

Aber genau hier liegt das Problem. Normalerweise kennen wir die Degradationsfunktion nicht im Voraus. Die direkte Schätzung der inversen Degradationsfunktion ist ein ungelöstes Problem. Trotzdem haben sich Deep-Learning-Techniken als effektiv für die Superauflösung erwiesen.

Dieser Blog konzentriert sich in erster Linie auf eine Einführung in die Superauflösung mit Deep Learning unter Verwendung überwachter Trainingsmethoden. Es werden auch einige wichtige Verlustfunktionen und Metriken diskutiert. Ein großer 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 hochauflösende (HR) Bild anhand eines niedrigauflösenden (LR) Bildes zu schätzen. Durch die Verwendung des HR-Bildes als Ziel (oder Grundwahrheit) und des LR-Bildes als Eingabe können wir dies wie ein überwachtes Lernproblem behandeln.

In diesem Abschnitt gruppieren wir verschiedene Deep-Learning-Ansätze nach der Art, wie die Faltungsschichten organisiert sind. Bevor wir zu den Gruppen übergehen, wird eine Einführung in die Datenaufbereitung und die Arten von Faltungen gegeben. Die zur Optimierung des Modells verwendeten Verlustfunktionen werden am Ende dieses Blogs gesondert vorgestellt.

Datenvorbereitung

Eine einfache Methode zur Gewinnung von LR-Daten ist die Verschlechterung von HR-Daten. Dies geschieht häufig durch Unschärfen oder Hinzufügen von Rauschen. Bilder mit geringerer räumlicher Auflösung können auch durch ein klassisches Upsampling-Verfahren wie die bilineare oder bikubische Interpolation skaliert werden. JPEG- und Quantisierungsartefakte können ebenfalls eingeführt werden, um das Bild zu verschlechtern.

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

Ein wichtiger Punkt ist, dass es empfohlen wird, das HR-Bild in einem unkomprimierten (oder verlustfrei komprimierten) Format zu speichern. Damit soll verhindert werden, dass die Qualität des HR-Bildes durch verlustbehaftete Komprimierung beeinträchtigt wird, was zu einer suboptimalen Leistung führen kann.

Typen von Faltungen

Neben den klassischen 2D-Faltungen können mehrere interessante Varianten in Netzen verwendet werden, um bessere Ergebnisse zu erzielen. Dilatierte (Atrous) Convolutions können ein größeres effektives Sichtfeld bieten und somit Informationen nutzen, die durch einen großen Abstand getrennt sind. Skip-Verbindungen, Spatial Pyramid Pooling und Dense Blocks motivieren dazu, sowohl Low-Level- als auch High-Level-Merkmale zu kombinieren, um die Leistung zu verbessern.

Netzwerkdesignstrategien. (Quelle)

In der obigen Abbildung wird eine Reihe von Netzentwurfsstrategien erwähnt. Für weitere Informationen können Sie sich auf dieses Papier beziehen. Eine Einführung in die verschiedenen Arten von Faltungen, die häufig beim Deep Learning verwendet werden, finden Sie in diesem Blog.

Gruppe 1 – Pre-Upsampling

Bei dieser Methode werden die niedrig aufgelösten Bilder zunächst interpoliert, um ein „grobes“ hochauflösendes Bild zu erhalten. Nun werden CNNs verwendet, um eine durchgängige Zuordnung von den interpolierten niedrig aufgelösten Bildern zu den hoch aufgelösten Bildern zu lernen. Die Intuition war, dass es einfacher sein könnte, die niedrig aufgelösten Bilder zunächst mit traditionellen Methoden (wie der bilinearen Interpolation) hochzurechnen und dann das Ergebnis zu verfeinern, als eine direkte Abbildung von einem niedrig-dimensionalen Raum auf einen hoch-dimensionalen Raum zu lernen.

Ein typisches Pre-Upsampling-Netzwerk. (Quelle)

Auf Seite 5 dieses Papiers finden Sie einige Modelle, die diese Technik verwenden. Der Vorteil ist, dass das CNN nur lernen muss, wie das grobe Bild zu verfeinern ist, da das Upsampling mit herkömmlichen Methoden durchgeführt wird, was einfacher ist. Da wir hier keine transponierten Faltungen verwenden, können außerdem Schachbrettartefakte umgangen werden. Der Nachteil ist jedoch, dass die vordefinierten Upsampling-Methoden das Rauschen verstärken und Unschärfe verursachen können.

Gruppe 2 – Post-Upsampling

In diesem Fall werden die niedrig aufgelösten Bilder den CNNs als solche übergeben. Upsampling wird in der letzten Schicht mit Hilfe einer lernfähigen Schicht durchgeführt.

Ein typisches Post-Upsampling-Netzwerk. (Quelle)

Der Vorteil dieser Methode besteht darin, dass die Merkmalsextraktion im niedrigdimensionalen Raum (vor dem Upsampling) durchgeführt wird und somit die Berechnungskomplexität reduziert wird. Darüber hinaus kann das Modell durch die Verwendung einer lernfähigen Upsampling-Schicht durchgängig trainiert werden.

Gruppe 3 – Progressives Upsampling

In der obigen Gruppe wurde zwar die Berechnungskomplexität reduziert, aber nur eine einzige Upsampling-Faltung verwendet. Dadurch wird der Lernprozess bei großen Skalierungsfaktoren erschwert. Um diesen Nachteil zu beheben, wurde in Arbeiten wie Laplacian Pyramid SR Network (LapSRN) und Progressive SR (ProSR) ein progressiver Upsampling-Rahmen verwendet. Die Modelle in diesem Fall verwenden eine Kaskade von CNNs, um schrittweise hochauflösende Bilder mit kleineren Skalierungsfaktoren zu rekonstruieren.

Ein typisches progressives Upsampling-Netzwerk. (Quelle)

Indem eine schwierige Aufgabe in einfachere Aufgaben zerlegt wird, wird die Lernschwierigkeit stark reduziert und es können bessere Leistungen erzielt werden. Darüber hinaus können Lernstrategien wie das Curriculum-Lernen integriert werden, um die Lernschwierigkeit weiter zu verringern und die endgültige Leistung zu verbessern.

Gruppe 4 – Iteratives Up- und Down-Sampling

Eine weitere beliebte Modellarchitektur ist die Sanduhrstruktur (oder U-Netz). Einige Varianten wie das Stacked Hourglass-Netz verwenden mehrere Sanduhr-Strukturen in Reihe, so dass der Prozess des Up- und Downsampling effektiv abwechselt.

Ein typisches iteratives Up- und Downsampling-Netz. (Quelle)

Die Modelle in diesem Rahmen können die tiefen Beziehungen zwischen den LR-HR-Bildpaaren besser herausarbeiten und somit qualitativ hochwertigere Rekonstruktionsergebnisse liefern.

Verlustfunktionen

Verlustfunktionen werden verwendet, um die Differenz zwischen dem generierten hochauflösenden Bild und dem hochauflösenden Bild der Grundwahrheit 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 Fehler, die sich aus jeder einzelnen Verlustfunktion ergeben, gewichtet und aufsummiert werden. Dies ermöglicht es dem Modell, sich auf Aspekte zu 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 gängige Klassen von Verlustfunktionen untersuchen, die für das Training der Modelle verwendet werden.

Pixelverlust

Der pixelweise Verlust ist die einfachste Klasse von Verlustfunktionen, bei der jedes Pixel im erzeugten Bild direkt mit jedem Pixel im Grundwahrheitsbild verglichen wird. Gängige Verlustfunktionen wie der L1- oder L2-Verlust oder fortgeschrittene Varianten wie der glatte L1-Verlust werden verwendet.

Diagramm des glatten L1-Verlusts. (Quelle)

Die PSNR-Metrik (siehe unten) ist stark mit der pixelweisen Differenz korreliert, und daher maximiert eine Minimierung des Pixelverlusts direkt den Wert der PSNR-Metrik (was auf eine gute Leistung hinweist). Der Pixelverlust berücksichtigt jedoch nicht die Bildqualität, und das Modell liefert oft wahrnehmungsmäßig unbefriedigende Ergebnisse (oft fehlen hochfrequente Details).

Inhaltsverlust

Dieser Verlust bewertet die Bildqualität auf der Grundlage ihrer Wahrnehmungsqualität. Ein interessanter Weg, dies zu tun, ist der Vergleich der hochrangigen Merkmale des erzeugten Bildes mit dem echten Bild. Wir können diese Merkmale auf hoher Ebene erhalten, indem wir beide Bilder durch ein vortrainiertes Bildklassifizierungsnetz (wie ein VGG-Netz oder ein ResNet) leiten.

Inhaltsverlust zwischen einem Grundwahrheitsbild und einem generierten Bild. (Quelle)

Die obige Gleichung berechnet den Inhaltsverlust zwischen einem Bild der Grundwahrheit und einem generierten Bild, wobei ein vortrainiertes Netz (Φ) und eine Schicht (l) dieses vortrainierten Netzes gegeben sind, auf der der Verlust berechnet wird. Dieser Verlust sorgt dafür, dass das erzeugte Bild dem echten Bild in der Wahrnehmung ähnlich ist. Aus diesem Grund wird er auch als Wahrnehmungsverlust bezeichnet.

Texturverlust

Damit das erzeugte Bild den gleichen Stil (Textur, Farbe, Kontrast usw.) wie das Grundwahrheitsbild aufweist, wird der Texturverlust (oder Stilrekonstruktionsverlust) verwendet. Die Textur eines Bildes wird, wie von Gatys et al. beschrieben, als die Korrelation zwischen verschiedenen Merkmalskanälen definiert. Die Merkmalskanäle werden in der Regel aus einer Merkmalskarte gewonnen, die mit einem vorab trainierten Bildklassifizierungsnetz (Φ) extrahiert wurde.

Berechnung der Gram-Matrix. (Quelle)

Die Korrelation zwischen den Merkmalskarten wird durch die Gram-Matrix (G) dargestellt, die das innere Produkt zwischen den vektorisierten Merkmalskarten i und j auf Ebene l ist (siehe oben). Sobald die Gram-Matrix für beide Bilder berechnet ist, ist die Berechnung des Texturverlustes einfach, wie unten gezeigt:

Berechnung des Texturverlustes. (Quelle)

Durch die Verwendung dieses Verlustes wird das Modell motiviert, realistische Texturen und visuell befriedigendere Ergebnisse zu erzeugen.

Gesamtvariationsverlust

Der Gesamtvariationsverlust (TV) wird verwendet, um Rauschen in den erzeugten Bildern zu unterdrücken. Er ermittelt die Summe der absoluten Differenzen zwischen benachbarten Pixeln und misst, wie stark das Rauschen im Bild ist. Für ein generiertes Bild wird der TV-Verlust wie folgt berechnet:

Gesamtvariationsverlust für ein generiertes Bild mit hoher Auflösung. (Quelle)

Hier iteriert i,j,k über die Höhe, die Breite bzw. die Kanäle.

Adversarial Loss

Generative Adversarial Networks (GANs) werden zunehmend für verschiedene bildbasierte Anwendungen, einschließlich Super Resolution, verwendet. GANs bestehen in der Regel aus einem System von zwei neuronalen Netzen – dem Generator und dem Discriminator -, die sich duellieren.

Bei einer Reihe von Zielmustern versucht der Generator, Muster zu erzeugen, die den Discriminator täuschen können, so dass er glaubt, sie seien echt. Der Diskriminator versucht, echte (Ziel-)Proben von gefälschten (generierten) Proben zu unterscheiden. Durch diesen iterativen Trainingsansatz erhalten wir schließlich einen Generator, der wirklich gut darin ist, Proben zu erzeugen, die den Zielproben ähnlich sind. Das folgende Bild zeigt die Struktur eines typischen GAN.

GANs in Aktion. (Quelle)

Weiterentwicklungen der grundlegenden GAN-Architektur wurden zur Verbesserung der Leistung eingeführt. Park et. al. verwendeten beispielsweise einen Feature-Level-Diskriminator, um aussagekräftigere potenzielle Attribute von echten hochauflösenden Bildern zu erfassen. Eine ausführlichere Übersicht über die Fortschritte bei GANs finden Sie in diesem Blog.

Typischerweise haben Modelle, die mit adversarialem Verlust trainiert wurden, eine bessere Wahrnehmungsqualität, auch wenn sie im Vergleich zu Modellen, die mit Pixelverlust trainiert wurden, beim PSNR schlechter abschneiden können. Ein kleiner Nachteil ist, dass der Trainingsprozess von GANs ein wenig schwierig und instabil ist. Es wird jedoch aktiv an Methoden zur Stabilisierung des GAN-Trainings gearbeitet.

Metrik

Eine wichtige Frage ist, wie wir die Leistung unseres Modells quantitativ bewerten können. Eine Reihe von Bildqualitätsbewertungsverfahren (IQA) (oder Metriken) werden dafür verwendet. Diese Metriken können grob in zwei Kategorien eingeteilt werden – subjektive Metriken und objektive Metriken.

Subjektive Metriken basieren auf der Wahrnehmungsbewertung des menschlichen Betrachters, während objektive Metriken auf Computermodellen basieren, die versuchen, die Bildqualität zu bewerten. Subjektive Metriken sind oft „wahrnehmungsgemäßer“, aber einige dieser Metriken sind umständlich, zeitaufwändig oder teuer in der Berechnung. Ein weiteres Problem ist, dass diese beiden Kategorien von Metriken möglicherweise nicht miteinander vereinbar sind. Daher zeigen Forscher oft Ergebnisse an, die Metriken aus beiden Kategorien verwenden.

In diesem Abschnitt werden wir kurz einige der weit verbreiteten Metriken untersuchen, um die Leistung unseres Superauflösungsmodells zu bewerten.

PSNR

Peak Signal-to-Noise Ratio (PSNR) ist eine häufig verwendete objektive Metrik zur Messung der Rekonstruktionsqualität einer verlustbehafteten Transformation. PSNR ist umgekehrt proportional zum Logarithmus des mittleren quadratischen Fehlers (Mean Squared Error, MSE) zwischen dem Grundbild und dem erzeugten Bild.

Berechnung von PSNR. (Quelle)

In der obigen Formel ist L der maximal mögliche Pixelwert (für 8-Bit-RGB-Bilder ist er 255). Es überrascht nicht, dass PSNR nur die Differenz zwischen den Pixelwerten berücksichtigt und daher die wahrgenommene Qualität nicht so gut wiedergibt.

SSIM

Strukturelle Ähnlichkeit (SSIM) ist eine subjektive Metrik zur Messung der strukturellen Ähnlichkeit zwischen Bildern, die auf drei relativ unabhängigen Vergleichen beruht, nämlich Luminanz, Kontrast und Struktur. Abstrakt lässt sich die SSIM-Formel als gewichtetes Produkt der unabhängig voneinander berechneten Vergleiche von Leuchtdichte, Kontrast und Struktur darstellen.

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

In der obigen Formel sind alpha, beta und gamma die Gewichte der Leuchtdichte-, Kontrast- bzw. Strukturvergleichsfunktionen. Die gebräuchliche Darstellung der SSIM-Formel ist wie folgt:

Gebräuchliche Darstellung der SSIM-Formel. (Quelle)

In der obigen Formel steht μ(I)für den Mittelwert eines bestimmten Bildes, σ(I)für die Standardabweichung eines bestimmten Bildes,σ(I,I')für die Kovarianz zwischen zwei Bildern und C1, C2für Konstanten, die zur Vermeidung von Instabilitäten festgelegt wurden. Der Kürze halber wird die Bedeutung der Begriffe und die genaue Herleitung in diesem Blog nicht erläutert, und der interessierte Leser kann Abschnitt 2.3.2 in diesem Papier nachlesen.

Aufgrund der möglichen ungleichmäßigen Verteilung der statistischen Merkmale oder Verzerrungen eines Bildes ist die Bewertung der Bildqualität auf lokaler Ebene zuverlässiger als eine globale Anwendung. Mean SSIM (MSSIM), bei dem das Bild in mehrere Fenster aufgeteilt und die in jedem Fenster erhaltenen SSIM-Werte gemittelt werden, ist eine solche Methode zur lokalen Bewertung der Qualität.

Da SSIM die Rekonstruktionsqualität aus der Perspektive des menschlichen Sehsystems bewertet, erfüllt es in jedem Fall besser die Anforderungen der Wahrnehmungsbewertung.

Andere IQA-Bewertungen

Nachfolgend werden einige andere Methoden zur Bewertung der Bildqualität aufgeführt. Der interessierte Leser kann sich für weitere Einzelheiten auf dieses Papier beziehen.

  • Mean Opinion Score (MOS)
  • Task-based Evaluation
  • Information Fidelity Criterion (IFC)
  • Visual Information Fidelity (VIF)

Abschluss

In diesem Blogartikel wurden einige einführende Materialien und Verfahren für das Training von Deep-Learning-Modellen für Super Resolution behandelt. Es gibt in der Tat fortschrittlichere Techniken, die durch den aktuellen Stand der Forschung eingeführt wurden und eine bessere Leistung erbringen können. Darüber hinaus könnte die Erforschung von Möglichkeiten wie unüberwachte Superauflösung, bessere Normalisierungstechniken und bessere repräsentative Metriken dieses Gebiet erheblich voranbringen. Der interessierte Leser wird ermutigt, mit seinen innovativen Ideen zu experimentieren, indem er an Wettbewerben wie dem PIRM-Wettbewerb teilnimmt.

Schreibe einen Kommentar

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