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