陳俊安 陸庚有 謝倩怡 龔智慧 劉建平 彭紹湖
(廣州大學(xué)電子與通信工程學(xué)院,廣東 廣州 510006)
隨著計(jì)算機(jī)視覺(jué)的不斷發(fā)展,此領(lǐng)域已成為人工智能的重要組成部分。視覺(jué)作為人和動(dòng)物感受外界信息的主要方式之一,在人工智能領(lǐng)域,計(jì)算機(jī)視覺(jué)也同樣發(fā)揮著重要的作用。如今,計(jì)算機(jī)視覺(jué)在各個(gè)領(lǐng)域都獲得廣泛的應(yīng)用,如圖像分類、目標(biāo)檢測(cè)、語(yǔ)義分割、無(wú)人駕駛等。然而,這些應(yīng)用輸入有霧圖像時(shí),其性能將大大下降。因此,近年來(lái)計(jì)算機(jī)視覺(jué)領(lǐng)域研究圖像預(yù)處理的學(xué)者不斷增加,圖像去霧的問(wèn)題,在一定程度上得到了很好的處理。
霧圖形成可以通過(guò)大氣散射理論[1]進(jìn)行解釋,最早在1976年由Cantor正式提出,之后由Narasimhan等人進(jìn)行進(jìn)一步的總結(jié)[2]。大氣散射模型,如圖1所示。
圖1 大氣散射模型
公式描述,如(1)所示:
其中,I(x)為有霧圖像,J(x)為觀察目標(biāo)反射光,即去霧后的圖像,A為大氣光系數(shù),t(x)為大氣透射率。t(x)=e-βd(x),其中,d(x)為場(chǎng)景深度圖,β為大氣光散射系數(shù)。由公式(1)式可以清晰知道,只要求得t(x)和A,便可以從有霧圖像I(x)恢復(fù)無(wú)霧圖像J(x)。然而,在一個(gè)等式上含有兩個(gè)未知數(shù),此類問(wèn)題并沒(méi)有唯一解。因此,圖像去霧是有一個(gè)高度病態(tài)的問(wèn)題。
在2012年由于AlexNet的出現(xiàn),深度學(xué)習(xí)再次卷上熱潮,后續(xù)以卷積神經(jīng)網(wǎng)絡(luò)為代表,使得計(jì)算機(jī)視覺(jué)的許多任務(wù)使用深度學(xué)習(xí)算法進(jìn)行性能提升。同樣,在圖像去霧領(lǐng)域,深度學(xué)習(xí)一樣扮演著優(yōu)秀的角色。在2016年以前,學(xué)界主要通過(guò)傳統(tǒng)的圖像處理技術(shù)和統(tǒng)計(jì)學(xué)習(xí)方法研究圖像去霧問(wèn)題,如[3-12]等算法。自2016年以來(lái),深度學(xué)習(xí)技術(shù)開始席卷圖像去霧領(lǐng)域,如[13-27]等深度學(xué)習(xí)算法的提出,圖像去霧算法質(zhì)量得到了很大的提升。
以2016年為分界線,下文將對(duì)圖像去霧算法按照傳統(tǒng)圖像處理去霧算法和深度學(xué)習(xí)去霧算法進(jìn)行分類,對(duì)不同的算法進(jìn)行原理和優(yōu)缺點(diǎn)的分析。
傳統(tǒng)圖像處理去霧算法還可以分為非物理模型算法和物理模型算法。非物理模型算法主要以圖像處理方法,對(duì)圖像進(jìn)行增強(qiáng),突出圖像細(xì)節(jié),從而獲得去霧的效果。物理模型算法主要基于大氣散射理論,借助各種統(tǒng)計(jì)先驗(yàn),構(gòu)建非病態(tài)條件求解等式(1)。
多圖輸入去霧算法,如文獻(xiàn)[3,4]通過(guò)獲取同一場(chǎng)景不同環(huán)境的多張圖像作為輸入,基于有霧和無(wú)霧同一場(chǎng)景圖下具有的不同物質(zhì)媒介屬性,進(jìn)而增強(qiáng)有霧圖的能見(jiàn)度,從而達(dá)到圖像預(yù)處理效果。此外,極化濾波算法也是需要多圖輸入的算法,如文獻(xiàn)[5,6]通過(guò)采用兩張或多張同一場(chǎng)景的圖像,獲得不同級(jí)別的極化,從而獲得不同的極化濾波對(duì)有霧圖像進(jìn)行處理。此類算法由于需要同一場(chǎng)景的兩張或多張圖像作為輸入,不適用于動(dòng)態(tài)場(chǎng)景,缺乏靈活性。
直方圖均衡化算法,如文獻(xiàn)[7,8]。直方圖展示了圖像的灰度級(jí)別分布、對(duì)比度和明暗度情況,直方圖均衡化算法通過(guò)非線性的變換,使整幅圖像的像素均衡分布,在一定程度上可以達(dá)到去霧的效果。但是去霧的效果存在光暈現(xiàn)象,算法復(fù)雜度高,魯棒性較差,不夠靈活。
能見(jiàn)度增強(qiáng)算法[9,10],通過(guò)假設(shè)無(wú)霧圖的對(duì)比度比有霧圖對(duì)比度高,并借助提高對(duì)比度來(lái)改善圖像能見(jiàn)度的特性,利用最大化邊緣輪廓的方法,獲得較好的對(duì)比度增強(qiáng)的效果。此算法可以獲得令人信服的能見(jiàn)度增強(qiáng)的效果,但是算法復(fù)雜度高,對(duì)不同的有霧場(chǎng)景去霧不完全有效。
物理模型去霧算法是以大氣散射理論為基礎(chǔ),通過(guò)補(bǔ)充條件使得求解等式(1)為非病態(tài)問(wèn)題。此類算法以各種先驗(yàn)作為輔助信息,估計(jì)等式(1)中的t(x)、d(x)、A參數(shù),使得能夠通過(guò)等式(1)直接修復(fù)無(wú)霧圖。先驗(yàn)算法都有一個(gè)共同的局限性,只有在特定的場(chǎng)景情況,才能有良好的先驗(yàn)估計(jì)結(jié)果,所以此類算法對(duì)不同場(chǎng)景的應(yīng)用表現(xiàn)不一。
暗通道先驗(yàn)去霧算法[11],通過(guò)對(duì)大量無(wú)霧圖進(jìn)行統(tǒng)計(jì),發(fā)現(xiàn)在無(wú)霧圖RBG三通道中,至少有一個(gè)通道的像素值接近0。對(duì)于有霧圖而言,暗通道先驗(yàn)可以作為霧的濃度估計(jì),在假設(shè)大氣光系數(shù)A為常量的條件下,通過(guò)變換等式(1),借助暗通道先驗(yàn)的性質(zhì),可以得到大氣透射率t(x)的求解,如等式(2)所示:
其中Ω(x)為小區(qū)域像素,c為RGB通道,y為像素位置。在估計(jì)后,通過(guò)soft matting算法,得到平滑的t(x)。通過(guò)等式(3)進(jìn)行修復(fù),如下所示:
其中t0為t(x)的下界值,避免遠(yuǎn)距離場(chǎng)景圖的大氣透射率等于0。
暗通道先驗(yàn)去霧算法作為一種基于統(tǒng)計(jì)的算法,在圖像去霧的領(lǐng)域獲得良好的效果,與上述非物理模型算法相比,其穩(wěn)定性更高。但是,去霧的效果略微偏暗,對(duì)于含有天空背景有霧圖表現(xiàn)不穩(wěn)定。
顏色衰退先驗(yàn)去霧算法[12],通過(guò)對(duì)大量有霧圖進(jìn)行實(shí)驗(yàn)觀察,發(fā)現(xiàn)霧的不同跟圖像的亮度和飽和度有關(guān)聯(lián),通過(guò)構(gòu)建線性模型,恢復(fù)圖像場(chǎng)景的深度圖,進(jìn)而通過(guò)t(x)=e-βd(x),可以估計(jì)大氣透射率t(x),進(jìn)而利用等式(3)可以獲得無(wú)霧圖的恢復(fù)。此算法對(duì)背景清晰、顏色飽和度較大的薄霧圖像處理效果較好,但是在景深變化區(qū)域容易出現(xiàn)霧殘留的現(xiàn)象,對(duì)于含團(tuán)霧圖像的處理效果較差。
深度學(xué)習(xí)去霧算法還可分為估計(jì)參數(shù)法和直接修復(fù)法,大多基于卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行設(shè)計(jì)。估計(jì)參數(shù)法使用深度卷積神經(jīng)網(wǎng)絡(luò)直接估計(jì)t(x)、A等,再基于大氣散射模型,對(duì)圖像進(jìn)行去霧。直接修復(fù)法通過(guò)利用深度神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,在數(shù)據(jù)驅(qū)動(dòng)的條件下,實(shí)現(xiàn)端到端的由霧圖像直接得到無(wú)霧圖像。
深度學(xué)習(xí)估計(jì)參數(shù)法和非深度學(xué)習(xí)物理模型算法都是估計(jì)參數(shù)t(x)、A等,但是使用深度學(xué)習(xí)估計(jì)的參數(shù)比非深度學(xué)習(xí)物理模型要更加準(zhǔn)確,去霧效果有較好的提升。
DehazeNet[13]提出一個(gè)端到端系統(tǒng),直接估計(jì)大氣透射率t(x),在特征提取層使用卷積加Maxout的方式,使用三個(gè)大小不同的卷積核,并使用BReLU激活函數(shù)提高網(wǎng)絡(luò)的收斂性。MSCNN[14]通過(guò)多尺度卷積,先在coarse-scale網(wǎng)絡(luò)上估計(jì)粗糙的大氣透射率,再把作為輔助特征傳入fine-scale網(wǎng)絡(luò)進(jìn)一步改善,獲得最終的大氣透射率t(x),實(shí)驗(yàn)指出使用ReLU作為激活函數(shù)更高效。此類算法不足之處是網(wǎng)絡(luò)比較復(fù)雜,仍需另外估計(jì)大氣光系數(shù)A,再基于物理模型進(jìn)行去霧。
DCPCN[15]通過(guò)稠密金字塔網(wǎng)絡(luò)估計(jì)大氣透射率t(x),使用U-net估計(jì)大氣光系數(shù)A,通過(guò)大氣散射模型進(jìn)行去霧,實(shí)驗(yàn)使用t(x)和無(wú)霧圖J(x)的相關(guān)關(guān)系構(gòu)建融合分類器對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,能夠大幅度提高去霧的效果。AOD-Net[16]通過(guò)變換大氣散射模型等式(1),得到等式(4):
通過(guò)把t(x)、A融合到一個(gè)中間變量K(x)中,避免直接估計(jì)t(x)、A兩個(gè)參數(shù),減少參數(shù)估計(jì)不正確,給后續(xù)去霧造成不良效果的概率。
通過(guò)神經(jīng)網(wǎng)絡(luò)估計(jì)參數(shù)法進(jìn)行去霧,同樣存在和物理模型去霧算法的不足。當(dāng)估計(jì)參數(shù)不準(zhǔn)確時(shí),去霧的效果就會(huì)受到嚴(yán)重的影響。同時(shí),由于神經(jīng)網(wǎng)絡(luò)估計(jì)參數(shù)是在合成數(shù)據(jù)集上進(jìn)行訓(xùn)練,難以真正學(xué)到真實(shí)環(huán)境霧的相關(guān)特征,這也使得此類算法在對(duì)真實(shí)場(chǎng)景進(jìn)行去霧時(shí),去霧的質(zhì)量會(huì)有所下降。為了處理這一難題,近期研究PSD[17]算法,通過(guò)使用合成數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,再結(jié)合物理特征使用fine-tuning方式,使用真實(shí)數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,能夠獲得非常優(yōu)秀的效果。
為了避免估計(jì)參數(shù)的局限性,研究人員進(jìn)一步利用神經(jīng)網(wǎng)絡(luò)強(qiáng)大的學(xué)習(xí)性能,開始引進(jìn)各種直接修復(fù)的去霧算法。其中仍可將其細(xì)分為特征融合去霧和對(duì)抗生成去霧算法。
GCANet[18]通過(guò)使用平滑擴(kuò)張卷積和門限融合的方式,利用網(wǎng)絡(luò)學(xué)習(xí)J(x)和I(x)之間的殘差,構(gòu)建損失函數(shù),對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,能夠取得很好的效果。GFN[19]通過(guò)對(duì)有霧圖進(jìn)行白平衡、對(duì)比度增強(qiáng)、λ修正,獲得三張輔助圖作為網(wǎng)絡(luò)輸入,學(xué)習(xí)WB、CE、GC的信念圖,再利用金字塔結(jié)構(gòu)進(jìn)行修復(fù),此算法雖然比估計(jì)參數(shù)的算法表現(xiàn)好,但是復(fù)雜度較高。GridDehazeNet[20]通過(guò)在backbone中使用網(wǎng)格網(wǎng)絡(luò)引入多尺度的注意力機(jī)制,也能夠獲得較好的效果。FFA-Net[21]引入通道注意力和空間注意力機(jī)制,通過(guò)堆疊含有注意力機(jī)制的Group框架和利用全局的殘差連接學(xué)習(xí)結(jié)構(gòu),僅通過(guò)L1損失就能取得很好的效果。此類算法能夠獲得良好的去霧效果,使用不同的特征融合方法,其效果會(huì)有很大的不同,需要細(xì)膩地設(shè)計(jì)。
由于GAN[22]在2014年席卷而來(lái),對(duì)抗生成網(wǎng)絡(luò)架構(gòu)在計(jì)算機(jī)視覺(jué)的各類應(yīng)用中都得到很好的啟發(fā)。TPID[23]使用三個(gè)生成對(duì)抗網(wǎng)絡(luò)GJ、GA、Gt,利用大氣散射模型進(jìn)行圖像去霧,通過(guò)構(gòu)建不成對(duì)有霧和無(wú)霧數(shù)據(jù)集,使用對(duì)抗損失和L1 Loss相結(jié)合,解決深度學(xué)習(xí)去霧對(duì)成對(duì)數(shù)據(jù)集的依賴問(wèn)題。CANDY[24]使用CGAN[25]的思想,添加L1 Loss和特征重構(gòu)損失Lfeature,對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;Cycle-Dehaze[26]使用CycleGAN[27]的思想,添加感知損失LPerceptual,對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。此類算法由于對(duì)數(shù)據(jù)集的高度依賴,在真實(shí)場(chǎng)景下去霧的效果一般,容易存在顏色偏移失真問(wèn)題。
本文對(duì)去霧算法在大方向上劃分為傳統(tǒng)圖像處理去霧算法和深度學(xué)習(xí)去霧算法。在傳統(tǒng)圖像處理去霧算法中,根據(jù)使用的理論依據(jù)不同,細(xì)分為非物理模型和物理模型去霧算法;在深度學(xué)習(xí)去霧算法中,根據(jù)是否估計(jì)大氣散射模型的參數(shù),細(xì)分為深度學(xué)習(xí)估計(jì)參數(shù)法和深度學(xué)習(xí)直接修復(fù)法。在不同方法的分類中列舉了經(jīng)典的算法,并且介紹了不同算法的中心思想及其不足之處。
對(duì)于傳統(tǒng)圖像處理去霧算法而言,使用各種先驗(yàn)作為輔助信息,在先驗(yàn)信息估計(jì)準(zhǔn)確的情況下,此類算法比較穩(wěn)定。對(duì)于深度學(xué)習(xí)去霧算法而言,憑借著深度神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的學(xué)習(xí)能力,能夠獲得比傳統(tǒng)圖像處理去霧算法較好的去霧效果,但是需要進(jìn)一步解決對(duì)合成數(shù)據(jù)集依賴的問(wèn)題。
綜上看來(lái),如何設(shè)計(jì)輕量而高效的神經(jīng)網(wǎng)絡(luò),更好地借助合成數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并能夠很好地提高網(wǎng)絡(luò)遷移到真實(shí)場(chǎng)景去霧的魯棒性,是高性能圖像去霧算法必須克服的重要難題之一。