當前位置:學問君>學習教育>畢業論文>

採用快速導向濾波的暗通道先驗去霧算法的研究與實現

學問君 人氣:1.15W

摘要:本文首先闡述了暗通道先驗去霧的理論基礎及其適用範圍,其次對於基於暗通道優先理論的霧天圖像清晰化處理的基礎算法及可能進行優化的步驟進行了分析,最後在此基礎之上採用了導向濾波與最新的快速導向濾波算法代替軟摳圖實現了算法的進一步優化。在上述理論研究基礎之上,本文使用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值時已知的,在實際中,我們可以藉助於暗通道圖來從有霧圖像中獲取該值。具體步驟如下: