Image Deblurring (2) : Non-Blind Deconvolution (Spatial Domain)

 前回は周波数領域におけるnon-blind deconvolutionを紹介しました。今回は空間領域におけるnon-blind deconvolutionについて見ていきたいと思います。先にも述べたように、逆畳み込みは不良設定問題であるため解くことできません。ですが、回帰的に近似解を求めるアプローチは多数提案されています。ここでは代表的な二つの手法を取り上げます。

1. Lucy-Richardson法

 RichardsonとLucyにより独立に提案された手法で、あるカーネルを仮定したときに観測画像を与える最も尤もらしい画像を推定し、元画像とするものです。t番目の繰り返しにおいて推定された元画像f(x,y,t)、観測画像f(x,y,0)、blurカーネルb(x,y)とすると、t+1番目の繰り返しにおける元画像の推定値は次式で表されます。

f(x,y,t+1) = f(x,y,t)・[ b(x,y) * { f(x,y,0) / ( b(x,y) * f(x,y,t) ) } ]

つまり、観測画像と推定画像とにそれぞれblurカーネルを適用した結果の比が1に近づくように推定画像を更新していくことになります。

 ガウシアン・カーネル(σ=5)でボケさせた画像に本手法を適用した結果をFig.1に示します。繰り返し回数tが増すごとに高周波成分が復元されていく様子が見て取れます。(画像端部の処理は省略してあります) 但し、繰り返しごとに画像全体をぼかすため計算コストは非常に大きくなります。



Fig.1 Deblurred with Lucy-Richardson method

2. Iterative Back Projection法

 Lucy-Richardson法と基本的には同じ考え方ですが、観測画像と推定画像とにそれぞれblurカーネルを適用した結果の差が0に近づくように推定画像を更新していく手法がIterative Back Projection (IBP)法です。
 t+1番目の繰り返しにおける元画像の推定値は次式で表されます。


f(x,y,t+1) = f(x,y,t) + α[ f(x,y,0) - b(x,y) * f(x,y,t) ]

但し、αは変化量を制御する係数です。ここでは定数としていますが、空間的にばらつきを持たせることも可能です。尚、お気付きの方もいるかもしれませんが、この手法の繰り返し回数を1回とすると所謂Unsharp Maskと等価になります。

 先程と同様に、ガウシアン・カーネル(σ=5)でボケさせた画像に本手法を適用した結果をFig.2に示します。やはり繰り返し回数tが増すごとに高周波成分が復元されていく様子が見て取れます。



Fig.2 Deblurred with Iterative Back Projection method

 サンプルプログラムを置いておきます。deblur_vs2008.zip 直
(Microsoft Visual C++ 2008 Express Editionにて作成、OpenCVの2.1を使用)
以下留意点を記載しておきます。


[参考文献]
[1] 篠原, "超解像度技術を用いた画像鮮明化システムの開発", AA&S社公開資料