石 磊,蓋志剛
(山東省科學(xué)院 海洋儀器儀表研究所,山東 青島266001)
有霧圖像的對(duì)比度和能見度都有所下降,這直接影響航空、水運(yùn)和公路交通出行,使得各種戶外監(jiān)視系統(tǒng)也無(wú)法獲得清晰圖像。因此,具有魯棒性的圖像去霧算法對(duì)提高視覺系統(tǒng)的識(shí)別與定位能力具有重要意義。
增加有霧圖像的清晰度是一個(gè)具有挑戰(zhàn)性的問題,霧氣本身也與深度信息有關(guān),早期的圖像去霧算法多依賴多個(gè)輸入圖像或者是額外的信息。在文獻(xiàn)[1]中,作者用多幅偏振光圖像來(lái)執(zhí)行去霧。Narasimhan 等人在文獻(xiàn)[2]里提出了通過不同天氣情況下的圖像獲得更多的對(duì)比度的信息來(lái)去霧。Kopf[3]等人的方法則需要來(lái)自對(duì)應(yīng)圖像或者已知的三維模型的深度信息。
基于單一圖像的去霧算法最近幾年取得了很大的進(jìn)步。Tan 等[4]通過擴(kuò)大復(fù)原圖像的局部對(duì)比度來(lái)達(dá)到去霧,但他忽視了透射率,結(jié)果中的一些色彩經(jīng)常會(huì)出現(xiàn)過飽和。Fattal等[5]假定透射率和表面投影在局部是不相關(guān)的,通過估算景物的反射率,來(lái)推斷景物光的透射率。但該方法需要足夠多的顏色信息,當(dāng)霧氣濃度較大的時(shí)候效果也不理想。Kim等[6]提出了一個(gè)能量函數(shù)(Cost function),通過最小化這個(gè)能量函數(shù)使對(duì)比度得到增強(qiáng)來(lái)實(shí)現(xiàn)去霧。
近來(lái),He 等[7]提出了一種基于暗原色先驗(yàn)的單一圖像去霧方法,對(duì)戶外圖像取得了良好的去霧效果;但該算法成立是建立在暗原色先驗(yàn)滿足的條件之下,對(duì)于不滿足先驗(yàn)知識(shí)的明亮區(qū)域,算法估計(jì)的透射率值偏小,恢復(fù)結(jié)果可能會(huì)出現(xiàn)色彩失真,難以達(dá)到令人滿意的圖像視覺效果。本文主要針對(duì)這個(gè)缺陷,提出了一種改進(jìn)方法。
描述霧化圖像的大氣散射模型可見
式中:I(x)是的有霧圖像(Haze Image);J(x)是去霧圖像(Haze-free Image);t(x)是描述散射光和相機(jī)接受的光的媒介透射率;A 是全局大氣光;J(x)t(x)代表的是景物光線在媒介中經(jīng)過衰減后的直接衰減項(xiàng);A(1-t(x))則表示由前方散射引起的大氣光項(xiàng)。
暗原色先驗(yàn)[7]是通過對(duì)大約5 000 張戶外圖像的進(jìn)行統(tǒng)計(jì)得出的先驗(yàn)知識(shí),它假定去除掉天空等明亮區(qū)域之后,在絕大多數(shù)圖像里,像素總會(huì)有至少一個(gè)顏色通道具有很低的值;取最小值后的圖像可被稱為暗原色圖像JDark。
假設(shè)大氣光A 給定,且在局部區(qū)域的透射率保持不變;則對(duì)式(1)應(yīng)用暗原色先驗(yàn)可得透射率
式中:Ac(c∈R,G,B);Ω(x)是以x 為中心的一塊區(qū)域。如果徹底地消除霧,圖像深度感會(huì)丟失,可以通過在方程(2)中引入一個(gè)常數(shù)ω,保留部分遠(yuǎn)景處的霧,有
為了提高精度,文獻(xiàn)[7]應(yīng)用一種圖像摳圖(Image matting)算法[8]來(lái)精煉透射率圖。精煉透射率函數(shù)后,可由式(4)求得去霧后的圖像J(x)
式中:文獻(xiàn)[7]的方法取to 值為0.1。估計(jì)大氣光A 的方法為:先選取暗原色圖像JDark中亮度較大的前千分之一的像素點(diǎn),然后取這些像素點(diǎn)對(duì)應(yīng)在原圖I(x)中的最大值作為A 的值。注意A 值對(duì)應(yīng)的像素點(diǎn)可能不是最亮的點(diǎn)[7]。也就是說,在圖像的明亮區(qū)域可能會(huì)有某個(gè)像素的R,G,B 值大于A的情況。
對(duì)于多數(shù)戶外有霧圖像,圖像中的大部分像素點(diǎn)都滿足暗原色先驗(yàn)。在文獻(xiàn)[7]里,何對(duì)大約5 000 張圖像進(jìn)行統(tǒng)計(jì),發(fā)現(xiàn)大約75%的暗原色圖像里的像素值是0,大約90%的暗原色圖像里的像素值小于25;即暗原色像素值分布總體偏低,其像素值趨近于0,暗原色假設(shè)基本成立,因此恢復(fù)效果較好。但是由于是利用圖像摳圖(Image matting)[8]來(lái)進(jìn)行透射率的精煉,導(dǎo)致速度較慢;隨后不久,何提出了一個(gè)邊緣保持濾波器——導(dǎo)向圖像濾波器[9],并將之應(yīng)用到透射率函數(shù)的精煉上,極大加快了速度。該算法是目前比較經(jīng)典的算法。本文借鑒了這個(gè)算法,提出了一個(gè)基于暗原色先驗(yàn)與反圖像的去霧算法。
當(dāng)含霧圖像包含天空等明亮區(qū)域時(shí),基于暗原色先驗(yàn)的去霧算法[7]處理的結(jié)果可能會(huì)出現(xiàn)色彩失真。通常這些明亮區(qū)域偏白色(亮色),像素R,G,B 通道值的差異也不大,都接近于大氣光值A(chǔ);區(qū)域內(nèi)也找不到暗原色點(diǎn),暗原色假設(shè)在這些區(qū)域是不成立的。
如果不考慮暗原色先驗(yàn),由式(1)可得
在某些明亮區(qū)域(譬如說天空區(qū)域)I(x)值約等于A 值,分母中的這一項(xiàng)不為零值更接近于1,式(5)中分母值也可能會(huì)很小,因此實(shí)際的透射率總要與遠(yuǎn)大于根據(jù)暗原色先驗(yàn)估計(jì)的透射率。這時(shí)依據(jù)式(3)來(lái)計(jì)算透射率時(shí)所得的值較小,再利用式(4)來(lái)恢復(fù)無(wú)霧圖像就不準(zhǔn)確。
當(dāng)取to 值為0.1 時(shí),只能限制透射率不能小于0.1,實(shí)際得到的值仍很小;此時(shí),如果I(x)值小于A 值,小到一定程度,就可能會(huì)被放大到一個(gè)非常大的值,這時(shí)的J(x)值會(huì)變得很小;尤其是當(dāng)其他通道值大于A 時(shí),由式(5)所得J(x)值就會(huì)大于A,反差將會(huì)變得很明顯,類似天空的明亮區(qū)域就會(huì)有色彩失真現(xiàn)象出現(xiàn)??梢娙舯疚倪x擇to=1.0,在明亮區(qū)域依據(jù)式(3)得到的透射率值過低。
合肥工業(yè)大學(xué)的蔣建國(guó)等[10]人增加了一個(gè)可控參數(shù)K用以調(diào)節(jié)透射率,當(dāng)小于K 時(shí),這個(gè)區(qū)域可能是明亮區(qū)域,重新計(jì)算透射率,K 是經(jīng)驗(yàn)值,蔣令大于K 處,則認(rèn)為是符合暗原色先驗(yàn)。孫小明等[11]做法和蔣建國(guó)的方法類似,也是通過的大小判斷是否屬于明亮區(qū)域,然后調(diào)整透射率值,取K=80。王廣義等[12]的則是進(jìn)行基于梯度閾值的天空分割,分割后將天空區(qū)域的透射率設(shè)定成了一個(gè)經(jīng)驗(yàn)值。鄧瑚等[13]的方法也是先將明亮區(qū)域從圖像中分離出來(lái),然后分別進(jìn)行直方圖均衡。韓國(guó)的Kim 等人[6]的算法通過最小化能量函數(shù)使對(duì)比度得到增強(qiáng),他們?cè)谔幚砩适д鏁r(shí)直接設(shè)to 等于0.3。這些方法都能在一些場(chǎng)合消除明亮區(qū)域的色彩失真,但是這些依賴經(jīng)驗(yàn)值的方法并不能完全杜絕色彩失真;如果分割出天空區(qū)域再分別處理,也會(huì)增加計(jì)算量。
綜上所述,可以看到當(dāng)圖像中的區(qū)域滿足暗原色先驗(yàn)時(shí),依據(jù)式(8)來(lái)計(jì)算透射率相對(duì)比較準(zhǔn)確,也不會(huì)出現(xiàn)色彩失真現(xiàn)象;當(dāng)區(qū)域像素屬于明亮區(qū)域,不滿足暗原色先驗(yàn),依據(jù)式(3)來(lái)計(jì)算透射率值較小,就可能出現(xiàn)色彩失真。換句話說,如果能調(diào)整明亮區(qū)域的像素值使之滿足暗原色先驗(yàn),那就可以按照式(3)來(lái)計(jì)算透射率,所得到的值相對(duì)較為準(zhǔn)確,也就較大。依據(jù)這個(gè)思路,本文提出了一種新方法來(lái)克服色彩失真。
算法的流程可描述如下:
1)根據(jù)原始輸入圖像進(jìn)行圖像反色,分別計(jì)算原圖像、反色圖像的暗原色圖像,并進(jìn)行最小值濾波;
2)使用微軟研究院何文中[7]的方式分別求取全局大氣光值;
3)依據(jù)式(3)分別計(jì)算初始的透射率圖;
4)用導(dǎo)向?yàn)V波器(Guided image filtering)[9]分別獲取精細(xì)的透射率圖;
5)求取這2 個(gè)透過率圖的最大值作為最終的透過率值;
6)通過式(4)計(jì)算去霧后的像素值。
流程框圖見圖1。
本文所有實(shí)驗(yàn)圖片均來(lái)自網(wǎng)絡(luò)。實(shí)驗(yàn)中,最小值濾波模板是9×9,ω 取0.95。透射率精煉都使用導(dǎo)向?yàn)V波器(Guided image filtering)[9]的算法;但是為了便于對(duì)比算法的效果,最后結(jié)果都沒有進(jìn)行增強(qiáng)亮度的處理;編程中直接使用了OpenCV 圖像處理庫(kù),庫(kù)版本號(hào)為2.4.1。在一臺(tái)中央處理器(CPU)為2.0G Intel Pentium 4 Processor、4 Gbyte 內(nèi)存,操作系統(tǒng)為64 位Windows 7 的臺(tái)式機(jī)上處理有霧圖像。實(shí)驗(yàn)內(nèi)容驗(yàn)證了本文提出的算法在天空等明亮區(qū)域避免色彩失真的作用。
實(shí)驗(yàn)分別利用了4 張樣本圖像,它們都有較大面積天空等明亮區(qū)域。用本文提出的算法分別進(jìn)行處理后,然后再跟用文獻(xiàn)[10]的方法及何[7]的方法處理的結(jié)果進(jìn)行對(duì)比,結(jié)果見圖2。從4 個(gè)樣本圖像的結(jié)果(圖2b)可以看出,當(dāng)選擇有較大面積天空等明亮區(qū)域的樣本時(shí),使用文獻(xiàn)[7]的算法處理會(huì)產(chǎn)生色彩失真;使用文獻(xiàn)[10]的算法處理(圖2c),某些場(chǎng)合可以避免色彩失真,但是在一些場(chǎng)合(諸如第二個(gè)樣本)還是會(huì)發(fā)生色彩失真,同時(shí)觀察這幾個(gè)處理結(jié)果還會(huì)發(fā)現(xiàn)在天空等處處理結(jié)果有些偏亮,也就是說透射率值估算的稍大,可見取經(jīng)驗(yàn)值來(lái)校正透射率不能保證適合所有的情況;用本文的方法(圖2d)則可以避免色彩失真現(xiàn)象發(fā)生,且去霧后的視覺效果也沒有降低。本文算法還有一個(gè)缺陷,就是由于還要計(jì)算反圖像,計(jì)算量增加,耗時(shí)增多。在實(shí)際應(yīng)用中,可以考慮先將輸入圖像縮小,然后再進(jìn)行去霧處理,最后將結(jié)果恢復(fù)成原先大小,可參考文獻(xiàn)[14]做法,此過程本文不再一一贅述。
圖1 算法的流程框圖
圖2 3 種方法處理結(jié)果的對(duì)比
綜上所述,從圖2 的實(shí)驗(yàn)結(jié)果可以看出,相比原算法[7]和文獻(xiàn)[10]的算法,改進(jìn)算法可以有效避免在大面積明亮區(qū)域的出現(xiàn)色彩失真現(xiàn)象;算法也不依靠某一個(gè)經(jīng)驗(yàn)值,去霧結(jié)果更加符合實(shí)際情況,視覺效果更令人滿意。
本文對(duì)基于暗原色先驗(yàn)的去霧算法進(jìn)行了理論分析和實(shí)驗(yàn)觀察,然后提出了一種改進(jìn)算法。本文首先計(jì)算原圖像的反色圖像,然后再分別計(jì)算原圖像與反色圖像的透射率圖,然后取最大值構(gòu)建新的透射率圖,進(jìn)而恢復(fù)去霧圖像。該算法可以更加有效地處理包含大面積明亮區(qū)域的霧化圖像,使用效果較佳。
[1]OAKLEY JOHN P,SATHELEY BENDER L. Improving image quality in poor visibility conditions using a physical model for contrast degradation[J]. IEEE Trans. Image Processing,1998,7(2):167-170.
[2]NARASIMHAN S G,NAYAR S K. Contrast restoration of weather degraded images[J]. IEEE Trans. Pattern Analysis And Machine Intelligence(PAMI),2003(25):713-724.
[3]KOPF J,NEUBERT B CHEN B,et al. Deep photo:model-based photograph enhancement and viewing[C]//Proc.ACM SIGGRAPH 2008.Los Angeles,USA:ACM Press,2008:1-6.
[4] TAN R T. Visibility in bad weather from a single image[C]//Proc.2008 IEEE Conference on Computer Vision and Pattern Recognition(CVPR). Washington DC,USA:IEEE Press,2008:1-8.
[5]FATTAL R. Single image dehazing[C]//Proc. ACM SIGGRAPH 2008.Los Angeles,USA:ACM Press,2008:1-9.
[6]JIN-HWAN K,WON-DONG J,JAE-YOUNG S,et al.Optimized contrast enhancement for real-time image and video dehazing[J].Journal of Visual Communications and Image Representation,2013,24(3):410-426.
[7]HE K M,SUN J,TANG X OU. Single image haze removal using dark channel prior[C]//Proc.2009 IEEE Conference on Computer Vision and Pattern Recognition(CVPR). Miami,F(xiàn)lorida,USA:IEEE Press,2009:1956-1963.
[8]LEVIN A,LISCHINSKI D,WEISS Y. A closed form solution to natural image matting[C]//Proc.2006 IEEE Conference on Computer Vision and Pattern Recognition(CVPR). New York:IEEE Press,2006:61-68.
[9]HE K M,SUN J,TANG X OU.Guided image filtering[J].IEEE Trans.Pattern Analysis And Machine Intelligence(PAMI),2013,35(6):1397-1409.
[10]蔣建國(guó),侯天峰,齊美彬.改進(jìn)的基于暗原色先驗(yàn)的圖像去霧算法[J].電路與系統(tǒng)學(xué)報(bào),2011,16(2):7-12.
[11]孫小明,孫俊喜,趙立榮,等.暗原色先驗(yàn)單幅圖像去霧改進(jìn)算法[J].中國(guó)圖象圖形學(xué)報(bào),2014,19(3):381-385.
[12]WANG Gangyi,REN Guanghui,JIANG Lihui,et al. Single image dehazing algorithms based on sky region segmentation[J].Information Technology Journal,2013,12(6):1168-1175.
[13]鄧瑚,王延杰,李靜宇,等. 天空區(qū)域圖像的增強(qiáng)算法的改進(jìn)[J].激光與紅外,2012,42(9):1080-1085.
[14]章郡鋒,吳曉紅,黃曉強(qiáng),等.基于暗原色先驗(yàn)去霧的改進(jìn)算法[J].電視技術(shù),2013,37(23):192-225.