王燕妮,楊小寶
(西安建筑科技大學信息與控制工程學院,陜西 西安 710055)
在有霧的情況下,室外場景對比度和顏色因外部環(huán)境而降低,原始圖像中包含的許多細節(jié)特征被覆蓋或模糊,這給視覺系統(tǒng)應用帶來許多不便。
目前,圖像去霧技術主要基于圖像增強以及物理模型復原兩大類[1-2]。圖像增強技術旨在通過去除圖像噪聲以增強圖像對比度,但易出現(xiàn)顏色失真及信息丟失等問題,常用算法有直方圖均衡[3-4]、同態(tài)濾波[5]和Retinex算法[6-7]。圖像復原技術通過研究圖像劣化的原因和建立大氣降化模型,使用先驗信息來實現(xiàn)除霧目的。例如,Tan等側重于增強圖像局部對比度進行圖像去霧,但在去霧后圖像顏色過于飽和[8]。Tarel等應用中值濾波進行快速去霧,但沒有很好地保持圖像邊緣信息[9]。He等[10]提出暗通道先驗(DCP)理論并使用Soft Matting算法[11]實現(xiàn)了較好的去霧效果,但該算法比較耗時且這一理論存在一定的失效情況。針對這一問題,本文提出一種基于天空區(qū)域識別的DCP去霧改進算法。
大多研究者在圖像去霧研究中廣泛使用的是圖1中Koschmieder所提出的大氣散射物理模型[12-13],其數(shù)學模型如下:
I(x)=J(x)t(x)+A(1-t(x))
(1)
式(1)中,I(x)為輸入霧天圖像,J(x)為輸出無霧圖像,A為大氣光值,t(x)為透射率?,F(xiàn)已知條件為I(x),A及t(x)都未知,要求目標值J(x),顯然這是一個欠定方程。因此,就需要一些先驗信息進行求解。
圖1 大氣散射物理模型Fig.1 Physical model of atmospheric scattering
暗原色先驗理論表明:對任一彩色圖像I,其暗通道光強度最小值接近于0,可表示為:
(2)
式(2)中,Jc為輸入圖像任一顏色通道,Ω(x)為以像素x為中心的一個窗口。
He法中求解大氣光A值[10]方法如下:
1) 計算輸入圖像的暗通道圖,并選擇最高亮度像素的前0.1%個像素;
2) 在輸入圖像中選擇上述像素中具有最高亮度的像素值作為大氣光值。
由1.3節(jié)中已求得大氣光值A,對式(1)進行變形有:
(3)
(4)
通過引入一個[0,1]之間的參數(shù)w以自適應為遠處的物體保留一定程度的霧使人感受到景深的變化,其取值一般為0.95??梢詮纳鲜霭翟闰炛蝎@得預估的透射率值為:
(5)
直接恢復易使去霧圖像產生噪聲,因此設置下限t0對t(x)進行限制。當t小于t0時,令t=t0=0.1。從而輸出圖像復原公式如下:
(6)
文獻[10]去霧結果如圖2所示。
圖2 文獻[10]去霧結果Fig.2 Dehazing result of literature [10]
由圖1的去霧效果可以看出,去霧后在物體邊緣存在白色“塊效應”以及天空區(qū)域出現(xiàn)了光暈和嚴重的顏色失真現(xiàn)象?!皦K效應”的存在是因為部分圖像像素值十分接近大氣光值,當像素值趨向于A時,使得t(x)非常小,即t 1) 對彩色輸入圖像的灰度圖進行給定亮度和灰度閾值分割以識別出天空區(qū)域。 2) 計算天空區(qū)域與輸入圖像占比q并根據(jù)其值大小選取合適的大氣光值。若q>5%,則將天空中前1%最亮像素點平均值取為大氣光值;否則,選取輸入圖像中前0.1%最高亮度像素均值。 3) 修正不滿足DCP理論的區(qū)域透射率并通過引入Guided Filter對其優(yōu)化。 4) 應用式(1)進行去霧,得到輸出圖像。 改進算法流程圖如圖3所示。 圖3 改進算法流程圖Fig.3 Improved algorithm flow chart 由式(4)可得透射率t(x)的準確值應為: (7) 由式(7)可知,諸如天空之類的明亮區(qū)域[14]暗通道值不趨于零。因此,式子中分母值小于1,故該區(qū)域透射率真實是大于He法中的計算值。He法中對圖像統(tǒng)一計算透射率的這一做法顯然是不合理的。因此,需采用不同的計算方式來求解兩部分區(qū)域透射率。天空部分通常來說是高亮度、連通大而平滑的一些區(qū)域,因此可通過梯度來進行判斷。梯度值越小,則該區(qū)域越平滑,也即可初步判定為天空區(qū)域。通過閾值分割[15]得到平滑明亮的連通區(qū)域,選擇面積最大的區(qū)域記為天空區(qū)域。設定亮度閾值θ用來判斷原始圖像中的某個像素點是否位于平滑區(qū)域,也即是否屬于天空區(qū)域;設定灰度閾值T用來從各個連通區(qū)域中選擇最合適的一個作為分割出的天空區(qū)域。具體方法如下: 1) 為減少后續(xù)操作計算量,將原始彩色含霧圖像轉化為灰度圖像G(x): G(x)=R·0.229+G·0.587+B·0.114 (8) 式(8)中,R,G,B是圖像I(x)的三個顏色通道。 2) 將灰度圖像G(x)轉化為梯度圖像F(x),以便后續(xù)進行二值化處理: (9) 式(9)中,Gx,Gy是F(x)在x,y方向的梯度。 3) 對梯度圖像F(x)進行二值化處理得到二值圖像B(x): (10) 4) 對二值圖像B(x)進行形態(tài)學“閉”操作,得到所有的連通區(qū)域: B·S=(B⊕S)θS (11) 選擇平均閾值大于灰度閾值T并且面積最大的連通區(qū)域作為最終分割出的天空區(qū)域。 計算過程中,亮度閾值θ和灰度閾值T取經(jīng)驗值θ=0.02,T=210。也即: (12) 算法流程圖如圖4所示。 圖4 天空分割算法流程圖Fig.4 Sky segmentation algorithm flow chart 通過亮度閾值和灰度閾值對天空區(qū)域進行分割后的結果如圖5所示。 圖5 天空區(qū)域識別結果Fig.5 Result of sky area recognition 識別出天空區(qū)域之后,需要適當增大天空區(qū)域透射率以改善He法中不滿足暗原色先驗這一先決條件所引起的顏色失真現(xiàn)象。在文獻[16]中作者將天空區(qū)域透射率設置成以定值0.03,但這一做法顯然不妥。因此,引入透射率修正因子以自適應增大天空區(qū)域透射率,并依然按照He法中的公式對非天空區(qū)域透射率進行計算。修正后的計算公式如下: (13) 根據(jù)經(jīng)驗公式[17],有: Y=-351.6+2.5×As+608.5×Ps-3.4×As×Ps (14) 式(13)、式(14)中,Y/I(x)-A為透射率修正因子,As為天空部分亮度值均值,Ps為天空區(qū)域占比。 修正后的透射率仍比較粗糙,直接用于去霧效果不甚理想,本文使用引導濾波器對其進行優(yōu)化處理。引導濾波是一種自適應加權濾波器,可以平滑圖像細節(jié)并保留邊緣以及降低算法復雜度。假設濾波后輸出q是以像素k為中心窗口wk中的線性變化: qi=akIi+bk,?i∈wk (15) 式(15)中,I為引導圖,ak與bk為在wk中恒定的線性函數(shù)系數(shù)。 為了求解線性系數(shù)并使得濾波輸入p和輸出q之間相似度更高,可最小化窗口中的成本函數(shù): (16) 通過回歸方程得到式(16)系數(shù): (17) 將上述線性模型應用于整個圖像的所有局部窗口,但像素i于所包含i的所有窗口相關。因此可以通過求取所有包含i的可能值的均值來求解某一點輸出,也即: (18) 使用輸入霧天圖像的灰度圖作為導向圖對修正后的粗糙透射率進濾波優(yōu)化的結果如圖6所示,優(yōu)化后的透射圖更加光滑,細節(jié)部分也更完整。此外,由相應的噪聲平滑特性圖中也能明顯看出優(yōu)化后透射更加精細。 當輸入圖像中存在白色建筑物或物體時,He法對大氣光值的估計值選取會出現(xiàn)偏差,使得通過式(5)獲得的透射率計算值不夠準確,從而不能夠很好地進行去霧處理。在文獻[16]中,作者使用天空區(qū)域像素均值作為大氣光值的估計,但對于天空較小甚至某些沒有天空的圖像,這種方法還不夠合理。因此,本文提出了以下方法來獲得大氣光值A。 首先,通過2.1節(jié)設定的閾值計算天空區(qū)域像素與整幅圖像像素比例。若該比例小于5%,則在He法基礎上,將前0.1%個最高亮度像素均值作為大氣光值;否則,選擇2.1節(jié)分割識別出的天空區(qū)域中前1%個最高亮度像素均值。 圖6 透射率優(yōu)化前后結果Fig.6 Result before and after of transmittance optimization He法和改進大氣光值獲取方法效果如圖7所示。藍色框標記的是圖像中像素值最大的點,也即He法對大氣光值的估計;黃色框標記的是改進算法的估計結果??梢钥闯?,改進算法相比原算法更準確,有效避免了大氣光值得誤估計問題。 圖7 He法和改進算法大氣光值估計結果Fig.7 Result of atmospheric light value estimation of He and improved algorithm 在Windows操作系統(tǒng),TMi5-4010處理器,4 GB內存計算機,Matlab2014a平臺上采用Tarel法、雙邊濾波法、He法以及改進算法進行圖像去霧模擬實驗。輸入霧天圖片均選自網(wǎng)上或相關文獻中的測試圖像。 分別選取包含天空及無天空霧天圖像進行測試,限于篇幅大小只顯示其中的部分圖像去霧前后效果。 圖8是原始霧天圖像,圖9—12依次是文獻[9]、文獻[18]、文獻[11]以及改進的DCP算法去霧效果圖??梢钥闯觯琓an法、Tarel法和 He法完成去霧后,前三幅圖像均有不同程度的顏色失真, 其中Tan法失真情況最為嚴重,天空區(qū)域全部偏色且有大幅塊效應的產生;Tarel法和He法去霧后圖像具有一定程度的過飽和現(xiàn)象,并且在場景的邊緣處存在光暈現(xiàn)象。 經(jīng)過改進后的算法去霧后圖像更加清晰真實,天空區(qū)域顏色失真以及邊緣光暈現(xiàn)象都得到了較好的改善,保留了更加豐富的圖像細節(jié),圖像整體也具有較好的視覺效果。 圖8 原始霧天圖像Fig.8 Original foggy image 圖9 文獻[9]去霧圖像Fig.9 Dehazing image of literature[9] 圖10 文獻[18]去霧圖像Fig.10 Dehazing image of literature[18] 圖11 文獻[11]去霧圖像Fig.11 Dehazing image of literature[11] 圖12 本文改進算法去霧圖像Fig.12 Dehazing image of improved algorithm 為了更加客觀地評價上述幾種去霧算法實驗效果[19],采取信息熵、結構相似性和峰值信噪比,用于評估除霧前后的圖像質量。同時,利用算法執(zhí)行時間評價各自算法效率。實驗結果如表1—表4所示。 表1 信息熵(H) 表2 結構相似性(SSIM) 表3 峰值信噪比(PSNR) 表4 算法執(zhí)行時間 1) 信息熵(H) 信息熵反映了圖像中包含的信息量,熵值越大表明其圖像信息量越多,細節(jié)越豐富。計算公式如下: (19) 式(19)中,pi為像素i出現(xiàn)的概率。 2) 結構相似性(SSIM) 結構相似性用于描述原始圖像和復原圖像之間的相似程度,其值越接近1,則兩幅圖像的相似性越高,也即復原效果越好。計算公式如下: (20) 式(20)中,μi,μj,σi,σj分別為圖像I(x)、J(x)的均值和方差,σij為I(x)、J(x)的協(xié)方差。 3) 峰值信噪比(PSNR) 峰值信噪比描述圖像最大像素值與噪聲的比值。PSNR值越大,圖像越清晰。計算公式如下: (21) (22) 式(21)、式(22)中,MSE是均方誤差,F(xiàn)(x,y)為去霧圖像,f(x,y)為有霧圖像,M、N是圖像長和寬。 從表1—表3可以看出,四幅圖像中,He法和改進算法去霧后圖像的信息熵值均大于原始圖像,也即更好地恢復了圖像細節(jié)。在結構相似性和峰值信噪比方面,He法和改進算法在不同圖像中各占優(yōu)勢,總體來說去霧效果不分上下。Tarel法和雙邊濾波法去霧后的信息熵、結構相似性以及峰值信噪比均小于He法和本文改進算法。對于三個客觀質量評價指標整體而言,改進算法去霧的綜合效果明顯優(yōu)于其他三種算法。此外,雖然He法在個別圖像去霧中也具有不錯的效果,但其算法因復雜度過高導致去霧過程太過耗時,算法效率與改進算法相比相差甚遠。由表4也可以看出,改進算法具有較低的運行時間。 本文提出了一種基于天空區(qū)域識別的DCP去霧改進算法。該方法首先使用雙閾值分割識別出天空區(qū)域;然后通過計算天空區(qū)域和整個圖像的比例來合理選則大氣光值;最后修正透射率計算公式并引入引導濾波對其進行優(yōu)化處理以改善圖像去霧效果并降低算法執(zhí)行時間。經(jīng)過理論和實驗客觀指標分析表明,改進算法相比其他幾種常用去霧算法而言,不僅明顯改善了傳統(tǒng)方法存在的邊緣“塊效應”、天空區(qū)域出現(xiàn)光暈和顏色失真現(xiàn)象以及大氣光值可能出現(xiàn)的誤估問題。此外,除霧后圖像也具有較高的清晰度和良好的細節(jié),還具有較低的運行時間。2.1 天空區(qū)域識別
2.2 透射率改進
2.3 大氣光值改進
3 實驗結果比較與分析
3.1 去霧效果主觀評價
3.2 去霧效果客觀評價
4 結論