張勇帥,彭莉婷
(武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065)
霧霾是由懸浮在大氣中的氣溶膠、微小顆粒和水滴等物質(zhì)形成的一種自然現(xiàn)象。該現(xiàn)象導(dǎo)致獲取的圖像嚴(yán)重降質(zhì),為了改善霧霾圖像的視覺(jué)效果[1-2],降低霧霾對(duì)圖像影響,因此研究有效快速的圖像去霧算法具有很重要的現(xiàn)實(shí)意義。
在單幅有霧圖像處理方法研究中,大多數(shù)去霧算法都是以該圖像滿足大氣散射模型為前提,利用對(duì)應(yīng)的含有圖像結(jié)構(gòu)信息的深度圖或者單獨(dú)的透射圖來(lái)輔助增強(qiáng)圖像的可見(jiàn)度。本文算法主要是基于暗通道先驗(yàn)知識(shí)和大氣散射模型的方法[3-4]。
He等人[5-6]提出的暗通道先驗(yàn),成為圖像去霧的主流算法[7-8]。文獻(xiàn)[9]通過(guò)聯(lián)合雙邊濾波估計(jì)大氣耗散函數(shù)間接求得透射率。Feng[10]等人使用貝葉斯估計(jì)的方法對(duì)透射率進(jìn)行優(yōu)化。Zhang[11]算法得到的透射率恢復(fù)出的圖像具有更好的視覺(jué)效果。但是算法在處理大面積天空區(qū)域時(shí),仍存在一定的偏色現(xiàn)象。
為此,本文提出了一種新的圖像去霧方法。通過(guò)采用直方圖均衡化和雙邊濾波透射率修正機(jī)制獲得新的透射率,來(lái)減少圖像去霧之后出現(xiàn)的光暈效應(yīng)。采用一種快速估計(jì)大氣光值法來(lái)修正大氣光值。該方法通過(guò)對(duì)圖像以小窗口滑動(dòng)進(jìn)行暗通道預(yù)處理得到候選大氣光值集合后再進(jìn)一步獲取大氣光值。這樣的改變能夠快速的得到大氣光值并且,在圖像去霧的同時(shí),還可以使圖像整體具有更好的視覺(jué)效果。
在計(jì)算機(jī)視覺(jué)和計(jì)算機(jī)成像中,通常使用大氣散射模型[12]描述在光照和霧霾共同作用下的圖像成像機(jī)制,具體表示如下方法
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中,x表示單個(gè)像素坐標(biāo)。I(x)是有霧圖像在像素點(diǎn)的亮度,J(x)是清晰圖像,A代表大氣光強(qiáng),t(x)∈[0,1]是大氣反射光的透射率,其中透射率t(x)=e-βd(x)。根據(jù)大氣散射模型可知,圖像去霧就是通過(guò)估計(jì)大氣光值和透射率來(lái)獲得無(wú)霧圖像[13-15]。
He等人通過(guò)大量統(tǒng)計(jì),發(fā)現(xiàn)在絕大多數(shù)戶外自然場(chǎng)景視頻幀中非天空部分的無(wú)霧圖像中局部區(qū)域里的某些像素點(diǎn),至少有一個(gè)顏色通道的強(qiáng)度值很低且接近于零,進(jìn)而他提出了暗通道先驗(yàn)去霧模型。暗通道表示如下方法:
(2)
在(2)中J(y)表示無(wú)霧圖像的每個(gè)通道,Ω(x)表示以像素x為中心的一個(gè)局部鄰域。將方程(1)兩側(cè)進(jìn)行局部鄰域Ω(x)內(nèi)的最小值濾波處理,得到如下方法
(3)
由式(2)和式(3)可以得到粗略透射率t(x)如下方法
(4)
由于日常在無(wú)霧天氣下,空氣中也會(huì)有小顆粒存在,致時(shí)人眼觀看遠(yuǎn)處的景物具有深度信息。因此,在式(4)中引入一個(gè)值在[0,1]之間的因子,則式(4)如下方法
(5)
假設(shè)秋的大氣光值,根據(jù)方程(1)和方程(5)就可以將圖像恢復(fù)至無(wú)霧的圖像
(6)
根據(jù)暗通道先驗(yàn)算法估計(jì)初始透射率,即直接參與無(wú)霧圖像恢復(fù),恢復(fù)的圖像存在嚴(yán)重的光暈現(xiàn)象,如圖1。
圖1 直接去霧出現(xiàn)的光帶效應(yīng)
從圖1(c)和(d)中可以看到,圖像邊緣存在嚴(yán)重的Halo效應(yīng)[11]。
由暗通道先驗(yàn)原理及大氣散射模型可知,想要獲得I(x),如何快速的準(zhǔn)確的求出透射率t(x)和大氣光值A(chǔ)就是最為關(guān)鍵的[16-18]。本文算法就是通過(guò)優(yōu)化兩個(gè)未知參數(shù)的求解來(lái)達(dá)到去霧的最好效果。本文算法的流程圖如圖2。
圖2 算法流程
對(duì)于透射率的求解,文獻(xiàn)[9]中選取原有霧圖像的3個(gè)通道的均值作為引導(dǎo)圖進(jìn)行濾波,會(huì)使得霧區(qū)的透射率偏大,由式(6)可知,偏大的透射率將導(dǎo)致算法去霧能力減弱。所以修正透射率是很有必要的。有研究發(fā)現(xiàn),在最小值圖像中含有大量有霧圖像的細(xì)節(jié)信息,且對(duì)原圖像做最小值處理可以有效降低算法的時(shí)間復(fù)雜度。因此,先對(duì)有霧原圖像做最小值運(yùn)算:
(7)
將最小值圖像作為初始透射率的引導(dǎo)圖進(jìn)行引導(dǎo)濾波,求得粗略透射率的值,初始透射率圖見(jiàn)圖3(b)??梢钥吹浇?jīng)過(guò)最小值濾波處理后圖像仍有大量霧霾噪聲,在投射圖的遠(yuǎn)景區(qū)域透射率仍然偏大。因此,需要對(duì)最小值圖像做進(jìn)一步處理。
圖3 最小值處理結(jié)果對(duì)比
對(duì)最小值圖像進(jìn)行直方圖均衡化處理,可使原本比較少像素的灰度分配到其它的灰度中,處理后灰度范圍變大,對(duì)比度變大,能有效提高了圖像細(xì)節(jié)。通過(guò)直方圖均衡化的方式,可以提高最小值圖像的對(duì)比度,達(dá)到了對(duì)最小值圖像去霧的效果,減少霧對(duì)最小值圖像的污染。
直方圖均衡化后的最小值圖像如圖4(a),方法如下
V′(x)=histeq(V(x))
(8)
圖4 在最小值基礎(chǔ)上直方圖均衡化與雙邊濾波處理
對(duì)比圖3(b)和圖4(a),可以明顯得到對(duì)比度更高的最小值圖像。將圖4(a)作為引導(dǎo)圖,對(duì)透射率圖像進(jìn)行引導(dǎo)濾波,所得到的細(xì)化的透射率如圖5(b)所示。通過(guò)對(duì)比圖5(a)和圖5(b),可見(jiàn)遠(yuǎn)景區(qū)域的透射率明顯小很多。而且圖5(b)透射率的層次感分明,克服了[7]中對(duì)遠(yuǎn)景區(qū)域透射率估計(jì)過(guò)大而導(dǎo)致恢復(fù)圖像顏色失真的問(wèn)題。將直方圖均衡化后的最小值濾波作為引導(dǎo)圖細(xì)化透射率,得到直方圖均衡化引導(dǎo)透射率。雖然較最小值圖像直接做引導(dǎo)圖得到的透射率圖要好,但是仍然具有很強(qiáng)的紋理效應(yīng),這時(shí)用上雙邊濾波,既能保持圖像的邊緣細(xì)節(jié),又能很好地平滑圖像。
圖5 不同引導(dǎo)圖透射率圖像
雙邊濾波的計(jì)算公式簡(jiǎn)單表示為
V″(x)=Bil(V′(x))
圖4(a)經(jīng)過(guò)雙邊濾波之后產(chǎn)生的圖像如圖4(b)所示,原方框中紋理效應(yīng)得到了明顯抑制。將圖4(b)作為引導(dǎo)圖像細(xì)化透射率,其結(jié)果如圖5(c)所示。對(duì)比圖5(b)和圖5(c),可明顯的觀察到圖5(c)中原矩形框區(qū)域內(nèi)的紋理效應(yīng)被濾除,且近景部分的邊緣完好的保存了下來(lái)。綜合3.2節(jié)和3.3節(jié)可以得出透射率求解步驟如下:
1) 對(duì)有霧圖像進(jìn)行最小值處理,得到最小值圖像V。
2) 利用最小值圖像V計(jì)算有霧圖像I(x)的暗通道圖像,并得到初始透射率t′。
3) 將最小值圖像進(jìn)行直方圖均衡化得到V′,再經(jīng)雙邊濾波處理,得到V″。
4) 將V″作為引導(dǎo)圖對(duì)t′進(jìn)行引導(dǎo)濾波,得到細(xì)化后的透射率圖t。
在文獻(xiàn)[9]中估計(jì)大氣光值A(chǔ)需要進(jìn)行排序操作,會(huì)導(dǎo)致一個(gè)很大的計(jì)算量。采用一種候選估計(jì)法來(lái)修正大氣光值。該方法通過(guò)多次對(duì)大氣光值的選取和確定能夠快速的得到大氣光值,算法流程圖如圖6。
圖6 大氣光值快速估計(jì)法步驟圖
由圖6可看出,快速大氣光值估計(jì)法的步驟如下:
(9)
式(9)中,Ωs(x)是一個(gè)3×3×3的RGB窗口。
(10)
式中,SW(x)是一個(gè)10×10的正方形滑動(dòng)窗口,它能防止暗通道先驗(yàn)?zāi)P痛嬖诰植孔钚≈祮?wèn)題。
5)大氣光值估計(jì)值就是集合D中最大值。
(11)
在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn)天空邊緣會(huì)出現(xiàn)明顯的過(guò)度區(qū)域,為此我增加了一個(gè)最大全球大氣光值A(chǔ)max當(dāng)計(jì)算值超過(guò)Amax時(shí)大氣光值直接取該值。與He的估算法相比,該方法可以節(jié)省大量的計(jì)算資源,還能快速獲得更加準(zhǔn)確的大氣光值。
由于大氣光成分參與成像,從而復(fù)原出來(lái)的圖像比實(shí)際要偏暗[19]。為了改善去霧之后圖片顏色暗淡的情況,采用直接非線性方法對(duì)圖像進(jìn)行后處理。該方法在圖像的顏色通道中對(duì)亮度的大小采用不同幅度的拉伸。
(12)
通過(guò)獲取不同通道的像素亮度mean(I(x,y,:))構(gòu)成拉伸因子可以圖像亮度。因子的存在還可以在改變亮度的同時(shí)保留圖像顏色。非線性拉伸圖像增強(qiáng)方法的具體效果如圖6所示,將圖7中的部分細(xì)節(jié)放大顯示出來(lái),發(fā)現(xiàn)細(xì)節(jié)保持的更好,顏色更清晰,對(duì)比度更加明顯。
圖9 去霧效果比較
圖7 非線性拉伸前后圖像細(xì)節(jié)增強(qiáng)的對(duì)比圖
圖8 增強(qiáng)細(xì)節(jié)展示
本組實(shí)驗(yàn)用不同的算法分別對(duì)(Canon,Brand,City_1,City_2,Trees)5幅圖像進(jìn)行去霧,去霧效果對(duì)比如圖9。
結(jié)果顯示(b)對(duì)天空區(qū)域的透射率估計(jì)不夠準(zhǔn)確,會(huì)伴隨著“halo效應(yīng)”;(c)相比之前的方法減弱了光暈,保持了飽滿的深度信息,但是算法結(jié)果容易產(chǎn)生色彩偏色等不良效果,圖片效果顯示過(guò)飽和。(c)中圖片曝光率很高,導(dǎo)致圖像失真;(d)使用貝葉斯估計(jì)的方法對(duì)透射率進(jìn)行優(yōu)化,圖像效果不是很穩(wěn)定;(e)讓原圖通過(guò)直方圖均衡化和雙邊濾波之后,再通過(guò)引導(dǎo)濾波,從而來(lái)修正粗略透射率。實(shí)驗(yàn)結(jié)果顯示在天空區(qū)域的去霧效果還存在誤差;(f)為本文的算法去霧結(jié)果圖,通過(guò)流程的優(yōu)化本文算法在Contrast指標(biāo)上有很大提升,在SSIM指標(biāo)上也有相應(yīng)的提高,效果圖綜合去霧效果最好。
本文使用到3個(gè)參數(shù),對(duì)比度(Contrast)、信息熵(Entropy)、結(jié)構(gòu)相似度(SSIM)、前兩個(gè)指標(biāo)值代表圖像所包含的有效信息量越大越好,結(jié)構(gòu)相似度代表兩個(gè)目標(biāo)圖像的結(jié)構(gòu)信息關(guān)聯(lián)度最大值趨于1[20]。
表1數(shù)據(jù)顯示去霧后圖片的信息熵平均提高了0.4447,可以有效的保留圖像中的細(xì)節(jié)信息。在圖像后處理方面由數(shù)據(jù)可知與其他文獻(xiàn)方法對(duì)比圖像對(duì)比度平均提高了19.0429,可以在有效保留圖像顏色信息的基礎(chǔ)上獲得更好的圖像效果。在結(jié)構(gòu)相似度方面平均提升0.02,確保了在提升其它性能的基礎(chǔ)上仍有效保持原圖像的結(jié)構(gòu)信息。此外還對(duì)He、Zhang、的方法與本文做了性能的對(duì)比。運(yùn)行環(huán)境(Windows 7+inter i5+16g RAM+MATLAB2018b)實(shí)驗(yàn)結(jié)果顯示,本文方法在相同的實(shí)驗(yàn)條件下消耗資源最少。相同的測(cè)試圖像時(shí)間復(fù)雜度He>Zhang>本文。綜合以上兩個(gè)方面的實(shí)驗(yàn)對(duì)比,我們可以得知本文優(yōu)化的算法在保持優(yōu)良去霧效果的同時(shí)能大大降低計(jì)算資源的消耗。
表1 圖像的定量分析
本文提出一種新的基于優(yōu)化透射率的快速圖像去霧方法以及大氣光值快速估計(jì)法。在暗通道先驗(yàn)原理的基礎(chǔ)之上,針對(duì)去霧過(guò)程中的光暈效應(yīng)提出了采用直方圖均衡化和雙邊濾波透射率修正機(jī)制的解決方案。有效解決了在近景區(qū)域細(xì)節(jié)上的光暈效應(yīng),并通過(guò)大氣光值的候選預(yù)估方法加快大氣光值的確定。實(shí)驗(yàn)結(jié)果以達(dá)到預(yù)期,但是在參數(shù)的選取上還沒(méi)有達(dá)到更快更準(zhǔn)確的水平,希望未來(lái)可以在此方面有更加好的選擇。