陳俊安 陸庚有 謝倩怡 龔智慧 劉建平 彭紹湖
(廣州大學電子與通信工程學院,廣東 廣州 510006)
隨著計算機視覺的不斷發(fā)展,此領域已成為人工智能的重要組成部分。視覺作為人和動物感受外界信息的主要方式之一,在人工智能領域,計算機視覺也同樣發(fā)揮著重要的作用。如今,計算機視覺在各個領域都獲得廣泛的應用,如圖像分類、目標檢測、語義分割、無人駕駛等。然而,這些應用輸入有霧圖像時,其性能將大大下降。因此,近年來計算機視覺領域研究圖像預處理的學者不斷增加,圖像去霧的問題,在一定程度上得到了很好的處理。
霧圖形成可以通過大氣散射理論[1]進行解釋,最早在1976年由Cantor正式提出,之后由Narasimhan等人進行進一步的總結[2]。大氣散射模型,如圖1所示。

圖1 大氣散射模型
公式描述,如(1)所示:

其中,I(x)為有霧圖像,J(x)為觀察目標反射光,即去霧后的圖像,A為大氣光系數,t(x)為大氣透射率。t(x)=e-βd(x),其中,d(x)為場景深度圖,β為大氣光散射系數。由公式(1)式可以清晰知道,只要求得t(x)和A,便可以從有霧圖像I(x)恢復無霧圖像J(x)。然而,在一個等式上含有兩個未知數,此類問題并沒有唯一解。因此,圖像去霧是有一個高度病態(tài)的問題。
在2012年由于AlexNet的出現,深度學習再次卷上熱潮,后續(xù)以卷積神經網絡為代表,使得計算機視覺的許多任務使用深度學習算法進行性能提升。同樣,在圖像去霧領域,深度學習一樣扮演著優(yōu)秀的角色。在2016年以前,學界主要通過傳統(tǒng)的圖像處理技術和統(tǒng)計學習方法研究圖像去霧問題,如[3-12]等算法。自2016年以來,深度學習技術開始席卷圖像去霧領域,如[13-27]等深度學習算法的提出,圖像去霧算法質量得到了很大的提升。
以2016年為分界線,下文將對圖像去霧算法按照傳統(tǒng)圖像處理去霧算法和深度學習去霧算法進行分類,對不同的算法進行原理和優(yōu)缺點的分析。
傳統(tǒng)圖像處理去霧算法還可以分為非物理模型算法和物理模型算法。非物理模型算法主要以圖像處理方法,對圖像進行增強,突出圖像細節(jié),從而獲得去霧的效果。物理模型算法主要基于大氣散射理論,借助各種統(tǒng)計先驗,構建非病態(tài)條件求解等式(1)。
多圖輸入去霧算法,如文獻[3,4]通過獲取同一場景不同環(huán)境的多張圖像作為輸入,基于有霧和無霧同一場景圖下具有的不同物質媒介屬性,進而增強有霧圖的能見度,從而達到圖像預處理效果。此外,極化濾波算法也是需要多圖輸入的算法,如文獻[5,6]通過采用兩張或多張同一場景的圖像,獲得不同級別的極化,從而獲得不同的極化濾波對有霧圖像進行處理。此類算法由于需要同一場景的兩張或多張圖像作為輸入,不適用于動態(tài)場景,缺乏靈活性。
直方圖均衡化算法,如文獻[7,8]。直方圖展示了圖像的灰度級別分布、對比度和明暗度情況,直方圖均衡化算法通過非線性的變換,使整幅圖像的像素均衡分布,在一定程度上可以達到去霧的效果。但是去霧的效果存在光暈現象,算法復雜度高,魯棒性較差,不夠靈活。
能見度增強算法[9,10],通過假設無霧圖的對比度比有霧圖對比度高,并借助提高對比度來改善圖像能見度的特性,利用最大化邊緣輪廓的方法,獲得較好的對比度增強的效果。此算法可以獲得令人信服的能見度增強的效果,但是算法復雜度高,對不同的有霧場景去霧不完全有效。
物理模型去霧算法是以大氣散射理論為基礎,通過補充條件使得求解等式(1)為非病態(tài)問題。此類算法以各種先驗作為輔助信息,估計等式(1)中的t(x)、d(x)、A參數,使得能夠通過等式(1)直接修復無霧圖。先驗算法都有一個共同的局限性,只有在特定的場景情況,才能有良好的先驗估計結果,所以此類算法對不同場景的應用表現不一。
暗通道先驗去霧算法[11],通過對大量無霧圖進行統(tǒng)計,發(fā)現在無霧圖RBG三通道中,至少有一個通道的像素值接近0。對于有霧圖而言,暗通道先驗可以作為霧的濃度估計,在假設大氣光系數A為常量的條件下,通過變換等式(1),借助暗通道先驗的性質,可以得到大氣透射率t(x)的求解,如等式(2)所示:

其中Ω(x)為小區(qū)域像素,c為RGB通道,y為像素位置。在估計后,通過soft matting算法,得到平滑的t(x)。通過等式(3)進行修復,如下所示:

其中t0為t(x)的下界值,避免遠距離場景圖的大氣透射率等于0。
暗通道先驗去霧算法作為一種基于統(tǒng)計的算法,在圖像去霧的領域獲得良好的效果,與上述非物理模型算法相比,其穩(wěn)定性更高。但是,去霧的效果略微偏暗,對于含有天空背景有霧圖表現不穩(wěn)定。
顏色衰退先驗去霧算法[12],通過對大量有霧圖進行實驗觀察,發(fā)現霧的不同跟圖像的亮度和飽和度有關聯(lián),通過構建線性模型,恢復圖像場景的深度圖,進而通過t(x)=e-βd(x),可以估計大氣透射率t(x),進而利用等式(3)可以獲得無霧圖的恢復。此算法對背景清晰、顏色飽和度較大的薄霧圖像處理效果較好,但是在景深變化區(qū)域容易出現霧殘留的現象,對于含團霧圖像的處理效果較差。
深度學習去霧算法還可分為估計參數法和直接修復法,大多基于卷積神經網絡進行設計。估計參數法使用深度卷積神經網絡直接估計t(x)、A等,再基于大氣散射模型,對圖像進行去霧。直接修復法通過利用深度神經網絡的學習能力,在數據驅動的條件下,實現端到端的由霧圖像直接得到無霧圖像。
深度學習估計參數法和非深度學習物理模型算法都是估計參數t(x)、A等,但是使用深度學習估計的參數比非深度學習物理模型要更加準確,去霧效果有較好的提升。
DehazeNet[13]提出一個端到端系統(tǒng),直接估計大氣透射率t(x),在特征提取層使用卷積加Maxout的方式,使用三個大小不同的卷積核,并使用BReLU激活函數提高網絡的收斂性。MSCNN[14]通過多尺度卷積,先在coarse-scale網絡上估計粗糙的大氣透射率,再把作為輔助特征傳入fine-scale網絡進一步改善,獲得最終的大氣透射率t(x),實驗指出使用ReLU作為激活函數更高效。此類算法不足之處是網絡比較復雜,仍需另外估計大氣光系數A,再基于物理模型進行去霧。
DCPCN[15]通過稠密金字塔網絡估計大氣透射率t(x),使用U-net估計大氣光系數A,通過大氣散射模型進行去霧,實驗使用t(x)和無霧圖J(x)的相關關系構建融合分類器對網絡進行優(yōu)化,能夠大幅度提高去霧的效果。AOD-Net[16]通過變換大氣散射模型等式(1),得到等式(4):

通過把t(x)、A融合到一個中間變量K(x)中,避免直接估計t(x)、A兩個參數,減少參數估計不正確,給后續(xù)去霧造成不良效果的概率。
通過神經網絡估計參數法進行去霧,同樣存在和物理模型去霧算法的不足。當估計參數不準確時,去霧的效果就會受到嚴重的影響。同時,由于神經網絡估計參數是在合成數據集上進行訓練,難以真正學到真實環(huán)境霧的相關特征,這也使得此類算法在對真實場景進行去霧時,去霧的質量會有所下降。為了處理這一難題,近期研究PSD[17]算法,通過使用合成數據集對網絡進行預訓練,再結合物理特征使用fine-tuning方式,使用真實數據集對網絡進行優(yōu)化,能夠獲得非常優(yōu)秀的效果。
為了避免估計參數的局限性,研究人員進一步利用神經網絡強大的學習性能,開始引進各種直接修復的去霧算法。其中仍可將其細分為特征融合去霧和對抗生成去霧算法。
GCANet[18]通過使用平滑擴張卷積和門限融合的方式,利用網絡學習J(x)和I(x)之間的殘差,構建損失函數,對網絡進行訓練,能夠取得很好的效果。GFN[19]通過對有霧圖進行白平衡、對比度增強、λ修正,獲得三張輔助圖作為網絡輸入,學習WB、CE、GC的信念圖,再利用金字塔結構進行修復,此算法雖然比估計參數的算法表現好,但是復雜度較高。GridDehazeNet[20]通過在backbone中使用網格網絡引入多尺度的注意力機制,也能夠獲得較好的效果。FFA-Net[21]引入通道注意力和空間注意力機制,通過堆疊含有注意力機制的Group框架和利用全局的殘差連接學習結構,僅通過L1損失就能取得很好的效果。此類算法能夠獲得良好的去霧效果,使用不同的特征融合方法,其效果會有很大的不同,需要細膩地設計。
由于GAN[22]在2014年席卷而來,對抗生成網絡架構在計算機視覺的各類應用中都得到很好的啟發(fā)。TPID[23]使用三個生成對抗網絡GJ、GA、Gt,利用大氣散射模型進行圖像去霧,通過構建不成對有霧和無霧數據集,使用對抗損失和L1 Loss相結合,解決深度學習去霧對成對數據集的依賴問題。CANDY[24]使用CGAN[25]的思想,添加L1 Loss和特征重構損失Lfeature,對網絡進行訓練;Cycle-Dehaze[26]使用CycleGAN[27]的思想,添加感知損失LPerceptual,對網絡進行訓練。此類算法由于對數據集的高度依賴,在真實場景下去霧的效果一般,容易存在顏色偏移失真問題。
本文對去霧算法在大方向上劃分為傳統(tǒng)圖像處理去霧算法和深度學習去霧算法。在傳統(tǒng)圖像處理去霧算法中,根據使用的理論依據不同,細分為非物理模型和物理模型去霧算法;在深度學習去霧算法中,根據是否估計大氣散射模型的參數,細分為深度學習估計參數法和深度學習直接修復法。在不同方法的分類中列舉了經典的算法,并且介紹了不同算法的中心思想及其不足之處。
對于傳統(tǒng)圖像處理去霧算法而言,使用各種先驗作為輔助信息,在先驗信息估計準確的情況下,此類算法比較穩(wěn)定。對于深度學習去霧算法而言,憑借著深度神經網絡具有強大的學習能力,能夠獲得比傳統(tǒng)圖像處理去霧算法較好的去霧效果,但是需要進一步解決對合成數據集依賴的問題。
綜上看來,如何設計輕量而高效的神經網絡,更好地借助合成數據集對網絡進行訓練,并能夠很好地提高網絡遷移到真實場景去霧的魯棒性,是高性能圖像去霧算法必須克服的重要難題之一。