廖員 王成輝



摘要:針對現有圖像去霧算法中全局大氣光值和透射率估算不準確導致圖像去霧后色彩失真、去霧效果差等問題,提出一種結合暗通道先驗與梯度導向濾波的圖像去霧算法。首先,通過初始濾波處理,獲取透射率的初始估計值,結合暗通道先驗理論,引入多種控制因子,計算得到更準確的透射率;其次,引入梯度導向濾波算法,進一步優化透射率圖;最后,通過大氣散射模型進行恢復處理,得到去霧圖像。實驗結果表明,研究算法相較其他暗通道先驗算法而言,其PSNR與SSIM平均提升39.64%與32.74%,研究算法在主觀視覺效果和客觀評估指標均優于其他算法。
關鍵詞:圖像去霧;暗通道先驗;梯度導向濾波;大氣散射模型;透射率
中圖分類號:TP391? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)30-0027-06
開放科學(資源服務)標識碼(OSID):
1 引言
信息作為人類社會和科技發展的載體,信息質量的優劣對人類的日常生活和科學研究有著很大的影響。圖像作為信息的一種主要傳遞手段,圖像采集[1-2]也是人們日常生活或科研中不可或缺的一部分。然而圖像設備在采集圖像時,常常會受到外部環境的影響,比如在大霧或者霧霾天的場景下,光線傳播途中遇到懸浮于大氣中粒徑較大的氣溶膠粒子,與之發生交互作用,光能的亮度、顏色等特性將發生改變,此特性不利于圖像的采集。在霧霾的影響下,視頻監控、遠程感應、自動駕駛等實際應用場景容易受到干擾,檢測和識別等高級計算機視覺任務的難度也會增大。同時隨著無人駕駛汽車市場的飛速發展,未來智能車輛行業也亟待解決霧天導致的圖像降質問題。因此,圖像去霧成為一種愈來愈重要的技術,有著非常重要的研究價值和現實意義。
目前圖像去霧算法的研究主要有三個方向[3-4]:基于圖像增強的去霧算法、基于圖像復原的去霧算法與基于深度學習的去霧算法。基于圖像增強的去霧算法有使圖像像素分布更加均勻的直方圖均衡化算法(HLE)[5]、消除反射分量影響的Retinex算法[6]和放大可識別區域的小波變換算法[7]等。基于圖像復原的去霧算法是以大氣散射模型為基礎,通過規律解得其未知因子的值,從而得到去霧圖像。He等[8]研究了一種基于暗通道先驗性規律的去霧技術,克服了圖像失真等問題,取得了良好的圖像去霧效果。然而,在灰色與白色區域,該方法存在失效的可能性,使圖片顏色變得扭曲,表現出不同色塊、色斑、光暈等現象;此外,該方法還存在被暗化的可能。Tan等[9]發現無霧圖像由于受霧霾影響小,物體色彩呈現更豐富多樣、對比度更高,利用這一特征,他們采用了提高霧霾區域去霧處理后圖像的局部對比度的方法。然而,由于對霧霾區域計算可能不準確,該方法存在圖片局部區域色彩過度飽和的問題。Fattal[10]帶領的隊伍基于在一個物體表面光滑的陰影部分與曲折凹陷的陰影部分與光線的透射率局部不相關的假設,提出了估算估計物體的輻射與照明程度,從而算出透射率圖像的方法。然而,由于在團霧的情況下,有霧區域呈現純灰或純白色,不能可靠地獲得透射率圖像,該方法存在圖像失真較大的問題。Tarel等[11]通過中值濾波的變形方式估計圖像的透射率,結合大氣光參數恢復無霧圖像。然而,中值濾波不能去除強邊緣附近的霧,因此該方法無法適應所有場景。Wang等[12]提出了一種多尺度深度融合(MDF)方法對單幅圖像進行去霧處理,可是存在運行效率低等問題。基于深度學習的去霧算法主要分為兩類:一類是使用神經網絡模型對大氣退化模型中的參數進行估算,另一類是使用神經網絡模型(例如生成對抗網絡)直接將輸入的有霧圖像輸出為無霧圖像。然而,基于深度學習的去霧算法需要依賴大量測試數據進行訓練,導致成本太高,難以廣泛應用到實際環境。因此基于圖像增強或圖像復原的去霧算法仍是目前最主流的研究方向。
針對上述問題,本文結合暗部透射通道和大氣散射模型理論,選取多種控制因子,采取粗略圖像透射比率圖進行估算,同時結合梯度導向濾波法獲取更加準確的數據信息,計算出空氣中大氣光照度的平均值,再將已完成簡化處理的透射速率圖與大氣光照值納入大氣散射模型中,提出了一種效果更好的去霧方法。最后,評估與驗證了本文去霧方法的實現效果。
2 理論背景
2.1 大氣散射模型
大氣成像可看作一個對視覺信號的編碼過程。大氣光在到達人眼之前,會先受到空氣中懸浮粒子的類型、規模和稠密程度的影響,也就是說大氣光會受到散射、折射、吸收等影響。在一些嚴重惡劣天氣,例如:霧、霾、沙塵暴等,大氣散射對圖像呈現的效果都會有重要的影響,并且光傳播的距離越遠,大氣散射的影響就越不能忽視。在晴朗的天氣,空氣中懸浮粒子基本能夠忽略不計,對大氣光的散射影響極小。霧天時,由于空氣中大量懸浮粒子的存在,被觀察物體最終到達人眼或者圖像采集設備時,往往會呈現能見度降低、對比度差和色彩灰度等特征。
在計算機視覺領域,大氣散射表現為室外視覺系統所捕獲的場景圖像其對比度、顏色和分辨率等特征衰減明顯。散射模型主要分為兩種:1)入射光衰減模型;2)大氣光成像模型。它的數學描述[13-14]表示如下:
[I(x)=J(x)t(x)+A(1-t(x))]? ? ? ? ? ? (1)
式中:[Ix]是觀察到的霧景退化圖像;[A]為大氣光照值;[Jx]是待取得的清晰無霧圖像;[tx]為大氣傳輸中的透射率,它是0到1之間的值。[J(x)tx]表示目標景物的直接衰減;[A(1-t(x))]表示大氣光經過衰減到達傳感器的能量。由此模型可知:在通常的霧景圖像中,圖像距離相機越遠,圖像的退化程度越高,其亮度也隨之變高。
圖像去霧的目標就是通過一定的手段獲得大氣光值[A]和透射率[tx],然后代入大氣散射模型即可得到無霧圖像[Jx]:
[Jx=Ix-A / tx+A]? ? ? ? (2)
2.2 暗通道先驗理論
He[6]等通過對大量無霧圖像進行觀察發現,在非天空區域中,總會存在一部分局域圖像,其像素中的R、G、B三個通道至少有一個通道的值接近于零。
根據這些統計數據,暗通道用公式表達為:
[Jdarkx=miny∈Ωxminc∈r,g,bJcy → 0]? ? ? ? (3)
式中:[Jx]為待取得的清晰無霧圖像;[Jdarkx]為清晰無霧圖像的暗通道值;[Ωx]是以像素[x]充當中心的起點窗口。暗通道先驗去霧方法的提出是圖像去霧領域的一個重要突破,為研究人員在進行圖像去霧研究時提供了一個新思路。
2.3 暗通道先驗去霧算法
上文表達式(3)的物理意義是指:先計算出各像素分量對應最小值,將其保存在一幅和原始純灰度相同的彩色圖像中(要求灰度一致),接著對彩色原始灰度圖像中各個像素點采取最低值濾波處理,濾波閾值將通過窗口的各大小角度決定,通常要求滿足如下條件:
[WindowSize=2*Radius+1]? ? ? ? ? ? ? ? ? ? ?(4)
其中,暗通道先驗相應理論認為:
[Jdark→0]? ? ? ? ? ? ? ? ? ? ? ? ? ? (5)
接著,將(1)式作變形得到:
[Ic(x)Ac=t(x)Jc(x)Ac+1-t(x)]? ? ? ? ? ? ? ? ? ? (6)
由此可見,上標[c]是指R/G/B三個通道。若假設各個窗口中透射率函數[t(x)]屬于常數,看成為[t(x)],同時[A]值屬于定值,接著對上式等式兩邊的透射率函數分別進行兩次最低值求解,便變成如下表達式:
[miny∈Ω(x)mincIc(y)Ac=t(x)miny∈Ω(x)mincJc(y)Ac+1-t(x)]? ? ? ? ? ? ? (7)
其中,[J]指待求無霧的圖像,結合暗原色先驗知識,發現:
[Jdark(x)=miny∈Ω(x)(minc∈{r,g,b}Jc(y))=0]? ? ? ? ? ? ? ? ? ? ?(8)
由此得到:
[miny∈Ω(x)=mincJc(y)Ac=0]? ? ? ? ? ? ? ? ? ? ?(9)
再將(9)式代入(7)式中,隨之得到:
[t(x)=1-miny∈Ω(x)mincIc(y)Ac]? ? ? ? ? ? ? ? ? ? ?(10)
以上結果可以看成是透射率[t(x)]的預估值。
在日常生活中,即便是藍天白云的好天氣,空氣中往往也有微量顆粒出現。這些霧在使圖片純凈度變低的同時,也能使拍攝中構造出更美的意境,因此,在對圖像進行去霧處理時也需要適當保留相應的霧。通過表達式可知,對應的因子是[ω]。則將式子(10)修正為:
[t(x)=1-ωminy∈Ω(x)mincIc(y)Ac]? ? ? ? ? ? ? ? ? ? ?(11)
經實驗測試,[ω]=0.95效果最佳。
由式(11)得,已知[A],[I],[t],可計算得出[J]值。當透射率[t]很小時,將造成[J]值增加,進而導致圖像整體透射過度。此時對白場信號透射閾值[t0]進行設置,當[t]<[t0]時,視作[t=t0],即以[t0=0.1]為標準實現圖像分析。
最終恢復公式如下:
[J(x)=I(x)-Amax(t(x),t0)+A]? ? ? ? ? ? ? ? ? ? (12)
利用上述理論進行去霧處理后,得到以下效果:
由圖4可知,暗通道先驗去霧算法的去霧效果比較明顯,但是圖2透射率圖中出現了摳圖不準確的情況,所有物體都被識別成一個個方塊,導致在圖4去霧后圖片中,小汽車、燈柱、綠化帶、電線等物體都有一層灰色的輪廓,圖片的純凈度下降。因此,需要提高透視率,改進色彩失真,從而提高圖片純凈度,增強圖片處理效果。
3 本文算法
3.1 暗通道先驗改進嘗試
針對暗通道先驗去霧算法的不足之處,本文首先嘗試改進色彩失真的問題,實現的效果如下:
將圖7與圖4對比發現,改進后的圖像,亮度更大,色調更統一。但在處理低亮度圖片時,改進顏色會出現色彩偏淡的問題,因此需要尋找其他更優算法。
接著,嘗試采取Soft matting,結合軟摳圖對大氣透射率進行優化的方式進行圖像去霧處理,得到的效果如下:
將圖11與圖4對比發現,通過使用Soft matting方法,霧圖的透射率更加精準,圖片純凈度更高。但是天空中出現了紫色的色塊,綠化帶左右的天空顏色差別過大,橋上的路牌也模糊不清,圖片色彩失真非常嚴重。并且增加軟摳圖算法之后代碼變得冗長,運行過程中耗費大量時間。這樣的方式顯然也無法達到去霧預期目標,仍然需要探索更好的算法方式。
通過以上對暗通道先驗算法的改進嘗試后發現,采取暗通道先驗算法處理圖片時,在運算結果中會產生有塊效應,圖片的純凈度下降,因此需要改進色彩失真,提高透視率和圖片的純凈度。接著嘗試結合Soft matting算法,對大氣透射率進行優化處理發現,透射率更加精準,圖片純凈度得到略微提升,然而由于軟摳圖實現方式的特性,代碼變得冗長,圖片處理將進行大量計算并消耗數據存儲時間,導致運算效率下降。因此本文將采用梯度導向濾波的方法進行研究。
3.2 梯度導向濾波的實現
導向線性濾波器組件由一種比較局部線性化的濾波模型組件演變而來,是一種比較于傳統的導向濾波器及其組件,在計算時輸出數據效率較高,并且數據可直接進行提取,得到相應的線性方向濾波信息。導向累加濾波器必須滿足條件:任意一個相同方向的函數濾波器都必須可用。導向累加濾波即對一組方向相同的每個濾波器值進行線性連續地導向累加。導向自動濾波器不僅具備導向累加濾波的獨特優勢和強大功能,同時它們幾乎可在任一濾波方向實現自動濾波處理。經過濾波處理后的各個圖像中的某個像素[i]全部能夠表示成一個上下加權平均值,對應表達式如下:
[qi=jwij(I)pj]? ? ? ? ? ? ? ? ? ? ? (13)
其中,[i]和[j]是指像素點,[wij]是指導向圖像[I],[p]表示獨立變化的函數。實際上,濾波與[p]線性密切相關。
經過對引導濾波算法相應資料[15-16]進行研究分析得到,若將像素[k]視作中心相應窗口[ωk]區域內,獲取的圖像與導向圖將呈現線性關系,是部分區域的線性關系模型,如式(14)所示:
[qi=akIi+bk,?i∈ωk]? ? ? ? ? ? ? ? ? ? ?(14)
式子中的[q]為一個輸入窗口像素的系數值,[I]是指一個輸入窗口圖像對應像素數據,[i]和[k]表示像素點,[a]和[b]表示窗口中全部中心點像素在[k]情況下特定像素系數特點。將式子(14)兩邊進行求導計算,輸出的輸入像素梯度值和其他像素值間形成的梯度誤差將構成相對線性化特征,因此它們之間達到了既能在圖像邊緣上充分保留圖像信息,又有利于平滑處理圖像的設計,此為濾波的主要特征。針對能充當半徑的明確窗口[ωk],[(ak,bk)]同時視作唯一明確的常數系數,確保在局部區域范圍內,若圖像[I]存在邊緣情況,則其輸出圖像[q]會呈現固定值。由于對相鄰像素點而言,[?q等于a?I],因此對參數[a],[b]計算將間接獲取到[q]。同時把輸入圖像中非邊緣又不平衡區域看作噪點[n],則存在[qi=pi-ni]。最終的目標便是實現噪點最小化。
針對各個濾波窗口,可以采取相應的最小二乘法進行表示,表達式如下:
[argmini∈ωk(qi-pi)2]? ? ? ? ? ? ? ? ? ? ?(15)
[argmini∈ωk(akIi+bk-pi)2]? ? ? ? ? ? ? ? ? ?(16)
若在式子(16)中加入一個正則化參數[ε]來防止[ak]過大,需要建立損失函數,表達式如下:
[E(ak,bk)=i∈ωk((akIi+bk-pi)2+εak2)]? ? ? ? (17)
通過線性回歸分析后,計算得到:
[ak=1ωi∈ωkIipi-μkpk)σ2k+ε]? ? ? ? ? ? ? ? ? ?(18)
[bk=p-k-akμk]? ? ? ? ? ? ? ? ? ? ? ? ?(19)
其中,[μk]與[σ2k]分別表示圖像[I]在窗口中的平均值與方差,[ω]指選取區域的像素點總數,[pk]是指經過濾波處理圖像[p]在窗口[ωk]的平均值。
3.3 梯度導向濾波的圖像去霧計算
本文借助一張黑色像素通道圖中輸入的0.1%個黑色像素對應的節點位置,接著在輸入圖像相同的兩個位置上,分別選擇最亮的一個黑色像素,將其作為節點進行比對,再把整個大氣的平均光照強度值和透射率分別代入恢復公式(12)中,計算處理后即可得到一張無弱光霧化的大氣圖像[J(x)],式子如下:
[J(x)=I(x)-Amax(t(x),t0)+A]? ? ? ? ? ? ? ? ? ?(20)
在[t(x)]逐漸趨近于0的情況下,直接衰減項也將趨向0,此時恢復圖像將含有噪點,因此將[t(x)]設置一個下限,[t0]通常當作0.1。
3.4 梯度導向濾波的暗通道圖像去霧方法
結合暗部透射通道相關理論知識,本文算法選取多種控制因子,對圖像透射比率進行估算;同時結合梯度導向濾波法獲取更加準確的數據信息,計算出空氣中大氣光照度的平均值;再將已完成簡化處理的透射比率與大氣光照值全部納入散射量模型中,從而更加準確地實現圖像的去霧處理。
本文去霧處理的主要處理流程如表1所示。
本文使用Matlab軟件實現圖像的去霧處理過程。
4 結果分析
4.1 運行環境
本文算法的運行環境如下:
操作系統:Microsoft Windows 11 21H2。
CPU:Intel(R) Core(TM) i5-12500H 2.50 GHz。
GPU:NVIDIA GeForce RTX2050。
編程軟件:Matlab R2022a。
4.2 結果分析
在相同的硬件設備和Matlab軟件環境下,本文選取出圖像去霧領域中的四個經典測試場景圖片,對本文所提方法進行實驗,最后從主觀和客觀兩方面評估本文方法的實現效果。
4.2.1 主觀評價
主觀評價是指通過對同一場景下不同算法處理所得圖片進行觀察,在一定的評價標準下主要基于評價者對圖片的主觀感受對圖像進行質量評判。本節對所選取的四組場景分別進行去霧處理,所得結果分別與暗通道先驗算法的處理結果進行主觀比較,直觀地判斷所得去霧圖像的優劣。
首先比較兩組場景的透射率圖。由圖12可知,左側暗通道先驗算法得到的透射率圖像出現了色塊,有較明顯的“馬賽克”感。右圖使用梯度導向濾波算法得到的透射率圖像則更加平滑,噪點更少,幾乎沒有色塊。
然后針對去霧領域文獻中四個經典測試圖,將所得結果分別與暗通道先驗算法結果進行主觀比較。由圖13可知,采用暗通道先驗算法處理的圖片,實例一中,小汽車、燈柱、綠化帶、電線等物體上都有一層灰色的輪廓,圖片的純凈度較低;實例二中,鐵塔處出現了白色輪廓;實例三中,圖片上部都有大片色塊,而且整體顏色偏暗;實例四中,樹木邊緣細節失真較多。相比之下使用本文提出的梯度導向濾波的暗通道圖像去霧方法處理得到的圖片,整體觀感更佳。實例一中,天空更加純凈,汽車、護欄、路牌等標志十分清晰,圖片純凈度較高;實例二、三中,處理后的圖片對比原圖暗度基本沒有降低,更加真實;實例四中,導向濾波算法將透射率圖進行了平滑處理,兼顧近處與遠處的樹木邊緣細節,色彩更加真實飽滿,去霧效果更徹底。綜上,使用本文算法處理后的圖像,圖片的整體觀感更佳,去霧處理效果更好,符合預期去霧目標。
4.2.2 客觀評估
然而主觀評價主要依據于人的視覺感知和主觀感受,這種方法雖然直觀快速,但是缺乏統一的評價標準,會因評價者的個體感官差異而導致評價結果的歧義。為了進一步驗證本文所提算法的優勢,本節采用了兩種客觀信噪評估檢驗方法進行評估,分別為:PSNR(峰值信噪百分比)和SSIM(結構相似性)。PSNR(峰值信噪百分比)基于對應像素點間的誤差敏感,是一種衡量信號失真程度的指標,PSNR數值越大,代表圖像的失真越少;SSIM(結構相似性)基于結構信息的感知模型,是一種衡量圖片相似程度的指標,SSIM數值越大,代表圖像失真越少。針對文中四個場景,分別對每個場景的四種去霧方法進行檢測,檢測結果保留4位小數,如表2~表5所示。
由表2~表5算出,針對以上四個場景,本文提出的梯度導向濾波算法相較于傳統的暗通道先驗算法,其兩種客觀信噪評估檢驗方法:PSNR(峰值信噪比)和SSIM(結構相似性)的提升率分別如表6所示。
由表6可知,使用PSNR與SSIM方法檢測后得到,本文所提出的梯度導向濾波算法在PSNR(峰值信噪比)和SSIM(結構相似性)上都優于其他三種暗通道先驗改進算法,與傳統的暗通道先驗算法相比較,本文算法的PSNR與SSIM平均提升了39.64%和32.74%。與主觀評價結果保持一致,使用本文所提算法對霧景退化圖片進行去霧處理后,所得無霧圖像的噪點更少、失真更小、更加清晰。
5 結束語
本文首先闡述了現有的圖像去霧技術和算法,并針對傳統的圖像去霧算法復雜度高、效率低、無法滿足特定場景下的圖像去霧等問題,選取暗通道先驗圖像去霧算法作為基礎,提出了建立梯度導向投射濾波模型的方法,從而實現優化透射率的計算和處理。選擇一種自適應自動調整透射因子[ω]的計算方法,并結合暗通道先驗性理論對透射率圖進行估算,采取梯度導向濾波算法對圖像實現投射圖細化處理,再結合預測的大氣光值和投射比率,根據大氣散射模型獲得最終無霧圖像。通過對去霧領域的四個經典場景進行實驗,所得結果與暗通道先驗算法及其兩種改進方式的實驗結果分別進行主觀和客觀(PSNR和 SSIM)分析對比,證明本文所提算法不僅具有更好的直觀視覺效果,在客觀指標上也效果理想,提升了圖像去霧處理的精度和質量。
參考文獻:
[1] 李成勇,王莎,陳成瑞.基于CMOS圖像采集的車道偏移識別系統設計與實現[J].中國測試,2022,48(6):106-110.
[2] 邢志斌,王培毅,伍剛.無人機圖像采集技術在森林防火中的應用研究[J].消防界(電子版),2022,8(12):56-58.
[3] 蔣華偉,楊震,張鑫,等.圖像去霧算法研究進展[J].吉林大學學報(工學版),2021,51(4):1169-1181.
[4] 袁小平,陳艷宇,石慧.基于霧線暗通道先驗改進的圖像去霧算法[J].激光與光電子學進展,2022,59(8):181-188.
[5] 丁暢,董麗麗,許文海.“直方圖”均衡化圖像增強技術研究綜述[J].計算機工程與應用,2017,53(23):12-17.
[6] Provenzi E,Fierro M,Rizzi A,et al.Random spray Retinex:a new Retinex implementation to investigate the local properties of the model[J].IEEE Transactions on Image Processing:a Publication of the IEEE Signal Processing Society,2007,16(1):162-171.
[7] 馬云飛,何文章.基于小波變換的霧天圖像增強方法[J].計算機應用與軟件,2011,28(2):71-72,95.
[8] He K M,Sun J,Tang X O.Single image haze removal using dark channel prior[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2011,33(12):2341-2353.
[9] Tan R T.Visibility in bad weather from a single image[C]//2008 IEEE Conference on Computer Vision and Pattern Recognition.Anchorage,AK,USA.IEEE,2008:1-8.
[10] Fattal R.Single image dehazing[J].ACM Transactions on Graphics,2008,27(3):1-9.
[11] Tarel J P,Hautière N.Fast visibility restoration from a single color or gray level image[C]//2009 IEEE 12th International Conference on Computer Vision.Kyoto,Japan.IEEE,2009:2201-2208.
[12] Wang Y K,Fan C T.Single image defogging by multiscale depth fusion[J].IEEE Transactions on Image Processing,2014,23(11):4826-4837.
[13] 金仙力,張威,劉林峰.基于引導濾波和自適應容差的圖像去霧算法[J].通信學報,2020,41(5):27-36.
[14] Gao T,Li K,Chen T,et al.A novel UAV sensing image defogging method[J].IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing,2020,13:2610-2625.
[15] 趙波,李洪平,金汝寧,等.一種基于自適應大氣光和加權引導濾波的夜間圖像去霧算法[J/OL].[2022-08-30].工程科學與技術.https://t.cnki.net/kcms/detail?v=-pqffpTiTJMjF10czFFEry1Qx0k5Qd6VHYJEs7Rz3KCMCWd0ebSazvzKDHjzE9FeOEkj1G087BaMS_mIyymPhy1NF8oFu2omIN-NuXiKW440rhjbyRtczw==&uniplatform=NZKPT.
[16] 余嘉昕,王春媛,韓華,等.基于融合代價和優化引導濾波的立體匹配算法[J/OL].[2022-07-02].計算機工程. https://t.cnki.net/kcms/detail?v=-pqffpTiTJOcAL0ggQyyA6BO3h3YviITUCe_fPL99tfqoG5TCMmvuKSUh1wiY0PIHDeS0HmaXdTH 7jfR-tP0EkXFgP6C3sS-GBFgt61FNmcSAx7p-pNfmQ==&uniplatform=NZKPT.
【通聯編輯:謝媛媛】