呂建威,錢(qián) 鋒,韓昊男,張 葆*
(1. 中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033;2. 中國(guó)科學(xué)院大學(xué),北京 100049)
隨著科技和工業(yè)的高速發(fā)展,霧霾天氣成為了非常常見(jiàn)的自然現(xiàn)象。在這樣的天氣條件下,大氣光經(jīng)過(guò)空氣中的懸浮粒子發(fā)生了散射,導(dǎo)致光學(xué)系統(tǒng)獲取到的圖像出現(xiàn)對(duì)比度下降、細(xì)節(jié)不清晰、局部亮度偏高,飽和度降低等一系列降質(zhì)退化現(xiàn)象。圖像降質(zhì)退化給后續(xù)的目標(biāo)檢測(cè)與跟蹤、圖像識(shí)別等計(jì)算機(jī)視覺(jué)領(lǐng)域的技術(shù)工作造成了很大的影響,給醫(yī)學(xué)、軍事、工業(yè)以及交通等行業(yè)的工作帶來(lái)了極大的不便。因此,研究如何復(fù)原有霧的圖像,提高有霧條件下圖像的清晰度,降低有霧天氣對(duì)成像系統(tǒng)的影響有著極其重要的意義。
現(xiàn)有的圖像去霧算法主要可分為三大類:基于圖像增強(qiáng)的方法[1-2]、基于物理模型的方法[3-5]以及基于深度學(xué)習(xí)的方法。基于圖像增強(qiáng)的方法有直方圖均衡化[6]、Retinex 圖像增強(qiáng)理論[7-8]、高斯濾波、中值濾波、快速傅里葉變換以及小波變換等。這類方法并沒(méi)有考慮霧的形成機(jī)制,而是通過(guò)對(duì)比度增強(qiáng)的方式來(lái)提高圖像質(zhì)量,無(wú)法真正有效地實(shí)現(xiàn)去霧?;谖锢砟P偷姆椒ㄊ且訬arasimhan 和Nayar 提出的大氣散射模型為基礎(chǔ)[9],根據(jù)不同的先驗(yàn)知識(shí)和大氣光估計(jì)方法來(lái)求解模型并復(fù)原無(wú)霧圖像。He 等人[10]提出了暗通道先驗(yàn)(Dark Channel Prior,DCP)理論,具體過(guò)程為首先估計(jì)出暗通道圖并結(jié)合大氣散射模型推導(dǎo)出透射率的值,然后利用軟摳圖原理[11]或者引導(dǎo)濾波[12]對(duì)透射率圖進(jìn)行優(yōu)化。該算法原理簡(jiǎn)單,運(yùn)行效率高,應(yīng)用廣泛,許多去霧算法都是以該算法為基礎(chǔ)被提出的[13-16]。但是,當(dāng)圖像中出現(xiàn)大面積濃霧、高亮以及白色物體時(shí),大氣光及透射率估計(jì)不準(zhǔn)確,暗通道先驗(yàn)失效。Zhu 等人[16]提出了顏色衰減先驗(yàn)(Color Attenuation Prior,CAP)方法,具體做法是通過(guò)實(shí)驗(yàn)規(guī)律發(fā)現(xiàn)霧氣的濃度分布與亮度和飽和度之差呈正相關(guān)并建立線性模型,然后學(xué)習(xí)訓(xùn)練大量樣本得到透射率估計(jì)圖。Berman 等人[17]提出的非局部先驗(yàn)(Non-local Prior,NLP)去霧法是將無(wú)霧圖像的RGB 值利用K-means 聚類后形成了不同的簇,在霧的影響下這些像素點(diǎn)不再形成簇,而是形成了霧線,根據(jù)霧線可以進(jìn)一步估計(jì)每個(gè)像素點(diǎn)的透射率值。Meng 等[18]在暗通道先驗(yàn)方法的基礎(chǔ)上加入邊界約束條件,使得改進(jìn)后的去霧圖片中對(duì)于天空的處理效果會(huì)有顯著提升。Ancuti等人[19]提出了RGB 和LAB 之間的顏色變換方法來(lái)進(jìn)行圖像去霧。
近年來(lái),基于深度學(xué)習(xí)的去霧方法受到了越來(lái)越多研究者們的關(guān)注,此類方法通過(guò)建立神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖像間的內(nèi)在關(guān)聯(lián),通過(guò)大量訓(xùn)練獲得無(wú)霧圖像。Cai 等人[20]提出基于卷積神經(jīng)網(wǎng)絡(luò)的DehazeNet 結(jié)構(gòu)來(lái)提高恢復(fù)的無(wú)霧圖像的質(zhì)量,DehazeNet 是一種端到端的訓(xùn)練模型,利用神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)大氣退化模型中的透射率進(jìn)行估計(jì)。但該方法存在的缺點(diǎn)是將大氣光值設(shè)置為全局常量,去霧后的圖像往往顏色失真。Li 等人[21]將大氣散射模型中的大氣光和透射率兩個(gè)參數(shù)通過(guò)變形合并成一個(gè)參數(shù),在此基礎(chǔ)上提出了一種基于CNN 的輕量級(jí)端到端卷積神經(jīng)網(wǎng)絡(luò)模型AOD-Net。AOD-Net 最終輸出的是復(fù)原后的無(wú)霧圖像,并沒(méi)有輸出透射率和大氣光的估計(jì)圖,這樣可以有效避免大氣光和透射率帶來(lái)的誤差,但由于網(wǎng)絡(luò)模型深度淺,無(wú)法提取到圖像中更深層次的信息。Ren 等人[22]提出了一種多層深度神經(jīng)網(wǎng)絡(luò),通過(guò)有霧圖像和對(duì)應(yīng)的無(wú)霧圖像的數(shù)據(jù)集來(lái)學(xué)習(xí)它們之間存在的映射關(guān)系,先采用粗尺度卷積神經(jīng)網(wǎng)絡(luò)來(lái)估計(jì)粗略的透射率分布,再利用細(xì)尺度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)一步優(yōu)化透射率。基于深度學(xué)習(xí)的算法往往需要大量的樣本訓(xùn)練,但目前沒(méi)有大量真實(shí)的有霧圖像數(shù)據(jù)集,用于訓(xùn)練的都是經(jīng)過(guò)合成的有霧圖像數(shù)據(jù)集,所以恢復(fù)圖像存在缺陷[23-26]。
總之,基于圖像增強(qiáng)的方法不考慮圖像中霧的形成機(jī)制,只考慮視覺(jué)增強(qiáng)效果,容易造成對(duì)比度過(guò)度增強(qiáng)、顏色失真等現(xiàn)象,無(wú)法真正實(shí)現(xiàn)去霧?;谏疃葘W(xué)習(xí)的方法不考慮圖像的先驗(yàn)信息,去霧性能易受訓(xùn)練圖像類型限制,占用內(nèi)存較大,往往會(huì)出現(xiàn)顏色失真、過(guò)飽和等現(xiàn)象?;诖?,本文提出一種天空分割和霧氣濃度估計(jì)的去霧方法,有效解決了天空區(qū)域恢復(fù)不真實(shí)問(wèn)題。針對(duì)非天空區(qū)域霧氣濃度分布問(wèn)題,提出了霧氣濃度估計(jì)模型提高霧氣濃度的估計(jì)精度。為了獲得透射率圖,分別估計(jì)天空和非天空區(qū)域的透射率,結(jié)合像素點(diǎn)概率分布得到疊加后的透射率結(jié)果,最終能夠得到去霧更徹底、細(xì)節(jié)更清晰的復(fù)原圖像。
最常用的白天去霧模型中認(rèn)為相機(jī)捕獲的大氣中的散射光包含文獻(xiàn)[27]中提出的直接傳輸和空氣光:
其中:I(x)是在像素x處觀察到的圖像像素大小,J(x)是場(chǎng)景反射或沒(méi)有霧時(shí)的理想的恢復(fù)圖像,A是在白天除霧時(shí)被認(rèn)為是恒定常數(shù)的大氣光值,t(x)是到達(dá)攝像機(jī)之前場(chǎng)景的透射率,β是經(jīng)霧中顆粒散射后的衰減因子,d(x)是相機(jī)與被稱為景深的場(chǎng)景之間的光學(xué)厚度或距離。J(x)t(x) 稱 為 直 接 傳 輸,A[1-t(x)] 是 空氣光。
暗通道先驗(yàn)理論表明:在絕大多數(shù)的非天空的局部區(qū)域中,對(duì)于每一幅圖像的每一個(gè)像素的RGB 三個(gè)顏色通道,某一些像素總會(huì)有至少一個(gè)顏色通道具有很低的值。暗通道表示如下:
其中:Jc表示實(shí)際無(wú)霧圖像的一個(gè)顏色通道,ω(x)表示以像素點(diǎn)位置x為中心的鄰域圖像塊,Jdark表示實(shí)際無(wú)霧圖像的暗通道。暗通道先驗(yàn)的原理表明:Jdark的值總是趨近于0。
式(1)兩邊同時(shí)進(jìn)行暗通道操作,可以得到粗略的透射率值為:
在進(jìn)行算法模擬時(shí)發(fā)現(xiàn),若利用上述公式徹底去霧,圖像會(huì)丟失部分信息,造成圖像看起來(lái)不真實(shí),因此引入有霧因子υ,保留圖像中的一部分霧,υ=0.95。修正后的公式如下:
為了提高透射率的精度,最開(kāi)始采用軟摳圖的方法來(lái)精細(xì)化透射率,由于軟摳圖的運(yùn)行效率低,后來(lái)采用引導(dǎo)濾波的方法具有更好地保持邊緣能力,大大提高運(yùn)行效率。得到精細(xì)化的透射率之后,最終的圖像去霧結(jié)果為:
一般情況下取t0為0.1。
算法原理框圖如圖1 所示。首先由梯度圖像進(jìn)行閾值分割并設(shè)定亮度約束條件分割出天空區(qū)域,根據(jù)改進(jìn)的暗通道先驗(yàn)法和四叉樹(shù)細(xì)分法得到大氣光的估計(jì)值。然后,對(duì)于非天空區(qū)域提出了線性霧氣濃度估計(jì)模型得到透射率的值。對(duì)于天空區(qū)域利用亮通道先驗(yàn)方法得到透射率的值,再結(jié)合像素點(diǎn)概率值進(jìn)行疊加得到新的透射率圖像。最后,利用大氣散射模型得到去霧圖像結(jié)果。
圖1 算法原理圖Fig.1 Block diagram of algorithm principle
在對(duì)圖像大氣光和透射率進(jìn)行估計(jì)時(shí),通常由于天空區(qū)域的存在導(dǎo)致霧的濃度估計(jì)精度不足,得到的結(jié)果會(huì)在天空區(qū)域出現(xiàn)顏色失真等現(xiàn)象。因此,為了提高圖像透射率的估計(jì)精度,本文提出了新的圖像分割天空區(qū)域的方法,并獲得像素點(diǎn)是否屬于天空區(qū)域的概率分布。
本文所提出的天空分割方法步驟如下:
步驟1:將圖像轉(zhuǎn)換為灰度圖像,并通過(guò)Sobel 算子計(jì)算圖像的梯度,得到梯度圖像信息;
步驟2:對(duì)梯度信息進(jìn)行適當(dāng)?shù)娜ピ牒蜑V波,這里采用引導(dǎo)濾波的方法,能夠較好地去噪和保邊;
步驟3:將梯度圖像進(jìn)行最大值最小值歸一化,隨機(jī)設(shè)置梯度閾值將圖像進(jìn)行二值化,超過(guò)該閾值的區(qū)域像素值大小為0(黑色),反之為1(白色),最終得到能夠初步分割出圖像天空區(qū)域的閾值N=0.02;
步驟4:對(duì)步驟3 中梯度圖二值化分割后的每個(gè)連通的白色區(qū)域統(tǒng)計(jì)其原始圖像在對(duì)應(yīng)位置的像素的亮度大小,即變換到HSV 空間中亮度V 的大?。唤y(tǒng)計(jì)V 的大小后,盡可能保留較大的亮度值,如果大于閾值T則保留,閾值設(shè)置為T(mén)=0.80 時(shí)能夠在之后的步驟中識(shí)別出天空區(qū)域;
步驟5:在符合步驟3 和步驟4 條件下,圖像中最大的連通區(qū)域可以作為識(shí)別出的天空區(qū)域,一般情況下連通區(qū)域大小超過(guò)整幅圖像的5%時(shí)可以認(rèn)為是天空區(qū)域。
得到天空分割結(jié)果后,可以利用概率值α(x)來(lái)表示像素點(diǎn)是否屬于天空區(qū)域,如果像素點(diǎn)對(duì)應(yīng)的梯度值大于閾值N,說(shuō)明像素點(diǎn)梯度較大,認(rèn)為不屬于天空區(qū)域,反之,則認(rèn)為像素點(diǎn)屬于天空區(qū)域。這樣,可以利用分段函數(shù)表示為:
其中:G(x)表示圖像歸一化后的梯度分布圖,V表示HSV 空間中亮度V 的大小,T表示亮度閾值,N表示對(duì)梯度圖進(jìn)行閾值分割后獲得的能夠分割天空區(qū)域的閾值大小。圖像天空分割結(jié)果如圖2 所示,可以看出本文所提出的方法能夠有效提取天空區(qū)域的信息,如圖2(a)和圖2(b)所示。若圖像中沒(méi)有天空區(qū)域時(shí),如圖2(c)所示,可以看到結(jié)果全是黑色,說(shuō)明算法可以識(shí)別無(wú)天空區(qū)域的圖像。
圖2 圖像天空分割結(jié)果Fig.2 Results of sky segmentation.
在暗通道先驗(yàn)中,大氣光的估計(jì)方法是將暗通道中的像素點(diǎn)值大小進(jìn)行排序,選擇0.1%的最亮像素的平均值作為大氣光估計(jì)值。然而,當(dāng)場(chǎng)景中白色部分較多(如過(guò)亮的天空,濃度很厚的霧,白色物體等)時(shí),可能會(huì)錯(cuò)誤選取大氣光的估計(jì)位置,造成后續(xù)處理的結(jié)果出現(xiàn)顏色失真等現(xiàn)象。圖3 為有霧圖像及其大氣光估計(jì)結(jié)果,其中填滿紅色區(qū)域?yàn)樽罱K選定區(qū)域。Kim 等[28]首先對(duì)圖像進(jìn)行四叉樹(shù)分割,得到像素平均值最大的圖像子塊,繼續(xù)對(duì)該子塊進(jìn)行分割,重復(fù)上述步驟,直到分割次數(shù)達(dá)到預(yù)先設(shè)定的值為止。最后,從得到的最后子塊中選取距離(255,255,255)最小的RGB 分量作為大氣光值。這種方法在大部分圖像中,大氣光估計(jì)較為精確,但如果圖像中存在白色過(guò)多的區(qū)域或者過(guò)曝的白光區(qū)域,大氣光估計(jì)往往會(huì)出現(xiàn)偏差,四叉樹(shù)分割方法的偏差示例如圖3(b)所示。為了提高大氣光值的估計(jì)精度,提取不重疊區(qū)域l(x),在各個(gè)不重疊區(qū)域中選取全部像素的最小值作為改進(jìn)的暗通道估計(jì)圖[29],表示如下:
根據(jù)文獻(xiàn)中的敘述,選擇子塊大小為30×30。
圖3(c)展示了本節(jié)方法的暗通道改進(jìn)圖??梢园l(fā)現(xiàn),改進(jìn)后的暗通道像素強(qiáng)度值比原始圖像子塊平均值更低一些,之后就可以利用四叉樹(shù)細(xì)分方法來(lái)估計(jì)大氣光的值。經(jīng)過(guò)以上改進(jìn)后就可以排除上述的干擾問(wèn)題,如圖3(c)所示,選擇大氣光的估計(jì)點(diǎn)并不是在下方的建筑區(qū),而是左上方的天空區(qū)域,大氣光的估計(jì)精度有了明顯的提高。
圖3 有霧圖像及其大氣光估計(jì)結(jié)果Fig.3 Hazy image and its atmosphere light estimation results
在絕大部分有霧的場(chǎng)景中,霧中的懸浮顆粒會(huì)對(duì)大氣光產(chǎn)生散射,造成光學(xué)成像設(shè)備獲取到的圖像出現(xiàn)飽和度低,局部亮度高,細(xì)節(jié)模糊等現(xiàn)象。對(duì)于任意的場(chǎng)景,霧越濃的區(qū)域,懸浮顆粒對(duì)經(jīng)過(guò)物體反射的光線產(chǎn)生的散射作用越大,該區(qū)域的細(xì)節(jié)越模糊,亮度越大,飽和度越低。
為了能夠更準(zhǔn)確地描述霧的濃度特點(diǎn),需要在Zhu 等人[16]和鞠銘燁等人[30]方法的基礎(chǔ)上進(jìn)行改進(jìn),具體的改進(jìn)方法是假設(shè)霧的濃度與圖像的深度呈線性關(guān)系,霧氣的濃度分布與局部亮度、飽和度和梯度三者有關(guān),以此為基礎(chǔ)并建立了線性霧氣濃度估計(jì)模型,表示如下:
其中:a1,a2,a3代表線性權(quán)重系數(shù);ζ代表模型的隨機(jī)誤差;L(x),S(x),G(x)分別表示圖像在像素點(diǎn)位置x的亮度,飽和度以及梯度;霧氣濃度圖c(x)取決于像素點(diǎn)鄰域內(nèi)局部的梯度平均值、飽和度平均值和亮度平均值,霧氣越濃的區(qū)域,亮度值越大,飽和度和梯度值越小,反之亦然。這里圖像的梯度用Sobel 算子計(jì)算得到,具體的特征描述為:
其中:Ω(x)表示以像素點(diǎn)x為中心的鄰域;|Ω|表示像素總數(shù);?I,L,S分別表示梯度,亮度以及飽和度分布(均需要?dú)w一化處理)。
為了求得圖像深度估計(jì)模型的線性系數(shù),從O-HAZY 和D-HAZY 數(shù)據(jù)集[31]中整理出大量圖片,通過(guò)合成隨機(jī)深度的1 000 幅有霧圖像以及對(duì)應(yīng)的無(wú)霧圖像獲得訓(xùn)練樣本。在無(wú)霧圖像中隨機(jī)合成深度為0.5~1 的霧,合成的霧圖需要設(shè)置大氣光的向量值為A(k,k,k),其中大氣光向量的三個(gè)維度分別代表RGB 空間中的三個(gè)分量,k的取值在0.8~1.0。設(shè)置好參數(shù)之后就得到1 000 張合成的有霧圖像和對(duì)應(yīng)的無(wú)霧圖像。此外,通過(guò)合成的樣本獲取了所有其中有霧圖像的局部亮度、飽和度、梯度等特征。部分無(wú)霧圖像和對(duì)應(yīng)合成的有霧圖像如圖4 所示。
圖4 部分無(wú)霧圖像和對(duì)應(yīng)合成的有霧圖像Fig.4 Parts of haze-free images and the corresponding synthetic hazy images
此外,獲取了所有夜間有霧圖像的亮度,飽和度以及梯度等特征,采用文獻(xiàn)[32]里面的方法,這樣圖像深度模型表示為:
其中:i表示第i組訓(xùn)練樣本,aT=[a1,a2,a3]T。
Xi=[L(xi),S(xi),G(xi)],第i組訓(xùn)練樣本的有霧圖像的深度圖為di(x),通過(guò)線性表示的深度圖模型為d(xi),根據(jù)1000 幅訓(xùn)練樣本,利用最小化損失誤差來(lái)求得線性系數(shù)和線性誤差,表示法如下:
這樣最小化損失誤差E就可以表示為:
為了解決最小化損失函數(shù)的問(wèn)題,我們將作以下的求導(dǎo),令該求導(dǎo)值為0,可以得到:
其中,XTX為滿秩的正則矩陣,這樣可以求得a*為:
由于上述提到霧氣濃度與圖像的深度呈線性關(guān)系,說(shuō)明霧氣濃度和圖像深度的變化趨勢(shì)相似,所以我們可以近似地認(rèn)為霧的濃度分布變化等價(jià)于圖像的深度分布。這樣圖像的透射率與霧氣濃度的關(guān)系表示為:
經(jīng)過(guò)反復(fù)實(shí)驗(yàn),所獲得的最終線性系數(shù)的結(jié)果 為a1=1.026 7,a2=-0.626 5,a3=0.185 5,隨機(jī)誤差ζ=0.014 34,局部塊大小取15×15時(shí),得到的霧氣濃度分布較為精準(zhǔn)。與此同時(shí),得到量化的霧氣濃度估計(jì)圖通常在深度變化較小的位置比較粗糙,在細(xì)節(jié)邊界處會(huì)產(chǎn)生許多噪聲。由于引導(dǎo)濾波具有非常優(yōu)秀的保持邊緣、減少噪聲的能力,因此可利用引導(dǎo)濾波進(jìn)行平滑處理。本節(jié)采用不同濃度霧的圖像進(jìn)行濃度估計(jì),最終得到霧氣濃度估計(jì)結(jié)果和對(duì)應(yīng)的去霧結(jié)果如圖5 所示。
圖5 霧氣濃度估計(jì)結(jié)果和去霧結(jié)果Fig.5 Results of haze density estimation and image dehazing
由霧氣濃度分布圖中可知,得到的結(jié)果對(duì)于處在不同深度的場(chǎng)景有明顯的區(qū)分,大部分區(qū)域都處在濃霧場(chǎng)景中,較小區(qū)域則處在薄霧場(chǎng)景中。對(duì)比處理前后效果可得出,本文算法的恢復(fù)圖像顏色看起來(lái)更加自然,對(duì)比度和可視度提升較大。另外,從霧氣的濃度圖來(lái)看,其內(nèi)在的深度結(jié)構(gòu)基本可以大體刻畫(huà)出原圖像的深度信息,原圖像的細(xì)節(jié)之處能夠明顯地體現(xiàn)出來(lái)。
對(duì)于天空區(qū)域和高亮區(qū)域,通常會(huì)有較多的白色區(qū)域,而較濃的霧的顏色接近于高亮,如果只是通過(guò)霧氣濃度估計(jì)模型來(lái)獲得透射率,得到的結(jié)果就會(huì)出現(xiàn)顏色失真、恢復(fù)不自然等情況。因此在本文的算法中,為了提高透射率的估計(jì)精度,需要單獨(dú)對(duì)天空區(qū)域進(jìn)行處理。
為了更好地處理天空區(qū)域的透射率估計(jì)問(wèn)題,本文采用了亮通道先驗(yàn)[33]的方法,即在較亮區(qū)域內(nèi),某些像素在至少一個(gè)顏色通道內(nèi)有較高的值并趨近于1,表達(dá)式為:
其中:Jc表示實(shí)際無(wú)霧圖像的一個(gè)顏色通道,ω(x)表示以像素點(diǎn)位置x為中心的鄰域圖像塊,Jbright表示實(shí)際無(wú)霧圖像的亮通道。
公式(1)兩邊同時(shí)進(jìn)行亮通道操作,可以得到粗略的透射率值為:
這樣就可以得到天空區(qū)域的透射率的估計(jì)值。對(duì)于非天空區(qū)域,結(jié)合公式(2)可以求得非天空區(qū)域透射率的估計(jì)值tnon-sky(x)。
最后利用像素點(diǎn)的概率值將天空區(qū)域和非天空區(qū)域的透射率估計(jì)值進(jìn)行線性疊加,就可以得到整幅圖像的透射率,得到的表達(dá)式為:
其中,α(x)表示像素點(diǎn)x屬于天空區(qū)域的概率值,為公式(7)的結(jié)果。
為了更好地得到去霧圖像,需要利用引導(dǎo)濾波對(duì)透射率圖進(jìn)行優(yōu)化,保持邊緣并減少噪聲。獲得大氣光和透射率的值后,利用大氣散射模型得到圖像復(fù)原表達(dá)式如下:
得到透射率和對(duì)應(yīng)的去霧的結(jié)果如圖6 所示,從透射率圖中能夠明顯觀察到圖像中的細(xì)節(jié)之處,恢復(fù)后的圖像細(xì)節(jié)非常清晰。
圖6 有霧圖像的透射率估計(jì)和去霧結(jié)果Fig.6 Results of hazy images transmission and dehazing
為了驗(yàn)證所提出的去霧算法的有效性,本文從圖像主觀質(zhì)量評(píng)價(jià),客觀質(zhì)量評(píng)價(jià)以及算法運(yùn)行時(shí)間三個(gè)方面對(duì)所提出的算法和其它的去霧算法進(jìn)行比較。
本實(shí)驗(yàn)采用的軟件和環(huán)境為:ASUS X556URK Inter Corei7-7500U 2.90 GHz,8 GB RAM,NVIDIA GEFORCE 930MX。經(jīng)過(guò)對(duì)測(cè)試樣本的訓(xùn)練,得到的數(shù)據(jù)如下:a1=1.026 7,a2=-0.626 5,a3=0.185 5,ζ= 0.014 34,局 部塊大小取15×15。本節(jié)從Flickr 和Getty Image網(wǎng)站和D-HAZY[31]數(shù)據(jù)集選取了白天有霧測(cè)試圖像運(yùn)用現(xiàn)有的主流去霧算法進(jìn)行去霧處理,將其結(jié)果和本文算法的恢復(fù)圖像進(jìn)行對(duì)比。
本文將圖像分成含天空區(qū)域和不含天空區(qū)域兩類進(jìn)行主觀質(zhì)量評(píng)價(jià)比較,所選擇的算法有Zhu 等的顏色衰減先驗(yàn)算法[16]、He 等的暗通道先驗(yàn) 算 法[10]、Berman 等 的 非 局 部 先 驗(yàn) 算 法[17]、Cai等的端對(duì)端神經(jīng)網(wǎng)絡(luò)算法[20],結(jié)果如圖7 和圖8所示。
對(duì)于不含天空區(qū)域的有霧圖像,去霧后的結(jié)果如圖7 所示。從第二和第三幅圖可以看出,Cai的算法無(wú)法徹底地去霧,尤其對(duì)于第三幅航拍圖像,本文的方法與其它方法相比能夠消除更多的霧。比較第一幅圖右上角紅樓處、第二幅圖的娃娃頭部以及第三幅圖下方的白樓處,Berman 算法恢復(fù)的結(jié)果顏色出現(xiàn)失真的現(xiàn)象。He 算法、Zhu 的算法和本文算法對(duì)于不含天空區(qū)域的圖像都具有良好的去霧效果。
圖7 不含天空?qǐng)D像去霧算法比較Fig.7 Comparison of the dehazing methods without sky
圖8 為含有不同顏色天空區(qū)域的圖像去霧效果比較。Cai 算法在有天空的場(chǎng)景中同樣保留了許多霧的成分。從圖8(c)的第一和第二幅圖、圖8(d)第二和第三幅圖中可以看出,He 算法和Berman 算法在天空區(qū)域的處理會(huì)出現(xiàn)明顯的顏色失真現(xiàn)象,天空區(qū)域的恢復(fù)看起來(lái)不真實(shí),特別是圖8(c)的第二幅圖產(chǎn)生了大量的光暈現(xiàn)象,本文算法相比于其它算法在天空區(qū)域的顏色恢復(fù)效果更真實(shí)自然。比較第三幅圖的左下角的灰色樓房區(qū)域,Zhu 算法和Cai 的算法在該區(qū)域細(xì)節(jié)恢復(fù)不清晰。Zhu 在第四幅圖黑色帽子周?chē)a(chǎn)生了白色光暈。在第一和第四幅圖的遠(yuǎn)處場(chǎng)景,本文算法去霧效果更好,能夠更清楚地觀察細(xì)節(jié)??傊?,本文算法可以適用于不同類型的圖像,在含有天空和不含有天空的有霧圖像中不僅都能實(shí)現(xiàn)有效地去霧,而且可以完整復(fù)原圖像各處的細(xì)節(jié)和顏色,更好地解決了天空區(qū)域的恢復(fù)問(wèn)題。但本文的算法也存在著一定的缺點(diǎn),例如,部分圖像如第一和第四幅圖像顏色恢復(fù)之后存在飽和度偏高的現(xiàn)象,這需要在之后的工作中進(jìn)一步解決。另外,在霧氣濃度估計(jì)模型中加入梯度因素可更清晰地體現(xiàn)出原圖像模糊或者暗處的細(xì)節(jié),通過(guò)適當(dāng)?shù)木€性參數(shù)還能更好地平衡圖像的整體亮度和顏色。
圖8 含天空白天圖像去霧算法比較Fig.8 Comparison of the dehazing methods with sky
經(jīng)過(guò)以上實(shí)驗(yàn)中圖像主觀質(zhì)量評(píng)價(jià)比較后,為了更全面地驗(yàn)證去霧效果,本文采用圖像盲評(píng)價(jià)和結(jié)構(gòu)相似度方法,從圖像細(xì)節(jié)、顏色、對(duì)比度以及結(jié)構(gòu)信息等角度來(lái)衡量圖像質(zhì)量的好壞。
圖像盲評(píng)價(jià)指標(biāo)是Hautiere 等人[34]所提出的用于霧天復(fù)原圖像質(zhì)量的評(píng)價(jià)參數(shù)指標(biāo),利用原始有霧圖像與恢復(fù)后的去霧圖像的新可見(jiàn)邊數(shù)比e、可見(jiàn)邊梯度比r等評(píng)價(jià)圖像的去霧效果。大多數(shù)情況下,e和r值越大,說(shuō)明圖像的邊緣和細(xì)節(jié)增強(qiáng)越明顯,進(jìn)而增加了圖像的清晰度,原始圖像的復(fù)原效果越好。圖像結(jié)構(gòu)相似度(Structural Similarity Index Measurement,SSIM)方法可以用來(lái)度量圖像的結(jié)構(gòu)。峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)方法是通過(guò)計(jì)算復(fù)原圖像與參考標(biāo)準(zhǔn)圖像的對(duì)應(yīng)像素點(diǎn)全局差異大小來(lái)量化圖像質(zhì)量。PSNR 值越大,表明復(fù)原圖像與參考標(biāo)準(zhǔn)圖像之間的失真程度越小,圖像恢復(fù)效果越好。Jobson 等人[35]提出了統(tǒng)計(jì)特征參數(shù)H,可用來(lái)測(cè)量色彩的恢復(fù)程度。通常情況下,SSIM 值越大表示圖像結(jié)構(gòu)越完整,H值越小就代表色彩保真度會(huì)越高。表1 利用圖8 中的四幅有霧圖像對(duì)比了其它去霧算法與本文算法去霧結(jié)果的評(píng)價(jià)參數(shù)e,r和H。表2 利用圖9 中的四幅有霧圖像和對(duì)應(yīng)的無(wú) 霧圖像獲得參數(shù)PSNR 和SSIM。
圖9 有霧圖像和對(duì)應(yīng)的無(wú)霧圖像Fig.9 Hazy images and the corresponding ground truth images
從表1 參數(shù)e和r值的比較來(lái)看,本文算法的e值比其它算法更大一些,r值僅僅比Berman算法更低一些,說(shuō)明本文算法在圖像去霧,對(duì)比度和細(xì)節(jié)表現(xiàn)方面同樣有著很高的水準(zhǔn),表現(xiàn)較為均衡。比較所有算法的H值,可以發(fā)現(xiàn)在第2 和第3 幅圖中,本方法的H值更低,說(shuō)明在含有非藍(lán)色的天空的圖像顏色恢復(fù)上普遍較好。但對(duì)于含有藍(lán)色的天空的圖像(第1 和第4幅圖)H值更高,本文算法結(jié)果出現(xiàn)飽和度偏高的現(xiàn)象,這是因?yàn)樗岢龅乃惴ㄊ菍?duì)整體的圖像深度作估計(jì),并沒(méi)有局部進(jìn)行優(yōu)化,會(huì)導(dǎo)致在圖像局部的透射率估計(jì)存在一些偏差,在以后的工作中我們會(huì)進(jìn)一步改進(jìn)優(yōu)化方法。
表1 圖像質(zhì)量評(píng)價(jià)參數(shù)比較Tab.1 Comparison of the parameters of image quality assessment
通過(guò)對(duì)表2 中的數(shù)據(jù)進(jìn)行分析,本文的算法的PSNR 值僅在第一幅圖中接近并低于Berman 算法,第一和第二幅圖的SSIM 值略小于Berman 算法,其它圖像中均略高于另外幾種算法。這說(shuō)明本文算法表現(xiàn)出了高質(zhì)量的去霧效果,圖像的結(jié)構(gòu)恢復(fù)更加完整,失真程度更小,對(duì)比度增強(qiáng)明顯,細(xì)節(jié)清晰,顏色自然??傊?,本文的算法可以適用于不同類型的圖像,不僅可以有效處理含有薄霧或較濃的霧的圖像,還能復(fù)原含有天空和不含有天空的圖像。利用本文方法最終可以獲得去霧效果明顯,高質(zhì)量的復(fù)原圖像。
表2 PSNR 和SSIM 參數(shù)比較Tab.2 Comparison of PSNR and SSIM values
為了驗(yàn)證算法的運(yùn)行速率,本節(jié)選取了圖8所示的四幅測(cè)試圖像進(jìn)行算法的運(yùn)行時(shí)間比較。每一幅圖像的大小和每個(gè)算法測(cè)試時(shí)間如表3 所示。從運(yùn)行時(shí)間結(jié)果中不難看出,本文算法的運(yùn)行速度僅次于Zhu 算法,相比于另外三種算法運(yùn)行耗時(shí)更少。這說(shuō)明本文所提出的算法的運(yùn)行速率與其它主流算法相當(dāng),可以推測(cè)本文算法在經(jīng)過(guò)算法優(yōu)化或是經(jīng)硬件加速后可以滿足實(shí)時(shí)性的要求。在未來(lái)的研究工作中,我們將進(jìn)一步驗(yàn)證算法的實(shí)時(shí)性。
表3 圖像去霧算法運(yùn)行時(shí)間比較Tab.3 Comparison of running time of image dehazing algorithms
本文針對(duì)圖像去霧中存在的天空區(qū)域圖像恢復(fù)失效的問(wèn)題,提出了圖像天空區(qū)域分割的方法,并分別進(jìn)行天空區(qū)域和非天空區(qū)域的透射率估計(jì)。針對(duì)霧氣濃度估計(jì)精度不足的問(wèn)題,提出了線性霧氣濃度估計(jì)模型解決了在非天空區(qū)域的透射率估計(jì)問(wèn)題。實(shí)驗(yàn)結(jié)果表明,本文算法在天空區(qū)域圖像恢復(fù)效果良好,去霧徹底且不存在顏色失真現(xiàn)象,非天空區(qū)域去霧效果表現(xiàn)良好,圖像細(xì)節(jié)體現(xiàn)更加清晰,整體圖像復(fù)原比較理想。雖然本文算法的運(yùn)行速度僅次于Zhu算法,但從圖像的去霧恢復(fù)效果來(lái)看,本文算法的圖像恢復(fù)質(zhì)量比Zhu 方法更高。另外,本文算法相比于另外三種算法運(yùn)行耗時(shí)更少,從圖像質(zhì)量評(píng)價(jià)指標(biāo)上來(lái)看,本文算法在不同場(chǎng)景下的去霧穩(wěn)定性優(yōu)于其它算法。綜上所述,本文所提出的算法運(yùn)行速率快,去霧效果明顯,適用于圖像去霧領(lǐng)域。