康彩新,張道康,蘭時(shí)勇,2+
(1.四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都 610065; 2.四川大學(xué) 視覺合成圖形圖像技術(shù)國防重點(diǎn)學(xué)科實(shí)驗(yàn)室,四川 成都 610065)
在戶外氣象條件不佳時(shí),由于大氣中存在的懸浮顆粒產(chǎn)生的散射作用,景物反射的光線在一定程度上受到衰減,導(dǎo)致圖像中一些場景的信息丟失,嚴(yán)重影響了后期圖像處理的工作。目前的圖像去霧技術(shù)分為使用深度學(xué)習(xí)的去霧方法和傳統(tǒng)的圖像去霧,傳統(tǒng)的去霧技術(shù)主要分為兩大類:第一類是利用圖像增強(qiáng)方法,如直方圖均衡化、色彩恒常性以及視網(wǎng)膜皮層 (Retinex)理論圖像增強(qiáng)[1]等方法。第二類基于大氣散射模型,用先驗(yàn)信息復(fù)原有霧圖像的方法被提出。如Fattal等[2]的方法。He等[3]通過對無霧圖像的觀察,提出暗原色先驗(yàn)規(guī)律,來估計(jì)大氣透射率以及全局大氣光,取得了不錯(cuò)的去霧效果。然而,由于天空區(qū)域亮度較高,暗原色先驗(yàn)在天空區(qū)域失效。因此一些改進(jìn)方法被提出。舒巧玲等[4]通過建立含多正則化約束變分模型對透射率優(yōu)化,并引入容差機(jī)制對明亮區(qū)域透射率進(jìn)行修正。王柯儼等[5]使用多閾值天空分割方法分割天空,然后分別估計(jì)兩類區(qū)域的透射率,其方法較為復(fù)雜,盧輝斌等[6]通過亮通道和暗通道分別計(jì)算出的大氣光值,加權(quán)結(jié)合來估計(jì)全局大氣光,得到了更精確的大氣光估計(jì)值,而其僅在估計(jì)大氣光時(shí)應(yīng)用亮通道,有一定局限性。
針對暗原色先驗(yàn)存在的圖像中高亮區(qū)域去霧過處理、場景景深關(guān)系還原不佳,以及引導(dǎo)濾波窗影響景物邊緣處的透射率估計(jì),進(jìn)而影響準(zhǔn)確性的問題,本文提出主要的創(chuàng)新工作如下:
(1)本文考慮巧妙采用對RGB亮通道取反,改進(jìn)大氣透射率估計(jì),使高亮區(qū)估計(jì)得到的透射率增大,進(jìn)而使此處的去霧力度減弱,避免明亮區(qū)域被過度增強(qiáng),以減少大氣光值的影響,使其符合觀感常規(guī)特性不被破壞。而且,正因考慮采用亮通道取反處理自適應(yīng)修正大氣透射率估計(jì),還可以對不同景深深度的景物施予自適應(yīng)的去霧力度,使復(fù)原結(jié)果可以更好體現(xiàn)景深特性,保留景物的層次感;
(2)在透射率估計(jì)過程中,本文引入邊緣因子,抑制因引導(dǎo)濾波局部窗導(dǎo)致的所估計(jì)獲取的透射圖的塊效應(yīng),以更清晰復(fù)原圖像的景物邊緣細(xì)節(jié)。
本文的實(shí)驗(yàn)對比分析表明,改進(jìn)方法使暗通道方法的去霧效果有了顯著提升,便于人眼的主觀視覺觀察以及計(jì)算機(jī)的后續(xù)處理,驗(yàn)證了所提算法的有效性。
在計(jì)算機(jī)視覺和圖形領(lǐng)域中,廣泛應(yīng)用于有霧圖像的大氣散射模型[7,8]為
I(x)=J(x)t(x)-A(1-t(x))
(1)
其中,I(x)為成像設(shè)備獲取到的有霧圖像;J(x)為無霧圖像;A為全局大氣光;t(x)為大氣透射率。
為了求得J(x),He等[5]基于對戶外大量無霧圖像統(tǒng)計(jì)觀察,發(fā)現(xiàn)了暗原色先驗(yàn),即圖像RGB這3個(gè)通道中的最小值往往接近于零。這是由于景物的陰影、黑色物體和具有鮮艷顏色的物體所造成的?;诖怂岢隽税翟闰?yàn)?zāi)P?/p>
(2)
其中,Ω(x)是以x為中心的一個(gè)方形窗口,Jc是J的一個(gè)RGB 顏色通道,Jdark是暗通道圖像,其值往往被估計(jì)為0。
而對于全局大氣光A,He等[3]借助于暗通道圖來從有霧圖像中獲取該值。首先從暗通道圖中按照亮度的大小取前0.1%的像素,往往是圖像中霧最濃的像素。在這些位置中,在原始有霧圖像I中尋找對應(yīng)的具有最高亮度的點(diǎn)的值作為全局大氣光A的值。
利用暗原色先驗(yàn)?zāi)P?,估?jì)得到的大氣透射率t(x)和全局大氣光A,可以得到透射率t(x)
(3)
其中,ω用來修正去霧程度,一般取值為ω=0.95,上標(biāo)c表示在R/G/B這3個(gè)通道中。
最終恢復(fù)的圖像的表達(dá)式為
(4)
其中,t0為防止透射率t(x)值過小設(shè)置的閾值,一般設(shè)置為t0=0.1。
使用暗原色先驗(yàn)對圖像進(jìn)行去霧處理,可以得到不錯(cuò)的效果,然而此方法也存在一些不足:
(1)天空區(qū)域的處理問題一直是長期困擾圖像去霧領(lǐng)域的難題。同樣,由于天空區(qū)域像素通道值比較大,并不適用暗原色先驗(yàn),此方法對帶有天空區(qū)域的圖像處理效果不佳,其所估計(jì)的透射率比實(shí)際值偏小,造成色彩失真等問題;
(2)由于直接由暗通道得到的透射圖不夠精細(xì),直接帶入計(jì)算會產(chǎn)生明顯的塊效應(yīng),He等先后采用軟摳圖算法[3]以及引導(dǎo)濾波[9]對透射率分布圖進(jìn)行優(yōu)化。但由于景物邊緣進(jìn)行濾波時(shí),濾波窗口同時(shí)包含景物中以及非景物的信息,處理過的透射圖仍有一些塊效應(yīng),并且在物體邊緣處理不夠精細(xì),存在一些光暈。
針對上述存在的暗原色先驗(yàn)圖像去霧算法在天空區(qū)域失效,以及引導(dǎo)濾波窗影響景物邊緣處的透射率估計(jì)的問題,本文提出了一種RGB亮通道取反的自適應(yīng)修正暗原色先驗(yàn)去霧算法,算法流程如圖1所示。具體而言,先對有霧圖像的RGB通道中最亮通道進(jìn)行取反處理,之后計(jì)算暗通道估計(jì)值;然后,進(jìn)行全局大氣光的估計(jì)時(shí),計(jì)算最亮0.1%的像素的均值;其次,采用使用canny算子提取圖像的邊緣信息,對導(dǎo)向?yàn)V波的方法進(jìn)行修正,進(jìn)而使用大氣散射模型對有霧圖像進(jìn)行復(fù)原,得到最終的去霧圖像。
傳統(tǒng)的方法在計(jì)算暗通道時(shí),直接對原始有霧圖像進(jìn)行最小值濾波處理,而對于存在天空區(qū)域、水面等大面積明亮區(qū)域以及霧氣過于濃厚的圖像,它們對應(yīng)區(qū)域的像素值較大,難以找到像素值接近于0的暗原色,即不符合暗原色先驗(yàn)的預(yù)設(shè)條件。在使用He等的方法[3]直接處理時(shí),天空區(qū)域的恢復(fù)圖像往往并不理想,去霧處理后會產(chǎn)生色彩失真、飽和度過高以及嚴(yán)重的光暈問題。而后期改進(jìn)的方法如王柯儼等[5],往往需要將天空部分進(jìn)行分離單獨(dú)處理,處理過程較為繁雜,效果欠佳。
對于以上問題,我們對有霧圖像中的高亮區(qū)域進(jìn)行分析,天空區(qū)域的圖像往往具有相同特征,性質(zhì)相似,并沒有太多的細(xì)節(jié)要素,使用暗原色先驗(yàn)對其進(jìn)行過度去霧處理的效果不佳,還會帶來光暈等負(fù)面效果。我們認(rèn)為不需要過分要求對其進(jìn)行過分去霧,適當(dāng)?shù)娜レF處理使其符合觀感和常規(guī)特性即可。在從He等[3]、Fattal等[2]的公開圖像數(shù)據(jù)集選取的具有天空區(qū)域的有霧圖像中,我們對有霧圖像中天空區(qū)域的特征進(jìn)行了統(tǒng)計(jì),數(shù)據(jù)得到的天空區(qū)域的RGB數(shù)值均值較高?;诜治鼋Y(jié)果,我們提出了對RGB通道中的最亮通道進(jìn)行取反計(jì)算的方法,來解決暗原色先驗(yàn)去霧方法在天空及高亮區(qū)域失效的問題。
由于天空部分的各通道數(shù)值較高,在最小值濾波后得到的數(shù)值相對非天空區(qū)域也更高,且不均勻。而在對RGB最亮通道取反(此后簡稱為“通道取反”)之后,最小值濾波后天空區(qū)域?qū)⒌玫浇咏?的較低的數(shù)值,由式(3)可知,估計(jì)得到的透射率t(x)將會較高,由式(4)可得,隨著t(x)的升高,多項(xiàng)式第一項(xiàng)的分母更靠近1,數(shù)值減小,從而減弱對這部分區(qū)域的去霧力度。所以通過取反的處理,我們可以有效篩選出天空區(qū)域以及其它高亮區(qū)域,降低對其去霧的效果,增大該區(qū)域的透射率,抑制明亮區(qū)域過度增強(qiáng),以減少大氣光值的影響,使其符合觀感和后期處理的需求,保證其常規(guī)特性不被破壞。
通道取反公式為
(5)
同時(shí),取反處理對非天空區(qū)域的去霧效果也有一定增益。傳統(tǒng)的暗通道去霧對不同距離的景物進(jìn)行相同程度處理,試圖使景物清晰,但喪失了圖片的景深特性。在有霧圖像中,隨著景物距離的增加,其與觀察者之間的霧氣厚度也將增加,取反處理可以對不同深度的景物產(chǎn)生不同程度的修正效果。介質(zhì)透射率t(x)描述了未被散射并直接到達(dá)相機(jī)的光部分。t(x)的定義為
t(x)=exp(-βd(x))
(6)
其中,d(x)是從場景點(diǎn)到攝像機(jī)的距離,β是大氣散射系數(shù)。具體而言,由式(6)可知,對于距離近的景物,其d(x)較小,即透射率較高,而由式(3),透射率t(x)與暗通道值成反比,則其對應(yīng)的暗通道值較低,最亮通道取反對其暗通道值影響不大;而對于距離較遠(yuǎn)的景物,其d(x)較大,則透射率較低,對應(yīng)的暗通道值較高,取反將創(chuàng)造較小暗通道值,從而減弱其去霧效果,增強(qiáng)其距離感。即去霧力度會隨景深的增加而削弱,從而得到更真實(shí)的復(fù)原效果。具體表現(xiàn)在其復(fù)原結(jié)果可以更好的體現(xiàn)圖片的景深,保留景物的層次感,維持遠(yuǎn)處景物恰當(dāng)?shù)撵F氣的效果。
我們將式(3)進(jìn)行修改,去掉原有的去霧程度修正系數(shù)ω,改用RGB最亮通道取反后的圖像來調(diào)節(jié)每張圖像不同區(qū)域的去霧程度,新的公式為
(7)
因最亮通道取反對顏色、明暗不同的區(qū)域,帶來的影響不同,去霧力度不同,增強(qiáng)了細(xì)節(jié)和顏色差異,所以,取反處理后的去霧圖像顏色自然、對比度高,有更好的觀感和細(xì)節(jié)。
He等[3]對大氣光進(jìn)行估計(jì)方法為,首先求得暗通道圖,從中按照亮度的大小,取亮度最大的0.1%的像素。對應(yīng)這些像素的位置,在原始有霧圖像中尋找對應(yīng)的具有最高亮度的點(diǎn)的值,作為全局大氣光的值。而由于非天空區(qū)域的圖像中可能存在鏡面等較大塊明亮物體,其亮度超過天空區(qū)域,可能造成大氣光值的錯(cuò)誤估計(jì),導(dǎo)致去霧圖像顏色異常等問題。且傳統(tǒng)方法[3]中的A最終是取原始像素中的某一個(gè)點(diǎn)的像素,這樣各通道的A值很有可能全部很接近255,會造成處理后的圖像偏色和出現(xiàn)色斑。為了提高大氣光估計(jì)值的準(zhǔn)確度,本文首先基于RGB最亮通道取反后的暗通道值,并使用暗通道圖像中,亮度最大的0.1%的像素,對應(yīng)位置的原圖像中的均值,作為全局大氣光的估計(jì)值,以此得到更合適的全局大氣光估計(jì)值。
由于將透射率t(x)直接帶入計(jì)算會產(chǎn)生明顯的塊效應(yīng),為了消除去霧圖像產(chǎn)生的塊效應(yīng),He等采用軟摳圖算法[3]對透射率分布圖進(jìn)行優(yōu)化,之后改進(jìn)為使用引導(dǎo)濾波替代軟摳圖處理[9],較大地提高了處理效率。但處理過的透射圖仍有一些塊效應(yīng),并且在物體邊緣處理不夠精細(xì),存在一些光暈。這是因?yàn)樵诰拔镞吘夁M(jìn)行濾波時(shí),濾波窗口同時(shí)包含景物及非景物的信息,使透射率圖的邊緣變得模糊,從而使去霧復(fù)原圖像的景物邊緣出現(xiàn)光暈。
本文沿用導(dǎo)向?yàn)V波的方法,并對處理步驟做了調(diào)整。首先,使用canny算子提取有霧圖像景物的邊緣信息,之后,在最小值濾波后的透射率圖中,對景物邊緣進(jìn)行弱化,去除錯(cuò)誤估計(jì)的邊緣信息,其計(jì)算公式為
tcanny(x)=tmin(x)-εy(x)
(8)
其中,tmin(x)為最小值濾波計(jì)算出的初始透射率數(shù)值,y(x)為使用canny算子提取的景物邊緣信息,ε是邊緣弱化因子,本文通過實(shí)驗(yàn)調(diào)試,并結(jié)合峰值信噪比等參數(shù)信息,取ε=0.3,對初始透射率數(shù)值進(jìn)行修正。最后,再使用導(dǎo)向?yàn)V波對tcanny(x)進(jìn)行細(xì)化,得到最終的透射率估計(jì)值。使透射率估計(jì)結(jié)果更加精細(xì),減少了圖像中景物邊緣的光暈,得到更高質(zhì)量的復(fù)原圖像。
為了驗(yàn)證本文方法的去霧效果,通過從透射率的估計(jì)結(jié)果、去霧細(xì)節(jié)以及景深改進(jìn)以及整體去霧主觀效果和客觀去霧指標(biāo)幾個(gè)方面將本文方法與文獻(xiàn)[3,6,10,11]的方法進(jìn)行對比。測試圖片來源于He等[3]、Fattal等[2]的公開圖像數(shù)據(jù)集。在2.3 GHz四核Intel Core i5處理器的電腦下運(yùn)行,本文采用的最小值濾波窗口大小為20*20像素。
圖2為在9*9濾波窗口下文獻(xiàn)[3]與本文最小值濾波后透射率估計(jì)結(jié)果對比,使用文獻(xiàn)[3]原始方法得到的透射圖在高亮區(qū)域暗通道數(shù)值估計(jì)過高,透射率估計(jì)值較低。RGB最亮通道取反的透射圖與原始的暗通道透射圖對比,可以發(fā)現(xiàn)在取反之后天空區(qū)域的暗通道值下降,透射率估計(jì)圖更高,更符合天空的去霧處理要求,這樣有效改善了在復(fù)原圖中去霧圖片產(chǎn)生明顯的光暈效果的缺點(diǎn)。另外在非天空區(qū)域,取反操作調(diào)節(jié)了對景物的去霧力度,并且可以看到景物的透射率估計(jì)值更加精細(xì),層次分明且輪廓清晰,擁有豐富的細(xì)節(jié)。
圖3為取反前后的去霧結(jié)果對比,在天空區(qū)域,未做取反處理的去霧圖片產(chǎn)生明顯的光暈效果,在非天空區(qū)域,未做取反處理的去霧圖像顏色偏暗,細(xì)節(jié)模糊,難以分辨景物的輪廓。經(jīng)過取反處理后的去霧圖片,有效改善傳統(tǒng)暗通道去霧方法天空部分產(chǎn)生色彩失真以及產(chǎn)生光暈等問題,在非天空區(qū)域還原有霧圖像的更多細(xì)節(jié),景物輪廓清晰,去霧后圖像色彩更為真實(shí),得到更好的去霧還原效果。
同時(shí),在現(xiàn)實(shí)生活中,即使是晴朗的天氣,空氣中也存在著一些顆粒,因此,看遠(yuǎn)處的物體還是能感覺到霧的影響,霧的存在讓人類感到景深的存在,有必要在去霧的時(shí)候保留一定程度的霧。在Image1中可以看到在圖3(b)中圖框圈出的區(qū)域,遠(yuǎn)處圖像的霧得到一定程度的保留,體現(xiàn)了景物的層次感,使圖像更加真實(shí)。而在圖3(a)中,相同區(qū)域中的景物過度的去除了霧,邊界模糊且難以分辨距離遠(yuǎn)近,景深特征丟失。在Image2(b)中框出區(qū)域,屋頂和樹林的輪廓清晰,樹林與遠(yuǎn)處景物邊界分明,圖片富有層次,可以分辨景物的遠(yuǎn)近,而圖3(a)中還原圖像模糊不清,屋頂恢復(fù)效果昏暗,難以分辨景物輪廓。
如圖4為在15*15濾波窗口下原始導(dǎo)向?yàn)V波與修正后的導(dǎo)向?yàn)V波結(jié)果對比,文獻(xiàn)[9]的透射率先由最小值濾波估計(jì)出,再經(jīng)過導(dǎo)向?yàn)V波細(xì)化,其處理過的透射圖仍有一些塊效應(yīng),并且在物體邊緣處理不夠精細(xì),存在一些光暈,一些細(xì)節(jié)丟失。本文使用canny算子提取有霧圖像景物的邊緣信息,并在最小值濾波后的透射率圖中去除錯(cuò)誤估計(jì)的邊緣信息,再進(jìn)行導(dǎo)向?yàn)V波,可以看到圖4(c)中的估計(jì)的透射率與圖4(b)相比,一定程度去除了景物邊緣的光暈,并且更清晰,包含更多細(xì)節(jié),使用修正后的透射圖進(jìn)行去霧可以得到更好的復(fù)原圖像。
為了驗(yàn)證本文方法的有效性,將處理結(jié)果與文獻(xiàn)[3]、文獻(xiàn)[6]、文獻(xiàn)[10]以及文獻(xiàn)[11]中的去霧算法的處理結(jié)果進(jìn)行比較,實(shí)驗(yàn)結(jié)果包括兩部分,第一部分進(jìn)行主觀視覺效果的對比,即將不同算法的去霧效果圖像進(jìn)行比較;第二部分利用客觀評價(jià)標(biāo)準(zhǔn)對不同算法的去霧結(jié)果進(jìn)行評估。
對比圖5中不同算法的去霧結(jié)果圖,文獻(xiàn)[3]的方法達(dá)到了一定的去霧效果,但去霧圖像缺失了邊緣細(xì)節(jié),且仍有一些霧殘余,并且在天空區(qū)域顏色失真,有明顯的光暈。文獻(xiàn)[10]的方法的去霧結(jié)果顏色失真明顯,天空顏色昏暗,有光暈現(xiàn)象,且對第3幅、第4幅圖像處理時(shí),復(fù)原圖像顏色出現(xiàn)上下顏色分層的情況,雖然其部分圖像的可見邊梯度平均值r較高,但其一定程度破壞了景深特性,為將遠(yuǎn)處的過度增強(qiáng)帶來的結(jié)果,但顏色對比度較低,影響了圖像的主觀視覺質(zhì)量;文獻(xiàn)[11]方法,基于DehazeNet神經(jīng)網(wǎng)絡(luò),復(fù)原結(jié)果中不存在偽影,沒有光暈,但是其圖像的去霧程度低,如第4幅圖像中較遠(yuǎn)的樓宇基本沒有被去霧,復(fù)原圖像中依舊有大量的霧存在;文獻(xiàn)[6]方法在估計(jì)大氣光時(shí)結(jié)合明通道和暗通道的估計(jì)值,在文獻(xiàn)[3]的基礎(chǔ)上進(jìn)行了改進(jìn),可以看到其去霧圖像對比度更高,細(xì)節(jié)更豐富,但其在天空區(qū)域仍存在一些光暈,以及部分景物色彩失真。圖5(f)為本文算法的處理結(jié)果,先對有霧圖像的RGB最亮通道進(jìn)行取反處理,避免了暗原色先驗(yàn)去霧方法在處理天空區(qū)域時(shí)顏色失真和出現(xiàn)光暈等不足,同時(shí)維持圖片的景深,使恢復(fù)圖像更真實(shí);大氣光的估計(jì)計(jì)算最亮0.1%的像素均值,得到更合適的全局大氣光估計(jì)值;并使用canny算子提取邊緣信息,修正導(dǎo)向?yàn)V波方法,得到更平滑的透射率結(jié)果,使復(fù)原圖像具有豐富的細(xì)節(jié),邊界清晰;去霧后的圖像整體顏色比較自然,邊緣細(xì)節(jié)保持較好,且保留了圖片的景深信息。
主觀評估容易受到個(gè)人因素的影響,本文進(jìn)一步計(jì)算了客觀評價(jià)指標(biāo)新增峰值信噪比PSNR、結(jié)構(gòu)相似性SSIM、以及文獻(xiàn)[12]中提出的可見邊梯度平均值r,對圖5中的圖像進(jìn)行評價(jià),其中PSNR通常用來評價(jià)一幅圖像經(jīng)過處理后和原圖像相比的失真程度,PSNR越高,圖像和原圖越接近;SSIM用于評價(jià)去霧后的圖像與原圖相比在結(jié)構(gòu)上的相似性,其更符合人眼對影像品質(zhì)的判斷,其數(shù)值越高代表相似程度越高,最大為1;可見邊梯度平均值r是計(jì)算去霧圖像與原圖像的可見邊平均梯度比來客觀的評價(jià)圖像的去霧效果,r的值越大,表明處理后的圖像邊緣強(qiáng)度越大,對比度越高。從表1的客觀評估值中可以看出,本文的去霧算法在綜合評價(jià)結(jié)果相對優(yōu)秀。從而說明本文算法具有一定的優(yōu)越性和較好的去霧效果。
表1 客觀評價(jià)
本文提出了一種RGB亮通道取反的自適應(yīng)修正暗原色先驗(yàn)去霧算法。在計(jì)算圖像暗通道時(shí),本文首先對RGB通道中最亮通道進(jìn)行取反處理,自適應(yīng)修正透射率的估計(jì)值,改善了天空區(qū)域去霧效果,使圖片符合觀感常規(guī)特性不被破壞。另外在非天空區(qū)域,保留了景物的層次感和景深信息,擁有豐富的細(xì)節(jié)。在全局大氣光估計(jì)時(shí),本文采用暗通道對應(yīng)原圖位置的最亮0.1%像素的均值,使大氣光估計(jì)更加準(zhǔn)確,圖像色彩更為真實(shí)。之后使用canny算子提取圖像的邊緣信息,修正導(dǎo)向?yàn)V波方法,得到更平滑的透射率結(jié)果,使去霧后圖像消除了邊緣光暈,輪廓清晰。實(shí)驗(yàn)結(jié)果表明,采用本文方法可以有效改善去霧圖像細(xì)節(jié),避免天空區(qū)域出現(xiàn)光暈、顏色失真以及過飽和等問題,得到更好的復(fù)原圖像。