劉亞楠,曹風云,王 璐
(1.合肥師范學院 計算機學院,安徽 合肥 230601; 2.多模態認知計算安徽省重點實驗室(安徽大學),安徽 合肥 230601;3.合肥工業大學 計算機與信息學院,安徽 合肥 230009)
戶外計算機視覺系統所采集到的圖像易受到雨水的影響,存在模糊和細節丟失等問題.雨滴、雨紋一般會阻礙或扭曲圖像背景內容或產生大氣遮蔽效果,因此通過去雨操作增強各種圖像算法的有效性非常重要.雨線的去除具有極大的研究意義,是近年來計算機視覺領域的一個重要研究課題.
目前,圖像去雨主要分為兩類:視頻圖像去雨[1-3]和單幅圖像去雨[4].由于單幅圖像去雨較視頻圖像去雨而言沒有時間信息(先驗知識)可用[5-6],使得單幅圖像去雨更具挑戰性.
Kang等[7]利用形態成分分析(Morphological Component,Analysis,MCA)將去雨問題看作一個圖像分解問題.利用雙邊濾波(Bilateral Filering,BF)將雨圖分解為低頻和高頻圖像,對高頻圖像執行字典學習和稀疏編碼得到高頻無雨圖像,最后將低頻圖像與高頻無雨圖像進行融合得到去雨圖像,但背景易模糊,在圖像恢復過程中存在紋理丟失的問題.Luo等[8]在一個具有強互斥性的學習字典上使用辨別性稀疏編碼消除單幅圖像中的雨痕,但去雨圖像有一定的色彩失真,且殘留雨痕.Li等[9]引入了基于高斯混合模型的補丁,提出一種基于高斯混合模型的層分離算法去除雨滴,該方法可以適應多個方向和尺度的雨滴.Wang等[10]利用雨雪檢測與引導濾波(Guided Image Filtering,GIF)[11]相結合的方式將圖像分為高頻部分與低頻部分,為了從高頻部分提取細節,設計了一個3層的分層方案實現去雨.Gu等[12]提出了一種聯合卷積分析與綜合稀疏表示模型,能夠有效地提取圖像紋理層,而不需要過度平滑背景層.Mu等[13]引入了一種展開策略,將依賴于數據的網絡體系結構納入到建立的迭代中,是集成模型驅動和數據驅動方法來完成解除任務的有益嘗試.
針對基于圖像分解的單幅圖像去雨算法,容易存在圖像細節丟失、雨痕殘留等問題,本文提出一種改進的引導濾波算法,代替雙邊濾波得到有雨圖像的低頻部分,進而改進基于圖像分解的去雨算法,在去雨的同時,保留背景的紋理細節信息.
形態成分分析的主要思想是利用數據中包含不同特征的形態多樣性進行分解,并將每個形態成分關聯到一個原子詞典中.

(1)
其中:θk∈RMk表示對應于Ik關于字典Dk的稀疏系數;τ是正則化系數,Ek是由Dk的類型定義的能量.

Ek(Ik,θk)=

(2)
通過對Ik迭代求解式(2):
①更新稀疏系數,固定Ik,執行稀疏編碼求解θk,使Ek(Ik,θk)最?。?/p>
②更新Ik,固定θk.
在一些情況下,可以采用一組可用的訓練樣本(類似于從需要分解的成分中提取塊)ys∈Rn(s=1,2,...,P),通過下列優化問題學習字典Dk稀疏化ys:
(3)
最后,通過迭代執行MCA算法解決Ik(固定Dk),字典學習算法學習Dk(固定Ik)直到收斂,完成圖像分解.

圖1 基于圖像分解的去雨算法流程
雖然引導濾波與雙邊濾波一樣具有邊緣保持特性,但引導濾波作為一個局部線性模型,在邊緣附近具有更好的性能,可普遍應用于去噪、去霧、圖像壓縮等各種計算機視覺和計算機圖形學應用中.
引導濾波的算法原理是假設濾波器的輸出q與引導圖像p之間是局部線性模型,且q是p的線性變換(在以像素k為中心的窗口ωk中),則
qi=akpi+bk,?i∈ωk,
(4)
其中:ak、bk為ωk中的線性系數.
由于
?q=a?p.
(5)
這個局部線性模型確保p有邊緣時,q存在邊緣.
通過最小化輸出圖像q與濾波輸入圖像I間的差異來求解線性系數ak、bk,具體目標函數為:
(6)
其中:ε為正則化參數,以防止ak過大,在文獻[11]中取為固定值.
但該模型不能很好地表現圖像的某些邊緣,圖像中可能會出現一些光暈,降低了最終圖像的視覺質量.由于目標函數中的正則化系數是固定的,不會隨圖像空間位置發生變化,這可能是導致光暈的關鍵因素.在各種改進的引導濾波算法[14]中,對正則化參數增加邊權重因子,減少光暈,更好地保留邊緣.
本文引導圖像設置為輸入的有雨圖像,即p=I.濾波的輸出q作為低頻部分ILF,而高頻部分IHF由I-ILF得到,于是在式(6)增加不等約束,確保得到的q(ILF)是非負的(負值對圖像毫無意義),且Ii-(akpi+bk)(IHF)是非負的.于是,式(6)更新為:
(7)
構造式(7)的拉格朗日函數:
(8)
對式(8)求偏導可得:
(9)
(10)
由公式(9)和(10)可得:
(11)
(12)


(13)
根據閾值得到不同的ξ作為權重因子,權重值不再是一個固定的數值,如式(14):
(14)
方差較大的窗口,存在邊的可能性較大,故設置ξ1<ξ2<1,確保ak值不要過小.于是,式(11)更新為:
(15)
由于引導濾波可能在某些邊緣附近出現光暈效應,圖2通過灰度條圖像及其對應的直方圖測試該雙閾值引導濾波對光暈效應的消除效果.其中,圖(a)為灰度條測試圖像,圖(f)為對應的直方圖.圖(b)-(e)依次為BF、GIF、梯度域引導濾波(Gradient Domain Guided Image Filtering,GGIF)、雙閾值引導濾波(本文算法)測試結果,圖(g)-(j)為4種算法對應的直方圖.從圖(e)、(j)中可以看出本文所提算法雖仍存在光暈,但較之其他算法光暈現象有明顯改善,且灰度值分布緊湊.

圖2 光暈效應
綜上所述,將雙閾值引導濾波算法與基于圖像分解的去雨算法相結合,得到改進的單幅圖像去雨算法,具體算法思路如下.
輸入:雨圖I;輸出:去雨圖像INon-rain.
(1)對雨圖I利用雙閾值引導濾波,得到低頻部分ILF,進而利用I-ILF得到高頻部分IHF(I=IHF+ILF);
(2)從IHF中提取圖像塊ys∈Rn(s=1,2,...,P),應用字典學習算法(K-SVD)解決式(3),得到字典DHF;
(3)對DHF的每個原子提取HOG特征,應用K均值算法對字典分類,將字典分為兩類:雨子字典和幾何子字典;
(4)通過執行OMP算法應用MCA算法解決式(2),得到稀疏系數;


為證明本文所提算法的有效性,選取6幅有雨圖像進行實驗驗證,其中3幅為合成雨圖,如圖3(b)所示,其對應原圖如圖3(a)所示.另外3幅為真實雨圖,如圖4(a)所示.在圖3和圖4中選取第1行中的圖像展示局部細節,利用邊框標記局部區域,并在第2行顯示該局部區域的細節信息.圖3(b)中3幅合成雨圖從上到下依次標記為雨圖1、雨圖2和雨圖3.
雨圖的大小為256×256,圖像塊大小為16×16,字典原子數為1 024.對比算法選擇經典的圖像分解算法(文獻[7]即BF+MCA算法),GIF+MCA,GGIF+MCA, 去雨后的結果如圖3和圖4所示.從圖3、圖4可以看出,本文算法優于其他濾波算法與MCA結合的去雨算法,在去雨后可以保留更多的細節信息,且雨痕殘留較少.

圖3 合成雨圖去雨結果
由于合成雨圖有對應的不含雨原圖,可以選擇評價指標峰值信噪比(Peak Signal to Noise Ratio,PSNR)與結構相似性(Structrual Similarity Index Metric,SSIM)對去雨結果進行客觀評價,PSNR與SSIM的結果如表1和表2所列.從表1和表2中可以看出,本文算法的PSNR與SSIM指標均高于其他算法,能夠較好的維持圖像自身的紋理信息.

表2 SSIM對比結果
本文提出的雙閾值引導濾波算法,改進了傳統的基于圖像分解的單幅圖像去雨算法,改善了雨痕殘留和背景紋理丟失等問題,在去雨的同時,較好地保留了圖像的邊緣細節信息.本文僅對低頻部分提出改進算法,后續工作將進一步優化閾值的選取,并從高頻部分改進基于圖像分解的單幅圖像去雨算法.