MAP推定による超解像
ここまででMAP推定により超解像画像を計算するために必要な各技術の解説が終わりましたので、最後にMAP推定をどのように行うかを説明していきましょう。まずは、あらためて超解像の初回で登場した、MAP推定に用いる以下の超解像のエネルギーの式を見て行きましょう。
このエネルギー関数E(x)の値が一番小さくなるときに最適の超解像画像xが求まるという計算がMAP推定です。
劣化関数hのうち、まずDはダウンサンプリングでした。すなわち、目標の超解像画像の解像度を決めれば、このDの関数は確定します。
次に、Bはブラー・カーネル(ボケ関数)でした。これはデコンボリューション処理により先に計算しており、各フレームごとにBの関数の形Biが確定しています。
最後にMのモーションですが、これも画像レジストレーションにより、基準フレームへの各フレームにおける移動度(変形度)Miが計算されていますのでこれも形が確定しています。
このようにMAP推定を行う前の処理でD,B,Mの関数の形(具体的には行列です)がすべて先に確定しているので、あとはE(x)の値を最小化するようなxを計算することがMAP推定の目的になります。
事前確率Cで表現される超解像画像らしさ
復習ですが、MAP推定はエネルギー関数Eを最小化になるxの値を探し、その値を最適な超解像画像Xとする推定法でした。従って先ほどの節で劣化関数hの形が確定したので、あとはCの関数の形を決まれば形のわからない関数はなくなり、MAP推定の最小化計算を実行できます。
MAP推定のような、入力(原因、求めるデータ)から出力(結果、用いるデータ)を求めるといういわゆる「逆問題」において、関数Cの項は「正則化項」と呼ばれます。正則化とは、この項でエネルギー全体の値に制約を与える(エネルギーの値の範囲を限定する)ことで、この項の働きにより推定したいXの値にXがこのあたりの値になるという「事前知識」を盛り込むことができます(エネルギーが1つの値に収束せずに発散してしまうことを防ぐ効果もあります)。
超解像では、この事前確率にGMRF(Gaussian Markov Random Filed:ガウスマルコフ確率場)を用いることが多いです。GMRFでは「超解像画像はそれぞれの隣の画素間は滑らかに値が変わる」という制約を仮定し、もしノイズが途中の画素に乗って急激に画素の値が変わったら隣度同士の値が滑らかになるように画素値を修正してくれるよう働き、全体のパッチごとの隣同士の滑らかさを保ったまま超解像画像を復元できるというものです。MAP推定で復元する際に、エネルギーのCにこのGMRFのような「超解像画像らしさ」の事前分布を適切に用いることで、ノイズを自動的に除去してかつ高周波数成分も保存したまま、滑らかで鮮明な高解像度画像を推定してくれるわけです(ただし、事前確率を強めに適用すると全体が滑らかになりすぎて、これまた高周波数成分(エッジ)が消えてしまうので、Cの比率が大切です)。
まとめと今後の超解像
以上、今回はMAP推定による(主にビデオの)超解像の仕組みを紹介しました。MAP推定による超解像の全体の処理の流れは、(1)画像レジストレーション(位置合わせ)により画像間の移動度と変形度を求めるモーション推定と、(2)デコンボリューション処理によるブラーカーネル(ボケ関数)の推定をそれぞれ最初に行っておき、(1)、(2)から計算した劣化関数を用いることで、位置合わせ済みの複数の入力画像からMAP推定のエネルギー関数が最小となる超解像画像を計算するというものでした。
現状の超解像はテレビ中心の展開であることは皆様ご存知の通りでしょう。国内メーカー製のスマートフォン(例:東芝REGZAなど)には超解像技術が搭載され始めていますが、現行(2011年秋)のiPhoneには専用のハードウェアチップとしてもソフトウェア的にも標準では未搭載です。超解像は劣化関数というサイズの大きい行列計算を用いた計算コストの比較的高い処理なので、ハードウェア的に(専用のチップで)超解像処理を行うのが処理速度的に有利なわけです。しかし、iPhoneではハードウェア的にカメラの開発をApple以外が行うことはできず、ソフトウェア的に(つまりiOSアプリにソフトウェアとして超解像を実装して)実現することしかできません。今後、日本の携帯電話メーカー各社のスマートフォンのように、iPhoneにも超解像をハードウェアで処理してくれるチップが標準搭載されれば、皆さんが広く一般的に超解像を使用できることになるかもしれません。