黃佳恒,葉 青,邱實(shí)卓
(長(zhǎng)沙理工大學(xué)電氣與信息工程學(xué)院,長(zhǎng)沙 410114)
夜間情況下,受光照條件惡劣的影響,部分道路圖像降質(zhì),夜間道路上的非機(jī)動(dòng)車特征表現(xiàn)度很差,不能滿足機(jī)器視覺(jué),如自動(dòng)駕駛、目標(biāo)檢測(cè)及視頻監(jiān)控等應(yīng)用需要。目前已經(jīng)有一些比較成熟的夜間圖像增強(qiáng)算法,例如直方圖均衡化[1]、暗通道先驗(yàn)增強(qiáng)[2]和Retinex算法[3]等。其中Retinex 算法應(yīng)用較為廣泛,其原理是假設(shè)圖像由光照分量和反射分量組成,通過(guò)估計(jì)并去除圖像的光照分量保留反映圖像信息的反射分量,以達(dá)到圖像增強(qiáng)的目的。由于Retinex 算法的圖像增強(qiáng)效果出眾,單尺度Retinex 算法(SSR)、多尺度Retinex 算法(MSR)、 顏色修復(fù)Retinex 算法(MSRCP)[4]等算法被陸續(xù)提出。特別的,基于變分模型的Retinex 算法被Kimmel 等[5]提出,為夜間圖像增強(qiáng)開(kāi)辟了另一個(gè)思路,即先計(jì)算照明圖,再平滑處理反射圖,最終得到增強(qiáng)結(jié)果。所以針對(duì)能夠穩(wěn)定提供多幅同場(chǎng)景不同時(shí)間的圖像、同一場(chǎng)景一段時(shí)間內(nèi)的多幅圖像的情況,或者可以提供其他種類的場(chǎng)景信息來(lái)源的情形,基于圖像融合的夜晚圖像增強(qiáng)算法能夠取得更優(yōu)異的增強(qiáng)結(jié)果?;诖怂枷?,Goodfellow 等[6]提出生成對(duì)抗網(wǎng)絡(luò)(GAN),在模型訓(xùn)練階段將生成器與判別器進(jìn)行對(duì)抗博弈,當(dāng)兩者達(dá)到納什平衡后模型性能為最佳,該模型在圖像增強(qiáng)領(lǐng)域應(yīng)用廣泛。隨后,Zhu 等[7]以GAN 為基礎(chǔ)設(shè)計(jì)出CycleGAN,能夠不使用配對(duì)圖像對(duì)模型進(jìn)行無(wú)監(jiān)督訓(xùn)練,從而實(shí)現(xiàn)圖像風(fēng)格轉(zhuǎn)化。Jiang[8]針對(duì)低照度圖像增強(qiáng)任務(wù)對(duì)CycleGAN 進(jìn)行優(yōu)化,提出EnlightenGAN。雖然這些算法可以提高夜間道路環(huán)境圖像的亮度,但是它們?cè)谠鰪?qiáng)過(guò)程中仍然存在一些缺陷。例如,RetinexNet 算法只考慮了光照分量的估計(jì)通道,而忽略了對(duì)反射分量的優(yōu)化,這導(dǎo)致在提高圖像亮度的同時(shí),會(huì)出現(xiàn)顏色失真和細(xì)節(jié)特征大量丟失的問(wèn)題。EnlightenGAN 算法對(duì)于光照度低圖像增強(qiáng)效果較好,且對(duì)于原夜間道路環(huán)境下較為明顯的非機(jī)動(dòng)車類小目標(biāo)特征保存效果較好,但對(duì)于較大程度與極低光照環(huán)境下融合在一起的小目標(biāo)特征,在轉(zhuǎn)化過(guò)程中也存在一定丟失,具有一定局限性。
針對(duì)上述包含行人的夜間道路環(huán)境下圖像增強(qiáng)問(wèn)題,結(jié)合現(xiàn)有算法的優(yōu)勢(shì),提出一種基于CycleGAN 網(wǎng)絡(luò)的新型圖像增強(qiáng)算法。使用基于Grad-CAM 網(wǎng)絡(luò)[9]與AdaLIN 理論[10]模型改進(jìn)CycleGAN 的生成器結(jié)構(gòu),以提高夜間道路行人圖像亮度,解決轉(zhuǎn)換過(guò)程中行人特征丟失的問(wèn)題,使用添加AdaLIN 理論模型的判別器提高圖像整體亮度的同時(shí)改善局部區(qū)域亮度效果,保證生成日間圖片的真實(shí)性。進(jìn)一步地,在改進(jìn)CycleGAN 網(wǎng)絡(luò)之后加入具有10 層U-net[11]的Pixel2pixel[12]結(jié)構(gòu)構(gòu)成Merge 網(wǎng)絡(luò),融合日間夜間行人圖像生成光照度更高的類夜間行人圖像,以此解決夜間道路環(huán)境下行人特征增強(qiáng)的問(wèn)題。
CycleGAN 包含兩對(duì)生成器和判別器。生成器G 學(xué)習(xí)從風(fēng)格域X和風(fēng)格域Y的映射關(guān)系,生成器F學(xué)習(xí)從風(fēng)格域Y到風(fēng)格域X的映射關(guān)系。判別器D( )x和判別D(y)分別判斷由生成器合成的樣本是否屬于各自風(fēng)格域的真實(shí)樣本。雙向生成過(guò)程數(shù)學(xué)表達(dá)式表示為
CycleGAN 生成器結(jié)構(gòu)如圖1 所示,左半部分為下采樣編碼過(guò)程,解碼器利用卷積算子負(fù)責(zé)圖像的編碼。在兩個(gè)結(jié)構(gòu)鏈接區(qū)域使用Residual block(RSC)模塊,增加殘差模塊繼續(xù)加深模型深度,默認(rèn)是九個(gè)重復(fù)模塊,將數(shù)據(jù)進(jìn)行恢復(fù)增強(qiáng),完成源圖像風(fēng)格與目標(biāo)圖像風(fēng)格的特征轉(zhuǎn)換;右半部分是上采樣解碼階段。
圖1 生成器結(jié)構(gòu)
CycleGAN判別器是采用patchGAN結(jié)構(gòu)的判別器,如圖2所示。該判別器的重點(diǎn)是輸出結(jié)構(gòu)為NxN 的矩陣進(jìn)行比較,這種產(chǎn)生了全局比較的概念,考慮了全局感受野信息的差別。
圖2 判別器結(jié)構(gòu)
CycleGAN的損失函數(shù)包括身份損失(Identity Loss)、生成對(duì)抗損失(GAN Loss)、循環(huán)一致性損失(Cycle-consistency Loss)。Identity Loss 的作用可以說(shuō)明生成器網(wǎng)絡(luò)真正地理解了風(fēng)格域Y的結(jié)構(gòu),保證生成器G值生成Y域圖像的功能。Identity損失表示如下:
由于CycleGAN 有兩對(duì)生成器和判別器,所以CycleGAN 的對(duì)抗損失也分為兩部分,第一部分為G與D(y)的對(duì)抗損失,第二部分為G與D(x)的對(duì)抗損失,公式如下所示:
作為CycleGAN 核心的循環(huán)一致性思想,用數(shù)據(jù)集中其他的圖來(lái)檢驗(yàn)生成器,以防止G和F過(guò)擬合。循環(huán)一致性損失分為兩個(gè)損失函數(shù)部分:前向一致性損失和后向一致性損失,具體公式如下:
其中,Pdata(x)為x域的圖像分布,Pdata(y)為y域的圖像分布。
綜上所述,完成的CycleGAN 的損失函數(shù)是由生成對(duì)抗損失、身份損失、循環(huán)一致性損失以及總和得到的,總損失函數(shù)表示如下:
CycleGAN 是一種具有圖像風(fēng)格轉(zhuǎn)換功能的GAN 網(wǎng)絡(luò),在轉(zhuǎn)換日間風(fēng)格和夜間風(fēng)格的過(guò)程中,雖然對(duì)圖像亮度這一特征有了轉(zhuǎn)換,但是原本夜間道路中的行人紋理特征會(huì)隨之丟失,造成整體圖像中的行人特征丟失,無(wú)法有效增強(qiáng)夜間道路環(huán)境下的行人特征質(zhì)量。
2.1.1 加入Grad-CAM
針對(duì)由夜間圖像向日間圖像風(fēng)格轉(zhuǎn)換過(guò)程中亮度提升幅度與行人特征丟失的問(wèn)題,在生成器上采樣之前的全連接層引入熱圖注意力機(jī)制Grad-CAM,得到權(quán)重參數(shù)輸入AdaLIN 模型自適應(yīng)地計(jì)算出層歸一化LN與實(shí)例歸一化IN權(quán)重參數(shù)。
常用的注意力結(jié)構(gòu)如CBAM等需要有一個(gè)輔助檢測(cè)器的加持,而Gad-CAM在沒(méi)有常用注意力機(jī)制的情況下,也能對(duì)圖像特定特征位置進(jìn)行判別。定義Grad-CAM中第k個(gè)特征圖對(duì)應(yīng)類別c的權(quán)重為,可以通過(guò)如下公式計(jì)算得到:
其中,z為特征圖的像素個(gè)數(shù),yc代表網(wǎng)絡(luò)針對(duì)類別c預(yù)測(cè)的分?jǐn)?shù),代表第k個(gè)特征圖中(i,j)位置處的像素值。然后在求得所有的特征圖對(duì)應(yīng)的類別權(quán)重后進(jìn)行加權(quán)求和,這樣便可以得到最后的熱力圖,求和公式如下:
式中,A代表某個(gè)特征層,在論文中一般指最后一個(gè)卷積層輸出的特征層,k代表特征層A中的第k個(gè)通道,c代表類別c,Ak代表特征層A中通道k的數(shù)據(jù),代表針對(duì)Ak的權(quán)重。本文需要通過(guò)Grad-CAM得到各特征圖通道下的權(quán)重值,并進(jìn)行后續(xù)改進(jìn)。Grad-CAM的整體結(jié)構(gòu)如圖3所示。
圖3 Grad-CAM結(jié)構(gòu)流程圖
2.1.2 AdaIN替換IN
原生成器與判別器的卷積模塊CIL、CTIR、RSC 中歸一化層都為IN(InstanceNorm)實(shí)例歸一化。對(duì)于生成對(duì)抗網(wǎng)絡(luò)來(lái)說(shuō),層歸一化(LN)可以使圖像風(fēng)格轉(zhuǎn)換更加徹底,但是生成的圖像會(huì)損失一定的語(yǔ)義信息,而InstanceNorm(IN)的效果則相反。因此,將自適應(yīng)的歸一化層Ada-LIN,可以適應(yīng)地平衡LN和IN的比例。
在前文引入了Grad-CAM 的基礎(chǔ)上,將生成器與判別器的卷積模塊CIL、CTIR、RSC 中的IN(InstanceNorm)替換為AdaIN,為了進(jìn)一步平衡LN和IN層權(quán)重來(lái)保證夜間道路下行人特征的增強(qiáng)和圖像亮度的提升,本文在生成器中引入了一種新的自適應(yīng)歸一化函數(shù)AdaIN,AdaIN 計(jì)算公式如下:
其中,ρ是一個(gè)學(xué)習(xí)權(quán)重,通過(guò)反向傳播更新;γ、β是從由Grad-CAM得到的權(quán)重特征圖中學(xué)習(xí)得到。到此一個(gè)完整的生成器改進(jìn)模型完成,結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)生成器結(jié)構(gòu)
在原判別器下采樣最后一層卷積之后通過(guò)一個(gè)全連接層學(xué)習(xí)注意力圖(熱力圖)不同channel的權(quán)重,然后得到熱圖注意力機(jī)制下的特征圖輸入分類器,以提高判別器對(duì)特定特征(夜間行人)的識(shí)別能力,提高圖像整體亮度的同時(shí)更加關(guān)注包含行人區(qū)域的亮度。判別器結(jié)構(gòu)改進(jìn)如圖5所示。
在介紹改進(jìn)函數(shù)之前需要了解BCE Loss 的相關(guān)原理,BCE Loss 全名binary cross entropy loss,其也是交叉熵的一個(gè)應(yīng)用,但針對(duì)的是二分類,所以有其特殊形式。對(duì)于二分類問(wèn)題,我們模型需要輸出[0.3,0.7],但完全可以讓模型只輸出一個(gè)數(shù),例如m為0.3,由于歸一化的原因,另外一個(gè)類別的概率一定是0.7。從而,其特殊形式如下:
新增基于前文引入Grad-CAM 的損失函數(shù),定義為CAM Loss,CAM Loss 采用BCE Loss,因?yàn)锽CE Loss 是非線性的,相對(duì)于L1 或者M(jìn)SE 的限制更強(qiáng)(避免落在0.5 的均值上),采用這種方法是因?yàn)樯善魇悄繕?biāo)網(wǎng)絡(luò),并且其任務(wù)相對(duì)于鑒別器是更困難的。兩個(gè)輔助分類器的分類CAM Loss分別定義為以下公式:
其中,E表示分布函數(shù)的數(shù)學(xué)期望,對(duì)于生成器來(lái)說(shuō),希望它生產(chǎn)的圖像更像真實(shí)圖片;對(duì)于判別器來(lái)說(shuō),希望它對(duì)于生成圖片的判別是否為真的準(zhǔn)確率更高。η表示特征標(biāo)簽類別,兩類CAM Loss 的提出可以用來(lái)判定對(duì)指定特征抓取賦值的準(zhǔn)確度。
由此引入的新?lián)p失函數(shù)加入原有CycleGAN總損失函數(shù),形成新的總損失函數(shù),其表示如下:
式(13)中總損失函數(shù)中既有原有CycleGAN 結(jié)構(gòu)中的生成損失和判別損失,又有引入Grad-CAM熱圖注意力機(jī)制下的權(quán)重注意力損失CAM Loss。
針對(duì)原始夜間圖像整體光照度較低的問(wèn)題,在改進(jìn)Cyclegan 模型生成對(duì)應(yīng)夜間日間行人圖片之后,加入具有10 層U-net 的Pixel2pixel 結(jié)構(gòu)構(gòu)成Merge網(wǎng)絡(luò),它接受夜間道路行人圖像和相對(duì)應(yīng)生產(chǎn)的日間道路行人圖像,根據(jù)設(shè)置的梯度選擇不同的采樣塊,然后通過(guò)Pixel2Pixel生成器執(zhí)行多尺度融合,生成光照度更高的類夜間行人圖像。其過(guò)程如圖6所示。
圖6 Merge網(wǎng)絡(luò)流程
使用RetinexNet、MSRCP、CycleGAN+Merge與改進(jìn)CycleGAN+Merge 算法對(duì)測(cè)試集圖像進(jìn)行圖像增強(qiáng)實(shí)驗(yàn),見(jiàn)圖7。圖中第1、2、3、4、5列分別為原始夜間行人圖像、RetinexNet 增強(qiáng)圖像、MSRCP 增強(qiáng)圖像、CycleGAN+Merge 增強(qiáng)圖像與改進(jìn)CycleGAN+Merge 增強(qiáng)圖像。由圖7 可知,不同算法對(duì)原始夜間圖像亮度均有一定提升,但RetinexNet算法對(duì)低照度圖像的亮度提升效果有限,且顏色失真現(xiàn)象較嚴(yán)重,無(wú)法顯示圖像的真實(shí)顏色,增強(qiáng)圖像出現(xiàn)過(guò)度模糊,增強(qiáng)效果不佳,如第2 列結(jié)果所示。MSRCP 算法相對(duì)于RetinexNet算法在低照度行人圖像上增強(qiáng)效果更好,對(duì)低照度圖像的亮度提升明顯,如第1、2 行所示,但對(duì)于極低照度的圖像增強(qiáng),細(xì)節(jié)信息丟失嚴(yán)重,也出現(xiàn)嚴(yán)重模糊,結(jié)果如第3、4 行所示。CycleGAN+Merge 對(duì)低照度圖像的整體亮度提升效果有限,如第4列所示,但該算法在對(duì)與極低照度圖像的增強(qiáng)過(guò)程中,避免了顏色失真嚴(yán)重和圖像過(guò)度模糊的問(wèn)題,非機(jī)動(dòng)車類特征在一定程度上也保留了下來(lái),如黃色方框所示。本文所提出的改進(jìn)CycleGAN+Merge 算法增強(qiáng)結(jié)果如第5 列所示,相比前兩種增強(qiáng)算法,各方面均有不同程度的提升,相對(duì)CycleGAN+Merge 算法在極低照度圖像增強(qiáng)中,亮度提升效果更好,且包含非機(jī)動(dòng)車特征的區(qū)域凸顯度更高,如第3、4行紅色方框所示。
圖7 各類算法視覺(jué)對(duì)比結(jié)果
4.2.1 直方圖亮度提升評(píng)價(jià)
各個(gè)算法對(duì)亮度的提升能力,可以用灰度直方圖來(lái)評(píng)估,結(jié)果如圖8所示。
圖8 各算法對(duì)比直方圖
從各個(gè)算法增強(qiáng)圖像的灰度直方圖可以看出,均對(duì)原夜間圖像亮度有一定提升,RetinexNet 與MSRCP 增強(qiáng)算法提升了高亮度值像素點(diǎn)的數(shù)量,說(shuō)明這兩種算法對(duì)圖像的亮度提升能力顯著,但對(duì)比實(shí)際視覺(jué)評(píng)價(jià)結(jié)果,如圖8所示,在提升亮度的過(guò)程中出現(xiàn)嚴(yán)重模糊的情況,視覺(jué)效果較差,難以凸顯非機(jī)動(dòng)車特征。Cycle-GAN+Merge 灰度直方圖相比原夜間灰度直方圖也有較大提升,但對(duì)于低亮度值的像素點(diǎn)的亮度提升跨度不如前兩種算法,導(dǎo)致在極黑暗環(huán)境中的非機(jī)動(dòng)車特征視覺(jué)效果不佳。改進(jìn)Cycle-GAN+Merge 灰度直方圖相對(duì)未改進(jìn)的直方圖,將更多的低亮度值像素點(diǎn)進(jìn)行了亮度提升,在CycleGAN+Merge 的基礎(chǔ)上進(jìn)行了進(jìn)一步的亮度提升,由此提高了非機(jī)動(dòng)車特征的凸顯度。
4.2.2 增強(qiáng)圖像特征評(píng)價(jià)
采用KID 函數(shù)、PSNR 函數(shù)這兩個(gè)常用的GAN 網(wǎng)絡(luò)評(píng)估指標(biāo)來(lái)進(jìn)行量化評(píng)估,另外為了進(jìn)一步區(qū)分四種增強(qiáng)算法圖像增強(qiáng)效果,還加入IFC 函數(shù)(信息保真度準(zhǔn)則)和評(píng)價(jià)函數(shù)SSIM(結(jié)構(gòu)相似性)。KID 函數(shù)的評(píng)價(jià)原理是通過(guò)計(jì)算生成圖像與真實(shí)圖像在特征空間中的距離來(lái)評(píng)估生成圖像的質(zhì)量,分?jǐn)?shù)越低表示生成圖像與真實(shí)圖像越相似。PSNR 評(píng)價(jià)函數(shù)計(jì)算生成圖像與目標(biāo)圖像之間的峰值信噪比,即兩幅圖像之間的均方誤差(MSE)與最大可能像素值的平方根(255或1)之間的比率。PSNR評(píng)價(jià)函數(shù)的作用是定量地度量生成圖像和目標(biāo)圖像之間的失真程度,分?jǐn)?shù)越高表示生成圖像質(zhì)量越好。IFC評(píng)價(jià)函數(shù)用于評(píng)估圖像增強(qiáng)算法的信息保真度。IFC能夠反映處理后圖像與原始圖像之間的信息相似度,IFC 值越大,表明增強(qiáng)后圖像的信息保真度越好。SSIM 評(píng)價(jià)函數(shù)[13]評(píng)估圖像的質(zhì)量是基于三個(gè)因素:亮度、對(duì)比度和結(jié)構(gòu)。在Cycle-GAN 網(wǎng)絡(luò)中,SSIM 評(píng)價(jià)函數(shù)可以幫助判定生成的圖像是否與真實(shí)圖像具有相似的結(jié)構(gòu)和紋理特征,其分?jǐn)?shù)越高表示生成圖像的結(jié)構(gòu)和紋理特征保留度更高。SSIM其公式為
其中,x代表夜間風(fēng)格圖像,也就是包含非機(jī)動(dòng)車的夜間道路環(huán)境圖像,y代表由夜間圖像生成的類夜間風(fēng)格圖像,ux是x的平均值,uy是y的平均值,σxy是x和y的協(xié)方差,c1和c2是兩個(gè)用于維持穩(wěn)定的常數(shù),避免出現(xiàn)分母為零的情況。,分別為x,y的方差。由式(14)可知,SSIM 越接近1,表明生成的類夜間風(fēng)格圖像越相近。
用四種增強(qiáng)算法在測(cè)試集上進(jìn)行測(cè)試,表1展示了KID、PSNR、IFC、SSIM 在本文四種增強(qiáng)算法下的平均指標(biāo)值。
由表1 可知,改進(jìn)CycleGAN+Merge 在四項(xiàng)指標(biāo)上,都有對(duì)應(yīng)的提升,其中PSNR 與SSIM有相對(duì)較大提升。在PSNR 指標(biāo)上,相對(duì)RetinexNet算法提高了16.07%,相對(duì)于MSRCP算法提升了12.30%,相對(duì)于未改進(jìn)CycleGAN+Merge模型提升了4.15%。證明本文提出改進(jìn)Cycle-GAN+Merge 模型在夜間道路環(huán)境圖像增強(qiáng)的過(guò)程中能更好地抑制圖像失真與圖像模糊。在SSIM 指標(biāo)上,相對(duì)于RetinexNet 算法提高了16.56%,相對(duì)于MSRCP 算法提升了10.62%,相對(duì)于未改進(jìn)CycleGAN+Merge 模型提升了7.22%,在此指標(biāo)上的提升可以說(shuō)明本文提出的模型能在通過(guò)生成類夜間道路風(fēng)格圖像增強(qiáng)的同時(shí),更好地保留并突出非機(jī)動(dòng)車類小目標(biāo)特征。通過(guò)上述實(shí)驗(yàn),本文的算法相對(duì)于對(duì)比算法表現(xiàn)出更優(yōu)的性能,可以有效地提高整個(gè)圖像的亮度,恰當(dāng)?shù)卦鰪?qiáng)局部區(qū)域的亮度,避免圖像失真與模糊,并增強(qiáng)生成過(guò)程并保留細(xì)節(jié)信息,使增強(qiáng)后的夜間道路下非機(jī)動(dòng)車類特征更加明顯。
夜間道路圖像增強(qiáng)算法進(jìn)行圖像增強(qiáng)時(shí),尤其是極低照度真實(shí)夜間道路圖像的增強(qiáng)時(shí),存在亮度提升有限、容易出現(xiàn)圖像失真以及圖像模糊、夜間道路下非機(jī)動(dòng)車類小目標(biāo)特征在增強(qiáng)過(guò)程中丟失的問(wèn)題,鑒于此,本文提出了一種基于改進(jìn)CycleGAN+Merge 模型。結(jié)合一種熱圖自注意力Grad-CAM 網(wǎng)絡(luò)和一種自適應(yīng)歸一化層AdaLIN 改進(jìn)CycleGAN 的生成器,使用自適應(yīng)歸一化層AdaLIN 改進(jìn)CycleGAN 判別器,并在改進(jìn)CycleGAN 網(wǎng)絡(luò)之后加入Merge 網(wǎng)絡(luò),有效解決了現(xiàn)有包含非機(jī)動(dòng)車類小目標(biāo)特征夜間道路環(huán)境圖像增強(qiáng)中的問(wèn)題。通過(guò)消融實(shí)驗(yàn)驗(yàn)證了本文算法的優(yōu)越性,能有效提升夜間非機(jī)動(dòng)車類小目標(biāo)特征的檢測(cè)率。