苗德鄰,劉磊,莫涌超,胡朝龍,張益軍,錢蕓生
(南京理工大學(xué) 電子工程與光電技術(shù)學(xué)院,江蘇 南京 210018)
近些年來隨著深度學(xué)習(xí)理論的發(fā)展以及計算機計算性能的提升,目標檢測和追蹤技術(shù)已經(jīng)廣泛應(yīng)用于智能監(jiān)控、自動及輔助駕駛、信息安全系統(tǒng)等諸多領(lǐng)域;但是這些技術(shù)在現(xiàn)實環(huán)境下仍然面臨很多問題,由于圖像通常無法在最優(yōu)的光條件下獲取,往往會受到不可避免的環(huán)境因素如背光、非均勻照明、夜間微光等,以及技術(shù)限制如不足的曝光時間和過低的增益等影響,這類圖像的視覺質(zhì)量較差,目標檢測和識別的精度遠低于高質(zhì)量圖像??紤]到大多數(shù)目標檢測模型都是基于高質(zhì)量圖像數(shù)據(jù)進行訓(xùn)練和測試的,如RCNN(region convolutional neural network)[1]、YOLO(you only look once)[2]、SSD(single shot multi-box detector)[3]
等,采用先對原始低照度圖像進行圖像增強的方式提高目標檢測的精度是一種最簡便的方式。LLNet(low-light net)[4]、MBLLEN(multi-branch lowlight enhancement network)[5]等端到端的低照度圖像增強工作已經(jīng)證明了利用神經(jīng)網(wǎng)絡(luò)提升低照度圖像質(zhì)量的可能性。同時,學(xué)者們也注意到Retinex 模型在傳統(tǒng)的低照度圖像增強以及圖像去霧中有著不俗的表現(xiàn),由此出現(xiàn)了基于利用神經(jīng)網(wǎng)絡(luò)來估計Retinex 中的照明分量以及反射分量的方法,如Retinex-Net[6]、LightenNet[7]等,都能起到很好的增強效果以及自適應(yīng)性。為了實現(xiàn)神經(jīng)網(wǎng)絡(luò)的泛用性,很多研究者采集構(gòu)建了一系列低照度場景數(shù)據(jù)集,包括SID(see-in-the-dark)[8]、LOL(lowlight)[9]等。除此之外,基于非匹配數(shù)據(jù)和非監(jiān)督學(xué)習(xí)的方法也被應(yīng)用在低照度圖像增強中,如EnlightenGAN(enlighten generative adversarial networks)[10],還有一些基于零樣本學(xué)習(xí)的方法,例如Zero-DCE(zero-reference deep curve estimation)[11]等,這種方法具有很低的數(shù)據(jù)成本以及極高的訓(xùn)練和推理速度。
上述低照度圖像增強模型主要以人為的標準進行優(yōu)化,即使在一些圖像評價指標上表現(xiàn)出色,也很難對下游的目標檢測任務(wù)起到很好的精度提升效果。不僅如此,先增強后檢測的方法還會增加在邊緣設(shè)備上部署的計算力需求。受到KRUTHIVENTI S S S 等人[12]和QI L 等人[13]的啟發(fā),本文提出了一種新的基于知識蒸餾的目標檢測網(wǎng)絡(luò)訓(xùn)練方法,不同于一些典型的知識蒸餾算法通過蒸餾大模型的知識來訓(xùn)練小模型[14],該方法通過構(gòu)建一組像素級對齊的高質(zhì)量和低照度圖像對數(shù)據(jù)集,利用高質(zhì)量圖像的特征信息指導(dǎo)網(wǎng)絡(luò)模型學(xué)習(xí)從相應(yīng)的低照度圖像中提取類似的信息,可以有效提高在夜間低照度環(huán)境或其他復(fù)雜條件下的低質(zhì)量圖像的目標檢測精度。為了便于人眼對目標檢測結(jié)果進行觀察,本文創(chuàng)新性地在原有的目標檢測網(wǎng)絡(luò)模型框架上,引入了用于圖像增強的增強解碼器,其主要作用是利用目標檢測主干網(wǎng)絡(luò)的特征恢復(fù)出高質(zhì)量圖像,最終可以在一個模型上同時實現(xiàn)圖像的增強和目標檢測。
本文設(shè)計了一種結(jié)合目標檢測和低照度圖像增強的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以巧妙地將目標檢測和圖像增強的算法集合在同一個卷積神經(jīng)網(wǎng)絡(luò)模型中。模型整體可以分為3 部分:負責(zé)提取圖像特征信息的主干網(wǎng)絡(luò);通過提取的多尺度特征進行圖像重建的低照度增強解碼器;識別圖像特征信息并判斷圖像中目標位置和類別的目標檢測模塊。圖1 展示了教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)以及蒸餾的位置,其中教師網(wǎng)絡(luò)的輸入為高質(zhì)量圖像,通過預(yù)訓(xùn)練使教師網(wǎng)絡(luò)學(xué)習(xí)利用高質(zhì)量圖像的特征信息進行目標檢測;學(xué)生網(wǎng)絡(luò)的輸入為低照度圖像,通過蒸餾教師網(wǎng)絡(luò)提取的高質(zhì)量圖像的特征信息進行訓(xùn)練,使學(xué)生網(wǎng)絡(luò)可以在低照度圖像上提取出類似于教師網(wǎng)絡(luò)在高質(zhì)量圖像上提取的信息,并利用這些信息進行后續(xù)的目標檢測和圖像增強。由于目標檢測和圖像增強都需要利用主干網(wǎng)絡(luò)所提取的特征信息,類似于文獻[13]在特征金字塔上進行蒸餾的方法無法使學(xué)生網(wǎng)絡(luò)直接學(xué)習(xí)到教師網(wǎng)絡(luò)更淺層的特征信息,而這些淺層的信息對圖像的增強有很大作用[10],故為了通過知識蒸餾來實現(xiàn)多任務(wù)模型的訓(xùn)練,最終選擇了在目標檢測主干網(wǎng)絡(luò)上進行蒸餾。
在目標檢測中,主干網(wǎng)絡(luò)通常用于提取輸入圖像的特征,而這一部分功能和上游的圖像分類網(wǎng)絡(luò)功能相近,往往會選擇成熟的圖像分類模型作為主干網(wǎng)絡(luò)。同時在底層視覺任務(wù)如圖像降噪,圖像超分辨率以及圖像復(fù)原等網(wǎng)絡(luò)模型中,往往會采用一種編碼器-解碼器的結(jié)構(gòu),即先對輸入圖像進行特征提取或者稱為編碼過程,然后根據(jù)各級特征進行恢復(fù)或者稱為解碼過程。其中編碼器往往會采用與圖像分類模型類似的結(jié)構(gòu),因此在目標檢測和圖像增強任務(wù)中使用同一個主干提取網(wǎng)絡(luò)是具有可行性的。
如圖1 所示,主干特征提取網(wǎng)絡(luò)框架基于CSPDarknet 主干網(wǎng)絡(luò)實現(xiàn),并采用了 YoloX[15]對CSPDarknet 做出的一些改進,諸如采用聚焦(Focus)來對輸入圖像進行降采樣,通過調(diào)整CSPDarknet 的卷積層深度和寬度實現(xiàn)更輕量化的網(wǎng)絡(luò)模型等。
CSPDarknet 可以分成5 個階段,每個階段分別提取出不同尺度的特征信息,對于一個分辨率為W×H的輸入圖像而言,5 個階段的輸出尺寸分別為W/2×H/2、W/4×H/4、W/8×H/8、W/16×H/16、W/32×H/32。在目標檢測網(wǎng)絡(luò)中,最后3 個階段的輸出會作為目標特征進行多尺度特征金字塔融合,而對于圖像增強,我們并不需要遠小于原始分別率的圖像特征,通常只會利用前3 個階段的輸出結(jié)果進行解碼恢復(fù)。綜合而言,只需要保證學(xué)生網(wǎng)絡(luò)第3 階段的輸出與教師網(wǎng)絡(luò)相似,就可以很大程度上實現(xiàn)對教師網(wǎng)絡(luò)的蒸餾。
與目標檢測不同,圖像復(fù)原模型并不是一個概率模型,所需要的特征信息相較于目標檢測任務(wù)也更多,僅通過一個尺度的特征信息生成的圖像無法滿足需求?;赨-net[16]架構(gòu)的圖像增強模型在各個底層視覺任務(wù)中都有優(yōu)秀的表現(xiàn),因此基于U-net 的結(jié)構(gòu)設(shè)計了低照度增強解碼器。
如圖2 所示,圖像增強模塊利用了主干網(wǎng)絡(luò)中的前3 個階段的特征圖,其尺寸分別為W/2×H/2、W/4×H/4和W/8×H/8。整體采用了類似U-net 的網(wǎng)絡(luò)結(jié)構(gòu),通過跳躍連接將不同尺度的特征信息進行融合,并通過3 個上采樣以及卷積層將圖像的重建為W×H×3的RGB(red-green-blue)圖像。其中上采樣操作由若干個殘差塊以及一個反卷積構(gòu)成,具體結(jié)構(gòu)如圖2(b)所示,殘差塊的主體部分由兩個3×3 卷積層構(gòu)成,殘差邊不做任何處理,直接將殘差塊的輸入和輸出相加得到結(jié)果。經(jīng)過若干次殘差塊后,經(jīng)過一次3×3 的反卷積進行上采樣,得到分辨率翻倍、通道數(shù)減半的輸出結(jié)果。在經(jīng)過上采樣塊處理后,輸出結(jié)果與主干網(wǎng)絡(luò)中尺度相對應(yīng)的特征層進行相加,作為下一個上采樣塊的輸入。經(jīng)過3 次上采樣后,特征張量通過一次3×3 卷積輸出一個通道數(shù)為3 的RGB 圖像。
圖2 低照度圖像增強模塊結(jié)構(gòu)圖Fig.2 Structure of low-light image enhancement block
目標檢測結(jié)構(gòu)由空間金字塔網(wǎng)絡(luò)(SPN)[17]、特征金字塔網(wǎng)絡(luò)和解耦目標檢測頭構(gòu)成??臻g金字塔用于在低尺度下生成并融合不同尺度的特征,特征金字塔主要用于融合主干特征提取網(wǎng)絡(luò)不同尺度的特征,使目標檢測頭能從多尺度多語義層次的信息中進行檢測,以達到更好的檢測精度。不同于標準YoloX 模型的FPN(feature pyramid network)特征金字塔網(wǎng)絡(luò),本文采用了PAN(path aggregation network)特征金字塔[18],不僅通過低尺度特征信息上采樣融合到高尺度特征上,還通過下采樣將高尺度信息往低尺度上融合。
檢測部分采用無錨點的目標檢測方法,且將分類和回歸的任務(wù)進行解耦,不再通過先驗知識設(shè)定錨點框輸出預(yù)測框相對于錨點框的位置和形狀偏移,而是直接預(yù)測相對于每個網(wǎng)格的位置偏移以及預(yù)測框的高度和寬度。
本文方法涉及到的損失函數(shù)包含3 部分,目標檢測損失、圖像增強損失以及知識蒸餾損失。其中目標檢測部分和YoloX 一樣由3 個部分組成,預(yù)測框區(qū)域損失、目標置信度損失以及目標類別損失。
預(yù)測框區(qū)域損失,即獲取到每個框?qū)?yīng)的特征點后,取出該特征點的預(yù)測框,利用真實框和預(yù)測框計算IoU(intersection over union)損失:
式中Bpre和Bgt分別代表預(yù)測框和真實框的區(qū)域。
目標置信度損失和目標類別損失的表示形式是相同的,即:
式中:Ppre和Pgt分別代表預(yù)測的概率和真實的概率;w為每個類別損失函數(shù)的權(quán)重。
對于圖像增強等底層視覺任務(wù),最常使用的是L1距離或者L2距離損失。L1損失在對于輸入和輸出差距較大時不會有過大的梯度,在圖像降噪任務(wù)中應(yīng)用廣泛,而L2損失常出現(xiàn)在圖像超分辨率以及圖像復(fù)原任務(wù)中。低照度圖像增強既要進行圖像信息的恢復(fù),也要想辦法去除圖像中的噪聲,因此本文采用結(jié)合兩種損失函數(shù)優(yōu)點的smoothL1損失作為圖像增強目標的損失函數(shù),即:
式中:y為參考圖像;x為模型增強后的圖像。由于學(xué)生網(wǎng)絡(luò)和和教師網(wǎng)絡(luò)采用的是完全相同的網(wǎng)絡(luò)結(jié)構(gòu),對于兩個網(wǎng)絡(luò)而言,每一層對應(yīng)的特征層輸出的尺度是完全相同的。因此,無需對兩個網(wǎng)絡(luò)的特征層進行任何其他處理,只需要求兩個特征層輸出的距離即可。最小化教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)特征層差異可以表示為最小化以下函數(shù):
最終的損失函數(shù)可以表示為
若想實現(xiàn)高質(zhì)量正常照度目標檢測知識向低照度低信噪比目標檢測的遷移,就必須獲得完全對齊的高質(zhì)量正常照度目標圖像和低信噪比低照度目標圖像對。本文采用生成對抗網(wǎng)絡(luò)以及低照度下均勻面真實噪聲疊加的方式進行數(shù)據(jù)對的構(gòu)造。
通??梢哉J為一幅圖像是由圖像信號和無關(guān)的噪聲組成的,即:
式中:Ii,j為圖像;si,j為信號;ni,j為噪聲。一般情況下,信號的大小是大于噪聲的大小的。但對于低照度下的均勻面而言,相比一個頻率很低的低頻信號,圖像可以看作是以信號為均值上下波動的一個隨機過程。這種情況下,si,j可以通過均值濾波提取低頻的方式得到,然后將噪聲的均值調(diào)整為0,最終提取出來的噪聲可以表示為
最后利用非匹配的低照度圖像數(shù)據(jù)集以及正常高質(zhì)量圖像數(shù)據(jù)集對循環(huán)生成對抗神經(jīng)網(wǎng)絡(luò)(cycle generative adversarial networks,CycleGAN)[19]進行訓(xùn)練,得到一個能夠?qū)⒄U斩葓D像轉(zhuǎn)換為具有夜間低照度特性的圖像的生成器G(x)。將從均勻面上提取出來的噪聲疊加在生成的低照度特性圖像上就得到了訓(xùn)練所需要的低照度-高質(zhì)量目標檢測圖像對數(shù)據(jù)集。
CycleGAN 具有獨特的循環(huán)訓(xùn)練機制,可以實現(xiàn)非匹配的數(shù)據(jù)集之間的相互轉(zhuǎn)換。為了訓(xùn)練出可以將正常高質(zhì)量圖像轉(zhuǎn)換為具有夜間低照度特性的圖像,本文采集了1 550 張包含行人、車輛等目標的真實夜間低照度圖像,同時在ImageNet[20]和COCO 數(shù)據(jù)集中收集了大量高質(zhì)量的正常照度圖像2 480 張。利用這些夜間低質(zhì)量圖像數(shù)據(jù)集和收集到的高質(zhì)量圖像組成非匹配的數(shù)據(jù)集,對CycleGAN 網(wǎng)絡(luò)進行訓(xùn)練。利用訓(xùn)練得到的高質(zhì)量圖像-夜間低照度圖像轉(zhuǎn)換模型和公開的PASCAL VOC 目標檢測數(shù)據(jù)集,生成了共9 963 組帶標簽的夜間低照度-正常高質(zhì)量圖像對。
同時,為了降低圖像的信噪比,對夜間的地面、墻體等均勻面場景進行采集,構(gòu)建了共10 組不同照度分辨率為1 920×1 080 像素的均勻面圖像視頻序列,然后從這些視頻中隨機提取噪聲疊加到生成的9 963 組圖像對中,將這9 963 組數(shù)據(jù)中的三分之一即共2 989 對圖像劃分為驗證集,其余6 974 對圖像劃分為訓(xùn)練集。
訓(xùn)練過程分為3步,首先利用原始高質(zhì)量的PASCAL VOC 數(shù)據(jù)集訓(xùn)練教師網(wǎng)絡(luò),然后利用知識蒸餾的方式對學(xué)生網(wǎng)絡(luò)的主干網(wǎng)絡(luò)和目標檢測網(wǎng)絡(luò)進行200 輪的訓(xùn)練,學(xué)習(xí)率為2×10-4,且采用余弦退火法進行學(xué)習(xí)率的下降。隨后凍結(jié)主干網(wǎng)絡(luò),利用圖像對對低照度圖像增強解碼器進行訓(xùn)練50輪,學(xué)習(xí)率為1×10-4,然后進行學(xué)習(xí)率線性下降至0 的方法再次訓(xùn)練50 輪。本次實驗基于Nvidia RTX 2080Ti GPU 進行訓(xùn)練。
本文通過在真實低照度數(shù)據(jù)集LOL 數(shù)據(jù)集上的峰值信噪比(peak signal-to-noise ratio,PSNR)和結(jié)構(gòu)相似度(structural similarity,SSIM)指標來驗證網(wǎng)絡(luò)模型在低照度圖像增強任務(wù)上的效果,同時利用自然圖像質(zhì)量評價器(natural image quality evaluator,NIQE)[21]對比驗證模型在真實低照度場景下的增強效果,其中NIQE 值越低代表圖像質(zhì)量評價越高,PSNR 和SSIM 值越高代表圖像越接近參考圖像。進行對比的方法包括EnlightenGAN、Zero-DCE 以及CycleGAN,結(jié)果如表1 所示。
表1 不同方法的圖像質(zhì)量評價Table 1 Parameters of image quality assessment of different methods
從對比結(jié)果來看,本文的方法在NIQE 指標上接近EnlightenGAN 的水平,且明顯超過了Zero-DCE和CycleGAN 的效果,同時該方法在PSNR 和SSIM指標上均優(yōu)于EnlightenGAN。證明了該方法在低照度圖像增強上具有可行性。
本文還對4 種方法處理的圖像質(zhì)量進行了對比和主觀判斷,對比結(jié)果如圖3 所示。其中第1 列展示了原始的低照度夜間圖像,第2~5 列分別為EnlightenGAN、Zero-DCE、CycleGAN 以及本文方法處理的結(jié)果。
圖3 不同方法的低照度圖像增強效果對比Fig.3 Visual comparison on low-light image enhancement effect of different methods
可以看出,本文方法對夜間低照度圖像具有明顯的對比度和動態(tài)范圍增強以及降噪的效果。通過對比可以發(fā)現(xiàn),其余3 種方法處理的結(jié)果都有較為明顯的噪聲殘留,而本文在構(gòu)造的訓(xùn)練數(shù)據(jù)集中疊加了真實的噪聲,可以使神經(jīng)網(wǎng)絡(luò)模型具有一定的降噪效果。
為了驗證知識蒸餾對夜間低照度場景下的目標檢測精度提升的效果,采用本文所構(gòu)建的驗證集中2 989 張圖像以及公開的夜間低照度目標檢測數(shù)據(jù)集ExDark[22]中的2 194 張夜間低照度圖像的平均精確度(mean of average precision,mAP)作為檢測精度的評估指標,并與正常照度下的精度以及未采用知識蒸餾的精度進行對比,其中mAP計算的IoU 閾值為50%。結(jié)果如表2、圖4~圖5所示。
表2 不同方法的目標檢測精度Table 2 mAP of different methods
圖4 在真實低照度圖像數(shù)據(jù)集中的mAP 指標測試結(jié)果Fig.4 Test results of mAP indicators on real low-light images dataset
圖5 低照度圖像增強和目標檢測測試結(jié)果Fig.5 Test results of low-light image enhancement and object detection
從測試結(jié)果整體上來看,采用知識蒸餾的方式可將在構(gòu)造數(shù)據(jù)集下的夜間低照度目標的檢測精度提高16.58%,在真實數(shù)據(jù)集下的目標檢測精度提高18.15%,且對每一種目標的精度都有所提升,尤其是對車輛等交通工具的識別精度提升最大。在真實低照度圖像的測試中還發(fā)現(xiàn),一些小目標以及在光源附近的目標很容易出現(xiàn)漏檢的情況,這可能是由于訓(xùn)練數(shù)據(jù)對中缺少真實燈光,尤其是多個光源場景下的數(shù)據(jù)所導(dǎo)致的。
本文設(shè)計了一種可以同時進行夜間低照度圖像增強以及目標檢測任務(wù)的神經(jīng)網(wǎng)絡(luò)模型,合成構(gòu)造了具有夜間低照度特性的圖像數(shù)據(jù)集,利用特征知識蒸餾的方式對網(wǎng)絡(luò)模型訓(xùn)練。在數(shù)據(jù)集上的實驗表明,本文的方法具有可行性,能夠有效提升夜間低照度下的目標檢測精度,圖像增強效果也能夠達到甚至優(yōu)于一些主流方法。此外該方法還可以有效提升高噪聲低照度圖像的信噪比,產(chǎn)生對人眼視覺友好的增強圖像,多任務(wù)共享主干的結(jié)構(gòu)還有效降低了計算成本。未來的工作將探索實現(xiàn)在利用高質(zhì)量圖像訓(xùn)練的大模型上進行低照度、小模型的蒸餾。利用對抗模型進行無監(jiān)督訓(xùn)練也是進一步提升圖像質(zhì)量的探索方向。