陸 歡
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
在計算機視覺系統(tǒng)中,很多應(yīng)用都需要圖像具有一定的魯棒性,如智能交通,視頻監(jiān)控,智能車輛等領(lǐng)域。然而在現(xiàn)實生活中,由于惡劣天氣的影響,尤其在霧霾天氣,大氣中的懸浮顆粒和水滴會對光進(jìn)行散射和吸引,導(dǎo)致了很多細(xì)節(jié)的丟失,使得其可利用價值降低,因此對有霧圖像進(jìn)行去霧處理具有重要意義。
目前的發(fā)展階段,圖像去霧的方法主要分為兩大類:第一類是基于非物理模型的圖像增強方法,例如直方圖均衡化算法[1]和基于Retinex理論的增強算法[2-3],這類算法優(yōu)點是對清晰度圖像進(jìn)行增強,改善圖像的質(zhì)量,缺點會導(dǎo)致部分圖像信息的損失,去霧效果不理想。第二類是基于物理模型的圖像復(fù)原算法,該方法通過分析導(dǎo)致霧化圖像降質(zhì),算法原理是:基于懸浮顆粒對光的散射作用,建立大氣散射模型,在此基礎(chǔ)上反驗復(fù)原圖像的真實信息,真正從物理意義上實現(xiàn)去霧效果。
Narasimhan[4]等提出了許多求取場景深度信息的方法,從RGB顏色空間推導(dǎo)出二值散射模型,利用多幅彩色圖像求取場景深度信息。孫大寶等人[5]根據(jù)霧化圖像全局和局部去霧的能量最優(yōu)化模型,推導(dǎo)出相應(yīng)的偏微分方程,從而達(dá)到圖像去霧目的。而在先驗圖像復(fù)原方面,Tan等人[6]利用最大化霧化圖像的局部對比度的方法復(fù)原霧化圖像,但處理后的圖像容易出現(xiàn)光暈現(xiàn)象,且顏色通常過于飽和。Fattal[7]假定光的傳播和場景表面遮光部分局部無關(guān),在此基礎(chǔ)上計算場景的投射和反射率,從而消除圖像中的霧氣干擾,但是對于濃霧圖像,該方法的去霧圖像顏色偏暗,失真比較嚴(yán)重。He等人[8-9]提出了暗原色的去霧理論,運用暗通道估計粗糙透射率,再利用軟摳圖優(yōu)化透射率,該方法雖然效果較好,但是運算量較大,同時當(dāng)霧化圖像中含有大面積明亮區(qū)域,復(fù)原區(qū)域顏色容易失真。
針對以上的情況,本文提出對基于暗原色原理的去霧算法并對其進(jìn)行了改進(jìn),引入容差參數(shù)優(yōu)化明亮區(qū)域透射率的求取,減少去霧圖像顏色失真的情況,最大化實現(xiàn)去霧。
大量環(huán)境光線可能被散射到攝像頭中,二者重疊形成新的圖像,最終導(dǎo)致攝像頭拍攝失真、對比度降低。
McCartney[10]提出了廣泛應(yīng)用在計算機視覺領(lǐng)域大氣散射模型,根據(jù)模型可知圖像成像光線來自兩部分:一是目標(biāo)物體的反射光線,但其在傳播過程中會因為散射而發(fā)生大幅度衰減,即衰減模型;另外是來自環(huán)境光由于散射而進(jìn)入攝像頭的光線,即大氣光模型。式(1)及對物化圖像的散射模型進(jìn)行了描述
I(x)=t(x)J(x)+(1-t(x))A
(1)
式中,t(x)表示光線傳輸透射率,I(x)表示霧化圖像,J(x)表示目標(biāo)物體反射光的光線強度,即無霧圖像,A表示大氣光值。
當(dāng)圖像中包含天空區(qū)域時,和天空區(qū)域的深度相比,可以假定場景中的深度為0,在此基礎(chǔ)上對圖像場景深度進(jìn)行歸一化處理
J(x)=emx(I(x)-A)+A
(2)
令d=nx,式中n表示歸一化系數(shù),m=n,x表示歸一化處理后的場景深度。x值較小時,emx變化較為緩慢;x值較大時,emx變化急速增加;令m=x,可推出圖像霧化簡易模型
I(x)=e-x2(J(x)-A)+A
(3)
由式(3)可知則圖像復(fù)原公式可化為
J(x)=ex2(I(x)-A)+A
(4)
暗原色先驗是基于在統(tǒng)計清晰圖像中的絕大部分非天空局部區(qū)域,在每個局部區(qū)域中都存在著一個或多個顏色通道的某一些像素具有很低的值。換言之,對于圖像J,暗通道可以用下式定義
(5)
Jdark(x)是以x像素點為中點的像素區(qū)域塊的暗原色,針對一個清晰無霧非天空區(qū)域的圖像,該值都很小,趨近于0。如果用15×15像素將圖像劃分為區(qū)域塊,Jc代表J的一個顏色通道,其中c∈{R,G,B},是以x為像素點中心的一塊方形區(qū)域,經(jīng)過大量實驗觀察,在每個方形區(qū)域總存在灰度值很低的{R,G,B}通道,抽取出這些塊的灰度值,可以得到該圖的暗原色圖。
通過給定的大氣散射場模型,可知圖像的霧化物理模型,估計出大氣光值A(chǔ)后,假設(shè)每個窗口的透射率均為一個常數(shù),即t(x),對式(1)兩邊同除A操作后,兩邊分別再進(jìn)行兩次最小值操作可得
(6)
根據(jù)暗原色先驗理論,即可獲得大概的透射率
(7)
(8)
即兩透射率和大氣光值帶入式(1)中,可恢復(fù)去霧圖像
(9)
暗通道先驗的局限性在于會導(dǎo)致包含大面積天空區(qū)域的圖像出現(xiàn)顏色失真,且求解大氣光值易受亮度高的因素干擾。因此本文針對這兩種問題提出相應(yīng)優(yōu)化。
暗原色先驗去霧算法原理簡單、易于實現(xiàn),效果較好,但該算法仍有不足。暗原色求取過程中,窗口的大小會對圖像的復(fù)原效果產(chǎn)生較大的影響。在透視率的估計運算上,暗原色先驗原理不適用于明亮區(qū)域。復(fù)原圖像去霧之后顏色整體偏暗。因此,在本文中,通過暗原色值得自適應(yīng)估計減小窗口大小對于復(fù)原效果的影響,引入容差參數(shù)改變明亮區(qū)域的透射率,運用改進(jìn)的線性亮度調(diào)節(jié)方法調(diào)節(jié)整體圖像亮度。
在暗原色值的估計過程中,He[11]首先求出圖像各個像素點R,G,B分量最小值min(Jc(y)),然后再選取局部區(qū)域Ω(x)內(nèi)像素最小值作為次中心點 的暗原色值,逐點替代,其中Ω(x)為以x為中心,15×15的局部區(qū)域。一般局部區(qū)域越大,暗原色先驗去霧的質(zhì)量就越高,這是因為此時局部區(qū)域中含有暗原色像素點的幾率會增大;反之,局部區(qū)域較小時,復(fù)原圖像顏色會過度飽和,如圖1(b)所示。此外,局部區(qū)域越大,透射率在該區(qū)域內(nèi)為常數(shù)的設(shè)定就越不靠譜。如果Ω(x)過大,那么去霧圖像的深度間斷點處可能產(chǎn)生光暈現(xiàn)象,如圖1(c)所示。
為解決上述Ω(x)過大或過小的問題,本文對局部區(qū)域大小的選取進(jìn)行了改進(jìn)。以5×5模板作為局部區(qū)域Ω(x)最小值,其余的情況選取圖像行或列最大值的1%作為局部區(qū)域Ω(x)大小。如果一幅圖像的尺寸為m×n,則Ω(x)大小為block×block,其中block為
block=max(5,m×1%,n×1%)
(10)
雖然暗原色先驗去霧算法在處理自然的霧化場景具有很好的效果,但是通過實驗會發(fā)現(xiàn),當(dāng)霧化圖像包含的明亮面積較大時,復(fù)原圖像容易發(fā)生顏色時真現(xiàn)象,如圖2所示,其中(a)為霧化圖,(b)為透射率圖,(c)為去霧圖。
按照He的方法估計大氣光的值A(chǔ)時,若是霧化圖像包含大面積明亮區(qū)域,A值對應(yīng)的像素點落在明亮區(qū)域的概率較大。根據(jù)計算透射率的公式(7)可知,像素點的值I和大氣光的值A(chǔ)的差值越小,相對應(yīng)的透射率的值也就越小。對于明亮區(qū)域,利用式(7)計算出來的透射率趨近于0。
然而對于圖像中的明亮區(qū)域的像素點,R,G,B3個顏色通道的值普遍偏大,不存在某個通道的值趨近于0的情況,暗原色理論失效,此時式(6)可以化為
(11)
由此可知,在明亮區(qū)域,圖像像素點亮度值較高,該區(qū)域的暗色值也相對較大,并不接近0,則min(min(Ic(x)/Ac))的值小于1,因此明亮區(qū)域?qū)嶋H透射率要大于He算法的透射率值,而透射率值過小估計使得明亮區(qū)域顏色恢復(fù)錯誤,從而導(dǎo)致嚴(yán)重的色偏。
明亮區(qū)域內(nèi)各像素點3個通道的灰度值普遍偏大,而且差值較小,通常各通道之間的差值小于或等于10。因此,本文定義色彩偏移量
δc(x)=|Ic(x)-A|,c∈(r,g,b)
(12)
由上式可知,δr,δg,δb相差極小,又因為明亮區(qū)域根據(jù)He算法計算的透射率值要小于真實的透射率值,趨近于0,代入式(9)相除后就會使差值被大幅度放大幾倍、十倍、甚至百倍,導(dǎo)致復(fù)原圖像的顏色產(chǎn)生失真。
為解決這一情況,本文引入容差參數(shù)K[12],認(rèn)為|I-A|
(13)
圖3為透射率改進(jìn)后,圖2中兩幅霧化圖像的去霧效果對比圖,從圖中可以看出He的方法在天空等明亮區(qū)域存在失真現(xiàn)象,而本文改進(jìn)后的算法在明亮區(qū)域顏色失真較少。
霧天情況下,成像設(shè)備拍攝的圖像整體偏灰白,經(jīng)過暗原色先驗算法處理后,復(fù)原圖像整體偏暗,如圖4所示。為了增強圖像的亮度和對比度,本文利用式(14)對去霧圖像進(jìn)行處理,從而達(dá)到亮度增強的效果。
(14)
式中,J(x)表示復(fù)原圖像;R(x)表示亮度增強圖像;λ表示亮度增強系數(shù),λ∈[-1,1],亮度調(diào)節(jié)后如圖4(c)所示。
本文的算法流程如圖5所示,從模型中獲取數(shù)據(jù)之后,根據(jù)|I-A|>K判定是否需要對透射率進(jìn)行校正。
在硬件配置為CPU雙核2.00 GHz,內(nèi)存 4 GB,軟件為Visual Studio 2013, Windows 7操作系統(tǒng)的電腦上,選取20幅1 980×1 080 大小的圖像,利用式(3)對圖像進(jìn)行去霧化處理,再分別利用He算法和暗原色優(yōu)化算法進(jìn)行圖像去霧處理。其中兩幅圖像的處理結(jié)果如圖6所示。
圖6為He算法和暗原色優(yōu)化算法的去霧效果對比圖,從圖中可以看出:He算法和本文暗原色優(yōu)化算法均能達(dá)到去霧的目的,但是相比之下,本文優(yōu)化算法的去霧效果更好,復(fù)原圖像更清晰,顏色更加鮮艷。此外,當(dāng)霧化圖像出現(xiàn)大面積明亮區(qū)域時,He算法復(fù)原圖像出現(xiàn)了顏色失真的情況,而本文的優(yōu)化算法則很好的避免了這一現(xiàn)象。
表1客觀評價指標(biāo)Table 1.Objective evaluation indicators
為進(jìn)一步比較He的算法和暗原色優(yōu)化算法的去霧效果,本文采用信息熵、平均梯度、對比度和執(zhí)行時間對去霧圖像進(jìn)行客觀評價,結(jié)果如表1所示。從表1的數(shù)據(jù)可以得出,無論是He算法還是本文的優(yōu)化算法均能有效增大圖像的信息熵、平均梯度和對比度,但是相比之下,本文優(yōu)化算法的增幅更加明顯。此外,從時間復(fù)雜度來看,本文算法的運行時間僅是He算法的約1/4。
本文基于霧天大氣散射模型和暗原色先驗理論,提出了一種改進(jìn)的去霧算法。先利用統(tǒng)計截斷的算法估計大氣光值;然后對暗通道算法粗略估計透射率,對于明亮區(qū)域進(jìn)行自適應(yīng)矯正處理,帶入大氣散射模型完成去霧處理,并通過調(diào)整改善復(fù)原圖像的亮度。通過改進(jìn)的方法有效的降低了明亮區(qū)域的色彩失真,在細(xì)節(jié)不丟失的前提下保證了福原圖像的亮度。優(yōu)化算法可以為圖像分割,智能分析等圖像處理工作提供有效的預(yù)處理手段,可作為去霧算法移植到視頻圖像采集的前端,為減少后臺處理的運算和空間提供了支撐。