- 相關(guān)推薦
采用快速導(dǎo)向濾波的暗通道先驗去霧算法的研究與實現(xiàn)
摘要:本文首先闡述了暗通道先驗去霧的理論基礎(chǔ)及其適用范圍,其次對于基于暗通道優(yōu)先理論的霧天圖像清晰化處理的基礎(chǔ)算法及可能進(jìn)行優(yōu)化的步驟進(jìn)行了分析,最后在此基礎(chǔ)之上采用了導(dǎo)向濾波與最新的快速導(dǎo)向濾波算法代替軟摳圖實現(xiàn)了算法的進(jìn)一步優(yōu)化。在上述理論研究基礎(chǔ)之上,本文使用Matlab對多種霧天圖像清晰化處理算法進(jìn)行了逐一實現(xiàn),并設(shè)計了綜合比較系統(tǒng),實現(xiàn)了直方圖均衡化去霧算法、自適應(yīng)直方圖去霧算法以及SSR、MSR去霧算法等與暗通道優(yōu)先算法在效果與效率上的對比分析。本系統(tǒng)不僅能夠?qū)@各種算法的最終結(jié)果和中間產(chǎn)物進(jìn)行輸出保存,還能夠?qū)Ω鞣N算法進(jìn)行算法效率和算法結(jié)果進(jìn)行直觀數(shù)字的對比。
關(guān)鍵詞:霧天圖像清晰化 暗通道先驗 快速導(dǎo)向濾波 數(shù)字圖像處理
一、基于暗通道先驗的去霧算法的理論基礎(chǔ)
在描述惡劣天氣條件對圖像造成的影響時,McCarneg 散射理論得到的米氏散射物理模型是最為常用的,該物理模型表達(dá)式為:
(1.1)
其中β是大氣散射系數(shù),d是場景深度。(x,y)是圖像像素的空間坐標(biāo);I是霧化圖像的顏色值,J是場景無霧情況下的顏色值,A是大氣光顏色值,而t則是場景色彩在各個區(qū)域通過程度的描述。去霧方法的本質(zhì)就是從I獲取J,A和t。
稱為場景直接衰減值,表示景場景直接衰減值描述描述場景顏色值,以及它在介質(zhì)中的衰減程度;被稱為空氣光。在光路上由于大氣粒子的散射作用,雜散光會融入到成像光路中,與目標(biāo)物體的反射光一起參與成像,即圖像復(fù)原中的“噪聲”?諝夤饷枋鲇捎诠饩散射導(dǎo)致場景顏色值偏移的大氣光。
我們可以用傳輸透射率t(x,y)來表示指數(shù)衰減項,則可以得到:
I(x,y)=J(x,y)t(x,y)+A(1-t(x,y)) (1.2)
對于上式,如果已知透射率t(x,y),大氣光A和有霧圖像I,方可求得無霧圖像J:
(1.3)
在大多數(shù)的不包含天空的局部區(qū)域中至少有一個顏色通道中存在亮度很小甚至接近于零的像素。也就是說,在這樣的一個區(qū)域中的最小亮度接近零。
為了更好地描述這個概念,對于任意圖像J,其暗通道由下式給出:
(1.4)
二、透射率t的計算
根據(jù)式J(x)是要恢復(fù)的無霧的圖像,A是全球大氣光數(shù)值, t(x)為透射率,F(xiàn)在的已知條件就是I(X),要求目標(biāo)值J(x),顯然,這是個有無數(shù)解的方程,因此,就需要一些先驗了。
左右同除以A可得:
(2.1)
上標(biāo)c是表示RGB三個通道的意思。
首先假設(shè)每一個窗口內(nèi)透射率t(x)為常數(shù),定義為,并且A已經(jīng)給定,然后對上式進(jìn)行兩次求最小值運算:
(2.2)
在上式中,J是待求的無霧圖像,根據(jù)暗通道先驗理論有:
(2.3)
因此,可以推導(dǎo)出:
(2.4)
(2.5)
這就是透射率的預(yù)估值。
即使在晴天,空氣中也存在著一些顆粒,使得看遠(yuǎn)處的物體還是能感覺到霧的影響,另外,霧的存在讓人類感到景深的存在,因此,有必要在去霧的時候保留一定程度的霧,這可以通過在上式中引入一個在[0,1] 之間的因子,修正為:
(2.6)
三、透射率的優(yōu)化
3.1基于導(dǎo)向濾波的透射率分布優(yōu)化(Guided Filtering)
為了去除暗通道和透射率分布的塊效應(yīng),傳統(tǒng)方法使用軟摳圖來進(jìn)行,但是由于計算過程中構(gòu)建摳圖拉普拉斯矩,計算量極其龐大,該算法的大部分時間都耗在了軟摳圖優(yōu)化透射率上了。為了提高透射率優(yōu)化的速度,我們嘗試用導(dǎo)向濾波的透射率分布優(yōu)化。導(dǎo)向濾波本質(zhì)上其實就是一種雙邊帶濾波,需要一個引導(dǎo)圖像作為引導(dǎo)目標(biāo)。經(jīng)過試驗,我們發(fā)現(xiàn)導(dǎo)向濾波的效果與軟摳圖的效果類似,但是計算速度比軟摳圖提高了不止一個數(shù)量級。該方法的計算速度與濾波窗口尺寸沒有關(guān)系,這是因為濾波過程中利用了積分圖像。我們定義濾波模型如下:
(3.1)
其中 i,j 表示的是處理像素的像平面坐標(biāo)(i 橫坐標(biāo),j 縱坐標(biāo));I 表示引導(dǎo)影像,可以理解為目標(biāo)效果;p 表示原始影像;q 表示輸出結(jié)果影像;是與引導(dǎo)影像 I 相關(guān)的一個函數(shù),該函數(shù)與待處理影像 p 沒有關(guān)系。當(dāng)引導(dǎo)影像 I 和原始影像 p 是完全一樣的時候,式(3.1)則演變成聯(lián)合雙邊濾波。在利用導(dǎo)向濾波的時候,我們定義其核函數(shù)為:
(3.2)
其中 i 表示像素的平面坐標(biāo),I 表示引導(dǎo)影像,q 表示結(jié)果影像,此處對應(yīng)的就是經(jīng)過優(yōu)化后的透射率分布圖,a 和 b 是在窗口內(nèi)恒定的系數(shù)。定義價值函數(shù)如下:
(3.3)
(3.3)中的是一個正則化參數(shù),其目的是為了是防止過大。用線性回歸的方法就求解得到:
(3.4)
(3.5)
表示影像I的當(dāng)前處理窗口,窗口內(nèi)的系數(shù)為和,其中和對應(yīng)影像I的當(dāng)前處理窗口內(nèi)像素強(qiáng)度值的均值和方差,用表示當(dāng)前處理窗口內(nèi)像素的總個數(shù),表示當(dāng)前處理窗口內(nèi)每個像素對應(yīng)的p值的均值。
由于不止一個包含像素i的窗口存在,所以系數(shù)和取所有窗口內(nèi)的均值:
(3.5)
導(dǎo)向濾波是其本質(zhì)就是基于窗口內(nèi)的求和運算,所以在積分圖像已知的條件下,可以較快的實現(xiàn)。導(dǎo)向濾波算法效率高、復(fù)雜度低。
3.2基于快速導(dǎo)向濾波的透射率分布優(yōu)化
3.2.1 快速導(dǎo)向濾波理論基礎(chǔ)
盡管導(dǎo)向濾波有著較高的知名度和并且得到了種類繁多的應(yīng)用,但對其計算過程中存在一種更為簡單有效的加速方法。這種加速方法首先對濾波圖和導(dǎo)向圖進(jìn)行二次采樣,計算局部線性系數(shù),之后對所得系數(shù)進(jìn)行過采樣。并在原始導(dǎo)向圖上采用該過采樣的系數(shù)來產(chǎn)生輸出圖像。這種方法將時間復(fù)雜度從O(N)降低到O(N/S2),其中S是采樣率。在實際實現(xiàn)過程中,可以觀察到超過十倍的加速效果。
此方法對于超大像素圖像的處理有著很好的效果。對于此類圖像,由于濾波尺寸是正比于原始圖像的尺寸,因此采樣后圖像的局部窗口仍能夠為計算局部數(shù)值提供足夠的像素。在本文的實際實現(xiàn)中,采用快速導(dǎo)向濾波這種加速方法,幾乎沒有觀察到明顯的圖像質(zhì)量退化。快速導(dǎo)向濾波作為一種速度快、處理效果好的算法,必然會在今后的圖像處理領(lǐng)域獲得更多的關(guān)注和應(yīng)用。
3.2.2 快速導(dǎo)向濾波具體實現(xiàn)過程
對于式(3.5)我們可以變換為:
(3.5)
首先對輸入的圖像進(jìn)行二次采樣,同時所有的框過濾器處理的對象是低分辨率的圖,這是也是引導(dǎo)過濾的主要進(jìn)行計算步驟之一。通過使用兩個系數(shù)圖和來雙線性過采樣到原來的大小,其它步驟于導(dǎo)向濾波基本相同。
算法3-2 快速導(dǎo)向濾波
在(3.5)式中,和是兩個經(jīng)過平滑處理的圖,并且在q中的邊緣和結(jié)構(gòu)主要通過調(diào)節(jié)圖像I得出。但是導(dǎo)向濾波的主要的計算過程為計算和的平滑圖像部分,這個過程并不需要在全分辨率下進(jìn)行。算法3-2描述了二次采樣版本的快速導(dǎo)向濾波。其需要根據(jù)采樣率s對輸入圖像p和導(dǎo)向圖I進(jìn)行二次采樣。之后所有的框過濾器(box filter)都是在低分辨率圖的基礎(chǔ)上進(jìn)行計算,這一步也正是導(dǎo)向濾波的主要步驟之一。然后對兩個系數(shù)圖和雙線性采樣到初始的大小,最后的輸出圖像q仍然通過計算。在最后一步中,圖像I是全分辨率且沒有降低采樣率的導(dǎo)向圖,并且它會保持對輸出圖像的引導(dǎo)作用。
所有框過濾器的計算復(fù)雜度從O(N)降低到O(N/)。最后的雙線性過采樣和輸出步驟的復(fù)雜度為O(N),但只占據(jù)了整個計算過程的較小部分。
四、大氣光值A(chǔ)的估算
上述推論中都是假設(shè)全球達(dá)氣光A值時已知的,在實際中,我們可以借助于暗通道圖來從有霧圖像中獲取該值。具體步驟如下:
(1) 從暗通道圖中按照亮度的大小取前0.1%的像素。
(2) 在這些位置中,在原始有霧圖像I中尋找對應(yīng)的具有最高亮度的點的值,作為A值。
到這一步,我們就可以進(jìn)行無霧圖像的恢復(fù)了。由式(4.3)可知I,A,t都已經(jīng)求得了,因此,完全可以進(jìn)行J的計算。
當(dāng)投射圖t 的值很小時,會導(dǎo)致J的值偏大,從而使得圖像整體向白場過度,因此一般可設(shè)置一閾值T0,當(dāng)t值小于T0時,令t=T0,本文中所有效果圖均以T0=0.1為標(biāo)準(zhǔn)計算。
因此,最終的恢復(fù)公式如下:
從圖4-1我們可以直觀地看出,處理后圖像的清晰度有了很大的提升,細(xì)節(jié)更加豐富,色彩更加真實,符合預(yù)期去霧目標(biāo)。
五、去霧系統(tǒng)的實現(xiàn)
在本文中,為了評價采用快速導(dǎo)向濾波優(yōu)化透射圖部分的暗通道先驗算法的去霧效果,我們設(shè)計并實現(xiàn)了一個基于matlab的去霧系統(tǒng)。在本系統(tǒng)中,實現(xiàn)了經(jīng)典的直方圖均衡化去霧算法、自適應(yīng)直方圖去霧算法以及SSR、MSR算法,并能直觀的進(jìn)行數(shù)值比較,系統(tǒng)如圖5-1所示。
六、結(jié)語
從運行效果來看,暗通道優(yōu)先算法可以成功處理大多數(shù)霧天圖像,對圖中場景的大部分信息甚至是細(xì)節(jié)部分進(jìn)行還原。采用快速導(dǎo)向濾波替代傳統(tǒng)的軟摳圖的方法來優(yōu)化透視圖,降低了算法的時間復(fù)雜度,使得暗通道先驗算法具有更快的處理速度,提高了該算法在實際生活中得到應(yīng)用的可能性。
采用本文方法優(yōu)化的暗通道先驗去霧算法較基于軟摳圖和導(dǎo)向濾波的暗通道先驗算法在速度上有著極大的提升,且處理效果沒有明顯差異,具有很好的圖像去霧能力,值得得到更廣泛地應(yīng)用和推廣。
參考文獻(xiàn):
[1]K. He, J. Sun and X. Tang, Single Image Haze Removal Using Dark Channel Prior[J].IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTLLIGENCE, 2011.
[2]KaimingHe, GuidedImageFiltering[J].IEEE TRANSACTIONSON PATTERN ANALYSIS AND MACHINE INTELLIGENCE,2013,VOL.35,NO.6.
[3]Kaiming He Jian Sun, Fast Guided Filter.arXiv:1505.00996v1.5 May 2015.
【采用快速導(dǎo)向濾波的暗通道先驗去霧算法的研究與實現(xiàn)】相關(guān)文章:
基于SOPC的LMS自適應(yīng)濾波算法實現(xiàn)03-07
FFT算法的研究與DSP實現(xiàn)03-07
一種改進(jìn)的粒子濾波算法的研究03-07
鐵路行包配裝算法研究與實現(xiàn)03-02