西藏大學(xué)工學(xué)院 張 平 王新勝 何 垚 吳佩秀
圖像降質(zhì)的原因主要是霧霾、沙塵暴等天氣的出現(xiàn),而此等天氣下,由于空氣中沙塵,水霧較多,使得太陽光照射到地面時(shí)光線發(fā)生了折疊、偏移,造成了場景深度不夠,為行車、室外視頻監(jiān)控帶來了諸多不便。近年來,隨著計(jì)算機(jī)軟件的不斷研發(fā),硬件設(shè)施的不斷完善,降質(zhì)圖像快速恢復(fù)技術(shù)也越來越成熟,使得對霧霾天氣下的降質(zhì)影像進(jìn)行實(shí)時(shí)恢復(fù)增強(qiáng)有了可能性。本文以降質(zhì)圖像復(fù)原算法為基礎(chǔ),設(shè)計(jì)一種適合于霧霾天氣下實(shí)時(shí)影像增強(qiáng)復(fù)原的算法,為霧霾天氣下車輛行駛保駕護(hù)航。
單幅降質(zhì)圖像復(fù)原增強(qiáng)是一個(gè)非常復(fù)雜的問題, 但在一代代科研人員的不斷探究中,使得計(jì)算機(jī)處理霧霾天氣下降質(zhì)模糊圖像越來越快速方便。
直方圖均衡算法[2]是降質(zhì)圖像清晰度增強(qiáng)復(fù)原最常用的算法,它處理圖像的中心思想是把降質(zhì)圖像的灰度進(jìn)行均分,即用直方圖把全圖的灰度表現(xiàn)出來,把灰度較為密集的圖像區(qū)間均勻分布在全圖中。
相對于直方圖均衡算法, 本文提出的是一種完全不同于以往算法的的降質(zhì)圖像快速復(fù)原算法。雖然本文提出的算法實(shí)行起來比較麻煩,但是相比于以往的算法,對降質(zhì)圖像復(fù)原,他更加快速,處理出的圖像也更加清晰,如果能繼續(xù)研究,使其能對圖像幀快速處理,那么該算法就可應(yīng)用于霧霾天氣下或沙塵暴中實(shí)時(shí)圖像處理,用于車載實(shí)時(shí)圖像清晰顯示、場景度較低時(shí)交通岔口視頻監(jiān)控圖像處理。
學(xué)習(xí)以往的算法時(shí),發(fā)現(xiàn)大部分算法都是利用Koschmieder’s定律[3]對圖像深度進(jìn)行處理,但是如果缺少了能利用的深度,以往算法就不能使用Koschmi eder’s定律將場景深度d(焦點(diǎn)前后的清晰范圍又稱景深)和大氣因子k(包括沙塵,水汽等)之間的聯(lián)系分開或者使其聯(lián)系不再緊密,因此就無法達(dá)到想要的圖像清晰效果。為此本文引入了空氣耗散函數(shù)的強(qiáng)度函數(shù),所以Koschmieder’s定律就可以改寫成:
式中I(x,y)是原始圖中的灰度在圖中像素中所占的強(qiáng)度比例值,R(x,y)是當(dāng)空氣質(zhì)量良好,光線分布均勻,沒有霧霾和沙塵的圖像灰度值強(qiáng)度。因此,就不必再考慮缺少場景深度的問題了,只需要推算出空氣耗散函數(shù)V就可以了。所以該算法可細(xì)致的分為三步:首先是推導(dǎo)大氣耗散函數(shù)V(x,y);其次是圖像清晰度恢復(fù);最后是視覺處理和色調(diào)映射。
為了更好的解釋本文的算法,我們引入了影像學(xué)中“白平衡[4]”的概念,且假設(shè)白平衡是在本文算法處理圖像前對降質(zhì)圖像進(jìn)行預(yù)處理。當(dāng)白平衡能準(zhǔn)確完整的對圖像進(jìn)行預(yù)處理時(shí),霧中的水汽因子將完全成白色,因此,可將Is假設(shè)為(1,1,1),I(x,y)假設(shè)在(0,1)之間。對于一些場景深度不夠的圖像,白平衡相當(dāng)于直方圖均衡算法中的局部平均值。
本文算法最重要的一步是計(jì)算出空氣耗散的強(qiáng)度值。前面我們已知,空氣耗散函數(shù)是受空氣中水汽含量和沙塵數(shù)量制約的。當(dāng)原始圖中空氣耗散強(qiáng)度為正,并且白平衡已將圖像中的水汽因子完全處理成白色的,所以V(x,y)的值永遠(yuǎn)小于或等于I(x,y)的最小值。因此可以設(shè)定一個(gè)函數(shù)W(x,y),為原始圖像中每個(gè)像素的最小灰度值,W是在原始圖像的白度值。
如果原圖是順著像素漸變點(diǎn)的邊緣平滑的,因此前面說的問題可以假定為:大于V(x,y)的像素全是平滑的,V(x,y)設(shè)為最大值就可以寫成
圖1 局部均值與標(biāo)準(zhǔn)差圖像
由上可知,原始圖中色素的大變化對圖像復(fù)原的存在著很大的因素重要性,如圖2所示。圖2是對當(dāng)色素沿邊緣完全平滑時(shí)和當(dāng)空氣存在著水汽等因子時(shí)少數(shù)區(qū)域平滑處理后的對比圖。因此當(dāng)由函數(shù)得到的的空氣耗散函數(shù)不對時(shí),而色素又沿邊緣完全平滑時(shí),就會(huì)使圖像變的完全不同,出現(xiàn)錯(cuò)誤的處理結(jié)果。因此原始圖W(x,y)函數(shù)的局部色素均值處理應(yīng)采用前面提到的白平衡算法,避免因?yàn)樯匮剡吘壌笞兓a(chǎn)生不必要的錯(cuò)誤。 而為了維持色素沿邊緣平滑,本文采用一種處理速度更快的雙邊濾波器。所以W(x,y函數(shù))的局部色素均值處理公式可以用median函數(shù)[5]公式為:
sv是濾波器中圖像色素紋理的值。但是原始圖中受霧氣影響的區(qū)域不是絕對的。有可能圖像部分區(qū)域可能沒有霧,即圖像色素不受水汽因子的影響,所以W(x,y)的均必須減去局部色素均值函數(shù)A(x,y)。對于局部色素均值處理后的圖像需要強(qiáng)化圖像色素邊緣的輪廓。然后,本文用W(x,y)-A(x,y)的絕對值來對色素進(jìn)行中值濾波。最后對 乘上一個(gè)大于零且小于一的因子p來調(diào)節(jié)圖像清晰度恢復(fù)的強(qiáng)度大小。由于P*B(x,y)的的結(jié)果不受函數(shù)V的制約,所以此值為一個(gè)不定值??諝夂纳⒑瘮?shù)為:
式中:
圖2 恢復(fù)對比圖
圖2 為前面所提到的算法的處理結(jié)果,最右面的為最終處理結(jié)果(參數(shù)分別取p=0.94, sv=40,si=18)。
圖像清晰度恢復(fù):
現(xiàn)在空氣耗散V(x,y)的函數(shù)已經(jīng)推導(dǎo)出來,那么原始圖的去霧復(fù)原就可以通過解式子(1)得:
在式(5)中,參數(shù)p和sv用于控制能見度恢復(fù)。P的值控制回復(fù)的強(qiáng)度,通常設(shè)在90%和95%之間。意思是除去大氣耗散數(shù)量的90%或者95%。這個(gè)參數(shù)很有用,不過有以下問題:1)高恢復(fù)能見度(當(dāng)p接近1時(shí))色彩會(huì)出現(xiàn)過飽和和太暗;2)低恢復(fù)能見度時(shí)色彩會(huì)不飽和因此會(huì)更清晰。參數(shù)sv精確假設(shè)白目標(biāo)更大的尺度。任何接近于白目標(biāo)比sv更大的尺寸,可以假設(shè)是白色的。相反,比sv小的白目標(biāo)從本質(zhì)上假設(shè)為白色。
在圖像清晰度恢復(fù)過程中,大氣耗散函數(shù)很重要,對比度也在增加。這同樣會(huì)導(dǎo)致噪聲和圖像壓縮后現(xiàn)象的增加。為了軟化噪聲和后現(xiàn)象。這里局部平滑必須符合對比度放大器因子:
標(biāo)準(zhǔn)差 的噪聲經(jīng)過圖像恢復(fù)變標(biāo)準(zhǔn)差成 的噪聲。通過大小為S*S的窗口進(jìn)行平均,標(biāo)準(zhǔn)差變?yōu)椋?/p>
作為結(jié)果,標(biāo)準(zhǔn)差 、s等于對比度因子r.因此選擇局部自適應(yīng)平滑器大小為S*S的平方窗作為中值濾波器。其中S等于對比度因子r的整數(shù)部分。這個(gè)規(guī)則設(shè)置s會(huì)在霧區(qū)域產(chǎn)生過大的窗口。因此增加參數(shù)si,設(shè)置自適應(yīng)窗口的最大尺寸。
前面,本文已經(jīng)敘述了能見度恢復(fù)的步驟,得到的恢復(fù)圖像通常是比原圖像具有更高動(dòng)態(tài)范圍。因此,能見度恢復(fù)最后一步是色調(diào)映射,其對視覺很重要。為了得到相對于原圖像沒有太多不同的結(jié)果圖,我們利用對原圖像和結(jié)果圖的對數(shù)形式進(jìn)行線性映射,這使對應(yīng)的圖像在圖像的底三層(in t he bot t om t hir d par t of t he image)有類似的均值和標(biāo)準(zhǔn)差。由于底部三層通常對應(yīng)于圖像是無霧部分,所以底部三層很用。定義aI和dI為原圖像對數(shù)形式l og(I(x,y))在底部三層的均值和標(biāo)準(zhǔn)差,aR和dR是恢復(fù)圖像對數(shù)形式l og(R(x,y))在底部三層的均值和標(biāo)準(zhǔn)差。色調(diào)映射的第一步是計(jì)算:
接著將結(jié)果圖的高強(qiáng)度動(dòng)態(tài)范圍利用函數(shù)進(jìn)行壓縮。最終的色調(diào)映射圖像T(x,y)通過非線性映射得到,即:
其中G(x,y)是U(x,y)的灰度,MG是G的最大值。且得到的圖像T(x,y)通常在[0,255]之間。
根據(jù)上面所描述的快速清晰度恢復(fù)步驟,編寫程序。在Mat l ab2012a環(huán)境下運(yùn)行。分別對灰度圖像和彩色圖像進(jìn)行處理。
實(shí)驗(yàn)結(jié)果如圖3、圖4所示,從結(jié)果圖分析發(fā)現(xiàn),經(jīng)過程序處理,圖像的清晰度得到明顯改善,處理后的圖像更加清晰。并且處理灰度圖像程序運(yùn)行的時(shí)間為3.212s,處理彩色圖像程序運(yùn)行的時(shí)間為32.2s。且灰度圖像大小為384*288,彩色圖像大小為600*400.可以看出,灰度圖像的時(shí)間很短,處理彩色圖像的時(shí)間要長一些。
圖3 原圖像與灰度圖像能見度恢復(fù)圖像
圖4 原圖像與彩色圖像能見度恢復(fù)圖像
與何愷明《Si ngl e image haze r emoval usi ng dar k channel pr ior》中的方法,進(jìn)行對比實(shí)驗(yàn)。利用兩種方法編寫的程序處理同一副圖像,處理結(jié)果如圖5,圖6。圖5為本文章方法所得到的結(jié)果,圖6為何愷明的方法得到的結(jié)果圖。
比較圖3、圖4,可以看出兩幅圖像都具有去霧效果。不過相對于圖4,圖3中可以看出更多細(xì)節(jié),而且更加清晰,像指示燈的柱子的顏色更深一些。不過圖3中樹的部分存在失真,出現(xiàn)了一些綠點(diǎn)。但總體來說,圖3的去霧效果更好一些,圖像的能見度更高一些。不過,就速度而言,本文章對該圖像(圖像大小為983*668)處理,程序所花的時(shí)間是23s;何愷明的方法對圖像處理,程序所花時(shí)間是20s。何愷明的方法的速度更快一些。不過處理(983*668)的圖像本文章的處理速度也還是可以的。
圖5 原圖像與本文章方法的去霧結(jié)果圖
圖6 原圖像與暗原色先驗(yàn)法的去霧圖
從單幅圖像能見度恢復(fù)沒有利用任何額外的信息,而是作為一個(gè)特別的濾波器問題,因此文中提出了基于中值濾波器的新穎算法,其主要優(yōu)點(diǎn)是他的速度。由于他的復(fù)雜度只是輸入圖像大小的線性函數(shù)。同時(shí)相對于其他算法,該算法也取得了較好的結(jié)果。同時(shí)也提出了新的濾波器,他可以利用鈍角保持邊緣和角落。該濾波器作為中值濾波器的替代。提出的算法,由于它的速度可以被用作許多系統(tǒng)的與處理部分,例如交通領(lǐng)域,監(jiān)控,智能設(shè)備和遠(yuǎn)程傳感。
[1]R.Fattal.Single image d ehazing.In ACM SIGGRAPH’08,pages 1–9,New York, NY,USA,2008.ACM.
[2]R.Tan.Visibility in bad weather from a single image.In IEEE Conference on Computer Vision and Pattern Recognition.
[3]K M He,J Sun,X O Tang . Single image haze removal using dark channel prior[A].CVPR[C].Miami,FL:IEEE Computer Society,2009,1:1956- 1963.(CVPR’08),pages 1–8,2008.
[4]郭璠,蔡自興,謝斌.圖像去霧技術(shù)研究綜述與展望.計(jì)算機(jī)應(yīng)用,2010.9.
[5]Jean-Philippe Tarel Nicolas Hautiere.Fast Visibility Restoration from a Single Color or Gray Level Image.