王 敏,田啟川
(太原科技大學(xué) 電子信息工程學(xué)院,山西 太原030024)
運動模糊圖像復(fù)原是圖像恢復(fù)的重要課題之一,隨著科學(xué)技術(shù)的不斷進步和發(fā)展,運動模糊圖像復(fù)原在天文、軍事、道路交通[1]、醫(yī)學(xué)圖像及偵破等各個領(lǐng)域中的應(yīng)用越來越多,要求也越來越高,從事運動模糊圖像的恢復(fù)研究具有重要的現(xiàn)實意義。
目前,對于不同原因造成的模糊圖像的復(fù)原雖然有廣泛的研究,不少學(xué)者也已經(jīng)提出了一些不同的具體算法,但這些方法一般僅適用于已知點擴散函數(shù)的參數(shù)情況。而對于運動模糊圖像,點擴散函數(shù)通常是未知的,如果知道模糊的方向和尺度,就可以據(jù)此構(gòu)造點擴散函數(shù),用前人提出的方法進行恢復(fù)??梢?,尋求一種行之有效的方法來自動鑒別運動模糊參數(shù)并實現(xiàn)運動模糊圖像的復(fù)原是一個迫切并且必要的任務(wù)。
對運動模糊圖像的盲復(fù)原,關(guān)鍵是精確確定點擴散函數(shù)(即模糊長度和模糊方向)并尋求一種好的復(fù)原方法。本文對模糊圖像進行方向性的高通濾波 (方向微分)來判定運動模糊方向,并針對原算法運算速度慢的缺點進行改進,采用由粗到細的檢測方法,從而大大提高了檢測速度;然后利用邊緣檢測算法,計算模糊的尺度;最后采用維納濾波算法對模糊圖像進行恢復(fù),并提出一種新的K值估計算法,將K值自動估計與傳統(tǒng)的K取經(jīng)驗值相結(jié)合,進行兩次維納濾波,從而得到一個較為精確的K值。
本算法可以較好地實現(xiàn)圖像復(fù)原,特別是針對一些模糊程度較強、人的肉眼根本不能辨別的模糊圖像也能較好地恢復(fù),具有很強的實用價值。
圖像復(fù)原處理建立在圖像退化的數(shù)學(xué)模型基礎(chǔ)上,這個退化數(shù)學(xué)模型應(yīng)該能夠反映圖像退化的原因。由于圖像的退化因素較多,因此圖像處理過程中把退化原因作為線性系統(tǒng)退化的一個因素來對待,從而建立系統(tǒng)退化模型來近似描述圖像函數(shù)的退化模型,如圖1所示。
若H是線性的、空間不變的過程,則退化圖像在空間域的表達式為:
圖1 圖像退化/復(fù)原處理的模型
頻域表達式為:
目前,圖像復(fù)原的算法有逆濾波恢復(fù)[2]、維納濾波復(fù)原[3]、有約束最小平方恢復(fù)、最小二乘方濾波復(fù)原等,本文選用維納濾波進行圖像的復(fù)原。
可見,用維納濾波實現(xiàn)運動模糊圖像的復(fù)原實質(zhì)上就是求取退化函數(shù)H(u,v)和K值(信噪比)的過程,其取值的準(zhǔn)確性將直接影響復(fù)原效果。下面介紹H(u,v)和K值的求取。
由前面分析可知,要實現(xiàn)圖像復(fù)原首先要建立正確的退化模型。圖像復(fù)原處理可看成是一個估計過程,如果已經(jīng)給出了退化圖像g(x,y)并估計出點擴散函數(shù)PSF的參數(shù)(運動模糊方向和運動模糊長度),則任意方向的勻速直線運動[4]模糊圖像的點擴散函數(shù)也就可以根據(jù)任意方向勻速直線運動模糊的退化模型而唯一確定,進而由最小二乘準(zhǔn)則使用參變維納濾波來近似復(fù)原出f(x,y)。因此,運動模糊圖像的復(fù)原,首先要確定運動模糊圖像的退化模型,再根據(jù)退化模型和原始圖像估計出PSF的參數(shù),最后由相應(yīng)的復(fù)原方法進行完成圖像的復(fù)原工作。
對于勻速直線運動模糊圖像來說,點擴展函數(shù)可以描述為:其中d為運動模糊長度,θ為運動模糊方向與水平方向角度。
運動方向的提取是運動模糊圖像確定點擴散函數(shù)的關(guān)鍵因素之一。準(zhǔn)確地估計出運動模糊方向,就可以通過圖像旋轉(zhuǎn),將運動模糊方向旋轉(zhuǎn)到水平軸方向,對應(yīng)的運動模糊點擴散函數(shù)也隨之變?yōu)橐痪S的,運動模糊點擴散函數(shù)的估計及圖像復(fù)原就由二維問題轉(zhuǎn)化為一維問題,從而降低運動模糊圖像復(fù)原的難度。
本文利用方向微分檢測運動模糊方向的思想,并對其算法進行了改進,在保證精確度的前提下大大提高了檢測速率。
2.2.1 方向微分檢測模糊運動方向[5]
將原始圖像看成是自相關(guān)及其功率譜是各向同性的一階馬爾科夫過程,運動模糊降低了運動方向上圖像的高頻成分,而對于其他方向上高頻成分影響較少,且隨著方向偏離越大影響越小。若對運動模糊圖像進行方向性的高通濾波(方向微分),則當(dāng)濾波方向為運動方向時,由于此方向?qū)?yīng)的高頻成分最小,因此高通濾波后模糊圖像能量損失最大,得到的微分圖像對應(yīng)的灰度值之和必然最小。因此方向微分后的圖像的灰度值之和最小的方向即為運動模糊方向。方向微分示意如圖2所示。
運動模糊圖像為 g(i,j),g(i′,j′)是模糊圖像中以 g(i,j)為圓心、半徑為Δr的半圓弧上的一點:其中Δr是進行方向微分時的微元長度,α是進行方向微分的方向角,α∈[-90°,90°]。 g(i′,j′)的值由模糊圖像插值獲得,其中:
對運動模糊圖像g(i,j)進行方向微分(微元大小為Δr,方向角為α),得到微分圖像為:
對方向微分圖像Δg(i,j)α的灰度值的絕對值求和,有:
在α∈[-90°,90°]范圍內(nèi)按一定步長(如 1°)取α值,求出對應(yīng)的微分圖像灰度值的絕對值之和 I(Δg)α,并求出其中的最小值min(I(Δg)α),則最小值 min(I(Δg)α)對應(yīng)的角度即為運動模糊圖像中運動模糊方向與水平軸的夾角。即:
2.2.2 快速算法實現(xiàn)
上述算法準(zhǔn)確率較高,但是角度按固定步長從-90°~90°依次取值,計算耗時比較大,速度慢。本文針對這個問題對算法進行改進,采用由粗到細的方法對模糊角度進行鑒別,從而確定模糊方向。主要步驟如下:
(1)對步長初始化,令γ0=10°。 令α∈[-90°,90°],α0=-90°;
(3)在步驟(2)中求出的新的區(qū)間內(nèi),取步長γm=1/2γm-1,返回步驟(2);
(4)直到步長γm<1,停止運算,最后求得的微分灰度值的絕對值最小值對應(yīng)的角度即為所求。
改進的模糊方向求解方法采用由粗到細的方法逐步減小感興趣的角度區(qū)域,而將大量的非目標(biāo)角度以較大的步長跳過,從而簡化了運算,大大提高了檢測速度。
模糊長度是點擴散函數(shù)的另一個重要參數(shù),本文將邊緣檢測應(yīng)用于運動模糊長度的鑒別。
如圖3所示,清晰圖像邊緣處的灰度值是急劇變化的,而運動模糊圖像由于運動模糊邊緣處的灰度變化相對緩慢,其對應(yīng)的圖像的邊緣波及一個寬度區(qū)域,這個邊緣區(qū)域的寬度即為運動模糊圖像的模糊長度。
為了使算法具有更強的魯棒性,在此用梯度變化來近似表示圖像的邊緣,進而求出模糊長度。將Prewitt邊緣檢測子擴展為n×n(n為奇數(shù))的矩陣,在此用 5×5的矩陣,即 n=5。
運動模糊圖像的邊緣延伸到周圍像素,由于運動模糊部分總是發(fā)生在模糊區(qū)域的兩端,且模糊具有對稱性,因此對模糊圖像進行邊緣檢測,分別求取兩端的邊緣寬度,取其平均值為運動模糊長度。在此用迭代算法求取兩端的邊緣寬度,具體步驟如下:
(1)對圖像進行邊緣檢測;
(2)對邊緣圖像進行逐行掃描,記錄每行中連續(xù)邊緣的邊緣寬度,并對整個邊緣圖像中的邊緣寬度進行統(tǒng)計,做出統(tǒng)計直方圖,設(shè)定邊緣初始寬度閾值T等于邊緣寬度統(tǒng)計平均值以及迭代次數(shù)為n;
(3)將每一行中連續(xù)邊緣的邊緣寬度Tij與上述閾值進行比較,將符合0.8T≤Tij≤1.2T的邊緣寬度保留下來;
(4)對每一行中最大的兩個邊緣寬度求和,并對所有行的和值進行統(tǒng)計,求出統(tǒng)計平均值;
(5)用步驟(4)中得到的值的1/2更新邊緣寬度閾值;
(6)返回步驟(2)重復(fù)以上步驟,直到寬度值收斂或達到迭代次數(shù)。
用維納濾波進行圖像復(fù)原的關(guān)鍵是確定點擴散函數(shù)和K值。前文已經(jīng)求出模糊角度和模糊方向,將其帶入公式(5)即可得到點擴散函數(shù)h(x,y)。因此,接下來的主要的任務(wù)是求K值。
通常,K值采用經(jīng)驗值或通過人機對話手工調(diào)節(jié),前者雖然簡單但復(fù)原效果不佳,后者復(fù)原效果要好一些,但非常麻煩,也得不到最準(zhǔn)確的參數(shù)值。本文采用一種自動估計K值的方法。
針對這種情況,本文對該K值估計算法進行了改進。首先利用傳統(tǒng)的維納濾波(即對K值取經(jīng)驗值)對原始圖像進行估計,從而得到一個Pf(u,v)值,然后對模糊圖像進行濾波,得到濾波后的圖像,可以粗略計算Pn(u,v)值,這樣就能對K值進行初步估計;再以此K值為中心設(shè)定初始值、步長及步數(shù),進行循環(huán),繪制E-K曲線,求曲線的極小值點,對應(yīng)的K值即為所求。具體步驟如下:
(1)利用傳統(tǒng)的K取經(jīng)驗值的維納濾波方法進行第一次維納濾波,得到一個原始圖像的估計值;
(2)對模糊圖像進行去噪處理,得到去噪后的圖像,將模糊圖像與去噪后的圖像相減,認為其值為噪聲;
(3)利用上述兩步計算得到的 Pf(u,v)、Pn(u,v)進行 K值的初步估計;
(4)以步驟(3)計算的K為中心,確定初始K值,設(shè)定步長、步數(shù);
(6)對E求導(dǎo),檢測導(dǎo)數(shù)是否有零點,若存在零點,則零點對應(yīng)的K值即為所求;若dE>0,則K值范圍過大,取ΔK=ΔK/10,否則取ΔK=ΔK×10。返回步驟(5)繼續(xù)計算,直到存在零點。
改進的K值自動估計算法,將傳統(tǒng)算法應(yīng)用其中,通過兩次維納濾波,首先對原始圖像和噪聲圖像進行初步的估計,進而得到K值的大致取值范圍,克服了因K值范圍取值不當(dāng)而造成估計不準(zhǔn)確的缺點,利用此算法對K值進行估計準(zhǔn)確度比較高。
將以上求出的點擴散函數(shù)和K值代入式 (4),即可求得運動模糊復(fù)原圖像。
以運動模糊車牌[6]的復(fù)原為例,在攝像頭拍攝時,因為車輛高速運動,加之曝光時間通常較短,得到的圖像往往非常模糊,這就要首先做圖像復(fù)原處理,最后得到一幅大致上比較清晰的圖像以供后續(xù)處理。
圖4為運動模糊車牌圖像,用本文算法進行檢測得出兩幅圖像的運動模糊參數(shù)分別為d1=13,θ1=8;d2=17,θ2=9。圖5、圖6分別為 K取經(jīng)驗值0.05和 K值自動估計得到的復(fù)原效果圖。
從結(jié)果可以看出,利用本文提出的改進的K值自動估計算法與傳統(tǒng)的算法相比,復(fù)原效果有明顯的改善。該算法對于模糊程度未知、造成模糊的原因未知的模糊圖像的復(fù)原問題具有重要的實際應(yīng)用價值。
本文對運動模糊圖像復(fù)原進行了研究,對運動模糊圖像的退化模型、點擴散函數(shù)的求取以及維納濾波K值的自動估計等幾個問題給出了相應(yīng)的改進算法。以運動模糊車牌復(fù)原為例進行了實驗驗證,并與傳統(tǒng)的K取經(jīng)驗值進行了比較。實驗結(jié)果表明,本算法能夠較好地估計運動模糊參數(shù),通過對方向微分算法的改進提高了運算速度,利用改進的K值自動估計對圖像復(fù)原效果與傳統(tǒng)算法相比較復(fù)原效果具有明顯的改善。
[1]BEN E M,NAYAR S.Motion-based motion deblurring[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2004,26(6):689-698.
[2]CANNON M.Blind deconvolution of spatially invariant image blurs with phase[J].IEEE Transactions A cousfics Speech Signal Processing,1976,24:58-63.
[3]Sun Shaojie,Wu Qiong,Li Guohui.Image restoration for single blurred image[C].IEEE International Conference on Intelligent Computing and Intelligent Systems,2009:491-494.
[4]王曉紅,趙榮椿.任意方向運動模糊的消除[J].中國圖象圖形學(xué)報,2000,5(6A):525-529.
[5]陳前榮,陸啟生,成禮智.基于方向微分的運動模糊方向鑒別[J].中國圖象圖形學(xué)報,2005,10(5):590-595.
[6]Lin Hueiyung,Li Kunjhih,Chang Chiahong.Vehicle speed detection from a single motion blurred image[J].Image and Vision Computing,2008,26:1327-1337.