王詩毅,姚信威,姚 遠(yuǎn)
(浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310023)
近年來,我國(guó)出現(xiàn)霧霾天氣的幾率大大增加,在霧霾條件下采集圖像,原本較低的像素值被增大,而原本較高的像素值被降低,造成圖像對(duì)比度的退化,給自動(dòng)駕駛、目標(biāo)檢測(cè)等領(lǐng)域帶來了極大的困難.因此,圖像去霧技術(shù)具有重要的應(yīng)用價(jià)值,已經(jīng)成為圖像視頻處理[1]、計(jì)算機(jī)視覺和計(jì)算機(jī)圖形學(xué)等領(lǐng)域的熱點(diǎn)問題.
基于先驗(yàn)的暗通道去霧算法[2]是當(dāng)前主流去霧算法模型之一,有大量學(xué)者對(duì)該算法進(jìn)行了改進(jìn).面對(duì)暗通道去霧效果在特殊情況下能見度低的缺陷,Pal等人[3]使用三邊濾波器(Trilateral filter)增強(qiáng)圖像能見度,再使用S型(Sigmoid)傳遞函數(shù)增強(qiáng)圖像對(duì)比度.Halmaoui[4]和Li[5]使用直方圖均衡化增強(qiáng)圖像可視化效果,其中前者使用模擬退火算法優(yōu)化參數(shù),而后者利用霧霾的呈現(xiàn)淡黃色原理,采用自適應(yīng)直方圖信道均衡自動(dòng)調(diào)整參數(shù).上述直方圖方法僅僅關(guān)注圖像亮度及對(duì)比度,不能得到圖像的深度信息,因此往往會(huì)導(dǎo)致圖像顏色發(fā)生畸變.He[6]等人使用收縮鄰域的保邊約束,使輸出圖像保持最大的平滑度,再通過HSI顏色通道上對(duì)圖像進(jìn)行處理,從而提高圖像的有效性和可靠性.而對(duì)于暗通道的場(chǎng)景通透率和全局環(huán)境光的預(yù)估,Huang等人[7]利用導(dǎo)頻濾波器獲得非天空模糊圖形的大氣通透率,再利用天空、白云或者別的明亮區(qū)域的各類圖像分類分析,預(yù)估天空各個(gè)部分的大氣通透率,然而這類融合濾波方法難以保留圖像細(xì)節(jié).Zeng等人[8]提出了一種有效的正則化方法,通過增加場(chǎng)景輻射約束來求場(chǎng)景通透率.Cheng等人[9]則通過暗通道去霧模型,提出了一種處理時(shí)變消光系數(shù)性質(zhì)的變分框架,并通過對(duì)觀測(cè)到的亮度曲線分段函數(shù)擬合來估計(jì)全局環(huán)境光.Zhu[10]則提出了一種融合亮度和暗通道先驗(yàn)(Fusion of Luminance and Dark Channel Prior,F-LDCP)的算法,該算法將基于亮度模型和暗通道先驗(yàn)?zāi)P偷膫鬏斨等诤显谝黄穑瑥亩玫綀?chǎng)景通透率.Chen等人[11]在暗通道的基礎(chǔ)上引入局部暗通道,并對(duì)其進(jìn)行映射處理,得到大氣光強(qiáng)度粗值,再用導(dǎo)向?yàn)V波優(yōu)化粗值,最后使用全變差正則化方法對(duì)初始圖像優(yōu)化,增強(qiáng)圖像清晰度.秦等人[12]首先使用原暗通道模型預(yù)估全局環(huán)境光,在計(jì)算場(chǎng)景通透率過程中引入自適應(yīng)優(yōu)化計(jì)算以實(shí)現(xiàn)去霧.譚等人[13]在預(yù)估場(chǎng)景通透率后聯(lián)合中值濾波和雙邊濾波對(duì)其細(xì)化,以滿足天空區(qū)域的去霧處理.黃等人[14]使用深度學(xué)習(xí)方法去霧,利用自編碼網(wǎng)絡(luò)得到霧特征序列,再使用深度神經(jīng)網(wǎng)絡(luò)通過序列獲得場(chǎng)景通透率,最后使用大氣散射模型恢復(fù)無霧圖像,然而使用深度學(xué)習(xí)方法往往需要大算力處理器和GPU,且往往耗費(fèi)時(shí)間較長(zhǎng).
暗通道去霧算法所有推導(dǎo)都建立在全局環(huán)境大氣光A已知的基礎(chǔ)上,通常采用亮度大小前0.1%的像素點(diǎn)作為全局環(huán)境光,然而這僅僅對(duì)環(huán)境較亮的情況下結(jié)果有效,而在霧濃且霧不均勻的情況下,去霧效果往往不盡人意.其次,由于暗通道去霧算法存在景深變化,會(huì)在該變化邊緣處產(chǎn)生一條較為明顯的過渡帶,出現(xiàn)塊狀效應(yīng)[6].為解決塊狀效應(yīng)和濃霧效果差這兩個(gè)問題,本文提出了一種基于高斯卷積和SVD的暗通道去霧算法,即G-SVD,提升圖像質(zhì)量和能見度.實(shí)驗(yàn)結(jié)果表明,該算法可以較好的抑制塊狀效應(yīng),保留圖像的邊緣細(xì)節(jié).通過與其他主流算法相比,本文算法在各個(gè)性能指標(biāo)上的平均值均高于其他算法,說明該算法具有穩(wěn)定性強(qiáng),不易失真和不易產(chǎn)生顏色畸變的優(yōu)點(diǎn).
He[2]等人對(duì)大量戶外有霧和無霧環(huán)境分析,提出了暗通道去霧算法.通用模型為科希米德公式(Koschmieder′s Law)[15]:
L(u,v)=L0(u,v)e-kd(u,v)+Ls(1-e-kd(u,v))
(1)
其中,L(u,v)為肉眼或者相機(jī)觀測(cè)到的對(duì)象亮度,L0(u,v)為對(duì)象的原本固有亮度,(u,v)為各個(gè)像素點(diǎn)的坐標(biāo),Ls為大氣光強(qiáng),e-kd(u,v)為原本固有亮度的隨著距離d(u,v)的增加而產(chǎn)生的指數(shù)衰減[2].在計(jì)算機(jī)圖像和圖形學(xué)中,公式(1)簡(jiǎn)化為:
I(x,y)=J(x,y)t(x,y)+A(1-t(x,y))
(2)
其中,I(x,y)為肉眼和相機(jī)看到的圖像,J(x,y)為無霧圖像,t(x,y)為場(chǎng)景通透率,A為全局環(huán)境大氣光.
根據(jù)暗通道去霧算法原理,在彩色圖像的RGB 3個(gè)通道中,大量統(tǒng)計(jì)表明,存在一些像素點(diǎn)值特別低,即該像素點(diǎn)的光強(qiáng)度較低:
(3)
公式(3)中C為RGB 3個(gè)通道,(x,y)為像素點(diǎn)坐標(biāo),因此暗通道即為在3個(gè)通道中像素點(diǎn)的最小值.
將公式(2)變形為:
(4)
對(duì)公式(4)兩邊同時(shí)取最小值:
(5)
根據(jù)暗通道理論,將公式(3)帶入公式(5),得到:
(6)

(7)
最終得到復(fù)原原圖的公式為:
(8)
由于t(x,y)過小,則會(huì)造成圖像失真,因此引入t0保證圖像的可顯示性.在公式(8)中,I(x,y)是已知的,要獲得J(x,y),則必須估計(jì)場(chǎng)景通透率t(x,y)和全局環(huán)境大氣光A.
由于采用單一值作為全局環(huán)境光A,未考慮到局部環(huán)境下的環(huán)境大氣光仍可能不同,因此本文采用了滑動(dòng)窗口的模式預(yù)估每個(gè)像素點(diǎn)的環(huán)境大氣光,滑動(dòng)窗口大小3×3,每次滑動(dòng)距離為1,如圖1所示.
定義該滑動(dòng)窗口中心點(diǎn)的環(huán)境大氣光A為:
A=A0+Am
=min(AR,AG,AB)+Am
=min(IR?GK,IG?GK,IB?GK)+Am
(9)
公式(9)中,A0為通過高斯卷積方法預(yù)估的環(huán)境光,Am為偏差系數(shù),IR,IG,IB分別為3×3的RGB圖像塊,?表示為卷積操作,GK表示為高斯卷積核(Gaussian convolution kernel).具體操作如圖2所示,將3×3的滑動(dòng)窗口分解為R、G、B 3個(gè)通道,并分別與高斯卷積核卷積相乘再求和,根據(jù)3×3滑動(dòng)窗口的位置坐標(biāo),帶入高斯距離公式:
(10)
最后進(jìn)行歸一化處理,使得9個(gè)坐標(biāo)值和為1,得到最終的高斯卷積核.由于使用該方法預(yù)估環(huán)境大氣光A偏小,會(huì)導(dǎo)致圖像整體亮度偏低,因此引入偏差系數(shù)Am(公式(9)),通過大量實(shí)驗(yàn)驗(yàn)證,Am范圍在0.2-0.28區(qū)間效果最好.

圖2 高斯卷積預(yù)估環(huán)境光示意圖Fig.2 Schematic diagram of Gaussian convolution estimation of ambient light
基于暗通道模型去霧后會(huì)整體顏色較暗,且存在大量冗余信息和噪聲,降低了圖像含有的信息量,因此使用奇異值分解(Singular Value Decomposition)以用于圖像去噪和圖像重構(gòu).
假設(shè)矩陣A維度為m*n(m>n),根據(jù)SVD原理得到:
(11)
其中U和V分別是AAT和ATA的特征矩陣,而
(12)
σ1≥σ2≥σ3≥σ4≥…>0
(13)

圖3 G-SVD算法流程圖Fig.3 G-SVD algorithm flowchart
根據(jù)公式(11),我們可以使用前k個(gè)奇異值重構(gòu)圖像,減少圖像噪聲,提高清晰度.若k取值較大,則會(huì)導(dǎo)致圖像去噪效果較差,保留過多冗余信息,而k取值較小,則會(huì)丟失原本的圖像細(xì)節(jié)和原有信息,大量試驗(yàn)后,本實(shí)驗(yàn)中k均取值為圖像寬的60%,此時(shí)圖像有效信息保留最完善.整個(gè)G-SVD去霧算法流程如圖3所示.
為驗(yàn)證本文所提方法的可靠性和有效性,本文實(shí)驗(yàn)在Intel(R)Core(TM)i5-4288u CPU,主頻為2.6GHz,運(yùn)行內(nèi)存為8GB的PC機(jī)上運(yùn)行,實(shí)驗(yàn)使用Matlab 2015a用于仿真.
為驗(yàn)證該算法的普適性,選取多種環(huán)境下的有霧圖像(森林、小河、城市、天空和鹿)進(jìn)行實(shí)驗(yàn),此外,有霧圖像的霧強(qiáng)度等級(jí)分別為:清霧、霧、大霧、濃霧和強(qiáng)濃霧,以豐富實(shí)驗(yàn)對(duì)象.目前去霧主流算法為基于去霧物理模型和基于圖像增強(qiáng)算法兩種.其中He算法[2]為基于去霧物理模型的去霧算法代表,通過提出暗通道去霧模型提升圖像可見度;而Wang算法[16]為基于圖像增強(qiáng)算法的去霧代表,其采用多尺度Retinex圖像增強(qiáng)以去霧.為驗(yàn)證本文算法性能,將G-SVD與He算法[2]、Wang算法[16]對(duì)比,結(jié)果如圖4所示.其中圖4(a)為原圖,圖4(b)為采用本文算法G-SVD的去霧效果圖,圖4(c)為He算法[2]效果圖,圖4(d)為Wang算法[16]的去霧效果圖.如圖4所示,利用He[2]去霧算法處理后,整體色彩清晰度不足,局部區(qū)域甚至出現(xiàn)了塊狀效應(yīng)(見圖5),通過局部放大圖可以發(fā)現(xiàn),第1行森林圖像塊狀效應(yīng)明顯,導(dǎo)致視覺效果欠佳,并且在第2行小河圖中,也出現(xiàn)了明顯塊狀效應(yīng),顏色偏暗,細(xì)節(jié)保留不明顯.而本文算法G-SVD在同一位置并未出現(xiàn)塊狀效應(yīng),且有效地改善了景深發(fā)生突變地方的色彩失真.此外,Wang算法[16]在第2行和第3行在天空區(qū)域出現(xiàn)了明顯失真,并出現(xiàn)了色帶,使得能見度不足.在第5行鹿圖像中,本文方法對(duì)于圖像中央遠(yuǎn)處樹木的保留效果較好,而He算法[2]遠(yuǎn)處細(xì)節(jié)則完全消失.總體來說,本文算法相比較于其他兩種算法,局部細(xì)節(jié)保留更好,并未出現(xiàn)明顯失真現(xiàn)象,有效解決了He算法[2]中的塊狀效應(yīng).

圖4 主觀分析去霧效果Fig.4 Subjective analysis of defogging effect

圖5 改進(jìn)算法和原算法局部放大圖對(duì)比Fig.5 Comparison of local magnification of two algorithms
本節(jié)從信息熵[17]、峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)[18]和結(jié)構(gòu)相似性(Structural Similarity,SSIM)[19]3方面對(duì)下面9張濃霧圖像進(jìn)行定量分析,實(shí)驗(yàn)結(jié)果如圖6所示.從上至下每一行的霧濃度呈遞增趨勢(shì),以豐富該算法對(duì)不同的實(shí)驗(yàn)條件的效果和影響,驗(yàn)證該算法的適應(yīng)程度.

圖6 定量分析去霧效果Fig.6 Quantitative analysis of defogging effect
信息熵[17]是對(duì)圖像信息量的度量,來評(píng)價(jià)圖像質(zhì)量的好壞,信息熵越大,則說明圖像包含信息量越高,圖像復(fù)原質(zhì)量越好,信息熵公式為:
(14)
其中,pi是像素值i出現(xiàn)的概率.圖6的信息熵值如表1所示,G-SVD得到的復(fù)原圖像信息熵平均值最高,相比較于原暗通道去霧算法[2]信息熵提升了0.26,而和Wang算法[16]相比高出約0.07.
峰值信噪比[18]是通過對(duì)比純凈圖像I和噪聲圖像K,衡量純凈圖像的重建質(zhì)量方法,如公式(15)所示:
(15)
其中MSE表示為均方誤差:
(16)
MSE越小,PSNR越大,則圖像失真越小,圖像質(zhì)量越高,如表2所示,圖6的測(cè)試圖像在本文算法中PSNR平均值高于其他兩種算法.其中,本文算法相較于He算法和Wang算法PSNR值提高了近4.4,大大的提升了去霧圖像的能見度,且去除了冗余噪聲.

表1 不同算法的信息熵Table 1 Information entropy of different algorithms

表2 不同算法的峰值信噪比(PSNR)Table 2 PSNR of different algorithms
結(jié)構(gòu)相似性[19]用于評(píng)價(jià)圖像結(jié)構(gòu)信息的保留程度,可以解決PSNR和MSE無法衡量圖像結(jié)構(gòu)相似的問題,如公式(17)所示:
(17)
其中μx和μy表示圖像的X和Y的亮度均值,而σx和σy表示圖像X和Y的標(biāo)準(zhǔn)差,C1和C2為常量.SSIM越大表示圖像去霧效果越好,原圖重要信息保留程度越高.結(jié)果如表3所示,本文算法的SSIM平均值分別高于其他兩種算法0.15和0.3.
綜合上述3項(xiàng)指標(biāo),可以認(rèn)為提出的算法在信息保留、重建圖像質(zhì)量和結(jié)構(gòu)信息的保留程度上,比其他兩種方法效果更優(yōu)秀,適應(yīng)性更強(qiáng),同時(shí),在處理濃霧效果中,也仍保留了較多的細(xì)節(jié),并有效的避免了He算法中的塊狀效應(yīng)以及Wang算法中的圖像失真和顏色畸變.

表3 不同算法的結(jié)構(gòu)相似性(SSIM)Table 3 SSIM of different algorithms
表4給出不同去霧算法對(duì)各個(gè)尺寸的所耗費(fèi)時(shí)間對(duì)比.從各算法執(zhí)行時(shí)間可以看出,本文算法G-SVD在像素范圍為240×210-600×450的圖像處理效率均高于其他3種算法(Chen[11]、Tarel[20]和Meng[21]),但是隨著尺寸的增大至800×600時(shí),本算法的耗時(shí)則高于Chen和Meng算法.分析其原因在于本文算法需要對(duì)圖像進(jìn)行滑動(dòng)窗口處理,遍歷圖像所有像素點(diǎn),因此導(dǎo)致算法時(shí)間復(fù)雜度高于其他兩種算法.此外,由于本文算法還需對(duì)圖像進(jìn)行SVD矩陣運(yùn)算,這也間接導(dǎo)致算法耗時(shí)的增長(zhǎng)量高于其他算法.簡(jiǎn)化矩陣運(yùn)算,降低算法的時(shí)間復(fù)雜度,這也將成為下一階段的研究方向及重點(diǎn),以應(yīng)用在視頻處理中[22].

表4 不同算法的耗時(shí)對(duì)比(時(shí)間單位:秒)Table 4 Time consuming comparison of different algorithms(time unit:s)
本文提出了G-SVD去霧算法,它采用基于滑動(dòng)窗口的高斯卷積來預(yù)估各個(gè)像素點(diǎn)的環(huán)境大氣光,并引入偏差系數(shù)提高去霧圖像亮度,再采用奇異值分解去除冗余噪聲,從而有效的去除原暗通道去霧算法的塊狀效應(yīng),并通過信息熵、PSNR和SSIM3個(gè)方面定量分析該算法的提升.實(shí)驗(yàn)結(jié)果表明,G-SVD算法可以有效去除塊狀效應(yīng)且濃霧處理效果較為理想.但是該算法的去霧結(jié)果仍然存在著細(xì)節(jié)模糊、部分色彩失真等缺陷,此外,隨著圖像尺寸增大,算法時(shí)間復(fù)雜度較大等弊端也顯現(xiàn)出來,這將成為未來研究的主要方向.而隨著人工智能、5G通信等技術(shù)的發(fā)展,下一步也將去霧算法進(jìn)一步改進(jìn),融合實(shí)時(shí)視頻傳輸[23]等技術(shù),實(shí)現(xiàn)實(shí)時(shí)去霧.