超解像の未来はどうなる?2019年のサマリ論文を追ってみた

論文  Deep Learning for Single Image Super-Resolution: A Brief Review

TecoGAN をはじめ、超解像技術は今なおもディープラーニングの発展と共に革新が続いています。果たして超解像技術はどのように進化してきたのか?今回は1枚の入力画像からより高解像度の画像を推論する、単眼超解像(SISR: Single Image Super Resolution)に限定して、執筆時時点で最新と思われる2019年5月のサマリ論文を追ってみました。

画像の解像度を上げる手段として、Bicubic補間(Bicubic Interpolartion)やLanczosリサンプリング(Lanczos Resampling)といった補間ベースの計算手法(Interpolation-based SISR methods)が古くから用いられており、計算が高速ではあるものの、特に拡大率が高い場合に正確性が欠けるという問題がありました。この課題を克服するため、近年では学習ベースの手法(Learning-based SISR methods)が盛んに研究されています。


図1 学習ベースの単眼超解像の概略図

図1は単眼超解像における機械学習の概略図です。教師データとして、品質を落とした画像と、元画像の対を与えますが、品質を落とす要因として、ダウンサンプリング(Down Sampling)による解像度の低下だけではなく、ブラー(Blur)やノイズ(Noise)が示されている点に注目です。実際の撮影ではどうしても起こりうる、手ブレやピンボケ、また暗所の撮影におけるカメラの高感度ノイズといったアーティファクト(Artifact)は、解像度そのものに変化はなくとも、実質的には解像度低下と同様の品質低下を起こしています。近年では、こうしたArtifactの除去を最初から想定した超解像の研究も進んでおり、モデルの改良に伴い画像復元の品質が大きく向上することがわかっています。

図2 SRCNNのアーキテクチャ

2014年にECCVで発表されたSRCNNは、ディープラーニングを最初に単眼超解像に適用したモデルとして広く知られています。図2に示す通り、最初に求めたい解像度に補間処理でアップサンプリング(Up Sampling)し、続いて3層の畳み込みネットワーク(CNN: Convolutional Neural Network)を通じて、周辺画素の特徴量を拾いつつ高周波成分を推定するモデルとなっています。また後で掘り下げますが、損失関数 (Loss Function)として平均二乗誤差(MSE: Mean Square Error)を用い、客観的な評価指標として、PSNR(Peak Signal-to-Noise Ratio )やSSIM(Structual SIMilarity)を用います。


図3 FSRCNNにおけるアップサンプリング

続いて2016年のECCVで、FSRCNNというSRCNNを速度・復元精度ともに改善したモデルが登場します。SRCNNとは異なり、アップサンプリングを最後の転置畳み込み(Transposed Convolution)で行う(図3参照)ことで、特徴抽出の計算量削減に成功しました。またCVPR 2016ではESPCNという、同様にSRCNNの高速・高精度モデルが発表されます。これもアップリングサンプリングをFSRCNN同様に最後に行いますが、Sub-pixel convolutionまたはPixel Shufflerと呼ばれる計算手法を用いてアップサンプリングする点がFSRCNNとは異なります(図4参照)。

同時期に画像認識の研究において、残差ネットワーク(ResNet: Residual Networks)というブレイクスルーが起こりました。ResNetを使うことで深いニューラルネットワークにおける効率的な学習が可能になり、CVPR 2016ではVDSRという20層ものCNNで構成されるモデルが登場しました。またVDSRと同じ著者、同じ学会で、再帰的(Recursive)的な畳み込みやウェイトの共有といったテクニックを用いて、VDSRより少ないパラメータ数で同程度の精度を達成したDRCNというモデルが発表されました。

図5 VDSR以降の単眼超解像のアーキテクチャ

図5で示されるようにVDSR以降、単眼超解像はより複雑なネットワークを伴ったモデルが発表されました。多段のResidualブロックを追加して複雑性を上げたDRRN、Residualの中にResidualブロックが直列に並ぶSRResNet、そしてSRResNetにBatch Normalization層の削除などのチューニングを図ったEDSR、単一のネットワークで様々な拡大倍率に対応できるようにしたMDSR、ResNetの発展形であるDenseNetにインスパイアされたモデルを採用したDenseSRやMemNetがその一例として挙げられます。


図12 それぞれ異なる損失関数で学習したモデルで復元した画像とPSNRの比較

さて、SRCNNをはじめ多くの単眼超解像では、客観的な評価指標としてPSNRを用いていますが、ここで図12をご覧ください。一番左は元画像、左から2番目以降はダウンサンプリングされた画像をそれぞれ異なる損失関数で学習したモデルで復元した結果ですが、人の目からみて明らかにぼやけている左から2番目の(b)の画像が、それよりも綺麗に復元できているはずの以降の画像に比べて、PSNRの値が劣るという、直観に反する結果となっています。

何故こんなことが起きるのでしょうか?ここでは数式を使わずに、簡素な表現で説明を試みたいと思いますが、PSNRとは「推定した画像の画素値」と、「目標とする画像の画素値」が平均的にどれだけ変わったかで画質を定量評価する指標です。

しかし、PSNRの高低と、人間が直観的に感じる画質の良し悪しは必ずしも一致しません。例えば、PSNRでは画素値の大半が大きな偏りなく異なるケースと、1画素のみ画素値が大きく異なるケースをその値からは区別できないのです。もう少し具体的な例を挙げてみましょう。ディスプレイの輝度が1%変化したとして、人間にはその違いを認識することはきっと難しいですよね?ですが、液晶ディスプレイは1ドット欠けただけでも、すぐに気づいてしまいます。ところがPSNRでは、「全体的に輝度が変化したのか?」、それとも「ドット欠けがわずかに発生したのか?」、双方とも同じような差異として定量化するため、結果として直観に反する出力に繋がってしまうのです。


図13 正確さと自然さのトレードオフ関係を、グラフとして可視化し、各モデルをマッピングしたもの

実は図13で示す通り、機械から見た「正確な復元」と、人の目から見た「自然な復元」はトレードオフの関係にあることが、近年の研究から明らかになっており、「あらゆるユースケースに適した目的関数は存在しないので、何が正解かを選ばないといけない」と論文では締めくくっています。

以上、駆け足でしたが、これだけAIの研究が発展した今でも、人の認識を数字に落とし込むのはまだまだ難しいのだな、と思い知らされますね。しかし、それ故にまだ伸びしろがあると言えるでしょう。この先どんな研究成果が現れるのか楽しみです。