陳子妍,龍道銀,王 霄,覃 濤,楊 靖
(1.貴州大學(xué) 電氣工程學(xué)院,貴陽 550025;2.中國電建集團(tuán)貴州工程有限公司,貴陽 550025)
霧是由懸浮空中的細(xì)小水滴形成的氣溶膠。由于霧會(huì)降低地面水平能見度,因此在霧天采集的戶外圖像通常存在模糊不清、顏色失真等退化現(xiàn)象。近年來,隨著大氣污染物排放量的增加,霧霾的出現(xiàn)日益頻繁,導(dǎo)致戶外視覺系統(tǒng)無法正常工作。因此,研究有效的圖像去霧算法具有重要意義。
目前主流的圖像去霧算法主要包括基于圖像增強(qiáng)[1]的去霧算法和基于物理模型復(fù)原圖像[2]的去霧算法?;趫D像增強(qiáng)的去霧算法包括直方圖均衡化算法[3]、同態(tài)濾波算法[4]、小波變換算法[5]和Retinex算法[6]?;谖锢砟P蛷?fù)原圖像的去霧算法是通過分析圖像退化原因建立霧天圖像退化模型,然后反推出無霧圖像。該算法可得到去霧后真實(shí)的圖像,能有效避免圖像信息大量丟失,具有較好的去霧效果,其主要包括多幅圖像去霧算法和單幅圖像去霧算法。常見的多幅圖像去霧算法有偏振光學(xué)成像去霧算法[7]和利用圖像深度信息估算場景模型復(fù)原圖像的去霧算法[8]。在單幅圖像去霧方面,文獻(xiàn)[9]提出一種增加物體表面陰影的估計(jì)傳輸函數(shù)去霧算法。文獻(xiàn)[10]利用中值濾波估計(jì)大氣耗散函數(shù),取得了一定的去霧效果。文獻(xiàn)[11]利用暗通道先驗(yàn)理論估計(jì)大氣光值與透射率復(fù)原圖像。雖然暗通道先驗(yàn)去霧算法的去霧效果較自然,但其對天空等白色物體高亮度區(qū)域大氣光的估計(jì)值偏大,同時(shí)透射率計(jì)算精度較低會(huì)造成光暈偽影,導(dǎo)致整體去霧效果偏暗。文獻(xiàn)[12]提出一種有效的正則化去霧算法,將透射率的邊界約束與基于加權(quán)L1 范數(shù)的上下文正則化相結(jié)合,建立模型估計(jì)未知場景透射率。文獻(xiàn)[13]提出一種基于多尺度小波變換的去霧算法,其可對低頻圖像進(jìn)行去霧處理,同時(shí)增強(qiáng)高頻圖像的細(xì)節(jié)紋理信息。文獻(xiàn)[14]通過一系列伽馬校正對模糊圖像進(jìn)行人工欠曝光操作,再利用多尺度拉普拉斯混合方案將所得多幅曝光圖像集處理為無霧圖像集。文獻(xiàn)[15]采用自適應(yīng)閾值分割算法將圖像分割為亮白區(qū)域與非亮白區(qū)域,并根據(jù)灰度計(jì)算權(quán)重,提高透射率。文獻(xiàn)[16]將顏色線先驗(yàn)估計(jì)的透射率圖和暗通道先驗(yàn)估計(jì)的透射率圖進(jìn)行加權(quán)融合,有效提高了透射率的準(zhǔn)確性。
深度學(xué)習(xí)技術(shù)也被應(yīng)用于圖像去霧處理。文獻(xiàn)[17]提出一種多尺度深度神經(jīng)網(wǎng)絡(luò)去霧算法,利用粗尺度神經(jīng)網(wǎng)絡(luò)估計(jì)透射率,并通過細(xì)尺度神經(jīng)網(wǎng)絡(luò)細(xì)化透射率圖的局部細(xì)節(jié)。文獻(xiàn)[18]提出一種基于殘差的深度卷積神經(jīng)網(wǎng)絡(luò)去霧算法,有效提高了去霧效率。針對深度學(xué)習(xí)算法去霧后仍有殘霧的問題,文獻(xiàn)[19]提出一種雙域分解的多尺度深度學(xué)習(xí)去霧算法,利用結(jié)合高頻子霧網(wǎng)絡(luò)與低頻子霧網(wǎng)絡(luò)的多尺度深度學(xué)習(xí)網(wǎng)絡(luò)獲得良好的去霧效果,但該算法復(fù)雜度較高。
本文針對暗通道先驗(yàn)去霧算法得到的圖像透射率不精確、去霧后整體偏暗以及大氣光值偏大等問題,提出一種改進(jìn)的暗通道去霧算法。根據(jù)可見光在霧天衰減速度不同的特點(diǎn),通過求取霧天圖像藍(lán)色通道的逆通道來校正暗通道圖,在引導(dǎo)濾波中引入權(quán)重因子對平滑因子進(jìn)行自適應(yīng)調(diào)整,以獲得圖像不同位置的濾波強(qiáng)度,從而更準(zhǔn)確地細(xì)化透射率。在此基礎(chǔ)上,結(jié)合最大類間方差法和形態(tài)學(xué)分割得到圖像的天空部分,選取其中亮度最大像素值的平均值作為大氣光值,最終修復(fù)得到去霧圖像。
大氣散射模型[20]主要包括霧天圖像成像過程與各個(gè)要素,其常用于圖像的去霧修復(fù),表達(dá)式如下:
其中,I(x)為輸入圖像(有霧圖像),J(x)為輸出圖像(去霧圖像),A為無窮遠(yuǎn)的大氣光值,x為圖像中像素點(diǎn)的位置,t(x)為透射率(傳輸函數(shù)),表示經(jīng)過粒子散射后達(dá)到成像設(shè)備的光比例。
文獻(xiàn)[11]對大量去霧圖像進(jìn)行統(tǒng)計(jì)后發(fā)現(xiàn),在非天空區(qū)域圖像的紅色通道(R)、綠色通道(G)和藍(lán)色通道(B)中存在至少1 個(gè)顏色通道的像素值很低且趨近于0,在此基礎(chǔ)上提出暗通道先驗(yàn)理論,將任意去霧圖像的暗通道表示為:
其中,Jc為去霧圖像J的某個(gè)顏色通道,Ω(x)為以x為中心的矩形窗口,Jdark為J的暗通道。假設(shè)已知大氣光值A(chǔ),且在每個(gè)局部窗口的透射率t不變,則對式(1)取最小值:
取3 個(gè)顏色通道中的最小值:
根據(jù)暗通道先驗(yàn)理論計(jì)算如下:
由于Ac>0,因此可粗略估算出透射率t為:
因?yàn)榭諝庵写嬖诩?xì)小顆粒,在晴天觀察遠(yuǎn)處物體時(shí)有霧存在,所以為使圖像保持深度感[11],在遠(yuǎn)處有霧的情況下引入常數(shù)ω(0<ω≤1,通常ω取0.95)進(jìn)行計(jì)算,計(jì)算公式如下:
當(dāng)t(x)接近0 時(shí),修復(fù)圖像中包含噪音,因此設(shè)定下限透射率t0,得到最終修復(fù)圖像J(x)為:
由于粗略估算的透射率t會(huì)使修復(fù)圖像出現(xiàn)塊效應(yīng),可用軟摳圖的方法優(yōu)化透射率[11],但該方法計(jì)算時(shí)間較長,實(shí)用性較差,因此采用引導(dǎo)濾波優(yōu)化透射率以提高算法執(zhí)行速度[11]。
由于霧對不同波長可見光的吸收率不同,導(dǎo)致其衰減速度不同,其中在霧天藍(lán)光衰減速度最快[21],藍(lán)色通道像素值接近0。由式(7)可知,要得到透射率t的估計(jì)值需計(jì)算所輸入霧天圖像I的暗通道。本文在計(jì)算霧天圖像I的暗通道時(shí)考慮紅色通道和綠色通道以及藍(lán)色通道的逆通道,藍(lán)色通道的逆通道可表征藍(lán)光衰減情況,將藍(lán)色通道的逆通道定義如下:
式(7)中霧天圖像I的暗通道表達(dá)式為:
不同算法的暗通道和去霧效果如圖1 所示。由圖1(b)和圖1(c)可以看出,本文利用藍(lán)色通道的逆通道所得暗通道圖像在無窮遠(yuǎn)處的暗通道值比HE等人[11]提出的暗通道去霧算法(以下稱為HE 算法)中暗通道值更低,避免了透射率估計(jì)值偏小的問題,不會(huì)出現(xiàn)光暈現(xiàn)象。圖1(d)和圖1(e)分別為HE 算法和本文改進(jìn)算法(以下稱為本文算法)的去霧效果圖,可以看出,由于霧天大氣光濃度較大,有霧圖像的暗通道強(qiáng)度值較高,使最終效果圖(見圖1(d))整體偏暗,且在無窮遠(yuǎn)處(天空區(qū)域)計(jì)算所得透射率t較小,容易在天空區(qū)域產(chǎn)生光暈(見圖1(d)方框處),本文算法所得圖像的無窮遠(yuǎn)處(見圖1(e)方框處)色彩過渡平緩自然,圖像整體清晰度更高。
圖1 不同算法的暗通道和去霧效果圖Fig.1 Dark channel and defogging effect images of different algorithms
引導(dǎo)濾波算法[22]具有復(fù)雜度低、計(jì)算速度快和執(zhí)行效率高等特性,其在進(jìn)行濾波處理時(shí)需要引導(dǎo)圖像。假設(shè)輸出圖像q與引導(dǎo)圖像I存在如下關(guān)系:
其中,ωk為以像素k為中心的局部窗口,ak與bk為引導(dǎo)圖像在局部窗口ωk的線性不變系數(shù)。
為得到ak和bk的最優(yōu)解并最小化輸入圖像p與輸出圖像q的差異,使濾波處理后的圖像與輸入圖像p基本相同,其細(xì)節(jié)紋理與引導(dǎo)圖像相同,采用最小二乘法擬合線性關(guān)系,擬合函數(shù)表達(dá)式為:
其中,ε為平滑因子。利用ε去除過大的ak值,相關(guān)計(jì)算公式如下:
其中,μk和分別為I在局部窗口ωk的平均值和方差,為局部窗口ωk中輸入圖像p的平均值。
因?yàn)橐龑?dǎo)濾波在不同窗口采用相同的平滑因子ε,且ak所受約束力相同,所以暫不考慮各個(gè)窗口內(nèi)像素之間存在的紋理性差異。由于過大的ak會(huì)導(dǎo)致濾波效果過度,使圖像邊緣出現(xiàn)光暈現(xiàn)象[23],因此引入權(quán)重因子λ對平滑因子ε進(jìn)行自適應(yīng)調(diào)整,在圖像邊緣疊加較小的平滑因子ε來增強(qiáng)算法的魯棒性。
改進(jìn)的引導(dǎo)濾波算法步驟如下:
1)用Sobel 算子自動(dòng)設(shè)定邊緣閾值t,利用圖像梯度模值M表示圖像中每個(gè)像素灰度變化的特征(圖像邊緣處梯度值大,非邊緣處梯度值?。?,將邊緣閾值t與梯度值M進(jìn)行比較,以檢測出位于邊緣的像素點(diǎn)。
2)引入權(quán)重因子λ,將原有的平滑因子ε調(diào)整為自適應(yīng)平滑因子ε/λ。由于要在圖像邊緣疊加較小的平滑因子ε,因此邊緣處的λ值和像素點(diǎn)局部方差需較大,根據(jù)上述圖像邊緣的特點(diǎn),定義權(quán)重因子λ為:
加入權(quán)重因子后得到擬合函數(shù)如下:
改進(jìn)前后引導(dǎo)濾波的透射率效果如圖2 所示,引導(dǎo)圖像I為原始圖,輸入圖像p為粗透射率效果圖。可以看出,改進(jìn)后的濾波圖整體上與輸入圖像p相似,其在細(xì)節(jié)紋理上與引導(dǎo)圖像相同,整體效果較改進(jìn)前算法更優(yōu)。
圖2 改進(jìn)前后引導(dǎo)濾波透射率效果圖Fig.2 Effect images of transmittance of guided filtering before and after improvement
因?yàn)閳D像中有大氣光,其與霧疊加后較自身更亮,透射率t一般較小,所以霧覆蓋圖像的暗通道具有較高強(qiáng)度值,可將暗通道強(qiáng)度值作為霧濃度的粗略近似值。因此,HE 算法選取暗通道中亮度最大0.1%的像素[11],并將輸入圖像I中強(qiáng)度最大的像素點(diǎn)設(shè)定為大氣光值。
由于部分圖像包含白色物體、車燈和路燈等人造光源,導(dǎo)致所選大氣光值偏大,從而會(huì)影響后續(xù)圖像的處理。因?yàn)殪F天圖像中天空的顏色與大氣光非常接近,所以將圖像分割為天空部分與非天空部分[24],根據(jù)天空部分計(jì)算大氣光值,具體步驟如下:
1)利用最大類間差法OTSU[25]將有霧圖像進(jìn)行二值化分割。
2)采用形態(tài)學(xué)膨脹與腐蝕操作將圖像分割為前景(天空部分)與背景(非天空部分)圖像。
3)提取前景圖像,選取天空中亮度最大0.1%像素的平均值作為大氣光值。
天空區(qū)域分割前后的效果如圖3 所示,采用上述方法不僅可避免白色物體、車燈和路燈等造成的大氣光取值偏差,還能減弱圖像的噪聲干擾。
圖3 天空區(qū)域分割前后的效果圖Fig.3 Effect images before and after sky area segmentation
本文算法的具體流程如下:
1)分離出霧天圖像的紅、綠、藍(lán)3 個(gè)顏色通道,由霧天圖像藍(lán)色通道的逆通道Binverse得到新的霧天圖像暗通道
2)利用新的霧天圖像暗通道I′dark,粗略計(jì)算得到初始透射率t。
3)將霧天圖像的灰度圖作為引導(dǎo)圖像,利用加入自適應(yīng)平滑因子的改進(jìn)引導(dǎo)濾波細(xì)化初始透射率。
4)采用最大類間差法分割圖像的天空部分,選取天空中亮度最大0.1%像素的平均值作為大氣光值A(chǔ)。
5)利用透射率t和大氣光值A(chǔ)得到無霧圖像J。
本文在MATLAB2014b平臺(tái)對所提算法進(jìn)行驗(yàn)證。仿真實(shí)驗(yàn)采用Windows10 操作系統(tǒng),Intel Core i5@2.3 GB,4 GB 內(nèi)存和840 MB 顯卡。參數(shù)設(shè)置為:暗通道中最小值濾波窗口Ω=7,透射率下限值t0=0.1,改進(jìn)引導(dǎo)濾波的濾波半徑r=56,平滑因子ε=0.01。
為評估本文算法的有效性,將本文算法的圖像修復(fù)效果與采用暗通道先驗(yàn)去霧的HE 算法[11]、文獻(xiàn)[12]中基于邊界限制的去霧算法(以下稱為文獻(xiàn)[12]算法)、文獻(xiàn)[13]中多尺度小波去霧算法(以下稱為文獻(xiàn)[13]算法)、文獻(xiàn)[14]中基于融合的圖像去霧算法(以下稱為文獻(xiàn)[14]算法)的圖像修復(fù)效果進(jìn)行對比。
由于主觀評價(jià)是根據(jù)評價(jià)人員主觀意識(shí)得到的評價(jià)結(jié)果,為更準(zhǔn)確評估本文算法,選取峰值信噪比(Peak Signal to Noise Ratio,PSNR)、均方誤差(Mean Square Error,MSE)[26]和結(jié)構(gòu)相似性(Structual Similarity,SSIM)3 個(gè)常用的全參考客觀評價(jià)指標(biāo),以及可見邊增加比率e、飽和像素點(diǎn)比率σ和規(guī)范化的可見邊梯度均值rˉ3 個(gè)適用于霧天圖像質(zhì)量評價(jià)的無參考評價(jià)指標(biāo)[27]。峰值信噪比與均方誤差是根據(jù)待測圖像與參考圖像之間灰度值的差異衡量圖像質(zhì)量,峰值信噪比越大,表明圖像失真度越小,圖像質(zhì)量越好;均方誤差越小,圖像質(zhì)量越好。相關(guān)計(jì)算公式如下:
其中,fij為霧天圖像在(i,j)處的像素值,為去霧后圖像在(i,j)處的像素值,L=255 為峰值信號。
結(jié)構(gòu)相似性反映出圖像質(zhì)量的優(yōu)劣程度和兩幅圖像的相似度,SSIM 值越大表明圖像質(zhì)量越好,其計(jì)算公式如下:
其中,l為亮度信息,c為對比度信息,s為結(jié)構(gòu)信息,α、β、γ均大于0。l、c和s的計(jì)算公式如下:
其中,μx和μy分別為霧天圖像和去霧圖像的均值,σx和σy分別為霧天圖像和去霧圖像的方差,σxy為協(xié)方差,C1、C2和C3是防止分母為0 的常數(shù)。
文獻(xiàn)[26]提出的對比度增強(qiáng)評價(jià)方法是通過可見邊檢測得到圖像對比度,利用可見邊增加比率e、飽和像素點(diǎn)比率σ和規(guī)范化的可見邊梯度均值3個(gè)指標(biāo)值衡量圖像對比度的增強(qiáng)能力,其計(jì)算公式如下:
其中,n0和nr分別為霧天圖像和去霧圖像中可見景物邊緣輪廓的數(shù)量,ns為灰度值為0 的像素?cái)?shù)目,dimx和dimy分別為圖像的寬度和長度,?r為去霧圖像的可見邊集合,Pi為去霧圖像可見邊的像素點(diǎn),ri為去霧圖像在Pi處的Sobel 梯度與霧天圖像在Pi處Sobel 梯度的比值。當(dāng)e與rˉ值越大且σ值越小時(shí),表明去霧后的圖像質(zhì)量越好。
本文算法與HE 算法、文獻(xiàn)[12]算法、文獻(xiàn)[13]算法、文獻(xiàn)[14]算法得到的圖像修復(fù)效果如圖4~圖7所示。由圖4(f)~圖7(f)可以看出:HE 算法所得圖像的天空部分出現(xiàn)不同程度的光暈現(xiàn)象,特別是圖6(f)和圖7(f)中較明顯;圖4(f)出現(xiàn)色偏現(xiàn)象,圖像局部顏色偏黃;圖5(f)從主觀視覺上看整體較暗。上述現(xiàn)象是由透射率與大氣光值估計(jì)不準(zhǔn)確導(dǎo)致。文獻(xiàn)[12]算法所得圖像雖未出現(xiàn)光暈現(xiàn)象,但在圖4(g)~圖7(g)中天空部分出現(xiàn)大面積的亮白區(qū)域,去霧效果不自然,且圖4(g)和圖6(g)中建筑物區(qū)域存在顏色失真問題。文獻(xiàn)[13]算法所得圖像整體效果優(yōu)于HE 算法和文獻(xiàn)[12]算法,但圖6(i)和圖7(i)的天空區(qū)域仍有輕微光暈,圖4(i)~圖7(i)中景物偏暗,局部區(qū)域非常模糊,失去物體的層次感。文獻(xiàn)[14]算法所得圖像的天空部分雖然未出現(xiàn)光暈現(xiàn)象,圖像整體亮度適中,但存在顏色失真問題,且物體邊緣處灰度不連續(xù),呈現(xiàn)輕微鋸齒狀。由圖4(j)~圖7(j)可以看出,本文算法所得圖像的天空區(qū)域均未出現(xiàn)光暈偽影現(xiàn)象,圖像整體亮度適中,不存在色偏和顏色失真問題,物體邊緣清晰且立體感較強(qiáng),有效解決了HE 算法存在的不足。
圖4 不同算法得到的天安門效果圖Fig.4 Effect images of Tian An Men obtained by different algorithms
圖5 不同算法得到的風(fēng)景效果圖Fig.5 Effect images of landscape obtained by different algorithms
圖6 不同算法得到的城市效果圖Fig.6 Effect images of city obtained by different algorithms
圖7 不同算法得到的樓房效果圖Fig.7 Effect images of buildings obtained by different algorithms
HE 算法、文獻(xiàn)[12]算法、文獻(xiàn)[13]算法、文獻(xiàn)[14]算法及本文算法的PSNR 值、MSE 值和SSIM 值對比如表1~表3 所示。由表1 可見本文算法的PSNR 值高于其他算法,表明其所得修復(fù)圖像的失真度更小。由表2可見本文算法所得修復(fù)圖像的MSE 值明顯小于其他算法,表明去霧圖像與原始圖像的像素之間差異更小。由表3 可見本文算法修復(fù)圖像與原始圖像相似度更高,較好地保留了圖像的原有信息。
表1 不同算法的PSNR 值對比Table 1 Comparison of PSNR values of different algorithms dB
表2 不同算法的MSE 值對比Table 2 Comparison of MSE values of different algorithms
表3 不同算法的SSIM 值對比Table 3 Comparison of SSIM values of different algorithms
HE 算法、文獻(xiàn)[12]算法、文獻(xiàn)[13]算法、文獻(xiàn)[14]算法及本文算法的e值、σ值和rˉ值對比如表4~表6所示??梢钥闯觯疚乃惴ǖ膃值與rˉ值更大且σ值更小,表明其所得圖像修復(fù)效果更優(yōu)。結(jié)合主觀和客觀的評價(jià)結(jié)果可知,本文算法能有效復(fù)原圖像。
表4 不同算法的e 值對比Table 4 Comparison of e values of different algorithms
表5 不同算法的σ 值對比Table 5 Comparison of σ values of different algorithms %
表6 不同算法的rˉ值對比Table 6 Comparison of rˉvalues of different algorithms
本文提出一種結(jié)合逆通道與改進(jìn)引導(dǎo)濾波的暗通道去霧算法。引入藍(lán)色光的逆通道得到修正的霧天圖像暗通道圖,利用改進(jìn)的暗通道圖與自適應(yīng)引導(dǎo)濾波計(jì)算透射率,通過最大類間方差法和形態(tài)學(xué)操作分割出圖像的天空部分得到大氣光值,最終得到去霧圖像。實(shí)驗(yàn)結(jié)果表明,與基于邊界限制的去霧算法和多尺度小波去霧算法相比,該算法的去霧效果更優(yōu),圖像色彩明亮且對比度高,邊緣信息保留完整,視覺效果更真實(shí)自然。后續(xù)將改進(jìn)算法進(jìn)一步提高實(shí)時(shí)性,以應(yīng)用于監(jiān)控視頻去霧。