Es ist lange her, dass Deep Learning seine Position im Bereich des Opportunity-Lernens fest etabliert hat. Es gibt viele Anwendungsbereiche von Deep Learning, aber dieses Mal möchte ich eine kurze Zusammenfassung und einige Demos zur Anwendung von "Image Denoising" vorstellen, was äußerst nützlich und praktisch ist. .. Wir machen auch normales Entrauschen und Entrauschen, wenn nur Rauschbilder als Einstellung nahe am eigentlichen Problem verfügbar sind.
Bildentrauschung ist wörtlich "Rauschentfernung aus dem Bild". Fotos und Videodaten, die mit einer Kamera aufgenommen wurden, werden aufgrund verschiedener Faktoren wie der Aufnahmeumgebung verrauscht, was zu einer Verringerung der Sichtbarkeit im Vergleich zum Originalbild führt. Das Wiederherstellen des Originalbilds aus einem Bild mit einem solchen Rauschen wird als Entrauschen bezeichnet und nicht nur auf die Bilder angewendet, die wir normalerweise sehen, sondern auch auf den Bereich medizinischer Bilder wie die Rauschentfernung aus CT- und MRT-Bildern. Es ist gewesen.
Deep Learning for Image Denoising
Glättungsprozesse wie Medianfilter, Gauß-Filter und gleitende Durchschnitte werden seit langem als grundlegende Methoden zum Entfernen von Bildrauschen verwendet. Auf dem Gebiet des maschinellen Lernens werden seit langem Methoden unter Verwendung neuronaler Netze vorgeschlagen, die jedoch nicht die gängigen Methoden waren. Beginnend mit der Erfindung der Faltungs-Neuronalen Netze hat Deep Learning jedoch eine überwältigende Leistung im Bildbereich gezeigt, und seine Anwendung auf dem Gebiet der Entrauschung hat rasch Fortschritte gemacht. Es ist eines der Gebiete, die Tag und Nacht noch erforscht werden, und eines der Hauptthemen bei Top-Computer-Vision-Konferenzen.
Im Folgenden werden einige der wichtigsten Methoden und Demos zum Entrauschen mit Deep Learning vorgestellt.
Die Daten werden erneut mit MNIST (handgeschriebenes Textbild) verwendet. Lernen Sie ein Modell, das Rauschen entfernt, indem Sie ein Bild mit Rauschen als Eingabedaten und das Originalbild als korrekte Daten verwenden und ein neues Rauschbild entrauschen.
Eingabedaten: 50.000 Rauschbilder mit Gaußschem Rauschen zu den richtigen Antwortdaten hinzugefügt Richtige Antwortdaten: 50.000 Originalbilder
Als Modell zum Lernen werden wir zusätzlich zum üblichen CNN (Convolutional Neural Network) die folgenden drei vergleichen.
CAE(Convolutional Autoencoder)
DnCNN(Denoising Convolutional Neural Network)
Win5-RB(Wide Inference Network 5layer + Resnet and BatchNormalization)
CAE(Convolutional Autoencoder) Autocoder ist eine Art neuronaler Netzwerkarchitektur, die die Ausgabedaten trainiert, um sich den Eingabedaten anzunähern, und wird hauptsächlich im Bereich der Dimensionsreduktion verwendet. Encoder und Decoder sind gepaart, und die Struktur ist so, dass die Eingabedaten von Encoder in latente Variablen komprimiert und von Decoder aus den komprimierten latenten Variablen wiederhergestellt werden.
Indem die Dimension der latenten Variablen kleiner als die Eingabedaten gemacht wird, ist es möglich, niedrigdimensionale Merkmale zu erfassen, die die Eingabedaten reproduzieren können, und da ein neuronales Netz für Codierer und Decodierer verwendet wird, ist eine nichtlineare Dimensionsreduktion möglich. Es wird nicht nur zur Dimensionsreduzierung verwendet, sondern auch zur Rauschentfernung aufgrund der Eigenschaften "Komprimieren auf latente Variablen zum Erfassen wesentlicher Merkmale" und "Wiederherstellen von Bildern mit Decoder" und verwandelt das Eingabebild in ein Rauschbild. Auf diese Weise ist Entrauschen möglich (auch als Entrauschen-Autoencoder bekannt).
CAE ersetzt die Encoder- und Decoder-Neuronale Netze von Autoencoder durch Faltungs-Neuronale Netze, und die Genauigkeit der Entrauschung aus Bilddaten wird durch die Verwendung der Faltungs-Neuronalen Netze erheblich verbessert.
Die Chargennormalisierung ist eine Methode zur Normalisierung der Ausgabe jeder Schicht des neuronalen Netzes und kann das Problem der internen Kovariatenverschiebung (die Verteilung jeder Schicht ändert sich während des Trainings) unterdrücken, was zur Verbesserung der Lerneffizienz und -genauigkeit beiträgt. Ich werde. Eines der Hauptmerkmale von DnCNN ist außerdem, dass es das Framework von ResNet (Restnetzwerk) verwendet, sodass die Rauschkomponente aus dem Rauschbild geschätzt wird, anstatt das Bild mit entferntem Rauschen und Rauschen direkt zu schätzen. Das Originalbild wird geschätzt, indem die Komponenten aus dem Rauschbild entfernt werden. Im Rahmen von Denoise liegen die Eingangs- und Ausgangswerte häufig nahe beieinander, auch wenn der Rauschpegel niedrig ist, und es ist ineffizient, ein Lernen nahe einer einheitlichen Abbildung mit einer nichtlinearen Abbildung unter Verwendung eines endlichen neuronalen Netzes durchzuführen, sodass die Differenz gelernt wird. Dies wird die Lerneffizienz verbessern. Wenn beispielsweise kein Unterschied besteht, muss die konstante Abbildung nicht mit einem neuronalen Netz trainiert werden, und das Gewicht jeder Schicht kann einfach auf 0 gesetzt werden. Als Implementierungsmethode lernt das neuronale Netz den Unterschied, indem es den Eingabewert so wie er ist umgeht und ihn mit der letzten Schicht verbindet.
Die Modellkonstruktion erfolgt mit Keras in Google Colaboratory. Der Umriss jedes Modells ist wie folgt.
** Verschiedene Lernparameter **
Als Test ist das Entrauschungsergebnis aus dem Rauschbild mit hinzugefügtem Gaußschen Rauschen wie folgt.
In CNN tritt an einigen Stellen so etwas wie Unschärfe auf, aber in CAE, DnCNN, Win5-RB kann Rauschen auf einem Niveau gut entfernt werden, bei dem der Unterschied zum Originalbild kaum erkennbar ist.
Win5-RB hat mit 10.000 Testbildern die höchste Genauigkeit in MSE (mittlerer quadratischer Fehler).
Modell- | MSE |
---|---|
CNN | 0.01171 |
CAE | 0.00991 |
DnCNN | 0.00943 |
Win5-RB | 0.00873 |
Mit dem trainierten Modell habe ich eine Demo erstellt, die von Flask in Echtzeit verarbeitet werden kann. Dies ist eine Demo bei CAE, aber Sie können sehen, dass sie Rauschen gut entfernt.
In Demo 1 haben wir ein Modell erstellt, das Rauschkomponenten mithilfe eines Rauschbilds und eines rauschfreien Originalbilds entfernt. Ist es, wie Sie vielleicht bereits bemerkt haben, überhaupt möglich, das Originalbild ohne Rauschen zu erhalten? Beim eigentlichen Problem ist es häufig der Fall, dass das Originalbild ohne Rauschen nicht verfügbar ist und nur das Bild mit Rauschen verfügbar ist. In Anbetracht eines solchen realen Problems werden wir das Entrauschen in einer Situation durchführen, in der nur Rauschbilder erhalten werden können.
Noise2Noise Noise2Noise (N2N) ist eine Lernmethode zur Rauschunterdrückung, bei der nur Rauschbilder während des Lernens verwendet werden. Die Leistung ist vergleichbar mit Lernmethoden, bei denen rauschfreie Bilder (korrekte Antwortdaten) verwendet werden, obwohl nur Rauschbilder verwendet werden. Es ist eine Technik, die ausgegeben werden kann. Mit einem Wort, indem Sie die Konvertierung von einem Rauschbild in ein Rauschbild (Noise2Noise) lernen, lernen Sie die Konvertierung von einem Rauschbild in ein rauschfreies Bild (korrekte Antwortdaten).
Nachfolgend finden Sie eine kurze Erklärung. Die Aufgabe des Entfernens von Rauschen aus dem Rauschbild $ \ hat {x} _i $ und dem rauschfreien Originalbild $ y_i $ pair $ (\ hat {x} _i, y_i) $ besteht darin, den folgenden Erfahrungsverlust zu minimieren. Es ist formuliert.
\tag{1}
\underset{\theta}{argmin} \displaystyle \sum_i L(f_\theta(\hat{x}_i),y_i)
Wobei $ f_ {\ theta} $ der Umrechnungsparameter (z. B. CNN-Gewicht) unter der Bedingung der Verlustfunktion $ L $ ist. Andererseits ist in Noise2Noise das richtige Bild auch ein Rauschbild, sodass der folgende Erfahrungsverlust, bei dem $ y_i $ zu $ \ hat {y} _i $ wird, minimiert wird.
\tag{2}
\underset{\theta}{argmin} \displaystyle \sum_i L(f_\theta(\hat{x}_i),\hat{y}_i)
In Noise2Noise Zielverteilung mit Eingabebedingungen
Dies ist im Kontext der Regression leicht zu verstehen. Wenn Sie das zugrunde liegende Modell aus den resultierenden Stichproben ableiten möchten, gibt es unzählige Kombinationen von Stichproben, in denen dasselbe Modell abgeleitet werden kann. Selbst wenn der beobachtete Wert aufgrund von Rauschen variiert, ist der erwartete Wert der Variation daher der gleiche wie bei der ursprünglichen Stichprobe ($ E \ {\ hat {y} _i | \ hat {x} _i \ } = y _i $) ist das Modell, das durch Minimieren des Verlusts aus der Probe erhalten wird, dasselbe wie das Modell, das durch Minimieren des Verlusts in einem rauschfreien Bild erhalten wird. Dies ist der Grund, warum es möglich ist, die Umwandlung von einem Rauschbild in ein rauschfreies Bild (korrekte Antwortdaten) zu lernen, indem die Umwandlung von einem Rauschbild in ein Rauschbild (Noise2Noise) gelernt wird.
Das Training verwendet Rauschbilder für die Eingabe bzw. das Ziel.
Das Modell verwendet Win5-RB und verwendet dieselben Lernparameter wie in Demo 1.
Als Test ist das Entrauschungsergebnis aus dem Rauschbild mit hinzugefügtem Gaußschen Rauschen wie folgt.
Überraschenderweise wurde das Rauschen entfernt, obwohl nur Rauschbilder zum Lernen verwendet werden. Als ich die Zeitung zum ersten Mal las, war ich skeptisch, aber ich war ziemlich überrascht, dieses Ergebnis zu sehen. Auf diese Weise kann N2N Rauschen auch in Situationen entfernen, in denen es schwierig ist, korrekte Antwortdaten zu erhalten. Es ist also ersichtlich, dass es sich um eine epochale Technologie handelt, die den Bereich der verfügbaren Szenen erheblich erweitert.
In dem Artikel wird berichtet, dass die Leistung mit der Lernmethode unter Verwendung von rauschfreien Bildern (korrekte Antwortdaten) vergleichbar ist, wobei jedoch der MSE-Wert für 10.000 Testbilder betrachtet wird, Demo 1 unter Verwendung der korrekten Antwortdaten Es ist ein hoher Wert im Vergleich zu.
Modell- | MSE |
---|---|
Win5-RB(N2N) | 0.0425 |
Betrachten wir zur Betrachtung ein Histogramm der Pixelwerte der Bilder während des Trainings und Testens (0 entspricht Schwarz und 1 entspricht Weißpixelwerten).
Da das Zielbild zum Zeitpunkt des Lernens in Demo 1 das Originalbild ohne Rauschen (Original) ist, enthält der Pixelwert viele Nullen, während das Zielbild in Demo 2 ein Rauschbild ist, sodass die Anzahl der Nullen aufgrund von Rauschen und Pixeln abnimmt Sie sehen, dass die Werte gleichmäßig verteilt sind. Mit Blick auf das geschätzte Bild zeigt Win5-RB von Demo 1 eine Verteilung in der Nähe des Testbilds (Verteilung, bei der 0 und 1 klar voneinander getrennt sind), aber das geschätzte Bild von Demo 2 ist von 0 und 1 zentriert. Die Verteilung basiert auf. Mit anderen Worten, beim Lernen von einem Rauschbild zu einem Rauschbild versteht es sich, dass dieses Ergebnis erhalten wird, weil es zur Minimierung der Verlustfunktion beiträgt, indem ein Wert angegeben wird, der nahe an einer kurzen Zeit liegt, anstatt 0 oder 1 klar anzugeben. Ich werde. Das diesmal verwendete handgeschriebene Zeichenbild kommt einem Binärbild nahe, und die Vorspannung ist extrem groß, so dass geschlossen wird, dass ein solches Ergebnis erhalten wurde. Wenn man das Bild des tatsächlichen Schätzergebnisses von Demo 2 betrachtet, kann man sehen, dass das Bild insgesamt etwas dünn ist, obwohl die Form fest erfasst wird und die Verteilung der Pixelwerte wie ein natürliches Bild ist. Es scheint, dass eine höhere Leistung erzielt wird, wenn sie links und rechts sanft ist.
Wir haben die Anwendung von Deep Learning auf dem Gebiet der Bildentrauschung eingeführt und Rauschen in Fällen entfernt, in denen das Lernen auf korrekten Bildern ohne Rauschen basiert, und in Fällen, in denen nur Rauschbilder verfügbar sind, was dem eigentlichen Problem nahe kommt. Dieses Mal haben wir uns auf das Gaußsche Rauschen konzentriert, aber das Papier zeigt auch, dass es eine effektive Methode für Sesamsalzgeräusche und andere Geräusche ist.
Dieses Mal haben wir eine Rauschentfernung durchgeführt, aber ich möchte nicht den Rauschpegel, sondern auch die Wiederherstellung durch Deep Learning einführen, wenn das Bild einen großen Fehler aufweist.
Demo
Recommended Posts