邵明省
(鶴壁職業(yè)技術學院電子信息工程學院,河南 鶴壁 458030)
霧天條件下獲取的紅外圖像容易丟失信息,如圖像對比度下降、遠景變得模糊等等,紅外圖像去霧算法不但需要增強其對比度和細節(jié),同時不能破壞紅外圖像像素分布信息[1-2]。
暗通道算法(Dark Channel Prior,DCP)由何愷明提出[3],通過分析有霧圖像暗通道先驗假設進行去霧,去霧效果自然并且真實,但是暗通道算法適合圖像中不包含天空區(qū)域或者圖像中沒有明亮區(qū)域。田源對通過混合通道把暗通道算法劃分遠景和近景區(qū)域(Near and Far Scene Dark Channel Prior,NFCDCP),并且在不同區(qū)域設置調節(jié)系數(shù)以便優(yōu)化調節(jié)[4],但是此方法適合圖像中遠景、近景區(qū)域比較容易分割的圖像,如果遠景、近景區(qū)域連接處出現(xiàn)相互交疊現(xiàn)象,則不太適合使用。宋瑞霞提出含有大片天空區(qū)域圖像的去霧算法(Large Sky Region Dark Channel Prior,LSRDCP),通過圖像的亮度值對天空區(qū)域進行分割[5],最終圖像去霧的色調更加自然,但是對天空區(qū)域比較小的圖像或白色物體比較多的圖像不易找出正確的分割閾值。Zhu提出圖像亮度和暗通道先驗(Fusion of Luminance and Dark Channel Prior,FLDCP)的融合方法對有霧圖像恢復[6],適合圖像中有廣鏡頭的天空區(qū)域,但是若空中的光線是在太陽周圍區(qū)域選取,將使圖像發(fā)生顏色偏移,導致恢復效果不佳。Gao 等人提出多聚焦圖像融合方法(Multi-Focus Image Fusion,MFIF),通過引入天空區(qū)域的分割求取全局大氣背景光[7],但是需要拉普拉斯濾波,導致處理時間較長。以上方法雖然能夠獲得完整的天空區(qū)域,但是若天空區(qū)域和非天空區(qū)域之間出現(xiàn)交叉現(xiàn)象,交界處在去霧后出現(xiàn)邊緣殘留現(xiàn)象。
本文采用天空區(qū)域識別暗通道算法(Sky Region Recognition of DCP,SRRDCP)對圖像進行去霧,雙閾值算法把圖像劃分為天空區(qū)域、非天空區(qū)域、交叉區(qū)域,增加了不同區(qū)域的大氣光值、透射率計算的差異性。實驗仿真顯示本文算法的紅外圖像去霧效果清晰,評價指標較優(yōu)。
在最大限度地保留天空區(qū)域可見光圖像清晰部分的前提下,將非天空區(qū)域模糊不清的部分轉換為近紅外圖像,從而得到一幅符合人眼視覺特性的清晰圖像[8]。通過上限閾值α、下限閾值β來對圖像進行天空區(qū)域、非天空區(qū)域、交叉區(qū)域識別,0<β<α<255,當圖像大于上限閾值α的區(qū)域即為天空區(qū)域,當圖像小于下限閾值β的區(qū)域即為非天空區(qū)域,介于α、β之間的區(qū)域為天空區(qū)域和非天空區(qū)域之間的交叉區(qū)域。
由于天空區(qū)域顏色較亮且平滑,上限閾值α獲取方法:
(1)
其中,mean(L)為圖像亮度均值。
非天空區(qū)域顏色較暗并且像素梯度變化大,下限閾值β獲取方法:
(2)
2.2.1 基于八個三角形循環(huán)的天空區(qū)域大氣光值估算
把有霧圖像天空區(qū)域劃分為八個相同三角形[9],分別計算八個區(qū)域的像素均值與標準差之間的差值,并選取差值最高的區(qū)域進行繼續(xù)劃分為八個三角形,一直重復此迭代操作。大氣光值估算要在霧濃度最高的區(qū)域確定,即像素均值與標準差之間的差值比較大的區(qū)域:
S(ni)=|M(ni)-D(ni)|
(3)
其中,i=1,2,…,8,S(ni)為第i個三角形區(qū)域的均值和標準差之間的差值;M(ni)和D(ni)分別為該區(qū)域的均值和標準差。
2.2.2 天空區(qū)域透射率估算
為了避免天空區(qū)域去霧圖像亮度發(fā)暗和發(fā)白的現(xiàn)象出現(xiàn),設置參數(shù)λ:
λ=ρmav
(4)
其中,0≤ρ≤1/mav,mav為全部像素的平均值。
(5)
其中,Num為像素總數(shù)。
如果當整個有霧圖像在亮度方面有點發(fā)暗時,mav變小,則λ變小,使得大氣透射率t(x)變大,去霧后的圖像稍微變亮一點;當有霧圖像發(fā)亮時,進行相反操作。
對λ進行界定:
λ=min(ρmav,0.9)
(6)
得到透射率表達式:
(7)
其中,Amin為圖像天空區(qū)域的大氣光值最小值。
交叉區(qū)域為天空區(qū)域與非天空區(qū)域相互交疊的區(qū)域,在不同圖像交叉區(qū)域中的天空區(qū)域、非天空區(qū)域所占比例不同,若按天空區(qū)域、非天空區(qū)域進行直接計算,將導致大氣光值、透射率過大或者過小,如果大氣光值比真實值偏大,則去霧圖像遠景較暗,近景較亮;若比真實值偏小,則去霧圖像遠景較亮,近景較暗。
2.3.1 交叉區(qū)域大氣光值
交叉區(qū)域既有天空區(qū)域也有非天空區(qū)域,需要對所含的天空區(qū)域、非天空區(qū)域分別求取大氣光值再進行均值操作。
選擇交叉區(qū)域中的天空區(qū)域亮度值前0.1 %像素的平均值作為大氣光值:
An=mean(max0.01 %I(x))
(8)
交叉區(qū)域中非天空區(qū)域大氣光值通過暗通道求取:
(9)
其中,Jdarkm(x)為非天空區(qū)域的暗通道均值;φ為微調參數(shù),避免交叉區(qū)域中非天空區(qū)域高亮物體對大氣光值的影響。
交叉區(qū)域大氣光值:
(10)
2.3.2 透射率估算
交叉區(qū)域中天空區(qū)域透射率求取:
tn=min(τAn(1-min(min(In(x)/An))),1)
(11)
其中,τ為比例因子,即天空區(qū)域在交叉區(qū)域所占的比例。
交叉區(qū)域中非天空區(qū)域透射率求取:
(12)
其中,ε∈(0,1)為常數(shù),本文取0.95。
交叉區(qū)域透射率:
(13)
暗通道算法適合非天空區(qū)域的紅外圖像去霧,但是由于暗通道算法選擇有霧圖像中亮度值排序中靠前的0.1 %像素,將這些像素最大值作為有霧圖像的大氣光值。但是有時最亮點可能為非天空區(qū)域的白色物體、反射光物體,因此在非天空區(qū)域計算中要避免白色高亮物體。
2.4.1 非天空區(qū)域大氣光值
對暗通道算法計算出的非天空區(qū)域大氣光值A0進行修正。
(14)
其中,w=7+9e-20v,v為修正因子,log(vw)>0,給大氣光值適量的增加,log(vw)<0,不進行校正。
2.4.2 透射率估算
對暗通道算法的透射率進行優(yōu)化操作[10]。
(15)
其中,Idark(x)為非天空區(qū)域的暗通道值。
(16)
其中,tq≤1是非天空區(qū)域像素透射率的最小值。
在得到全局大氣光值和各區(qū)域的透射率后,可估計出無霧圖像:
(17)
算法流程:
①輸入圖像;
②通過雙閾值對圖像劃分天空區(qū)域、交叉區(qū)域、非天空區(qū)域;
③計算天空區(qū)域大氣光值、透射率;
④計算交叉區(qū)域大氣光值、透射率;
⑤計算非天空區(qū)域大氣光值、透射率;
⑥按公式(17)進行紅外圖像去霧;
⑦輸出有霧圖像。
在實驗對比中,計算機操作系統(tǒng)為WIN7,CPU為3.0 GHz,內存為8 GB,軟件環(huán)境為Matlab 7.0。涉及到的算法有:DCP、NFCDCP、LSRDCP、FLDCP、MFIF、SRRDCP。
視覺效果分析如圖1、圖2所示,其中圖1(a)、圖2(a)為有霧圖像,圖1(b)、圖2(b)為DCP算法去霧效果,圖1(c)、圖2(c)為NFCDCP算法去霧效果,圖1(d)、圖2(d)為LSRDCP算法去霧效果,圖1(e)、圖2(e)為FLDCP算法去霧效果,圖1(f)、圖2(f)為MFIF算法去霧效果,圖1(g)、圖2(g)為本文SRRDCP算法去霧效果。
圖1 有霧圖像1視覺去霧效果分析
圖2 有霧圖像2視覺去霧效果分析
圖1(a)為天空區(qū)域幾乎被非天空區(qū)域覆蓋的有霧圖像,圖2(a)為天空區(qū)域、非天空區(qū)域交界處包含復雜交叉區(qū)域的有霧圖像,從圖1、圖2的處理結果可以看出本文SRRDCP算法能夠對天空區(qū)域、非天空區(qū)域、交叉區(qū)域進行較好的去霧,視覺效果清晰,對于天空區(qū)域、非天空區(qū)域交界處的交叉區(qū)域也能夠進行有區(qū)分去霧,這是因為本文SRRDCP算法通過雙閾值對圖像進行了劃分了天空區(qū)域,也對天空區(qū)域、非天空區(qū)域之間的交叉區(qū)域進行了劃分,不再單一性的只對天空區(qū)域或者非天空區(qū)域進行去霧,這樣提高去霧的清晰度。
3.2.1 平均梯度
根據(jù)圖形在某一個方向細節(jié)變化,評判該細節(jié)的清晰度,公式為:
(18)
其中,Z(i,j)為去霧后的圖像,M、N為圖像尺寸。
D平均梯度數(shù)值越大,圖像的層次感越好,某些細節(jié)部分處理得很好。
3.2.2 綜合評價模型
(19)
其中,S為結構相似函數(shù),用于衡量結構信息的保留程度;hist為直方圖相似函數(shù),越接近于1越好;L為有效細節(jié)強度函數(shù),用Canny算子提取圖像邊緣數(shù)量再統(tǒng)計獲得,越大越好;Q值越大其效果越佳[11]。
各種算法對去霧圖像各進行40次實驗,有霧圖像1去霧的平均梯度、綜合評價結果如圖3所示,有霧圖像2去霧的平均梯度、綜合評價結果如圖4所示。
從圖3、圖4可以看出,本文SRRDCP算法對紅外圖像去霧在平均梯度、綜合評價指標對比分析較優(yōu),其中對天空區(qū)域與非天空區(qū)域有比較復雜的交叉區(qū)域的有霧圖像1去霧后的平均梯度值相比DCP、NFCDCP、LSRDCP、FLDCP、MFIF分別提高了28.02 %、24.14 %、21.55 %、17.24 %、12.93 %;綜合評價值相比DCP、NFCDCP、LSRDCP、FLDCP、MFIF分別提高了19.88 %、16.87 %、15.06 %、14.76 %、12.05 %。有霧圖像2去霧后的平均梯度值相比DCP、NFCDCP、LSRDCP、FLDCP、MFIF分別提高了29.73 %、24.77 %、22.52 %、18.02 %、13.51 %;綜合評價值相比DCP、NFCDCP、LSRDCP、FLDCP、MFIF分別提高了31.13 %、26.42 %、23.58 %、18.87 %、14.15 %。
圖3 有霧圖像1各種算法去霧評價指標分析
圖4 有霧圖像2各種算法去霧評價指標分析
本文對有霧圖像的天空區(qū)域識別后進行去霧,把圖像劃分為天空區(qū)域、非天空區(qū)域、交叉區(qū)域,同時不同的區(qū)域采用不同的方法計算大氣光值、透射率,避免暗通道算法不適合含有天空區(qū)域紅外圖像去霧的局限性。實驗仿真顯示本文算法能夠有效地去除含有天氣區(qū)域圖像中的霧氣,平均梯度、綜合評價相比其他算法較好,為紅外圖像去霧研究提供了一種新方法。但是,本文算法由于對有霧圖像劃分了天空區(qū)域、非天空區(qū)域、交叉區(qū)域,分別求取了大氣光值、透射率,導致在處理時間上不具有明顯優(yōu)勢,提升處理時間這將是以后研究的重點。