司振惠 于 萍 王 巖
(吉林師范大學(xué)計(jì)算機(jī)學(xué)院 吉林 四平 136000)
在霧天里,空氣中的粒子會(huì)吸收和反射物體的光,從而使拍攝的圖像可見(jiàn)度和對(duì)比度降低[1],圖像質(zhì)量下降,很不利于識(shí)別圖像中的目標(biāo),這也往往是道路發(fā)生交通事故的重要原因。因此,提出一種提高圖像可見(jiàn)度和對(duì)比度的算法十分重要[2]。隨著計(jì)算機(jī)視覺(jué)的高速發(fā)展,圖像去霧技術(shù)的應(yīng)用范圍也越來(lái)越廣,如在霧天識(shí)別汽車牌照[3]以及應(yīng)用在校園監(jiān)控中[4]等。針對(duì)有霧圖像,學(xué)者們提出了大量的去霧算法,目前的去霧算法主要分為兩類:第一類是提高圖像對(duì)比度的增強(qiáng)算法,這類算法主要有Retinex算法、直方圖均衡算法、同態(tài)濾波算法。Retinex算法主要有三種,分別是單尺度retinex算法(Single Scale Retinex,SSR)、多尺度Retinex算法(Multiscale Retinex,MSR)和帶有彩色恢復(fù)因子的多尺度Retinex算法(Multiscale Retinex with Color Restoration,MSRCR),由于SSR[5]對(duì)灰度圖像效果更好,而MSR[6]難以維持顏色恢復(fù)和保留細(xì)節(jié)之間的平衡,所以MSRCR[7]算法應(yīng)用得更多,但對(duì)于色彩過(guò)度飽和的圖像來(lái)說(shuō),去霧效果不理想,易出現(xiàn)色彩失真現(xiàn)象。直方圖均衡算法[8]通過(guò)使有霧圖像的灰度分布直方圖接近均勻化分布進(jìn)而提高圖像對(duì)比度,但不同灰度值的像素在均衡化后可能變成相同灰度值,導(dǎo)致圖像細(xì)節(jié)丟失。同態(tài)濾波[9]算法主要通過(guò)高通濾波器增強(qiáng)高頻分量,降低低頻分量來(lái)提高有霧圖像的可見(jiàn)度,但對(duì)于一些霧不均勻的圖像來(lái)說(shuō)去霧效果不好。
第二類是基于物理大氣散射模型的圖像去霧算法,這類算法主要依據(jù)無(wú)霧圖像與有霧圖像之間的線性方程,進(jìn)而反推出清晰圖像。He等[10]的算法通過(guò)圖像的暗通道去估計(jì)粗略的透射率,然后利用引導(dǎo)濾波進(jìn)行優(yōu)化,但由于對(duì)透射率估計(jì)得不準(zhǔn)確,降低了圖像的亮度,圖像可見(jiàn)度不高,并且在明亮區(qū)域(尤其天空區(qū)域)容易出現(xiàn)光暈現(xiàn)象。蔣建國(guó)等[11]對(duì)He等的算法提出了改進(jìn),引入了容差值解決了該問(wèn)題,但圖像的清晰度依然不高。Tarel等[12]提出基于中值濾波的去霧算法,該算法運(yùn)行速度快、復(fù)雜度低,但對(duì)于不連續(xù)的深度圖像容易出現(xiàn)顏色失真現(xiàn)象。Meng等[13]利用傳輸函數(shù)的邊界約束和上下文正則化來(lái)建模,進(jìn)而估計(jì)有霧圖像的傳輸圖,該算法在色彩恢復(fù)方面效果不佳,去霧后的圖像色彩過(guò)于飽和。Zhu等[14]提出了用顏色先驗(yàn)估計(jì)傳輸圖的算法,對(duì)霧和顏色比較均勻的圖像效果較好,但去霧后圖像整體偏暗。Cai等[15]提出了一種端到端的單幅圖像去霧系統(tǒng),通過(guò)輸入有霧圖像估計(jì)其傳輸圖,最后利用大氣散射模型進(jìn)行去霧,該算法去霧效果較好,但圖像亮度較低,算法復(fù)雜度也偏高。Sebastian等[16]提出用多層感知機(jī)從最小通道去估計(jì)并優(yōu)化傳輸圖,相對(duì)于傳統(tǒng)的暗通道算法對(duì)傳輸圖的兩次運(yùn)算,提高了算法效率,但去霧后圖像局部顏色失真,圖像可見(jiàn)度和亮度下降。
總的來(lái)說(shuō),現(xiàn)有算法存在的問(wèn)題主要有兩點(diǎn):一是去霧后圖像整體偏暗,圖像細(xì)節(jié)模糊;二是圖像的色彩過(guò)度增強(qiáng),易出現(xiàn)光暈或失真現(xiàn)象。對(duì)于第一個(gè)問(wèn)題,主要是通過(guò)伽馬校正來(lái)提高原圖像亮度。對(duì)于第二個(gè)問(wèn)題,主要采用限制對(duì)比度自適應(yīng)直方圖均衡算法來(lái)提高圖像對(duì)比度,恢復(fù)圖像色彩以及增強(qiáng)細(xì)節(jié)。最后將兩者融合,使圖像視覺(jué)效果恢復(fù)更好。
基于暗通道的單圖像融合去霧算法不同于傳統(tǒng)的暗通道算法,在對(duì)圖像求解暗通道之前,要先對(duì)其進(jìn)行伽馬校正和調(diào)整對(duì)比度的預(yù)處理,然后對(duì)伽馬校正后的圖像進(jìn)行求解暗通道,并依據(jù)暗通道估計(jì)透射率和大氣光,利用物理模型求解出清晰圖像,最后將其與限制對(duì)比度自適應(yīng)直方圖均衡算法處理后的圖像進(jìn)行融合得到增強(qiáng)圖像。改進(jìn)算法的具體流程如圖1所示。
圖1 算法流程
伽馬校正(Gamma Correction)是一種重新對(duì)圖像色彩進(jìn)行編譯的算法,通過(guò)放大圖像中的深色和淺色范圍,進(jìn)而提高圖像對(duì)比度,其數(shù)學(xué)公式如下:
Gy=yr
(1)
式中:Gy伽馬校正后的圖像;y表示原始圖像;r表示校正系數(shù)。當(dāng)r的值大于1的時(shí)候,隨著r的增加,圖像的高光局部范圍逐漸被壓制,而低光局部范圍則得到了舒展,圖像整體色彩偏暗,細(xì)節(jié)更加清晰;當(dāng)r的值小于1時(shí),情況恰恰相反,低光壓制高光舒展,圖像亮度增強(qiáng)。
有霧圖像中“重”顏色區(qū)域在經(jīng)過(guò)暗通道去霧后顏色會(huì)變得更深,使圖像整體偏暗,圖像可見(jiàn)度恢復(fù)程度不高,為了解決這一問(wèn)題,通過(guò)大量實(shí)驗(yàn)數(shù)據(jù)證明:通過(guò)對(duì)圖像進(jìn)行伽馬校正,使圖像局部高光動(dòng)態(tài)范圍擴(kuò)大,去霧后的圖像可見(jiàn)度會(huì)更高,圖像細(xì)節(jié)會(huì)更加清晰,實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 實(shí)驗(yàn)結(jié)果
可以看出,經(jīng)過(guò)伽馬校正后的去霧圖像的可見(jiàn)度明顯提高,在色彩恢復(fù)方面效果更自然,原圖像中樹(shù)木的形態(tài)變得更加清晰,其傳輸圖的效果也更好。為了確定最優(yōu)的校正參數(shù)r,進(jìn)行了不同r值的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 伽馬校正圖
可以看出,當(dāng)校正系數(shù)r的值小于0.7時(shí),圖像中霧的覆蓋面積比原圖像大很多,而當(dāng)r的值大于0.7時(shí),圖像開(kāi)始局部偏暗,去霧后的效果不會(huì)更好,考慮到是有霧圖像,所以伽馬校正系數(shù)的值不能太小,當(dāng)r=0.7時(shí),圖像增加的亮度和霧都是適當(dāng)?shù)?。因此,后面?shí)驗(yàn)中r的取值都為0.7。
限制對(duì)比度自適應(yīng)直方圖均衡(Contrast Limited Adaptive Histgram Equalization,CLAHE)算法可以增強(qiáng)圖像對(duì)比度,在色彩恢復(fù)方面效果更好[17]。其中參數(shù)c是用來(lái)限定圖像對(duì)比度范圍,其值越大,圖像對(duì)比度越明顯,但值過(guò)大時(shí),容易造成圖像過(guò)度增強(qiáng)現(xiàn)象。為了確定最優(yōu)參數(shù)c,進(jìn)行了一系列不同c值的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 CLAHE實(shí)驗(yàn)結(jié)果
可以看出,隨著c值的增大,雖然圖像的色彩得到了增強(qiáng),但局部區(qū)域出現(xiàn)了過(guò)度增強(qiáng)效果,并且增強(qiáng)后的圖像與原圖像的色差值越來(lái)越大,面對(duì)有霧的圖像,c值的增大也會(huì)產(chǎn)生更多噪聲,因此在后續(xù)實(shí)驗(yàn)中c的值取0.01,此時(shí)圖像的色彩是最貼近原圖像的,同時(shí)也能夠消除一定量的霧。
霧天的大氣散射物理模型如下:
I(x)=J(x)t(x)+A(1-t(x))
(2)
式中:I為觀測(cè)到的有霧圖像;J為所求的清晰圖像;A為大氣光值;t為透射率;x為像素點(diǎn)的坐標(biāo)。
He等[10]根據(jù)大量統(tǒng)計(jì)數(shù)據(jù)得出假設(shè):大多數(shù)圖像在某些區(qū)域(除天空區(qū)域)總能存在最小亮度值,其值接近于零,并稱之為圖像的暗通道,對(duì)于任意一幅圖像,其暗通道表達(dá)式如下:
Jdark(x) =minc∈{r,g,b}(miny∈Ω(x)(Jc(y)))
(3)
式中:圖像的三個(gè)顏色通道分別用r、g、b來(lái)表示,Ω(x)表示以像素點(diǎn)x為中心的方形區(qū)域。
求解暗通道的具體代碼:
Wnd=3;
%濾波窗口的大小
Ir = I(:,:,1);Ig = I(:,:,2);Ib = I(:,:,3);
%有霧圖像的三通道圖像拓展(對(duì)于邊緣像素需要以其為中
%心,按窗口半徑進(jìn)行向外擴(kuò)展形成一個(gè)3×3的方形區(qū)域。)
[m,n,~] = size(I);
%獲取圖像的長(zhǎng)和寬
%定義擴(kuò)展矩陣大小
Irr = zeros(m+Wnd-1, n+Wnd-1);
Igg = zeros(m+Wnd-1, n+Wnd-1);
Ibb = zeros(m+Wnd-1, n+Wnd-1);
% Ir、Ig、Ib通道值賦給擴(kuò)展區(qū)域Irr、Igg、Ibb
Irr((Wnd-1)/2:m+(Wnd-1)/2-1,(Wnd-1)/2: n+(Wnd-1)/2-1 ) = Ir;
Igg((Wnd-1)/2:m+(Wnd-1)/2-1,(Wnd-1)/2: n+(Wnd-1)/2-1)=Ig; Ibb((Wnd-1)/2:m+(Wnd-1)/2-1,(Wnd-1)/2: n+(Wnd-1)/2-1 ) = Ib;
% 暗通道的求解
for i=1:m
for j=1:n
%求三通道在局部方形區(qū)域內(nèi)的最小值
Rmin= min(min (Irr(i:i+Wnd-1, j:j+Wnd-1)));
Gmin=min(min (Igg(i:i+Wnd-1, j:j+Wnd-1)));
Bmin=min(min (Ibb(i:i+Wnd-1, j:j+Wnd-1)));
%三個(gè)通道的最小通道值作為暗通道
Jdark(i,j) = min(min(Rmin,Gmin),Bmin);
end
end
He等[10]發(fā)現(xiàn)霧霾圖像的暗通道和霧霾的稠密程度相似,所以挑選暗通道中最亮的0.1%像素估計(jì)大氣光,具體做法為:首先在暗通道中選取m個(gè)像素點(diǎn)(m=總像素點(diǎn)個(gè)數(shù)/1 000),記錄其坐標(biāo),然后在原圖像中找到對(duì)應(yīng)的像素點(diǎn),并從中選取最大值作為A的值。
通過(guò)對(duì)暗通道采取局部最小值濾波和利用大氣散射物理模型,可以求出粗略的透射率t,表達(dá)式如式(4)所示。其中參數(shù)ω用來(lái)保留部分霧,使圖像看起來(lái)更自然,取值為0.95。
(4)
引導(dǎo)濾波方法可以顯著降低暗通道去霧算法的復(fù)雜度并優(yōu)化透射率t,引導(dǎo)濾波和雙邊濾波都可以平滑圖像,但是在保存邊緣和細(xì)節(jié)方面更優(yōu)于雙邊濾波[18],優(yōu)化t的表達(dá)式如式(5)所示。
Gt=GF(I,t,r,ε)
(5)
式中:Gt表示優(yōu)化后的透射率;GF表示引導(dǎo)濾波函數(shù);I表示引導(dǎo)圖像也就是有霧圖像;t表示濾波圖像即粗略的透射率;r表示濾波窗口大?。沪疟硎菊齽t化參數(shù),在大多數(shù)實(shí)驗(yàn)中r和ε的取值分別為32和0.01。
將求出的A和Gt的值代入式(2),求出相應(yīng)的無(wú)霧圖像,為了避免t的值等于0,為其設(shè)置一個(gè)下限t0,t0的取值為0.1。所求的J(x)表達(dá)式如下:
(6)
對(duì)于He等[10]對(duì)透射率錯(cuò)誤估計(jì)的問(wèn)題,蔣建國(guó)等[11]通過(guò)設(shè)置容差值K解決,對(duì)于小于K值的部分定義為明亮區(qū)域,重新計(jì)算其透射率,對(duì)于大于K值的部分,其透射率的值保持不變,當(dāng)K=0時(shí),為原來(lái)的暗通道先驗(yàn)算法,最后得到清晰圖像的表達(dá)式如式(7)所示。
(7)
重估透射率并求解清晰圖像的具體代碼如下:
for i = 1:1:m
%m和n分別為圖像的長(zhǎng)和寬
for j = 1:1:n
for k = 1:1:3
%k表示圖像3個(gè)道通
s=K/(abs(I(i,j,k)-A(k)));
%abs為絕對(duì)值函數(shù)
J(i,j,k)=(I(i,j,k)-A(k))/ %此處對(duì)應(yīng)式(7)
min((max(s,1).*max(Gt(i,j),t0)),1)+A(k);
end
end
end
圖像融合是處理圖像過(guò)程中常用的方法,該方法可以將不同圖像或同一圖像不同形態(tài)相融合在一起,用彼此的優(yōu)點(diǎn)補(bǔ)償各自的缺點(diǎn),使融合后的圖像效果更令人滿意。Galdran等[19]的人工多曝光圖像融合算法在去霧方面取得了很好的成效,因此,將經(jīng)過(guò)伽馬校正后的去霧圖像與CLAHE處理的圖像進(jìn)行線性融合,會(huì)使圖像整體視覺(jué)效果更好,具體的融合公式為:
M=Gr+(1-r)C
(8)
式中:M為融合后的圖像,r為融合系數(shù),G為暗通道去霧后的圖像,C為增強(qiáng)對(duì)比度后的圖像。經(jīng)過(guò)大量的實(shí)驗(yàn)證明,當(dāng)r的取值為0.2時(shí),融合的圖像無(wú)論是在去霧方面,還是在可見(jiàn)度恢復(fù)方面都有所增強(qiáng),圖像中的物體更加清晰。實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 融合結(jié)果
可以看出,隨著r值的增大,圖像中天空區(qū)域的霧越來(lái)越多,圖像的可見(jiàn)度也明顯下降,伽馬校正和CLAHE算法都會(huì)增加圖像的對(duì)比度,CLAHE增加的效果會(huì)更加強(qiáng)烈一些,對(duì)于一些色彩比較豐富的有霧圖像,如果CLAHE在融合中占的比例比較高,去霧后圖像容易出現(xiàn)過(guò)度增強(qiáng)現(xiàn)象。綜合考慮以上結(jié)論,最終確定r的取值為0.2。
該實(shí)驗(yàn)是在普通PC機(jī)上進(jìn)行的,具體配置為:操作系統(tǒng)Windows 7,CPU為Intel? CoreTMi7-6700@3.4 GHz,系統(tǒng)內(nèi)存為8 GB,運(yùn)行算法的軟件為MATLAB2016。
為了證明算法的魯棒性,進(jìn)行了與其他經(jīng)典算法的比較,圖像是兩幅在網(wǎng)絡(luò)上下載的彩色RGB圖像,其中包含天空區(qū)域。選取包含天空?qǐng)D像的原因是:去霧算法通常在天空區(qū)域附近,易出現(xiàn)光暈現(xiàn)象,可以驗(yàn)證改進(jìn)算法的可行性,選取RGB圖像主要是因?yàn)槠浔然叶葓D像去霧效果更明顯,更容易與其他算法進(jìn)行效果對(duì)比,并且RGB圖像包含的圖像信息更多。具體實(shí)驗(yàn)結(jié)果分別如圖6和圖7所示。
圖6 實(shí)驗(yàn)結(jié)果
圖7 實(shí)驗(yàn)結(jié)果
從圖6(圖像大小:600×450, 水平/垂直分辨率:96dpi)中可以看出文獻(xiàn)[10,13-15]算法雖然去除了霧,但圖像的亮度明顯降低,對(duì)于原圖像中藍(lán)色區(qū)域都出現(xiàn)了過(guò)度增強(qiáng)現(xiàn)象,圖像色彩過(guò)于飽和。文獻(xiàn)[12]算法在圖像的天空區(qū)域出現(xiàn)了顏色失真現(xiàn)象,圖像邊緣有偽輪廓出現(xiàn)。文獻(xiàn)[16]和改進(jìn)算法結(jié)果更令人滿意,但文獻(xiàn)[16]算法去霧效果不徹底,圖像的亮度也明顯低于改進(jìn)算法。
在圖7(圖像大?。?50×600, 水平/垂直分辨率:96dpi)中,文獻(xiàn)[12]算法明顯過(guò)度增強(qiáng)了山脈的紋絡(luò),導(dǎo)致圖像嚴(yán)重失真。文獻(xiàn)[10,13-16]算法使圖像局部顏色加深,可見(jiàn)度降低,圖像細(xì)節(jié)模糊,尤其是對(duì)于原圖像中藍(lán)色區(qū)域內(nèi)的恢復(fù)效果都沒(méi)有改進(jìn)算法好,無(wú)論是細(xì)節(jié)的增強(qiáng)還是顏色的補(bǔ)償,其他算法相比改進(jìn)算法都有所欠缺。
目前對(duì)于圖像去霧算法還沒(méi)有統(tǒng)一的評(píng)價(jià)標(biāo)準(zhǔn),這里主要選取了比較具有權(quán)威的峰值信噪比(Peak-Signal to Noise Ratio/ PSNR)和r[20]作為評(píng)價(jià)標(biāo)準(zhǔn), PSNR表示圖像的失真程度以及降噪程度,值越大表示圖像失真越小,噪聲越少。r表示圖像邊緣增強(qiáng)程度,值越大表示圖像的可見(jiàn)度越高,表1和表2為圖6和圖7的客觀評(píng)價(jià)標(biāo)準(zhǔn)表。
表1 圖6的客觀評(píng)價(jià)表
表2 圖7的客觀評(píng)價(jià)表
結(jié)合表1和圖6可以明顯看出,文獻(xiàn)[14]算法可見(jiàn)度最低,文獻(xiàn)[12]算法失真最嚴(yán)重,改進(jìn)算法無(wú)論是PSNR還是r的值都高于其他算法,在圖像可見(jiàn)度恢復(fù)方面和降噪方面更勝一籌。結(jié)合表2和圖7可以看出,由于文獻(xiàn)[12]算法的過(guò)度增強(qiáng),導(dǎo)致圖像失真嚴(yán)重,所以其r值高于改進(jìn)算法,而在降噪方面和可見(jiàn)度增強(qiáng)方面,改進(jìn)算法更好。
伽馬校正參數(shù)r值和調(diào)整對(duì)比度參數(shù)c值對(duì)兩幅圖像(圖6和圖7)的PSNR的影響如圖8所示。從圖8(a)中可以看出,當(dāng)r等于固定值0.7時(shí),隨著c值的增大,圖6和圖7的PSNR值逐漸下降,這是因?yàn)閏值的逐漸增大,導(dǎo)致圖像出現(xiàn)過(guò)度增強(qiáng)現(xiàn)象即失真。從圖8(b)中可以看出,當(dāng)c等于固定值0.01時(shí),隨著r值的增大,兩幅圖像的PSNR值在r=0.7時(shí)達(dá)到了最大值,表明此時(shí)圖像的失真程度最小。結(jié)合前面的圖3和圖4可以得出:當(dāng)r=0.7、c=0.01時(shí)改進(jìn)算法的效果最為理想。
(a) c值對(duì)PSNR的影響(r=0.7)
(b) r值對(duì)PSNR的影響(c=0.01)圖8 參數(shù)對(duì)PSNR影響的折線圖
圖像去霧的目的是提高圖像的可見(jiàn)度和亮度,進(jìn)而識(shí)別圖像中感興趣區(qū)域,現(xiàn)有的一些算法雖然在去霧方面效果較好,但往往在圖像顏色恢復(fù)方面表現(xiàn)欠佳,去霧后的圖像局部區(qū)域物體顏色加深,導(dǎo)致圖像整體偏暗,圖像中的細(xì)節(jié)更是不易顯示和識(shí)別。對(duì)此,改進(jìn)后的算法選取了伽馬校正和CLAHE算法。伽馬校正可以提高圖像亮度,進(jìn)而避免了去霧后圖像局部變暗的現(xiàn)象。CLAHE算法不僅可以提高圖像對(duì)比度,而且在色彩恢復(fù)方面有很好的效果,有效避免了去霧后圖像色彩加深的問(wèn)題。改進(jìn)后的算法簡(jiǎn)單,復(fù)雜度低,但魯棒性和實(shí)效性很強(qiáng),還可以處理霧天的交通監(jiān)控圖像,提高汽車牌照識(shí)別率,減少事故發(fā)生的概率,因此具有較強(qiáng)的實(shí)用價(jià)值。