高原原, 胡海苗
(1. 中國電子科技集團公司信息科學研究院, 北京 100086; 2. 北京航空航天大學計算機學院, 北京 100083)
隨著計算機性能的提高和多媒體技術的快速發展,以及人們對社會公共安全的日益關注,大量的監控攝像頭應用在智能車輛、停車場、社區監控、海陸交通監控、城市安保和軍事偵察等重要場所[1-3]。然而,視頻監控系統對天氣條件非常敏感,尤其是在出現頻繁且分布區域廣泛的霧天。霧天情況下,圖像容易出現對比度降低、細節特征被覆蓋、色彩嚴重失真等現象[4]。這些低質量的圖像因為信息量不足,嚴重影響了戶外計算機視覺系統的效用。退化的霧天圖像不僅會影響目標的觀測,還會使識別、取證、事件分析變困難。因此,研究如何利用圖像處理技術消除霧天對成像系統的不利影響是計算機視覺領域中一個非常有意義的問題,具有廣闊的應用前景。
現有圖像去霧算法從是否利用物理模型的角度,可粗略分為2 類:基于圖像恢復的方法和基于圖像增強的方法。基于物理模型的霧天圖像恢復是考慮霧天圖像退化原因,利用大氣散射模型通過求解模型中的相關參數,反解出無霧圖像,從而改善圖像質量,其目的在于還原真實無霧場景。基于圖像增強技術的去霧是不考慮圖像退化的原因,僅考慮圖像呈現的低對比度、低飽和度等特征,通過對圖像有用信息進行增強同時抑制或者去除不需要的信息,來改善圖像質量、提高圖像的清晰度。
基于物理模型的霧天圖像恢復方法主要包括基于偏振特性的方法[5-8]、基于偏微分方程的方法[9-10]、基于深度信息的方法[11-14]、基于先驗知識或假設的方法[15-20]和基于深度學習的方法[21-23]。
基于偏振特性的方法是以光的偏振特性為基礎,依靠硬件的支持且需要多幅圖像才能完成模型參數估計,具有局限性。而基于偏微分方程的方法和基于深度信息的方法通常需要一定程度的人工交互操作,無法做到自動處理。因此,日常監控系統的工程實踐中并不常用。
基于先驗知識或假設的方法是利用單散射模型中參數的特性,人為設置一些約束條件,從而使得參數可解,目前已取得了突破性的進展[15-20,24]。基于深度學習的方法不需要人工設計特征提取器,而是由機器自動學習獲得,典型的工作包括:Cai 等[21]提出DehazeNet 網絡結構,利用特殊設計的卷積神經網絡來學習霧天圖像的特征,解決手工特征設計的難點。Ren 等[22]考慮霧天圖像的多尺度特征,提出多尺度卷積神經網絡學習霧天圖像的特征估計透射率。Li 等[23]利用變形的大氣散射模型,提出All-in-One去霧卷積神經網絡,它可從有霧圖像直接估計無霧圖像。
基于物理模型的霧天圖像恢復方法雖然在解決問題的思路上存在區別,但是最終目標都是通過單散射模型求解無霧的圖像。然而,單散射模型假設場景光輻射充足且非常均勻,適合描述薄霧條件下的場景成像過程。濃霧情況下,懸浮顆粒的濃度變大時,可見光的穿透能力變弱,地表場景光輻射出現衰減,若仍利用單散射模型進行去霧處理,圖像會出現亮度偏低、細節凸顯不明顯的情況。
可見,濃霧圖像更適合使用增強方法進行處理。圖像增強方法忽略圖像降質原因,主要以提升圖像細節來改善圖像清晰度。典型的霧天圖像增強方法包括直方圖均衡化方法(Histogram Equalization,HE)[25-29]、曲波變換[30]和Retinex算法。
直方圖均衡化方法可對圖像的像素值進行非線性重映射,從而重新分配像素值,使其盡可能地均衡分布,實現對比度的增強。典型的直方圖均衡化方法主要包括全局直方圖均衡化方法[25]、局部直方圖均衡化方法[26]、限制對比度自適應直方圖均衡化方法(Contrast Limited Adaptive Histogram Equalization,CLAHE)[27]、廣義直方圖均衡化方法[28]和內容自適應的直方圖均衡化方法[29]。直方圖均衡化方法以合并數量較少的像素為代價完成像素值的重新分布,這會造成細節信息的丟失或圖像模糊。
曲波變換是在小波變換基礎上發展起來的多尺度分析方法。Eriksson[30]利用曲波變換的優勢,采用基于曲波的消失點檢測對霧天圖像進行了自動去霧處理。然而,該類方法將整幅圖像作為一個整體進行操作,不能保證一些關注區域得到所需要的增強效果。
Retinex 算法通過分離圖像的低頻分量和高頻分量,然后移除低頻分量,調整高頻分量動態范圍,實現對高頻分量的放大,來完成細節的突出顯示。從單尺度Retinex(Single Scale Retinex,SSR)算法到多尺度Retinex (Multi-scale Retinex,MSR)算法,再到帶顏色恢復的多尺度Retinex (Multi-Scale Retinex with Color Restore,MSRCR) 算法[31-33]。Retinex算法在圖像濃霧去除中的應用取得了一定的成果。Retinex 可以在灰度動態范圍壓縮、細節增強和顏色恒定3方面達到平衡,對各種場景的霧天圖像都適用,因而一直受到國內外學者的廣泛關注[34-36]。
然而,Retinex 用于濃霧圖像增強時,通過全局均值統計量來對高頻分量的動態范圍進行截斷量化[31-32],對濃度分布均勻的霧天圖像處理效果較好。當濃度分布不均勻時,由于每個區域的最優動態截斷并不統一,無法保證每個區域的增強效果。因此,本文提出多子塊協同單尺度Retinex算法,通過結合局部統計信息,獲取多個局部最優的增強圖像,再融合多個局部最優的圖像獲得最終的增強圖像。實驗結果表明,本文方法能夠有效去除圖像中濃霧的影響,并保證去霧后圖像的亮度保持在適合人眼觀察的范圍。
Retinex算法中,圖像可表示為低頻分量和高頻分量的乘積形式:
I(x,y)=L(x,y)R(x,y)
(1)
式中:I為采集設備獲取的圖像信息;L為不受關注的低頻分量;R為能夠體現物體真實細節特征的高頻分量;(x,y)為像素的位置。利用Retinex算法實現圖像對比度增強和色彩復原過程中,如何去除低頻分量獲取圖像高頻分量是其中一個關鍵環節。
應用最為廣泛的單尺度Retinex是由中心/環繞理論發展而來,核心思想是:每個像素所包含的不受關注的低頻分量是通過賦予其鄰域像素不同的權重來進行估計的,權重的取值由一個函數來確定。數學表達式形式為
L(x,y)=I(x,y)*G(x,y)
(2)
式中:“*”表示卷積運算;G(x,y)為中心/環繞函數,通常采用高斯函數,公式如下:
(3)
?G(x,y)dxdy=1
(4)
式中:κ為歸一化因子;c為高斯函數的尺度參數。
為便于計算,將式(2)兩邊取對數,單尺度Retinex提取高頻分量rSSR過程可表示為
rSSR(x,y)=log(R(x,y))=
log(I(x,y))-log(G(x,y)*I(x,y))
(5)
經過式(5)的處理,圖像高頻分量被提取,但對將其作為最終的增強結果并不適合觀察,如圖1(b)所示。接下來,還需對高頻分量進行截斷量化拉伸。首先,計算出高頻分量的均值Mean和均方差Var,得到動態范圍的截斷值Min和Max:
Min=Mean-Dynamic·Var
(6)
Max=Mean+Dynamic·Var
(7)
式中:Dynamic為動態范圍控制參數。然后,對高頻分量進行線性映射,獲得最終增強后的圖像Value:
(8)
量化拉伸后結果如圖1(c)所示,顯然,與圖1(b)比較,其動態范圍更合理,更適合觀察顯示。
傳統的單尺度Retinex算法易于實現,且具有較好的圖像增強效果,但其仍具有如下的缺陷:利用全局均值統計量來進行高頻細節信息動態范圍調整并不適合所有圖像,因為當霧氣濃度分布不均勻時,每個區域的均值差別較大,最優動態截斷范圍并不一致。

圖1 單尺度Retinex處理結果Fig.1 Processed result of single-scale Retinex
如圖2所示,當利用濃霧區域(圖2(a)中下方矩形區域)的均值統計量計算動態截斷范圍時,濃霧區域去霧更為徹底(例如:圖2(b)中工人的腿部),但薄霧區域卻出現了過增強(例如:圖2(b)中圖像頂部)。當利用了薄霧區域(圖2(a)中上方矩形區域)的均值統計量計算動態截斷范圍時,薄霧區域未出現過增強,但濃霧區域去霧卻不徹底。

圖2 利用不同局部均值統計拉伸量化后結果Fig.2 Stretched quantization result using different local mean statistics
針對第1節關鍵問題,本文提出基于多子塊協同單尺度Retinex 算法,該算法將圖像劃分為多個子塊進行均值統計并計算動態截斷值,再利用各截斷值分別獲得多個局部最優的增強圖像,最后,融合各增強圖像獲得最終的增強結果。算法流程如圖3所示。下面對關鍵部分的實施細節進行介紹。
1) 高頻細節信息分解:本文將圖像分解為低頻分量和高頻分量所采用方法與傳統單尺度Retinex思想一樣。只不過,為了抑制光暈,所用低通濾波器選用保持邊緣濾波器-引導濾波器[37],獲取的高頻細節分量為rSSR。
2) 多子塊劃分:霧氣的濃度通常具有一定的規律性,呈現連續變化的趨勢。為了使不同濃度的有霧區域盡可能地聚集到同一個子塊且不影響運行速度,本文在水平和垂直方向上將圖像劃分為M行和N列。值得注意的是,劃分子塊越多霧氣濃度劃分越準確,但子塊過小又會影響動態截斷效果,因此,一般情況下M和N的取值應滿足:

圖3 基于多子塊協同的單尺度Retinex算法流程Fig.3 Flowchart of multi-block coordinated single-scale Retinex algorithm
(9)

3) 多個動態截斷值獲得多幅增強圖像:對每一高頻細節分量子塊rSSRn,n=[1,2,…,k],統計其均值Meann和均方差Varn,并計算出動態范圍的截斷值Minn和Maxn:
Minn=Meann-Dynamic·Varn
(10)
Maxn=Meann+Dynamic·Varn
(11)

(12)
4) 圖像融合:為了在圖像細節增強和圖像過增強之間尋找平衡點,本文最后將多個局部最優的增強圖像進行線性加權組合,其數學表達式為
(13)
式中:r為多子塊協同單尺度Retinex的輸出結果;wn為第n個局部最優增強圖像的權重,滿足條件:

(14)
一般情況下w1=w2=…=wk=1/k。
為了驗證本文算法的效果,本節將展示與典型圖像去霧算法的對比結果。現有基于圖像增強的圖像去霧方法效果較好的主要有基于直方圖均衡化的方法和Retinex算法。由于基于直方圖均衡化的方法對濃霧圖像的清晰度提升有限,本文取經典Retinex算法進行對比。此外,本文還提供了基于引導濾波的暗原色(Dark Channel Prior based on Guided filter,GDCP)算法[37]、Haze-line算法[20]和DehazeNet算法[21]的結果。GDCP算法是暗原色算法的改進,利用局部先驗知識進行圖像去霧,公認效果較好,使用最為廣泛。Haze-line是利用全局先驗進行去霧的算法,有利于圖像去霧后防止色彩過飽和。DehazeNet是基于深度學習的去霧算法,由機器自動學習獲得霧天圖像特征完成去霧,解決了手工設計特征的問題。另外,為了驗證本文算法改進單尺度Retinex的必要性,還提供了經典Retinex算法的結果進行對比。
主觀評價方法的結果完全由人眼的主觀感受決定,能夠比較準確地反映視頻的質量,但卻無法定量測量。本文算法主要用于提升圖像細節和邊緣,因此,為了驗證去霧結果的客觀效果,本文利用信息熵(h)[38]、新增可見比(e)和可視邊緣梯度信息(γ)[39]來對增強后圖像進行客觀質量評價。去霧效果對比示例如圖4~圖6所示。

圖4 去霧效果對比示例1Fig.4 Example 1 of defogged result comparison

圖5 去霧效果對比示例2Fig.5 Example 2 of defogged result comparison

圖6 去霧效果對比示例3Fig.6 Example 3 of defogged result comparison
GDCP算法基于單散射模型,場景光輻射的衰減被忽略,較適合薄霧圖像,處理濃霧圖像時,圖像亮度無法得到保證。如圖5(c)所示,圖像雖然實現了去霧,但是亮度明顯變低,細節難以辨識。Haze-line算法根據霧天圖像中相同顏色的像素分布在一條直線的規律,通過聚類找到許多霧線,并假設半徑最長的點透射率為1,反解出無霧圖像。然而,半徑最長的點透射率不一定是1,所以會殘留較多霧氣,如圖4(d)、圖5(d)所示。DehazeNet算法對大量有霧和無霧圖像對進行訓練,利用了深度學習的優勢,但其仍基于單散射模型。因此,利用DehazeNet算法進行濃霧圖像的去除會出現去霧失敗的情況,如圖4(e)和圖6(e)所示。經典Retinex算法和本文算法不考慮退化因素,從增強的角度對圖像進行清晰化,從灰度動態范圍壓縮、細節增強和顏色恒定幾個方面展現出了優勢。而且,由于本文算法考慮了不同區域動態截斷值不同的特性,進行了多個子塊協同處理,因此,去霧效果較Retinex算法更好,如圖4(f)和圖6(f)所示。
上述主觀評價反映了圖像增強的視覺質量。為了對圖像質量進行定量的比較,還需對處理后圖像進行客觀評估。客觀質量評估主要用于對圖像的某些重要特征進行定量的描述。表1~表3給出了上述信息熵(h)、新增可見比(e)和可視邊緣梯度信息(γ)的計算結果,每幅圖像的最優結果已加粗標注。其中,新增可見比和可視邊緣梯度信息是專門用于去霧結果盲評估的評價指標。
信息熵用來描述圖像的平均信息量,在不引起失真的情況下,其值越大代表所含的細節越豐富。從信息熵的對比結果中可以看出,本文算法的信息熵并非最高,這是因為,Retinex算法采用動態截斷的方法進行量化拉伸得到最終的增強結果,會有部分信息量的損失,但仍優于對比的大多數算法。
新增可見比和可視邊緣梯度信息是衡量細節增強情況的指標,通常,其值越大表明去霧后圖像可視邊緣和細節的強度越大、數量越多。從表1~表3的結果可以看出,本文算法要明顯優于其他對比算法。這意味著,雖然部分算法增強后細節要多于本文算法,但可視能力卻要弱于本文算法。

表1 圖4去霧后客觀指標評價結果Table 1 Objective indicator evaluation results of defogged images in Fig.4

表2 圖5去霧后客觀指標評價結果Table 2 Objective indicator evaluation results of defogged images in Fig.5

表3 圖6去霧后客觀指標評價結果Table 3 Objective indicator evaluation results of defogged images in Fig.6
本文在單尺度Retinex算法基礎上提出了多子塊協同單尺度Retinex濃霧去除算法。經實驗驗證,得到:
1) 本文算法考慮了霧氣不均勻的濃霧圖像特征,針對每個局部的均值統計量不一致的情況,改進了經典單尺度Retinex量化拉伸的過程,從而增強了Retinex算法的魯棒性。
2) 本文算法可以實現較優的去霧性能,與其他典型去霧算法相比有所提高。
通過實驗驗證,本文算法的圖像去霧效果得到了提升,一定程度上提高了圖像的清晰度。在未來,可以改進該算法,增加多個增強圖像融合的自適應性,從而取得更好的去霧效果。