Dieser Artikel ist [hier](https://aiotadiary.wp.xdomain.jp/2020/02/27/espcn%e3%82%92%e7%94%a8%e3%81%84%e3%81% 9f% e8% b6% 85% e8% a7% a3% e5% 83% 8f% e3% 82% 92% e3% 82% 84% e3% 81% a3% e3% 81% a6% e3% 81% bf% Dies ist eine Neufassung des Artikels e3% 81% 9f /) für Qiita.
Kurz gesagt bedeutet Superauflösung "Erhöhen der Auflösung eines Bildes". Wenn Sie das hören, denken Sie vielleicht, dass Sie das Bild nur dehnen, aber wenn Sie das Bild verkleinern, gehen die Informationen des Originalbilds unweigerlich verloren. Lassen Sie uns eine einfache Überprüfung durchführen. Reduzieren Sie zunächst die Größe des entsprechenden Bildes auf die Hälfte. Verwenden Sie dann die bilineare Methode, um das Bild so zu vergrößern, dass es dieselbe Größe wie das Originalbild hat. Das Ergebnis ist das Bild unten.
Das Bild links ist das Bild unten, und das Bild rechts ist das Bild, das verkleinert und dann vergrößert wurde.
Es ist auf einen Blick schwer zu verstehen, aber selbst wenn die Auflösung gleich ist, wird es verschwommen und kleine Funktionen verschwinden. Die Aufgabe der Superauflösung besteht nicht nur darin, die Auflösung zu erhöhen, sondern sie in ein hochauflösendes Bild umzuwandeln und dabei kleine Merkmale zu kompensieren.
ESPCN (Efficient Sub-Pixel Convolutional Neural Network) ist ein auf einem tiefen neuronalen Netzwerk basierendes Super-Resolution-Modell, das 2016 angekündigt wurde.
Ein ähnliches Modell ist das 2015 angekündigte SRCNN (Super-Resolution Convolutional Neural Network). Dies ist ein Modell, das ein neuronales Netzwerk für Aufgaben mit hoher Auflösung verwendet und es in ein hochauflösendes Bild mit drei Faltungsschichten umwandelt.
Als ein besonderer Punkt von ESPCN wird beim Erhöhen der Auflösung normalerweise eine Operation hinzugefügt, die als umgekehrte Faltung bezeichnet wird, aber diese Operation kann gitterartiges Rauschen erzeugen. Um dies zu überwinden, erhöht ESPCN die Auflösung durch eine Operation namens Pixel Shuffle. Wenn Sie beispielsweise die Größe eines Bildes verdoppeln möchten, erstellen Sie kurz vor der Ausgabe vier Bilder und kombinieren Sie die vier Bilder für die Ausgabe in einer festen Positionsbeziehung.
Ich habe gelernt, den Code von hier und das durch Scraping erhaltene Bild zu verwenden. Übrigens wurden ca. 10.000 Bilder zum Lernen verwendet.
Das linke ist das untere Bild, das mittlere ist das Bild, das verkleinert und dann vergrößert wurde, und das rechte ist das Bild, das ESPCN verwendet.
Es gibt ein leichtes Gefühl der Inkongruenz in den Details im Vergleich zum Originalbild, aber es wurde fast restauriert. Wenn Sie dies verwenden, können Sie anscheinend auch die Auflösung von Videos erhöhen.
Dieses Mal habe ich eine Superauflösung mit ESPCN versucht. Es scheint interessant zu sein, APIs mit einem solchen Modell zu erstellen. Darüber hinaus können Sie dieses Modell anscheinend auch verwenden, um die Auflösung von Bildern zu erhöhen, die mit GAN usw. erstellt wurden.
Im Folgenden sind die Websites und Dokumente aufgeführt, auf die ich beim Erstellen dieses Artikels verwiesen habe.
[Superauflösendes Bild: Implementierung / Lernen von ESPCN-Pytorch](https://nykergoto.hatenablog.jp/entry/2019/05/28/%E7%94%BB%E5%83%8F%E3%81% AE% E8% B6% 85% E8% A7% A3% E5% 83% 8F% E5% BA% A6% E5% 8C% 96% 3A_ESPCN_% E3% 81% AE_pytorch_% E5% AE% 9F% E8% A3% 85_ / _% E5% AD% A6% E7% BF% 92) Image Super-Resolution Using Deep Convolutional Networks(2015) Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network(2016)
Recommended Posts