火元蓮,鄭海亮,陳萌萌,李俞利,張婧博,李 明
(西北師范大學(xué)物理與電子工程學(xué)院,甘肅 蘭州 730070)
在霧霾天氣條件下,滲透在空氣中的霧、小顆粒塵埃和膠溶質(zhì)顆粒通過散射和吸收可見光使得圖像采集設(shè)備所獲取的圖像對比度和顏色飽和度下降,許多細(xì)節(jié)信息丟失[1-4],導(dǎo)致圖像嚴(yán)重退化模糊,從而直接限制和影響了諸如智能導(dǎo)航、交通監(jiān)控、航空航天等戶外視覺監(jiān)控系統(tǒng)[5-6]效用的發(fā)揮。因此,圖像去霧技術(shù)的研究十分有必要而且具有重要的現(xiàn)實(shí)意義和應(yīng)用價(jià)值。
目前對于霧霾圖像的處理方法主要有三種:一種是基于圖像增強(qiáng)的方法,例如全局直方圖均衡化算法、同態(tài)濾波算法、小波變換算法和Retinex算法等,這類算法不考慮圖像退化的本質(zhì)原因,只是一味地增強(qiáng)圖像的對比度、提高亮度,致使圖像的細(xì)節(jié)信息損失較多。另一種是基于圖像復(fù)原的方法,通過建立大氣散射模型,根據(jù)散射原因反演退化過程,補(bǔ)償退化造成的失真,以便改善霧霾圖像的質(zhì)量,在該類算法中尤其是基于先驗(yàn)信息的單幅圖像去霧研究在近年來取得了大量的研究成果。如Tan等[7]通過使用最大化復(fù)原霧天圖像的對比度來達(dá)到去霧的目的,但是該方法處理后的圖像顏色過于飽和,看起來很不自然;Tarel等[8]在景深突變區(qū)域,采用中值濾波而使去霧后的圖像往往會出現(xiàn)光暈效應(yīng),并且該算法參數(shù)較多,不易調(diào)整,在實(shí)際應(yīng)用中存在諸多不便;Fattal等[9]假設(shè)透射率和場景目標(biāo)表面投影在局部不相關(guān),并通過獨(dú)立成分分析法來估計(jì)場景的透射率,最終實(shí)現(xiàn)圖像的去霧,但是對于顏色信息比較少的濃霧圖像去霧效果較差;He等[10]通過對大量無霧圖像的搜集和觀察分析,提出了一種暗通道先驗(yàn)理論,并通過該理論估計(jì)初始透射率,然后利用軟摳圖算法進(jìn)一步細(xì)化透射率,最終得到較好的去霧效果,但是當(dāng)圖像存在大面積天空區(qū)域時(shí),恢復(fù)出的圖像也會有明顯的失真。還有一種是基于學(xué)習(xí)的方法,Ren等[11]提出了多尺度的卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)各種霧霾圖像的透射率圖,進(jìn)而恢復(fù)出無霧圖像,但該算法需要根據(jù)霧霾濃度手動調(diào)整參數(shù);Cai等[12]利用卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)有霧圖像的特征以估計(jì)透射率圖,然后復(fù)原出無霧圖像,該卷積神經(jīng)網(wǎng)絡(luò)較淺且只使用單尺度進(jìn)行特征提取,對于很多特定場景,易出現(xiàn)顏色失真、細(xì)節(jié)丟失和去霧過度等現(xiàn)象。目前,傳統(tǒng)的去霧算法大多數(shù)都是基于暗通道先驗(yàn)的,但是He 等[10]的方法在處理含有大片天空、白色區(qū)域時(shí),去霧效果并不好,而且當(dāng)存在過高的大氣光估值時(shí),還會導(dǎo)致去霧圖像顏色過飽和。
針對上述存在的問題,為抑制天空區(qū)域出現(xiàn)光暈效應(yīng),解決去霧圖像顏色過飽和的問題,本文提出了一種聯(lián)合霧線先驗(yàn)和凸優(yōu)化的去霧算法。該算法使用霧線先驗(yàn)來代替暗通道先驗(yàn),去估計(jì)更準(zhǔn)確的大氣光值,消除了去霧后圖像顏色過飽和的問題;并通過離散Haar小波變換(discrete haar wavelet transform,DHWT)構(gòu)建降維子帶霧圖模型和凸優(yōu)化來對透射率進(jìn)行優(yōu)化求解,從而可以得到更多的圖像細(xì)節(jié)信息,有效地抑制了光暈效應(yīng)和條紋偽影的產(chǎn)生。實(shí)驗(yàn)結(jié)果表明,本文方法可以取得較好的去霧效果。
目前,基于圖像復(fù)原的物理模型普遍的是由McCarttney提出的大氣散射模型(如圖1所示),該模型是復(fù)原圖像的主要理論依據(jù)。
圖1 大氣散射模型
McCartney提出的模型表達(dá)式為:
E=I∞ρe-βd+I∞(1-e-βd),然后He等[10]令e-βd=t,I∞=A,I∞ρ=J,進(jìn)一步得到了大氣散射模型的簡化表達(dá)式:
I(x)=J(x)t(x)+A·(1-t(x))
(1)
其中,x是平面圖像中的索引位置;I是霧天圖像;J是場景輻射,即待復(fù)原的無霧圖像;A是大氣光值,其代表周圍環(huán)境中各種光的總強(qiáng)度,在He等[10]的方法中該值是通過暗通道先驗(yàn)求得的;場景透射率t(x)=e-βd(x),其中β是大氣散射系數(shù),d是場景深度,即目標(biāo)到相機(jī)的距離。
圖像去霧的目的就是在僅已知霧天圖像I的情況下,通過各種方法去求得大氣光值A(chǔ)和場景透射率t,最終經(jīng)過大氣散射模型來復(fù)原出無霧圖像J。
大氣光值和透射率的精確性直接影響著去霧圖像的質(zhì)量,這兩個(gè)參數(shù)估計(jì)越精確,則復(fù)原后的圖像就越清晰自然。本文中基于霧線先驗(yàn)和凸優(yōu)化的聯(lián)合算法來估計(jì)大氣光值和透射率,具體的算法流程如圖2所示。
3.1.1 霧線先驗(yàn)
霧線先驗(yàn)[13]基于Berman對無霧圖像的觀察,無霧圖像中不同顏色的數(shù)量遠(yuǎn)小于像素的數(shù)量。因此,在RGB空間中,無霧圖像中的像素會形成幾百個(gè)簇;而在霧霾圖像中,霧霾會隨著物體距離的變化而改變顏色的外觀,來自場景中不同位置的像素的簇會連接成為RGB空間中的直線(即霧線)。本文將霧霾圖像的像素視為RGB空間中的點(diǎn),并將它們的分布建模為相交于單一點(diǎn)(即大氣光)的直線(即霧線)。
圖2 單幅圖像去霧算法流程圖
參考文獻(xiàn)[14],可以將式(1)變形為穿過大氣光坐標(biāo)A的3D線方程:
I(x)=t(x)·(J(x)-A)+A
(2)
其中,(J(x)-A)表示方向;t表示線參數(shù)。為了便于找到霧線,可以將3D線方程的RGB坐標(biāo)系進(jìn)行平移,以便使大氣光位于原點(diǎn):IA(x)=I(x)-A,然后將矢量IA(x)用球面坐標(biāo)系進(jìn)行表示:
IA(x)=[r(x),θ(x),φ(x)]
(3)
其中,r是到原點(diǎn)的距離(即‖I-A‖);θ和φ分別是經(jīng)度角和緯度角。霧線是由具有相同θ和φ角的點(diǎn)組成的。
3.1.2 霧線估計(jì)大氣光
d(I(x),(A,φ,θ))=(A-I(x))·(cos(θ),sin(φ))
(4)
僅當(dāng)?shù)揭粭l線的距離小于閾值τ時(shí),像素才會對候選大氣光值A(chǔ)進(jìn)行投票。該閾值取決于A到I(x)之間的距離,且是自適應(yīng)的。該閾值表達(dá)式為:
(5)
(6)
其中,K=40,l[·]是一個(gè)指示函數(shù),如果為真則等于1,否則等于0。如果大氣光值A(chǔ)的所有像素都大于I(x)的對應(yīng)像素,則l[A>I(x)]=1。
另外為了防止大氣光值A(chǔ)是一個(gè)遠(yuǎn)大于1的解,本文對接近像素值的A賦予一個(gè)更大的權(quán)重,其優(yōu)化后的表達(dá)式為:
(7)
其中,f(y)=1+4·e-y,f(y)為快速衰減權(quán)值。
3.1.3 優(yōu)化計(jì)算速度
如果在3D RGB空間中為所有角度和大氣光候選值在所有像素值上進(jìn)行投票,其計(jì)算量將會非常巨大。為此本文使用了一種近似的方法,即在保持計(jì)算精度的同時(shí),加快了計(jì)算速度。首先,對圖像中的顏色進(jìn)行聚類,并使用聚類中心的像素而不是所有像素;然后,在二維上執(zhí)行投票方案,投票重復(fù)三次,每次只使用(R,G,B)顏色通道中的兩種。
(8)
通過一次對兩個(gè)顏色通道進(jìn)行累加,計(jì)算出三個(gè)邊緣概率,其中每次累加在不同的顏色通道上。最后,將由邊緣累加的矢量積產(chǎn)生的3D體積的最大值來表示最終的候選大氣光值。
3.2.1 構(gòu)建降維DHWT霧圖模型
Ic=Jc⊙t+ac(1-t),c=1,2,3
(9)
(10)
其中,上標(biāo)a、h、v和d分別表示小波變換的低頻近似、水平、垂直和對角子帶塊。大氣光傳輸分布t的DHWT矩陣將會有四個(gè)相同的子帶塊,即:
(11)
可以進(jìn)一步得到DHWT的霧圖模型表達(dá)式:
(12)
(13)
3.2.2 降維DHWT霧圖模型的凸優(yōu)化
(14)
可以看到式(14)變成了線性的問題,然后對式(14)進(jìn)行正則化凸優(yōu)化,得到下式:
c=1,2,3
(15)
(16)
(17)
其中,‖·‖2表示為L2范數(shù),‖·‖TV表示為全變差范數(shù)λ的取值為1。
因此,最終透射率分布的凸優(yōu)化函數(shù)表達(dá)式為:
(18)
本文的仿真環(huán)境為Matlab 2018b,所使用的電腦CPU配置為intel(R)Core(TM)i5-7500 3.40 GHz,內(nèi)存為16GB,操作系統(tǒng)為Win 10。對6幅具有代表性的霧霾圖像和合成霧霾圖像進(jìn)行去霧
實(shí)驗(yàn),并將本文算法和其他圖像去霧算法在主觀和客觀兩方面進(jìn)行對比分析。
主觀分析主要是以人的肉眼觀察作為評價(jià)標(biāo)準(zhǔn),是一種主觀判斷,能直觀地反映復(fù)原效果。圖3為6幅圖像不同算法的去霧效果對比圖。
圖3 不同算法的去霧效果對比
從圖3可以看出,本文提出的算法通常能在整個(gè)圖像上產(chǎn)生更真實(shí)、更自然和顏色對比度更均衡的效果。在6幅圖像中,文獻(xiàn)[10]的暗通道先驗(yàn)算法基本去除了霧霾影響,但其處理后的天空和白色花瓣區(qū)域都存在嚴(yán)重的過飽和現(xiàn)象;文獻(xiàn)[8]的利用中值濾波優(yōu)化透射率的算法在“峽谷”、“高山”、“書桌”、“山脈”四幅圖像中出現(xiàn)了條紋偽影和光暈的現(xiàn)象,在“百合”圖像中出現(xiàn)了過飽和現(xiàn)象,在“高樓”圖像中去霧效果比較差;在“峽谷”圖像中,文獻(xiàn)[17]的邊界約束算法出現(xiàn)了光暈現(xiàn)象,文獻(xiàn)[14]的霧線先驗(yàn)算法、文獻(xiàn)[18]的顏色衰減先驗(yàn)算法和文獻(xiàn)[19]的差分結(jié)構(gòu)保存先驗(yàn)算法使圖像對比度過度增強(qiáng),文獻(xiàn)[20]的人工多次曝光融合的算法和文獻(xiàn)[15]的算法雖然在人眼視覺上比較自然,但是其處理后的圖像細(xì)節(jié)方面不如本文算法;在“高山”圖像中,文獻(xiàn)[17]和文獻(xiàn)[14]的算法在天空區(qū)域出現(xiàn)了顏色失真現(xiàn)象,文獻(xiàn)[18]的算法使土地顏色過飽和,與其余算法相比,本文算法處理效果更自然一些;在“百合”圖像中,文獻(xiàn)[17]的算法出現(xiàn)了偽影和失真現(xiàn)象,文獻(xiàn)[20]的算法得到的去霧圖像顏色飽和度不足,看起來比較暗淡,文獻(xiàn)[18]、文獻(xiàn)[14]和文獻(xiàn)[19]的算法在較低的花瓣上產(chǎn)生了陰影,文獻(xiàn)[15]與本文算法處理后的圖像比較接近且本文算法沒有以上缺點(diǎn);在“書桌”圖像中,文獻(xiàn)[17]、文獻(xiàn)[18]、文獻(xiàn)[14]、文獻(xiàn)[19]和文獻(xiàn)[15]的算法在其圖像的左下角區(qū)域有不同程度的失真現(xiàn)象,在其右上角區(qū)域有不同程度的顏色過飽和現(xiàn)象,而本文算法保留了正確的飽和度和豐富的細(xì)節(jié);在“高樓”圖像中,文獻(xiàn)[17]的算法出現(xiàn)了顏色失真現(xiàn)象,文獻(xiàn)[15]的算法對天空區(qū)域處理的不太好,文獻(xiàn)[20]的算法處理的圖像整體比較暗,本文算法雖然處理的比較自然,但是對樓體的紅色部分處理的不夠好,文獻(xiàn)[14]的算法達(dá)到了最好的效果;在“山脈”圖像中,文獻(xiàn)[17]的算法在云朵區(qū)域產(chǎn)生了失真和偽影現(xiàn)象,文獻(xiàn)[18]和文獻(xiàn)[19]的算法在中央森林區(qū)域因顏色過飽和而導(dǎo)致部分細(xì)節(jié)丟失,文獻(xiàn)[20]的算法去霧效果不好,仍能明顯看見霧霾,文獻(xiàn)[14]的算法雖然能得到一個(gè)好的結(jié)果,但是在山脈區(qū)域沒有本文算法處理的真實(shí)自然。
為了更加客觀公正地對比本文算法和其他算法的去霧效果,本文采用圖像質(zhì)量客觀評價(jià)指標(biāo):無參考評價(jià)指標(biāo):信息熵(H)和全參考評價(jià)指標(biāo):峰值信噪比(PSNR)、結(jié)構(gòu)相似性(SSIM)來定量進(jìn)行分析,結(jié)果如表1和表2所示。
由表1可知,經(jīng)本文算法處理后的“百合”、“峽谷”、“高山”、“山脈”四幅圖像的信息熵比其他算法的值都要高,一幅圖像的信息熵越高,表示復(fù)原圖像包含的信息量越大,細(xì)節(jié)強(qiáng)度越大,復(fù)原結(jié)果越清晰。在“高樓”、“書桌”兩幅圖像上雖然沒有達(dá)到最大的值,但是也與最大值比較接近,同時(shí)最大值(文獻(xiàn)[14])的算法因?yàn)檫^于增亮圖像,導(dǎo)致圖像變得不夠自然,而本文算法處理出的圖像清晰自然,證明了本文算法的效果更好。
表1 6幅圖像的霧圖和不同算法的去霧圖的信息熵值大小
表2 對數(shù)據(jù)集SOTS進(jìn)行去霧的平均全參考評價(jià)結(jié)果
在表2中,本文引入了最近提出的一個(gè)大型數(shù)據(jù)集RESIDE[21],并對其中主要的綜合客觀測試集(SOTS)進(jìn)行了測試。在與其他去霧算法的對比實(shí)驗(yàn)中發(fā)現(xiàn),本文所提出的算法在全參考圖像質(zhì)量評價(jià)指標(biāo):峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)兩方面都有了大的提高,分別為23.43和0.8715,這進(jìn)一步證明了本文算法的有效性和穩(wěn)定性。
為較好地恢復(fù)出圖像的細(xì)節(jié)并有效抑制天空區(qū)域的光暈效應(yīng)和去霧圖像顏色過飽和等問題,本文提出了一種聯(lián)合霧線和凸優(yōu)化的單幅圖像去霧算法。該算法使用霧線先驗(yàn)來代替暗通道先驗(yàn),結(jié)合霍夫變換去估計(jì)更為準(zhǔn)確的大氣光值,并通過構(gòu)建的降維子帶霧圖模型和凸優(yōu)化對透射率進(jìn)行求解,最后采用正則化的思想去優(yōu)化透射率,經(jīng)過大氣散射模型恢復(fù)出無霧圖像。實(shí)驗(yàn)結(jié)果表明,去霧后的圖像清晰自然,解決了天空區(qū)域的光暈效應(yīng)和圖像顏色過飽和的問題,圖像的主觀視覺效果有了提升。但對于較濃霧的圖像去霧效果不理想,下一步將尋找更優(yōu)的方法對霧霾圖像進(jìn)行處理。