图像复原和维纳滤波
之前上課的時候其實就沒搞懂什么是維納濾波和卡爾曼濾波,老師完全講不清楚來龍去脈,濾波、預測都說不清楚。后來刷知乎看到大神的解釋,當時倒是茅塞頓開,但是前幾天做筆試遇到關于維納濾波的題目,發現功課沒做夠。要學習一個東西,我認為第一步不應該是講它的定義,而是先搞清楚它是在上面背景下提出的,偉大的數學家提出一個概念肯定不是為了考我們的,而是為了解決實際問題的。
岡薩雷斯書中第三章和第四章分別講了空間濾波和頻率域濾波,維納濾波放在了第五章圖像復原和重建。第五章其實就是濾波的應用,因為圖像有退化,所以才要復原,而要想復原,必須要搞清楚圖像退化的過程。一幅圖像從鏡頭捕捉到傳輸,存儲都會產生各種各樣的畸變,這些過程統稱為退化過程。可以發現,圖像退化是相對于兩幅圖像而言的,一幅是原圖,一幅是退化后的圖像,圖像復原的目的是將退化后的圖像變換到盡量接近原圖的過程,即退化的逆過程。盡量接近原圖就是我們的指標,所以圖像復原是一個客觀的過程,而圖像增強是一個主觀的過程,輸出圖像的指標是人類視覺的接收程度。
數學上,我們把退化過程分成兩部分,一個是退化函數H,一個是加性噪聲。所以頻率域退化模型如下式:
退化函數和噪聲有多種組合。關于噪聲我們已經很熟悉了,高斯噪聲、椒鹽噪聲、瑞利噪聲等。當退化過程只存在噪聲時,使用空間濾波,包括均值濾波器和統計排序濾波器。當噪聲是周期性時,可以使用頻率域濾波消除周期噪聲,包括帶通、帶阻、陷波濾波器。
關于退化函數,我們只能盡量去估計。書中提到了三種方法。圖像觀察估計是選取圖像中信號最強的部分,并認為這部分圖像的噪聲為0,銳化處理過后就認為得到了復原之后的圖像,銳化根據該部分的退化函數估計完整的退化函數;試驗估計是通過試驗,期望得到和獲取退化圖像相似的裝置,不斷地調整試驗裝置,直至得到的圖像盡可能接近退化圖像,這時再輸入亮點模擬沖激,進一步得到退化函數的沖激函數;建模估計就好比是試驗估計的數學版本,通過數學表達式模擬裝置,比如Hufnagel在1964年提出的基于大氣湍流的模型。
既然我們已經可以估計退化函數,那么就可以根據之前的公式進行逆濾波,簡單地除以退化函數,得到:
這樣,基本估計的退化函數是精確的,我們無法知道噪聲分量是多少,這一影響在退化函數H(作為分母)逼近0時尤其嚴重。一種方法是將退化函數進行截取,在原點附近退化函數值較高,所以可以對退化函數使用低通濾波器進行截取。不進行截取的逆濾波稱作全濾波。
前面講了這么多,終于要過渡到今天的主角了。既然圖像復原是一個逼近原圖的過程,那么它就可以看作是一個最優化問題,我們可以把策略定為使得復原后的圖像和原圖的差的平方的期望最小,即均方誤差最小。維納濾波的思想就是把圖像和噪聲都看作不相關的隨機變量,再進行最優化求解。維納濾波又叫最小均方誤差濾波或者最小二乘濾波,它在1942年被提出,當時正值第二次世界大戰,運用在了火力跟蹤問題中。
鏈接1推導了一般的SISO信號傳播模式下的維納濾波。
由這個式子就可以得到著名的正交準則推論。上式的意思是誤差和估計值(也可以理解為預測值)的乘積的期望為0,也就是它們之間是正交的。
這就是著名的維納-霍夫wiener-Hopf方程。左邊是互相關矩陣,右邊是相關矩陣,求Sf的方差。X是原圖,Sf是退化后的圖像。可以由此求得維納濾波器的沖激響應。H=Rxx/Rxs
Rxx是觀測數據的自相關函數,Rxs是觀測數據與期望數據的相關函數。
在之前給出的退化模型中,Rxx=HS,Rxs=SH2+N
所以?
N和Sf就是噪聲和信號的功率譜。它們的具體數值很少是已知的,而我們實際也只需要知道它們的比值K,K值的選擇是交互式進行選擇的。
維納濾波的缺點就是最后提到的,它需要未退化圖像和噪聲的功率譜,即便可以人為選擇K值,也無法保證是最優解。同時,維納濾波的最優是平均意義上的最優,意思是維納濾波對多幅圖像處理的結果的平均值是最滿意的,但具體到每幅具體的圖,不一定是最優的。這就引出來了更進一步的約束最小二乘方濾波。
Reference:
總結
- 上一篇: 《Python 黑科技》程序员必须会的代
- 下一篇: 数据结构之图的实现