許駿, 王直杰
東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 200051
摘要:基于暗通道先驗(yàn)算法的圖像去霧技術(shù)已經(jīng)日益成熟,但是其處理速度慢、天空區(qū)域過(guò)曝、處理完的圖像色彩變暗等缺點(diǎn)也很明顯。本文針對(duì)這幾方面分別提出了求透射率時(shí)的優(yōu)化、糾正天空等明亮區(qū)域的錯(cuò)誤估計(jì)的透射率、采用自動(dòng)色劑的算法進(jìn)行顏色校正等方法,從而有效地提升去霧圖像的視覺(jué)效果與處理速度。實(shí)驗(yàn)結(jié)果與幾種經(jīng)典的算法結(jié)果進(jìn)行比較驗(yàn)證了本文算法在處理效率與顏色保真度方面的優(yōu)越性。
關(guān)鍵詞:圖像去霧;暗通道先驗(yàn);顏色校正;處理速度
0引言
在日常生活中,戶外場(chǎng)景拍攝很容易受各種因素的影響,如灰塵、霧或煙霧。近幾年霧霾天氣越來(lái)越頻繁,這些懸浮在空氣中的粒子會(huì)對(duì)場(chǎng)景的反射光和大氣光的散射產(chǎn)生很大的影響,使得拍攝所得到的圖像質(zhì)量降低、美感全無(wú),甚至?xí)寛D像對(duì)比度與顏色產(chǎn)生明顯失真,導(dǎo)致場(chǎng)景和目標(biāo)的可辨識(shí)度降低。這些都會(huì)直接影響到機(jī)器視覺(jué)對(duì)于圖像內(nèi)容的識(shí)別與分析。所以為了給機(jī)器視覺(jué)識(shí)別提供更清晰的圖像,對(duì)圖像進(jìn)行去霧處理就顯得非常重要。
1去霧算法分類
目前,圖像去霧算法主要分為兩大類:一類為圖像增強(qiáng)[1],如直方圖均衡化法、Retinex算法、基于小波的方法、基于大氣調(diào)制傳遞方程的方法。另一類為圖像修復(fù)[2],如深度信息的霧天圖像復(fù)原、基于先驗(yàn)的霧天圖像復(fù)原、基于偏微分方程的霧天圖像復(fù)原、最小失真意義下的霧化圖像復(fù)原。
為了能夠更有效地對(duì)圖像進(jìn)行高效的去霧處理,本文提出了基于暗通道先驗(yàn)的去霧改進(jìn)算法,其屬于基于先驗(yàn)的霧天圖像復(fù)原。本文基于大氣散射模型,在算法去霧的計(jì)算過(guò)程中進(jìn)行了合理的優(yōu)化,減少計(jì)算量,提高了實(shí)時(shí)性,并且改善了經(jīng)過(guò)去霧處理后使得圖像整體變暗的不良效果。
2本文的算法
2.1大氣散射模型
大氣散射模型是由McCarthney在1975年提出的,該模型描述了霧化圖像的退化過(guò)程,并被廣泛應(yīng)用于圖像去霧領(lǐng)域,根據(jù)大氣光在霧天退化過(guò)程中傳輸?shù)奈锢硖匦钥梢杂靡韵鹿奖硎緸椋?]:
I(x)=J(x)t(x)+A(1-t(x))(1)
其中,I(x)表示有霧圖像,J(x)表示去霧后的圖像,場(chǎng)景輻射中大氣傳輸過(guò)程中的透射率用t(x)表示,目標(biāo)輻射信息的直接衰減用J(x)t(x)表示,反應(yīng)出了經(jīng)過(guò)傳輸介質(zhì)后目標(biāo)的電磁波信息到達(dá)傳感器的能量;A表示大氣光,大氣光經(jīng)過(guò)衰減后到達(dá)傳感器的能量用A(1-t(x))表示。假設(shè)大氣層是均勻的,電磁波在大氣中為各向同性傳播,透射率t表示為:t(x)=e-βd(x),其中,β是大氣散射系數(shù),d(x)是場(chǎng)景深度。
2.2暗通道先驗(yàn)條件
暗通道先驗(yàn)[4]是通過(guò)對(duì)多幅室外的無(wú)霧圖像進(jìn)行研究總結(jié)出來(lái)的規(guī)律,在這些室外無(wú)霧清晰的圖像中發(fā)現(xiàn),大部分非天空區(qū)域中,至少有一個(gè)顏色通道的某些像素的亮度值很低,幾乎趨近于零,并且,此區(qū)域的最低亮度值也幾乎為零。對(duì)于任意的圖像J,它的暗原色通道Jdark可以表示為:Jdark= minΩ (minc∈{r,g,b}Jc)
其中Jdark表示圖像J的強(qiáng)度值接近于0的暗通道,Jc表示J的R、G、B三通道之一,Ω 表示以一個(gè)像素為中心的窗口。
2.3透射率的計(jì)算與優(yōu)化
根據(jù)文獻(xiàn)[3]中暗原色先驗(yàn)理論得到:
這就是透射率t的預(yù)估值。
在生活中,即使是萬(wàn)里無(wú)云的晴天,空氣中也存在著一些顆粒,因此,看遠(yuǎn)處的物體還是能感覺(jué)到霧的影響,但是,霧能使人感受到景深的存在,使圖像看起來(lái)更真實(shí)。因此,有必要在去霧的時(shí)候保留一定程度的霧,這可以通過(guò)在式(2)中引入一個(gè)在[0,1]之間的因子w,則式(2)修正為:
w代表了霧的保留度,其值越小,去霧效果越不明顯,所以取w=0.95,這樣保留一些霧的存在可以使人感受到景深的存在,圖像也更符合需求。
由于暗通道去霧的透射率圖比其他算法都要精細(xì),并且在整個(gè)算法中占用了大量的處理時(shí)間,降低了程序的處理效率,所以如果適當(dāng)?shù)亟档鸵稽c(diǎn)精度,其去霧的效果理論上應(yīng)該不會(huì)有太大的區(qū)別,本文采取的方法不對(duì)原圖求透射率,而是用以下方法來(lái)對(duì)透射率的求取進(jìn)行簡(jiǎn)化。
?。?)把RGB轉(zhuǎn)化為灰度直方圖;
?。?)對(duì)原圖進(jìn)行下采樣,縮小為原圖的1/4,存放在V(x),并求解出V(x)的透射率;
?。?)采用插值法獲取原圖大概的透射率。
經(jīng)過(guò)實(shí)驗(yàn)證明這種方式很大程度上提高了執(zhí)行速度,而且去霧效果與原方案基本一致。
但是,如果縮小系數(shù)不是特別大,比如縮小為原來(lái)的0.5倍大小,可能兩次縮放所用的耗時(shí)還抵消了計(jì)算小圖的透射率圖所換來(lái)的盈利,因此必須合理選擇這個(gè)下采樣率。
研究中發(fā)現(xiàn)傳統(tǒng)的暗通道先驗(yàn)去霧對(duì)天空部分處理效果不好,天空往往會(huì)出現(xiàn)較大面積的紋理及分塊現(xiàn)象。其根本原因還是因?yàn)樘炜詹课换旧鲜遣环习低ǖ廊レF先驗(yàn)條件的,對(duì)此本文提出了一種避免圖像去霧算法中天空部分出現(xiàn)過(guò)度增強(qiáng)的方法:(1)將圖像轉(zhuǎn)換為灰度,為保留更多的邊緣信息,使用具有對(duì)比度保留功能的去色算法;(2)求灰度圖像的梯度信息,采用邊緣檢測(cè)算子實(shí)現(xiàn);(3)對(duì)梯度信息進(jìn)行去噪和濾波;(4)按照設(shè)定梯度閾值和亮度閾值對(duì)梯度信息進(jìn)行區(qū)分;(5)對(duì)區(qū)分后的圖像進(jìn)行高斯羽化處理。
得到天空區(qū)域后,He[4]將天空區(qū)域的透射率圖統(tǒng)一設(shè)置成一個(gè)固定值,但這樣不好,還是應(yīng)該根據(jù)具體的值做適當(dāng)?shù)男拚?在He的上述操作中,得到的天空區(qū)域并不真正屬于天空,某個(gè)點(diǎn)并不一定是完全屬于天空或完全不屬于。因此本文提出一種優(yōu)化方法,如下所示:
Jx=(tp×Ix+Jx×(255-Ix))/255
其中Jx是指暗通道的點(diǎn),tp就類似于He所講的固定透射率值,是自己根據(jù)圖像處理效果調(diào)試指定的,在上式中,若I(x)=255,即完全屬于天空,則該點(diǎn)的透射率即為固定值,若I(x)=0,即完全不屬于天空,計(jì)算式的值不變,不影響正常去霧。
另外關(guān)于大氣光值A(chǔ)的計(jì)算,He提出了以獲得的天空部位的像素的平均值作為A,這也是非常合理的,但是在實(shí)際處理時(shí),針對(duì)有些完全沒(méi)有天空部分的圖像,可能檢測(cè)到的天空區(qū)域很?。黠@屬于誤檢,但是程序不知道),這個(gè)時(shí)候以此為大氣光值,也是不合理的。為此,本文的處理方式是先計(jì)算天空部位的A值,然后再檢測(cè)天空像素占整個(gè)圖像的比例,如果比例小于5%,則還是以He計(jì)算A的方式進(jìn)行。
還有一步,He也提到了,就是這些校正的步驟都必須在進(jìn)行導(dǎo)向?yàn)V波前做。這樣利用導(dǎo)向?yàn)V波的平滑功能,可以從一定程度上將天空和非天空分界部位的不平滑現(xiàn)象彌補(bǔ)掉,這一方法有效地避免了天空區(qū)域過(guò)曝的情況。
如圖1所示,優(yōu)化透射率后的算法的圖像右上角天空區(qū)域不會(huì)出現(xiàn)暗通道算法的偏色和大量色斑,不會(huì)有明顯的過(guò)渡區(qū)域。
2.4顏色增強(qiáng)
直接去霧后的圖像會(huì)比原始圖像暗,因此本文提出在處理完后需要對(duì)圖像進(jìn)行一定的曝光增強(qiáng)。圖像亮度調(diào)整分為非線性和線性兩種方法[5]。非線性圖像亮度調(diào)整是將圖像像素的R、G、B分別加上或減去某個(gè)值,其優(yōu)點(diǎn)是代碼簡(jiǎn)單,亮度調(diào)整速度快;缺點(diǎn)是圖像信息損失較大,調(diào)整過(guò)的圖像顯得平淡,無(wú)層次感。線性圖像亮度調(diào)整一般是將圖像像素的RGB轉(zhuǎn)換為HSL(HSV)等顏色空間,對(duì)L(V)部分進(jìn)行增減調(diào)整后,再轉(zhuǎn)換為RGB顏色空間,優(yōu)點(diǎn)是調(diào)整過(guò)的圖像層次感很強(qiáng);缺點(diǎn)是代碼較復(fù)雜,調(diào)整速度慢,而且當(dāng)圖像亮度增減量較大時(shí)有很大的失真。
設(shè)亮度增減量value范圍為 -1~+1,本文采用了優(yōu)化后的圖像亮度增強(qiáng)法,原理用下式表示:
當(dāng)value>0時(shí):
rgb=RGB+RGB*(1/(1-value)-1)
當(dāng)value<0時(shí):
rgb=RGB+RGB*value
3實(shí)驗(yàn)結(jié)果與分析
3.1去霧效果比較
如圖1和圖2給出了本文算法與He文獻(xiàn)中的原暗通道先驗(yàn)算法的去霧效果比較。
在圖1中,本文的處理結(jié)果能較好地恢復(fù)出天空區(qū)域,無(wú)偏色及明顯色斑。圖2中,本文的處理結(jié)果能很好地改善圖像色彩偏暗的情況。由此可見(jiàn)本文算法的去霧效果比He算法的處理效果有明顯改善。
3.2運(yùn)算速度比較
在普通計(jì)算機(jī)上,使用Visual Studio 2010運(yùn)行本文算法。運(yùn)行環(huán)境為Windows 7,計(jì)算機(jī)配置為Intel(R) Core(TM) i3 CPU M 350 @2.27 GHz with 3 GB RAM。程序運(yùn)行時(shí)間如表1。
4總結(jié)
本文基于暗通道先驗(yàn)?zāi)P?,在He算法基礎(chǔ)上提出了以下改進(jìn),首先針對(duì)暗通道原理去霧效率低的缺點(diǎn),提出了縮小采樣標(biāo)本后再用插值法求取透射率的方法來(lái)優(yōu)化
算法效率。然后對(duì)是否屬于天空區(qū)域的透射率進(jìn)行矯正。最后通過(guò)圖像亮度增強(qiáng)的方法改善了去霧處理后圖像變暗的缺點(diǎn),使得實(shí)驗(yàn)結(jié)果在主觀和客觀方面都達(dá)到了令人滿意的效果。
參考文獻(xiàn)
?。?] 郭璠,蔡自興,謝斌,等.圖像去霧技術(shù)研究綜述與展望[J].計(jì)算機(jī)應(yīng)用,2010,30(9):24172421.
[2] 葛艷,趙瑞,高占江,等.基于TV模型和膨脹的圖像修復(fù)方法研究[J].微型機(jī)與應(yīng)用,2014,33(18):3941,44.
?。?] MCCARTNEY E J. Optics of Atmosphere: Scattering by Molecules and Particles[M]. New York: John Wiley and Sons,1976.
[4] He Kaiming, Sun Jian, Tang Xiaoou. Single image haze removal using dark channel prior [J]. IEEE Transactions on pattern Analysis and Machine Intelligence, 2011,33(12):23412353.
?。?] 劉艷英,凌朝東.HSV空間的彩色多聚焦圖像融合[J].微型機(jī)與應(yīng)用,2014,33(8):4548.