呂 東,張鑫港
(1.青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,青島266061;2.蘭州交通大學(xué) 測繪與地理信息學(xué)院,蘭州730070)
目標(biāo)檢測已成為當(dāng)今計(jì)算機(jī)視覺領(lǐng)域的重要研究任務(wù)之一。其本質(zhì)是在圖像的復(fù)雜背景中找到若干物體,給出物體的位置信息,并判斷其類別[1]。它被廣泛應(yīng)用于工業(yè)生產(chǎn)、視頻監(jiān)控、智能交通等方面[2]。然而,由于圖像采集過程中各種不可控因素導(dǎo)致的各種缺陷,尤其是在不利條件下,如室內(nèi)光照、夜間照明和多云天氣[3],采集的圖像經(jīng)常存在缺陷,從而導(dǎo)致圖像質(zhì)量嚴(yán)重下降,這使得視覺系統(tǒng)無法完全實(shí)現(xiàn)其目的[4-8]。因此,在低照度圖像條件下提高目標(biāo)檢測的準(zhǔn)確性和實(shí)時性成為亟待解決的問題。
低照度圖像目標(biāo)檢測作為目標(biāo)檢測中極具挑戰(zhàn)性的任務(wù),由于低照度圖像攜帶的信息較少,難以提取出足夠有效的特征。因此目標(biāo)檢測結(jié)果相對較差?;谏疃葘W(xué)習(xí)方法包含更豐富的語義信息,這在圖像分類處理領(lǐng)域引起了研究者的關(guān)注[9-10]。這些方法顯示出檢測精度的顯著提高。隨著CNN 的進(jìn)一步發(fā)展,人們發(fā)現(xiàn)低層特征圖包含豐富的高分辨率特征和較小的感受野,有利于低照度圖像目標(biāo)檢測,而高層特征圖包含低分辨率語義信息,有利于大對象檢測。文獻(xiàn)[11]提出了SSD,它可以從多個層面直接檢測不同大小的物體。淺層特征圖適合檢測小物體,因?yàn)樗鼈儼蟮某叽纭⒏〉母惺芤昂透S富的細(xì)節(jié)信息。而深度特征圖可以更好地檢測大物體,因?yàn)樗鼈儼〉某叽纭⒏蟮母惺芤昂透S富的語義特征信息。淺層特征圖包含的語義信息較少,檢測性能仍然不佳;文獻(xiàn)[12]提出了一種在SSD 中引入上下文信息的多級特征融合算法。文獻(xiàn)[13]構(gòu)建了一個特征金字塔網(wǎng)絡(luò)(FPN),它包括一個具有水平連接的自頂向下的體系結(jié)構(gòu)。通過下采樣將高層特征圖和低層特征圖合并,使低層特征圖包含低分辨率特征和強(qiáng)語義映射。但是經(jīng)過太多的下采樣操作,目標(biāo)的很多信息都會丟失,難以恢復(fù);文獻(xiàn)[14]通過引入擴(kuò)張卷積增加了感受野,增強(qiáng)了特征的語義信息,保證了輸出圖像與輸入圖像具有相同的大小。然而,上述方法都有一些缺點(diǎn),只是在單一圖像上進(jìn)行特征增強(qiáng)提取,而沒能充分考慮到光照不均勻?qū)е戮植吭鰪?qiáng)不明顯,或者是沒能充分挖掘低照度圖像的有效信息。
針對上述分析存在的問題,本文提出基于改進(jìn)SSD的低照度圖像目標(biāo)檢測算法。為了考慮到光照不均勻帶來的影響,采用基于Retinex 圖像增強(qiáng)算法[15]增強(qiáng)圖像特征的利用程度;為了充分挖掘互補(bǔ)信息,采用特征提取能力更強(qiáng)的ResNet50 網(wǎng)絡(luò)替換SSD 網(wǎng)絡(luò)原有的VGG16 特征提取網(wǎng)絡(luò),并提出了差分特征融合模塊(DFF)模塊來挖掘原始圖像和增強(qiáng)圖像之間的差異,從而在每個通道上帶來更多的互補(bǔ)信息。實(shí)驗(yàn)結(jié)果表明與現(xiàn)有的方法相比本文的方法具有較好效果。
SSD 算法模型借鑒YOLO 網(wǎng)絡(luò)將目標(biāo)檢測任務(wù)由分類問題轉(zhuǎn)化為回歸問題的思想,無需區(qū)域候選框的提取過程,大大縮短了檢測時間。同時,SSD 算法模型借鑒Faster R-CNN 網(wǎng)絡(luò)的錨點(diǎn)機(jī)制,即在特征圖的每個像素上產(chǎn)生一定個數(shù)且縱橫比確定的默認(rèn)框,在不同尺度的特征圖做預(yù)測,提高對物體的檢測準(zhǔn)確性,模型總體檢測速度快且精確率較高。
原始的SSD 基礎(chǔ)網(wǎng)絡(luò)采用VGG16 作為主干網(wǎng)絡(luò),通過將幾個尺寸逐漸減小的卷積層添加到基本網(wǎng)絡(luò)中,以生成多尺度金字塔特征圖。SSD 應(yīng)用不同縱橫比的默認(rèn)邊框這一過程確保了SSD 能夠高精度地檢測多尺度對象。如圖1所示,SSD 使用2 個3×3 個卷積層來預(yù)測默認(rèn)框的偏移量和類別的分?jǐn)?shù)。該方法不僅使用最后一層來處理對象檢測,而且利用基礎(chǔ)網(wǎng)絡(luò)的一些淺層和所有新添加的層。圖1 中,在卷積運(yùn)算之后,特征圖包含3 個參數(shù):長度、寬度和通道數(shù)。例如,在Fc6 層卷積運(yùn)算之后,特征圖的規(guī)格為[19,19,1024]。
圖1 SSD 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 SSD network structure diagram
SSD 匹配最佳Jaccard 的單個地面真實(shí)盒中的多個默認(rèn)盒,重疊高于閾值。因此,一個對象可以有多個高度重疊的框。然后,使用非最大抑制(NMS)迭代后處理所有的置信框,以細(xì)化最終的輸出框。
針對原始SSD 算法對低照度圖像場景下圖像目標(biāo)檢測精度不高、網(wǎng)絡(luò)存在性能退化等問題,對傳統(tǒng)SSD 算法進(jìn)行改進(jìn):改進(jìn)基礎(chǔ)網(wǎng)絡(luò),優(yōu)化侯框的回歸和分類任務(wù);對低層和高層不同特征圖進(jìn)行多尺度特征融合,提高模型對目標(biāo)檢測的性能,具體改進(jìn)SSD 網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)的SSD 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Improved SSD network structure diagram
在目標(biāo)檢測算法網(wǎng)絡(luò)中分類網(wǎng)絡(luò)的性能對其性能有重大影響,分類網(wǎng)絡(luò)去掉全連接層和損失層就是基礎(chǔ)網(wǎng)絡(luò)部分。為驗(yàn)證常見基礎(chǔ)分類網(wǎng)絡(luò)的性能,基于Tensorflow[16]框架在ImageNet2012[17]數(shù)據(jù)集上對DenseNet,VGGNet,MobileNetv2,ShuffleNet 和ResNet 各個網(wǎng)絡(luò)進(jìn)行測試,結(jié)果如表1所示。
表1 不同網(wǎng)絡(luò)性能對比結(jié)果Tab.1 Comparison results of different network performance
從表1 可以看出,ResNet50 網(wǎng)絡(luò)的速度和精度均比SSD 原始基礎(chǔ)網(wǎng)絡(luò)VGG16 高很多,并且從每秒浮點(diǎn)運(yùn)算次數(shù)(FLOPS)來看,ResNet50 網(wǎng)絡(luò)要比VGG16 小很多,這表明ResNet50 模型的時間復(fù)雜度遠(yuǎn)低于VGG16。綜上所述,本文選擇了ResNet50作為改進(jìn)SSD 算法的基礎(chǔ)分類網(wǎng)絡(luò)。
為了解決圖像光照度不平衡對提取特征不明顯的問題,本文提出用基于RetiNex 模型進(jìn)行結(jié)構(gòu)圖像增強(qiáng)來提高淺層特征的利用程度,而后提出了差分特征融合(DFF)模塊來挖掘原始圖像和增強(qiáng)特征圖之間的差異。以往基于深度卷積網(wǎng)絡(luò)特征增強(qiáng)模型通常采用在原網(wǎng)絡(luò)中引入稠密連接,并在最后一層卷積層后加入反卷積層,將其特征圖尺寸通過反卷積操作一直擴(kuò)大到與原SSD 網(wǎng)絡(luò)卷積層Conv4_3 特征圖的尺寸相同。然后通過對降采樣之后的特征圖做反卷積操作,將特征圖尺寸擴(kuò)大,并獲取比卷積層輸出相同尺寸的特征圖更加豐富的語義信息。預(yù)測階段將卷積操作生成的特征圖與反卷積操作生成的特征圖進(jìn)行拼接,再將拼接后的結(jié)果送入檢測器和分類器中進(jìn)行處理。
然而,傳統(tǒng)的直接拼接方法在獲取交叉通道互補(bǔ)信息時存在模糊性。這兩種模式都有自己的特征表征,其中夾雜著有用的提示和噪聲。而簡單的融合策略,如線性組合或串聯(lián),缺乏清晰度提取交叉互補(bǔ)信息。在本文看來,兩種互補(bǔ)圖像之間的固有差異可以通過一種顯式和簡單的機(jī)制——差分特征融合模塊。
本文的思路來自差分放大器電路,其中共模信號被抑制,差分模式信號被放大。本文的DFF 模塊保留了原有的特征,并根據(jù)不同的特征進(jìn)行補(bǔ)償。低照度圖像圖像卷積特征圖FA和增強(qiáng)卷積特征圖FB可以用每個通道的共模態(tài)部分和微分模態(tài)部分表示如下:
共同模態(tài)部分反映共同特征,差異模態(tài)部分反映兩種模態(tài)捕獲的獨(dú)特特征。式(1)說明了分裂的原理,這與差分放大電路和DFF 模塊的原理相同。本文的DFF 模塊的關(guān)鍵思想是從另一個具有信道加權(quán)的模態(tài)中獲取互補(bǔ)特性。期望通過明確地建模模態(tài)相互依賴來增強(qiáng)互補(bǔ)特征的學(xué)習(xí),從而提高網(wǎng)絡(luò)對另一模態(tài)信息特征的敏感性。
為了充分利用跨模態(tài)補(bǔ)充,DFF 模塊被密集地嵌入到每個ResNet 塊中,如圖3所示。
圖3 差分特征融合模塊Fig.3 Differential modal perception fusion module
本文首先通過兩種模態(tài)的直接相減得到微分特征FD。然后,將全局空間信息FD壓縮到一個包含有全局平均池化的信道差分統(tǒng)計(jì)量的全局差分向量中。全局微分向量可以解釋為一個通道描述符,其統(tǒng)計(jì)是表達(dá)原始圖像和增強(qiáng)圖像之間的差異。采用范圍為-1~1 的tanh 激活函數(shù)對全局微分向量進(jìn)行求解,得到融合權(quán)向量VW。兩個模態(tài)特征FA和FB通過融合權(quán)向量VW進(jìn)行信道級乘法重新校準(zhǔn)。重新校準(zhǔn)的結(jié)果FAD,F(xiàn)BD將作為補(bǔ)充信息添加到原模態(tài)路徑中。在使用DFF 模塊從另一種方式進(jìn)行增強(qiáng)之后,將生成信息更豐富、更健壯的特性,并在接下來的步驟中發(fā)送到下一個ResNet 塊。DFF 模塊的整個過程可以表述為
式中:F(X)為殘差函數(shù);σ 表示tanh 函數(shù);GAP表示全局平均池化;⊕和⊙分別表示元素的求和和元素的乘法。值得注意的是,在殘差分支中加入了FRD和FTD,使得互補(bǔ)特征學(xué)習(xí)成為受RFBNet[18]啟發(fā)的殘差學(xué)習(xí)。使用殘差映射,互補(bǔ)特性不會直接影響特定于模式的流。DFF 模塊作為ResNet 塊中的殘差函數(shù)的一部分。
DFF 模塊的可視化結(jié)果如圖4所示。由于兩種模式的特征不同,原始特征圖像和增強(qiáng)特征圖像在獲取目標(biāo)和背景特征方面都有一定的局限性。隨著CNN 的深入,目標(biāo)特征逐漸突出,背景特征被重新整合。背景特征的整合意味著細(xì)化有用的背景信息,盡可能地消除噪聲背景信息。DFF 模塊有效地結(jié)合了形態(tài)特征,有助于背景信息的整合,使目標(biāo)特征從低到高的突出。本文認(rèn)為,DFF 模塊促進(jìn)了網(wǎng)絡(luò)中的模態(tài)交互,減少了冗余學(xué)習(xí),傳遞了更多的信息。
圖4所示DFF 模塊前后階段3 中一個通道的Feature map 可視化結(jié)果。兩種形態(tài)特征圖之間的差異信息進(jìn)行了修正。
圖4 特征增強(qiáng)前后對比結(jié)果可視化Fig.4 Visualization of comparison results before and after feature enhancement
由于設(shè)計(jì)了雙分支SSD 目標(biāo)檢測網(wǎng)絡(luò),原始低照度圖像和增強(qiáng)后圖像被組合以通過AP 階段生成近似位置估計(jì),預(yù)測的回歸偏移t0用于提出可變形錨作為下一個階段的位置預(yù)測的基本參考。然后通過進(jìn)一步微調(diào)可變形錨和置信度得分。由原始低照度圖像和增強(qiáng)后圖像得到的置信度得分s0,s1根據(jù)照度值重新加權(quán)。最終置信度得分sfinal和回歸偏移量tfinal計(jì)算如下:
置信度得分的提高是為了在只有在兩個階段的得分s0,s1都很高時才獲得最終得分。而對于回歸偏移,采用求和的方式逐步逼近真值框。受文獻(xiàn)[19]的啟發(fā),在分類損失Lcls中添加了焦點(diǎn)權(quán)重,以解決正負(fù)失衡。Lcls的公式如下:
式中:S+,S-是正負(fù)錨盒。正如文獻(xiàn)[19]中所建議的,本文通過實(shí)驗(yàn)設(shè)定α=0.25,γ=2。si為樣本的正概率。總損失為分類損失Lcls和回歸損失Lreg之和,其中回歸損失Lreg為Faster R-CNN 提出的平滑L1損失[20]。
總損失函數(shù)L為
本文基于Windows 10 操作系統(tǒng),2.20 GHz×40Intel-Xeon(R)Silver 4114 CPU,GeForce GTX 1080 Ti GPU 和64 GB 內(nèi)存進(jìn)行迭代訓(xùn)練。數(shù)據(jù)集采用KAIST[21]數(shù)據(jù)集(數(shù)據(jù)集由行人和車輛兩類,分為白天低照度圖像和黑夜低照度圖像),其中本文選取了2252 張低照度圖像環(huán)境下圖像數(shù)據(jù)作為擴(kuò)充數(shù)據(jù)集。通過圖像平移、旋轉(zhuǎn)及鏡像進(jìn)行數(shù)據(jù)集擴(kuò)增,得到8963 對圖像。
本文改進(jìn)的模型是在ImageNet 數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練得到的預(yù)訓(xùn)練權(quán)重,然后通過神經(jīng)網(wǎng)絡(luò)的遷移學(xué)習(xí),重新對訓(xùn)練集和驗(yàn)證集進(jìn)行訓(xùn)練,訓(xùn)練過程中的超參數(shù)設(shè)置如表2所示。
表2 訓(xùn)練參數(shù)設(shè)置Tab.2 Training parameter settings
整個網(wǎng)絡(luò)通過Adam 優(yōu)化器進(jìn)行優(yōu)化訓(xùn)練,學(xué)習(xí)率為0.0001,然后是將第3 階段至第6 階段初始錨的寬設(shè)置為[25.84,29.39],[33.81,38.99],[44.47,52.54],[65.80,131.40] 將訓(xùn)練參數(shù)設(shè)定為32的圖像批大小和10-4的學(xué)習(xí)率,每迭代10000 次對學(xué)習(xí)率除以10。訓(xùn)練模型花了22 個小時。
在經(jīng)過35 輪的迭代訓(xùn)練后,訓(xùn)練總損失結(jié)果穩(wěn)定在一個較低的平均水平,如圖5所示。
圖5 訓(xùn)練損失曲線Fig.5 Training loss curve
除了與原始SSD 算法進(jìn)行檢測精度比較,本文還將改進(jìn)算法與Faster R-CNN,YOLOv3 在KAIST數(shù)據(jù)集中進(jìn)行了比較,該相同訓(xùn)練集分別對各網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使用相同測試集進(jìn)行測試,實(shí)驗(yàn)結(jié)果如表3所示。
在相同的數(shù)據(jù)集和訓(xùn)練迭代次數(shù)下運(yùn)用不同的網(wǎng)絡(luò)模型進(jìn)行比較。從表3 中可以看出,F(xiàn)aster R-CNN 平均精度均值mAP為81.35%,高于SSD 和YOLOv3 及本文算法的檢測精度,但FPS太低。相比于其它3 種檢測算法,YOLOv3 算法檢測精度mAP最低。本文改進(jìn)算法的mAP為82.39%,相比于原始SSD 和YOLOv3 的檢測精度mAP指標(biāo)上分別提升了2.71%和4.83%,并且相比較其它3種算法圖像傳輸速率FPS方面有了很大的提升,F(xiàn)PS提升為35,該算法在低照度圖像實(shí)時檢測方面具有很大的速度優(yōu)勢。通過運(yùn)用本文算法對照度不均勻圖像進(jìn)行檢測,圖像檢測結(jié)果如圖6所示。
表3 不同算法檢測性能對比Tab.3 Comparison of detection performance of different algorithms
圖6 目標(biāo)檢測結(jié)果對比Fig.6 Comparison of target detection results
為進(jìn)一步提高低照度圖像中目標(biāo)的檢測精度,本文改進(jìn)了原始SSD 算法。通過對比多種基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)對目標(biāo)檢測性能的影響,本文采用ResNet50 網(wǎng)絡(luò)代替VGG16 作為SSD的基礎(chǔ)網(wǎng)絡(luò),以此來平衡目標(biāo)檢測速度與精度的影響;為了解決圖像光照度不平衡對提取特征不明顯,本文提出用基于Retinex模型進(jìn)行結(jié)構(gòu)圖像增強(qiáng)來提高淺層特征信息的利用程度;而后提出了設(shè)計(jì)雙分支SSD 網(wǎng)絡(luò)結(jié)構(gòu)并結(jié)合差分特征融合(DFF)模塊來挖掘原始圖像和增強(qiáng)特征圖之間的差異,為了充分利用兩者之間的互補(bǔ)信息,DFF 模塊被密集地嵌入到每個ResNet 塊中,來生成信息更豐富、更健壯的特征。實(shí)驗(yàn)結(jié)果表明,所提方法有效提高了對低照度圖像環(huán)境下目標(biāo)的檢測精度,且實(shí)時性好,能夠滿足實(shí)際需求。