“SRGAN” (超解像敵対的生成ネットワーク / Super-Resolution Generative Adversarial Network)による4倍拡大画像とオリジナル画像とLanczosによる4倍拡大画像の画質比較の画像を掲載致します。
もはやオリジナルとSRGANが拡大したものの差が分かりませんね。
学習データには私が撮影した静物写真を約3,000枚使用してトレーニングさせました。
SRGANのプログラムはオープン ソースのものを使用させて頂きました。
“GitHub” の “SRGAN” のリポジトリー:
https://github.com/tensorlayer/srgan
OpenJDK 1.8とPython 3をインストールしてある環境に、Bazelとpip3をインストールし、TensorFlowをソースからビルドしてインストールし、TensorLayerをGitHubからCloneして、SRGANをインストールしました。
環境を整える際は互換性問題や足りないライブラリを追加するなど、手間が掛かりました。
学習はUbuntu 16.04 LTS OS (Debian Linux系のディストリビューション)のPC上でCPUで行っております。
Intel Core i7-3770TとDDR3 SDRAM 32GBの私のPC環境では、充分な学習に数週間から数か月の時間を要します。
因みに最新のIntel Core i7-9700KのCPUを使用した環境ならば、凡そ2.75倍速く学習が進みます。
SRGANは人工ニューラル ネットワークを使用した人工知能です。
Deep Learning (深層学習)を行います。
本物に近い画像生成を目指すGenerator (生成器)と、真贋を見分けようとするDiscriminator (識別器)が互いに競い合いながら学習を進めます。
それと、生成画像と正解画像との画素単位のMSE (誤差二乗平均)と、学習済みのVGGネットワークを通したMSEを損失値に加えられています。
CNN (Convolutional Neural Network | 畳み込みニューラル ネットワーク)層を持ちます。
ResNet (Residual Network | 残差ネットワーク)という、出力と入力の差を学習する事で、深い層数でも適切に学習できる方式が採用されています。
コメント