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