Image Deconvolution: An Introduction

如果一張影像拍照時手振了,或是沒對好焦模糊了,通常我們會值接刪除重拍,但在某些特殊應用的場合,我們會需要如 CSI 犯罪現場中用的神奇補強手段,其實電視劇中只是稍微誇大效果 (我們也沒用這麼酷炫的UI ),但理論上是可行的,這個過程叫做 deconvolution 或稱為 deblur。

Image Deconvolution 嘗試將所有光學過程反轉,求解符合數學模型的原始射線。本文將會帶到基本的數學模型及簡單例子;並且整理分類常見的解法。

Deconvolution 做法跟把模糊照片銳化( Sharpness filtering ) 有數學模型上的根本差異,並且在某些特殊強況有著決定性的差異。知道了以後在判斷什麼影像該用什麼方法補救上會有不少幫助。

範例程式給讀者參考,有興趣的讀者可以先玩看看再開始閱讀本文,比方說將下圖變清楚 (參數為 13x13 tap 的 circle PSF )

Continue reading "Image Deconvolution: An Introduction"

From implicit filtering to explicit filtering

在影像處理中,我們常常對影像進行許多filtering,如跑下面這個3x3的box blur kernel W

W=\begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}

每個output影像pixel O_i,可視為在kernel內的input影像pixel I_j的線性加總

O_{i}=\sum_{j{\in}W}{w_{j}I_{j}}

我們令這個動作被應用在全影像成一個線性系統,這邊把OI都展開成向量

A\vec{O}=\vec{I}

\vec{O}=A^{-1}\vec{I}

這邊的A^{-1}作用等同於對影像做一個W kernel的filtering,在這裡求解\vec{O}=A^{-1}\vec{I}系統最佳化我們稱之為implicit filtering,其實等同於做一個explicit的box filter,而後者明顯比較容易實現! 也更適合硬體實作。

不幸的是,我們定義問題時通常以一個quadratic form的線性系統Ax=b來做最佳化;令這些式子難以被實現成硬體加速(通常是memory trade-off或iteration問題)。於是將implicit filtering轉換成explicit filtering變成一個特別的研究方向。比方說L-1 regularization的最佳化問題可以被轉換成一個iterative median filtering [1]。

[1]Y. Li and S. Osher, “A New Median Formula with Applications to PDE Based Denoising,” Comm. Math. Sciences, vol. 7, pp. 741-753, 2009.