楊 洋 宋春花
(太原理工大學信息與計算機學院 山西 晉中 030600)
由于近幾年來工業(yè)生產(chǎn)技術的發(fā)展以及自然氣候的變化,霧霾天氣成為當下社會一種越來越常見的天氣現(xiàn)象。在這種天氣條件下,室外的圖像采集會受到相當大的影響,例如:出現(xiàn)所得到的圖像清晰度低、色彩飽和度嚴重不足、圖像細節(jié)丟失比較嚴重等問題[1-2]。故為了提升圖像采集在惡劣天氣狀況下工作的實用性和準確性,對霧天降質圖像的去霧處理就變得尤為重要[3-4]。
目前,在圖像去霧處理方面,根據(jù)理論來劃分的去霧方式主要有兩大類[5],一種方法是基于圖像增強[6-8],這種方法突出了圖像的細節(jié)特征,增強了圖像的對比度,以此來實現(xiàn)圖像去霧,但是因為這種方法并沒有考慮圖像降質的本質問題,使得去霧效果不理想,相對來說容易導致圖像失真的情況發(fā)生;另一種方法是基于物理建模的圖像復原[9-10],這種方法從圖像降質的本質出發(fā),構建了大氣散射模型,該模型通過假設法和先驗的知識來反推未降質的圖像,使得圖像的信息能夠得到很好的保存,運用這類算法復原的圖像既真實又自然,所以受到了國內外研究人員的高度關注,其中耳熟能詳?shù)慕?jīng)典算法就是暗通道先驗算法。
本文提出一種高斯自適應多尺度加權濾波去霧算法。針對單幅圖像的去霧,構建了最小通道與高斯函數(shù)之間的關聯(lián),通過加權濾波的方式,對最小值濾波進行多尺度濾波加權合并得到暗通道圖像,由于暗通道圖像能反映霧濃度信息,結合高斯函數(shù)模型,將其中的標準差轉化為標準差變量,自適應調整透射率從而得到粗糙透射率;之后將得到的粗糙透射率進行多尺度的引導濾波,并且加權合并得到最終優(yōu)化的透射率;最后結合加權大氣光強并依據(jù)大氣散射模型對圖像進行去霧復原處理。本文的去霧算法合理地解決了高亮、云霧、光照不均勻區(qū)域等問題,同時去霧之后的圖像有著更好的、更加清晰的圖像對比度,去霧精確性強、魯棒性高,去霧效果好。
在計算機圖形和計算機視覺學方面,目前,用于有霧圖像處理的最廣泛使用的方法是McCartney等提出的大氣散射模型。該模型的公式如下:
I(x)=J(x)t(x)+A[1-t(x)]
(1)
式中:x表示的是圖像的像素點坐標;I(x)表示拍攝采集到的有霧圖像;J(x)表示去霧后所得到的圖像;t(x)表示透射率;A表示大氣光強值。
t(x)=e-βd(x)
(2)
式中:d(x)表示場景深度,即場景到圖像采集系統(tǒng)的距離;β表示介質散射系數(shù)。從參數(shù)中可以看出,去霧后的圖像、透射率和大氣光強為三個未知變量,由此可以看出大氣散射模型去霧的關鍵在于通過相關方法對透射率的計算和大氣光強的估算。式(2)中由于圖像景深信息很難獲取,透射率的獲取難度很大,因此,提出的暗通先驗算法提供了新的思路。
He等觀察并統(tǒng)計了5 000幅室外無霧圖像,提出了經(jīng)典的暗通道先驗理論,使用式(3)來表示。
(3)
式中:Jc(y)表示某個像素值的通道;Ω(x)表示以x為中心的確定半徑的方形濾波窗口。由此提出了暗通道先驗理論:
Jdark(x)→0
(4)
假設獲得了大氣光值,根據(jù)式(1)和式(4),可以得到透射率:
(5)
式中:Idark(x)是有霧圖像的暗通道操作。由于此算法使用了最小濾波的方法,給暗通道圖像帶來明顯的塊狀效應,導致原始圖像的邊緣特征保存得不好,為了進行優(yōu)化處理,He等采用soft—matting算法;此外,對于明亮區(qū)域(如天空等)的透射率估計太小的情況時有發(fā)生,從而在白色和天空區(qū)域,暗通道先驗算法無法起到很好的效果。
關于上述問題,本文提出一種自適應的高斯多尺度加權濾波去霧算法。算法流程如圖1所示,該算法主要分為四個部分,第一個部分是通過多尺度最小值加權濾波得到暗通道圖像;第二部分是建立最小通道與高斯函數(shù)之間的關系,通過線性約束和自適應標準差調整像素灰度值后,可獲得粗級透射率;第三部分將所得粗級透射率進行多尺度加權引導濾波,來得到優(yōu)化透射率;第四部分將大氣光強進行加權平均,改進大氣光強的獲得值。最后,通過大氣散射的物理模型獲取除霧后的最終圖像。
圖1 算法流程
2.1.1多尺度最小值加權濾波
多尺度是對單尺度的概括,將不同尺度的圖像進行最小值濾波,并結合線性加權的方法進行處理,平衡了動態(tài)范圍的壓縮和色彩保真度。選擇小、中、大三個不同尺度的標準差進行加權平均,能夠起到很好的效果。
暗通道Idark(x)的計算公式:
(6)
式中:Idark(τ)(x)是第τ個尺度的暗通道圖像;ατ是對應尺度的權重;n是尺度的個數(shù)。本文選擇了三個尺度來進行最小值濾波,結果如圖2所示。
(a)尺度1 (b)尺度2
2.1.2高斯模型自適應線性約束
假設大氣光已知,對式(5)進行最小通道處理,可得到:
(7)
將式(7)化簡可得到:
(8)
(9)
高斯函數(shù)可以通過調節(jié)標準差δ來調整像素的灰度值,當δ值取較小的時候,可以估計出較小的透射率;反之,則可以估計較大的透射率。并且當δ的值較小時,遠處的景象恢復得比較好而近處的景象太過于飽和;反之,近處的景象恢復效果好,而遠處的景象去霧效果不夠明顯,霧度較大。效果如圖3所示。
(a) 原霧圖 (b) δ=0.3
故δ若取定值則無法同時保證近處景象和遠處景象的去霧效果,因此本文采用了δ(x)來自適應地調節(jié)標準差值的大小,即近處景象選取較大的δ的值,遠處景象選取較小的δ的值。從而得到粗級透射率:
2.1.3多尺度加權引導濾波
假設引導圖像I與輸出圖像q是在像素點k為中心、半徑為r的窗口Ωr(k)內進行線性變換的關系為:
q(x)=akI(x)+bk?∈Ωr(k)
(10)
式中:ak與bk為常量。
為了克服這種問題,本文利用了加權引導濾波的方式將代價函數(shù)轉化為:
(11)
(12)
bk=μp,r(k)-akμI,r(k)
(13)
式中:μ表示的是均值。將不同尺度窗口求得的值進行平均化,然后將結果作為該像素點的ak與bk的值,得到:
(14)
式中:|Ωr(x)|是窗口Ωr(x)的像素個數(shù)。
對于得到的粗糙透射率圖像進行多尺度加權引導濾波之后,可以得到優(yōu)化的透射率圖像,記作t(x)優(yōu),從而優(yōu)化了透射率,如圖4所示。
(a) 粗糙透射率 (b) 尺度4 (c) 尺度5
本文通過加權平均的方法來求大氣光強值A,將圖像的光亮區(qū)域定義為U(x),像素的總數(shù)為M,光亮區(qū)域的像素總數(shù)為m。
暗通道Idark(x)的最大像素值可以表示為Imax(x),即:
(15)
光亮區(qū)域像素最大值的中值Umed為:
Umed=med[max(U(x))]
(16)
式中:med表示取中值。
改進之后的加權大氣光強為:
A=nUmed+(1-n)Imax(x)
(17)
通過優(yōu)化后的透射率t(x)優(yōu)和大氣光值A,使用式(1)可以對圖像進行還原,得到如下公式:
(18)
為了防止分母無限趨近于0,因此利用t0來限制透射率的下限,令t0=0.1。
為了驗證提出的去霧算法的有效性,本文利用了在單幅圖像去霧領域經(jīng)常用到的圖片進行測試,同時與現(xiàn)有的經(jīng)典的去霧算法去霧之后的圖片進行了對比和分析。實驗所用到的軟件是MATLAB R2018b,操作系統(tǒng)為64位Windows 10,硬件采用的平臺是Intel(R) Core(TM) i7- 8750H CPU @ 2.20 GHz 2.21 GHz,8 GB內存。
本文的算法與He等[11]、Tarel等[12]、Meng等[13]、Fattal等[14]、Ren等[15]的算法進行了圖像效果的比較,實驗結果如圖5所示。
(a) 原始霧圖
圖5(b)中He等的方法是暗通道先驗去霧的結果,通過實驗可以得出霧圖還原之后圖像色彩比較自然,基本上消除了霧霾的影響,但是對于明亮場景的圖像恢復時候會出現(xiàn)暗色調的情況,尤其是對于景深處,除霧效果不明顯,并且某些地方的細節(jié)會丟失。圖5(c)中Tarel等的方法是一種利用中值濾波和變形代替軟摳圖的基于快速濾波的去霧算法,雖然這種方法速度快而且薄霧圖像恢復的能見度很高,但是,這種方法的全局顏色和局部窗口的細節(jié)會存在失真的情況,較難處理有場景景深跳變的圖像,其中第一幅圖和第五幅圖的局部失真情況較為嚴重。圖5(d)中Meng等的方法是一種具有邊界約束的圖像去霧方法,通過實驗結果來看,這種方法雖然能夠達到基本的去霧效果,但是這種方法犧牲了圖像的細節(jié)部分,從而使得復原后圖像顯得過于飽和,從而在顏色方面出現(xiàn)失真情況,其中第一、第二、第四和第五幅圖片可以明顯地看出色彩失真。圖5(e)中Fattal的方法是一種從單幅輸入圖像中估計傳輸函數(shù)的方法,此方法適用于不均勻的霧和薄霧圖像的處理,并且增加了圖像的能見度,但是難以恢復濃霧圖像和信噪比低的圖像,例如第四幅和第五幅圖,恢復效果極差。圖5(f)中Ren等的方法是通過多尺度卷積神經(jīng)網(wǎng)絡的方法來進行圖像去霧處理,此方法達到了比較不錯的去霧效果,而且去霧時間較快,但是所去霧的圖片光暈過于明顯,在細節(jié)方面處理不夠理想,對于比較暗的圖片進行去霧處理光暈更加明顯,其中第一幅和第五幅圖片光暈非常明顯。本文方法從圖5(g)中可以看出,恢復后的圖像有很好地效果,細節(jié)豐富、亮度適中、色彩鮮明。近處的景象,細節(jié)能夠很好地體現(xiàn)出來;遠處的景象,譬如天空等遠景,去霧之后所得圖像色彩效果也極佳?;旧匣謴土藞D像,達到了去霧的水平,顏色鮮艷處過飽和現(xiàn)象也有很好的解決。
主觀評價通常有一定的局限性,單純從圖像的處理程度來評價一個算法的優(yōu)劣性往往會有失偏頗,所以需要采用客觀分析的方法來進行。現(xiàn)如今運用最多的就是可見邊緣梯度法,通過可見邊集合數(shù)e、平均梯度r、飽和像素點的個數(shù)百分比σ還有運行時間作為評價標準。其中:e和r的值能夠表示去霧效果,值越高,除霧效果越好;飽和像素點的個數(shù)σ和運行時間t越小越好。e、r、σ可以用以下公式來表示:
(19)
(20)
(21)
(a) e值對比
從柱狀圖可以看出,關于可見邊e的計算,Ren等的算法與本文算法接近,而且優(yōu)于He等、Tarel等、Meng等、Fattal的算法,本文算法有著更高的對比度,細節(jié)的有效強度也更大;關于平均梯度r的計算,本文算法均優(yōu)于其他五種算法,平均梯度的值都比其他算法的值高,這說明本文算法能夠更好地表征圖像的相對清晰度;關于飽和像素點的個數(shù)百分比σ的計算,可以得出本文算法優(yōu)于He等、Tarel等、Meng等、Fattal的算法,Ren等的算法在某些色彩鮮艷的圖片,例如:第一幅圖和第二幅圖,σ的值低于本文算法,此算法對于此類圖片處理效果優(yōu)于本文,但是其他類型的圖片σ的值大于本文算法處理后得到的值;關于運行時間t,本文算法由于不同尺度濾波的次數(shù)較多,所以導致運行時間方面會有所欠缺,時間較長,在五幅圖的處理中,所需要的處理時間大部分都長于其他幾種算法。
針對于單幅圖像的去霧,本文提出一種優(yōu)化算法,經(jīng)過大量的實驗結果證實,此算法無論在主觀分析方面或是在客觀分析方面,去霧效果都優(yōu)于之前的算法,體現(xiàn)出了其去霧的優(yōu)勢。但是,優(yōu)勢是有的,缺點也存在,本文算法的去霧相比于其他算法所需時間要長一些,如何在提升去霧效果的同時壓縮時間也是接下來的重要目標與工作。