史佳霖,劉鵬,張天翼,畢譽軒,王彩霞
(長春理工大學 電子信息工程學院,長春 130022)
隨著社會發展和城市化進程的快速推進,城市霧霾日益普遍。在數據處理方面,霧霾影響計算機視覺系統的數據采集。在霧霾天氣下,由于光線散射和光線吸收的影響,圖像的對比度和飽和度較低,色彩失真嚴重,導致采集到的圖像質量下降。因此,開發一種簡單、高效的圖像去霧方法成為當務之急,這對計算機視覺領域的未來研究具有重要意義。
當前,圖像去霧方法主要可以分為兩種類型:基于增強的方法和基于復原的方法。其中,基于增強的方法是使用圖像處理算法對原始圖像進行去霧處理,以圖像本身為基礎進行除霧;而基于復原的方法則是基于物理模型進行去霧,通過對原始數據進行解析來還原真實圖像。
圖像去霧是一種通過應用圖像增強算法來消除圖像受霧氣影響而產生的降質效應的方法。該方法不是針對霧氣本身進行研究,而是利用圖像處理算法來增強圖像的清晰度和對比度以去除霧氣的影響。通常,圖像增強算法可以分為兩類:全局增強和局部增強。
全局增強算法包括直方圖均衡化、小波分析和Retinex 算法[1]等,這些方法廣泛應用于各種場景,包括嵌入式系統中[2]。局部增強算法則包括局部直方圖均衡化、局部對比度增強和局部方差增強等方法,它們針對圖像中特定局域的區域進行增強,可以得到更加優良的效果。
圖像復原是一種利用大氣散射物理模型的去霧技術,該技術利用降質模型對霧天下的圖像進行建模,并采用參數估計方法實現圖像的恢復。目前已有多種基于不同原理的圖像復原方法,包括基于偏微分方程[3]、基于深度關系[4]和基于先驗信息的圖像復原方法。
根據大氣散射模型[5],要想還原出一個清晰的真實景象,就必須先計算出對應景象的整體大氣亮度和透射分布。基于暗通道先驗的去霧算法是目前一種簡單有效的估算全局大氣光和透過率的方法。但是,暗通道先驗算法在處理室外圖像的天空區域時存在不適用的問題,可能導致在大氣散射場景中,去霧算法中的透射率和大氣光照估計不準確,進而引發顏色失真和偏移等現象[6],同時還可能導致去霧圖像整體亮度偏暗。因此,文章提出了一種基于二進制掩模的改進天空區域識別,改善了基本的暗通道先驗算法的兩個問題:一是針對原始算法濾波器易產生塊狀現象和光暈效應的問題,提出一種隨著圖像大小變化而調整窗口大小的濾波器來解決問題;二是針對已有的天區提取算法在處理含天區影像時失效的缺陷,研究基于天區影像的天區自動辨識算法,并根據辨識的結果對整體大氣亮度及透射率的下界進行修正。
1975 年,Mccarthney 等人[7]提出了一個適合于圖像去霧處理的空氣散射模型,該模型能較好地描述圖像去霧的過程。根據大氣光在霧天退化過程中傳輸的物理特性可以用以下公式表示為[6-7]:
其中,I(x)表示有霧圖像;J(x)表示去霧后的圖像;場景輻射中大氣傳輸過程中的透射率用t(x) 表示;目標輻射信息的直接衰減用J(x)t(x)表示,它反映了目標電磁波信息通過傳輸介質后到達傳感器的能量;A表示大氣光,大氣光經過衰減后到達傳感器的能量用A(1 -t(x)) 表示。假設空氣是均勻的,而電磁波是均勻傳播的,透射率t表示為[7]:
其中,t≤1;β是大氣散射系數;d(x)是場景深度。上式表明場景的輻射值隨距離呈指數衰減[8]。
暗通道先驗[6]是通過對多幅室外無霧圖像的研究總結而來的規律。在這種無霧的戶外影像中,大多數非天空區域的像素至少有一個色彩通道的值偏低,近似于零,而該區域的像素亮度值偏低。對于任意圖像J,暗原色通道通過下式描述[7]:
其中,Jdark表示暗通道;Jc是J的顏色通道;Ω 表示以一個像素為中心的窗口。該式包含了提取R、G、B三個通道最小值與最小值濾波處理兩層計算,實驗觀察表明,對于絕大多數戶外無霧的自然場景圖像J,除去天空區域以外,Jdark非常低且接近于0 值:Jdark→0。利用暗通道先驗,由大霧背景下的原始影像,可以得到估計透射圖和天空亮度值A[9]。
根據文獻[6]中暗原色先驗理論得到:
將式(4)代入式(1)得到透射率t的預估值:
事實上,即便是晴朗無云的天氣,也會有極小的顆粒物,所以當看到遠方的東西時,還是會感覺到迷霧的影響。同時,霧還可以賦予圖片景深,使其更具真實感。所以,除霧時,有必要保持一定的霧。這可以通過在式(5)中引入一個在[0,1]之間的因子ω,則式(5)修正為[7]:
式中,ω代表了霧的保留度,目的是使估計值接近于自然,這是因為即使在大氣非常純凈的情況下,大氣中仍然包含有水氣等成分。
大氣光值A可以借助暗通道圖從原始霧圖中求取。先提取暗通道圖像中前0.1%最亮的像素,即透射率最小的點。然后在原始圖像I(y)對應的位置上找出最高亮度的點,提取這些點的所有通道中最大的值作為大氣光值A的近似。最后,估計出了透射率t(x)和大氣光值A,就可以利用有霧圖像模型來恢復圖像:
透射率t(x)接近零時,由公式(1)可知J(x)t(x)接近零,容易引入噪聲。因此設置一個透射率下界t0,一般取0.1。
在暗通道先驗算法中,考慮到真實場景中可能存在不符合暗通道規律的像素,例如圖像中的高亮建筑物或天空區域,這些像素的實際透射率如下:
因此,異常區域的實際透射率略高,而原算法估計的透射率較低,這使得在復原的過程中,色彩會發生很大的失真,從而影響到圖像的視覺效果。
針對在天空域中由于先驗信息錯誤而造成的色彩失真,文章中提出了一種基于天空區域識別的改進算法。該算法的流程如下:首先利用區域窗口自適應最小化濾波器獲得暗通圖像。然后實現對天空區域的自動識別,并在此基礎上對天空區域進行透射率和大氣光值的設定[10]。接著,通過引導濾波器對粗透射率圖進行了細化。最后,利用大氣散射模型對原始圖像進行復原。文章中采用Matlab2019b 平臺對霧天圖像進行處理[11]。
在由He 等人[13]提出的暗通道先驗去霧算法中(簡稱He 方法),對于任何輸入的霧天圖像,采用固定窗口大小SZ(x)對RGB 三通道最小圖像進行濾波。這種方法缺乏靈活性,且出現小黑區現象,降低了后續計算透射率和大氣光值的準確性。另外,在實際應用中處理的圖像大小也不均勻。為了根據圖像自身大小調整濾波尺寸模板,采用自適應濾波窗口對不同大小的輸入圖像的RGB 三通道組成的最小圖像進行濾波,自適應獲得大霧天氣下不同尺寸模糊圖像的暗通道圖。暗通道實際上是取三個RGB 通道的最小值形成灰度圖像,再進行最小值濾波[14]得到的。計算公式如下:
假設輸入的霧天圖像大小為M×N,這里設定的濾波窗口大小計算公式如下:
其中,α為調整參數[15],其經驗值為0.010;M表示圖像長度;N表示圖像寬度。floor 將最終結果取整,它等同于計算窗口大小,這里參考了窗口。
圖1 展示了使用15×15 固定尺寸窗口和自適應窗口,利用公式(3)對RGB 三通道最小圖像最小化處理得到的暗通道圖像。圖1(b)是濾波窗口大小為15×15 的暗通道圖像,而圖1(c)則顯示了改進后的自適應濾波窗口模板。很明顯,通過優化后的自適應窗口濾波模板可以獲得更清晰的暗通道圖像,并且大大地改善了原始圖像中較大的塊狀像素映射,場景中的信息也更加詳細。

圖1 自適應窗口的最小濾波獲得暗通道圖像的比較
天空區域的三個顏色通道的亮度都很高,這與之前所使用的暗通道不符,透光率過低會導致霧后天空區域的顏色失真,因此需要調整天空區域的透光率以保證圖像恢復的準確性。在正常拍攝條件下,天空一般位于圖像的上半部分,具有較高的亮度特征。文章中利用連通性和高亮度這兩個特征來判斷霧圖像[16]中的可疑天空區域。
通常天區具有很高的亮度值,所以可以設置一個亮度值門限Ti= 0.90Lmax(Lmax為最亮像素的灰度級),以便在影像中識別出所有亮度值的像素點。然后對各像素的亮度值與亮度門限進行比較,得到對應的二進制掩模圖M[17]。具體的步驟為:遍歷霧圖像中與灰度圖相對應的每個像素點X,如果像素的灰度值大于等于Ti,則將M(X)設為1,否則設為0。圖2 展示了幾種常見包含天空區域的圖片處理的結果。結果表明,經過亮度閾值篩選后,二值圖像中可疑天空像素以白色[18]表示。

圖2 基于圖像亮度和連通性的可疑天空像素識別
基于圖像分割的算法,從值為1 的所有連接區域中消除位于圖像下部的連接部分。接下來,設置閾值Tn(代表包含在連接區中的像素數目)。
在一個二進制掩碼圖中,用一個迭代數值1來遍歷全部連接的部分。若當前連接區的像素數少于Tn時,將該區像素值設定為0,判斷該區為非天空區域。反之,則應將其視為可疑的天空區域。在經過上述處理的二進制掩碼圖中,像素值為1 的連通區域被識別為可疑天空區域,而像素值為0 的連通區域被識別為非天空區域。本文采用自適應濾波窗和圖像亮度分割方法對天空區域和非天空區域進行分割。圖3 顯示了將該方法與暗通道算法對典型大霧天氣下的天空探測的比較結果。其中,二值圖像中的白色區域代表了天空區域。與暗通道圖像比較,文章中所提出的圖像辨識方法,其辨識結果與原影像的邊界相當。而暗通道圖像并沒有很好地保留天空區域,導致識別結果與原始圖像存在較大的偏差。

圖3 利用亮度和暗通道連通性進行天空探測的比較
文章中選擇了三種常用的高分辨率霧圖作為實驗對象。如圖4 所示,將Tarel 算法、He 算法以及它們的改進算法與文章中的算法進行比較。

圖4 不同除霧算法比較
可以看出,文章的算法在處理天空區域時呈現出更自然、色彩柔和且失真較小的特點,避免了He 算法的顏色過飽和問題,并改善了Tarel 算法和He 改進算法的去霧效果不足的問題。
文章中利用平均梯度、信息熵和霧濃度對復原圖像進行評價。平均梯度的計算公式為:
信息熵計算公式如下[19]:
霧濃度計算公式如下:
通常較高的平均梯度會使圖像更清晰。隨著信息熵的增大,圖像的細節特征也隨之增強。霧濃度越低,圖像中含有的霧越少[20]。
通過觀察圖4 的去霧結果可以得知,文章提出的算法與He 改進算法有較高的相似度,無論在減色程度還是在保留細節方面都取得了顯著的效果[21]。綜合對比分析表1、表2 和表3 中的圖像質量指標,本文算法在平均梯度和霧濃度上明顯減少,同時在信息熵上有較大提升。本算法對于含有天空區域的圖像具有優秀的恢復效果。

表1 不同算法去霧結果的平均梯度

表2 不同算法去霧結果信息熵指數

表3 不同算法去霧結果的霧濃度指數
基于上述數據,文章結合自適應濾波模板和二值掩碼識別算法,根據圖像大小和天空中像素的不同特性,如連通性、亮度、位置和概率分布,提出了一種在天空區域進行單圖像去霧的方法。該算法可以自動調整透光率的下限,以適應濃霧地區較高的透光率需求,并提出了估算不同地區大氣光值的方法。實驗結果顯示,文章提出的方法對于包含有天空的圖像,有較好的恢復效果。提高了計算機視覺系統在工程應用中的實用性。