蔡 騰,陳慈發(fā),董方敏
1.三峽大學(xué)計(jì)算機(jī)與信息學(xué)院,湖北 宜昌 443002
2.三峽大學(xué)湖北省建筑質(zhì)量檢測(cè)裝備工程技術(shù)研究中心,湖北 宜昌 443002
目標(biāo)檢測(cè)作為計(jì)算機(jī)視覺(jué)領(lǐng)域的基礎(chǔ)任務(wù),在近年來(lái)取得了長(zhǎng)足的進(jìn)展,并廣泛應(yīng)用于自動(dòng)駕駛、智能監(jiān)控等多個(gè)領(lǐng)域。在實(shí)際應(yīng)用中,目標(biāo)檢測(cè)面臨著多種困難,如復(fù)雜背景、遮擋和光照變化等,特別是在低照度條件下,會(huì)出現(xiàn)目標(biāo)與環(huán)境邊界不明顯、局部過(guò)曝與模糊等問(wèn)題,這使得檢測(cè)算法的性能下降。因此,設(shè)計(jì)一種針對(duì)低照度場(chǎng)景下的目標(biāo)檢測(cè)算法具有重要意義。
目標(biāo)檢測(cè)算法分為多階段和單階段兩種類型。多階段方法通常包括候選區(qū)域提取和特征提取兩個(gè)階段,包括Fast R-CNN[1]、Faster R-CNN[2]和Cascade R-CNN[3]等。單階段方法直接預(yù)測(cè)目標(biāo)的位置和類別,具有較快的速度和較低的計(jì)算量,如YOLO[4]、SSD[5]和RetinaNet[6]等。其中,YOLO系列算法在速度和準(zhǔn)確率方面均有優(yōu)異的表現(xiàn),是目前單階段目標(biāo)檢測(cè)算法中的代表。目前,YOLO 系列已經(jīng)發(fā)展到了YOLOv8[7],YOLO 系列算法在COCO數(shù)據(jù)集上已經(jīng)取得了令人矚目的進(jìn)展,但是針對(duì)低光照條件下的目標(biāo)檢測(cè)仍存在挑戰(zhàn)。
為了解決低照度下目標(biāo)檢測(cè)識(shí)別率低的問(wèn)題,國(guó)內(nèi)外學(xué)者開(kāi)展了廣泛研究。張蕊等人[8]通過(guò)引入深度可分離卷積、多種注意力機(jī)制和空洞卷積,提高了無(wú)人駕駛車輛在夜間場(chǎng)景下的檢測(cè)精度和速度。Kalwar等人[9]提出GDIP和MGDIP,通過(guò)學(xué)習(xí)多種圖像預(yù)處理操作的權(quán)重和并發(fā)處理,顯著提高了低照度下目標(biāo)檢測(cè)性能。Qin等人[10]提出了一種包含DENet和YOLOv3的聯(lián)合增強(qiáng)-檢測(cè)框架DE-YOLO,其中DENet負(fù)責(zé)自適應(yīng)地增強(qiáng)低光圖像,然后將增強(qiáng)后的圖像輸入到Y(jié)OLOv3[11]進(jìn)行目標(biāo)檢測(cè)。麥錦文等人[12]提出了一種基于特征交互結(jié)構(gòu)(FIS)的方法,通過(guò)全局注意和局部卷積抽取弱光圖像特征,能有效解析、利用和結(jié)合局部與全局信息。舒子婷等人[13]提出了YOLOv5_DC模型,使用雙通道輸入、特征增強(qiáng)和定位模塊來(lái)提高低光照條件下的檢測(cè)精度。為了解決低能見(jiàn)度場(chǎng)景下的目標(biāo)檢測(cè)效果,陳永麟等人[14]使用紅外成像技術(shù)并提出ITB-YOLO,通過(guò)改變多尺度融合關(guān)系提高檢測(cè)精度。Hu等人[15]提出了PE-YOLO算法,使用金字塔增強(qiáng)網(wǎng)絡(luò)并將其與YOLOv3模型相結(jié)合,在低照度場(chǎng)景中取得優(yōu)秀的檢測(cè)效果。Sasagawa等人[16]提出了一種域自適應(yīng)方法,融合低照度圖像增強(qiáng)模型和目標(biāo)檢測(cè)模型實(shí)現(xiàn)夜間目標(biāo)檢測(cè)。Yin等人[17]基于離散余弦變換(discrete cosine transform,DCT)提出了一種DCT 驅(qū)動(dòng)的低照度增強(qiáng)Transformer(DEFormer),將DCT 信息作為線索嵌入到網(wǎng)絡(luò)中,然后與YOLOv3算法結(jié)合,增加了識(shí)別準(zhǔn)確率。雖然上述方法在檢測(cè)準(zhǔn)確度方面表現(xiàn)良好,但計(jì)算量較大,夜間監(jiān)控、無(wú)人機(jī)夜間飛行等場(chǎng)景無(wú)法提供足夠的算力支持。為了降低計(jì)算復(fù)雜度并且提高低照度目標(biāo)檢測(cè)準(zhǔn)確率,Ali 等人[18]融合脈沖神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)用于低照度目標(biāo)檢測(cè),雖然該方法計(jì)算量降低了計(jì)算量,但是識(shí)別準(zhǔn)確率相對(duì)較低。為了在保持模型輕量化的同時(shí)提高其在低照度場(chǎng)景下的目標(biāo)檢測(cè)識(shí)別率,本文提出一種基于YOLOv8 的輕量化夜間目標(biāo)檢測(cè)模型DarkYOLOv8,該模型具有計(jì)算量小和高準(zhǔn)確率的特點(diǎn),主要改進(jìn)有:(1)使用MobileNet v2[19]替換YOLOv8的主干網(wǎng)絡(luò),增加特征提取能力以提高模型識(shí)別精度。(2)在MobileNet v2中融入Transformer全局注意力[20],并提出一種可以監(jiān)督訓(xùn)練Transformer 參數(shù)的方法,使得Transformer 能夠更加準(zhǔn)確地找出低照度環(huán)境下難辨認(rèn)的目標(biāo)。(3)在頸部結(jié)構(gòu)中提出并使用DFFA 模塊,融合淺層和深層特征,同時(shí)使用YOLOv8X 對(duì)DFFA 模塊進(jìn)行監(jiān)督訓(xùn)練,增強(qiáng)DFFA模塊的特征提取能力。
目前YOLOv8是YOLO系列最新的目標(biāo)檢測(cè)算法,其具有更快的檢測(cè)速度和簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu)。根據(jù)不同的大小,YOLOv8可分為YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l、YOLOv8x 五個(gè)版本。整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,主要包括四個(gè)部分,即Input 輸入端、Backbone 主干網(wǎng)絡(luò)、Neck頸部網(wǎng)絡(luò)和Head輸出端。
圖1 YOLOv8結(jié)構(gòu)Fig.1 YOLOv8 structure
在YOLOv8的主干網(wǎng)絡(luò)中,C2f作為特征提取模塊,由Conv、Split、n個(gè)DarkBottleneck 以及Concat 組成。其中,Concat接收Split和n個(gè)DarkBottleneck的輸出,將其拼接在一起,并使用Conv 進(jìn)行特征融合。YOLOv8的Neck在YOLOv5的基礎(chǔ)上進(jìn)行了改進(jìn),將C3模塊替換為C2f模塊。Head采用了當(dāng)前主流的解耦頭結(jié)構(gòu),將分類和檢測(cè)頭分離,并且將Anchor-Based方式轉(zhuǎn)變成了Anchor-Free方式。
MobileNet v2 采用了深度可分離卷積、線性瓶頸、倒殘差設(shè)計(jì)策略。其在640×640 輸入分辨率下的主干網(wǎng)絡(luò)的結(jié)構(gòu)如表1所示。t表示第一層1×1卷積層中卷積核的擴(kuò)展倍率,c表示輸出特征矩陣的深度(通道數(shù)),n是Bottleneck(瓶頸)塊的重復(fù)次數(shù),s表示步距。
表1 MobileNet v2主干網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)Table 1 MobileNet v2 backbone structure parameters
Bottleneck 塊是MobileNet v2 的核心結(jié)構(gòu),由倒置殘差塊和線性瓶頸層組成。如圖2 所示倒置殘差塊首先通過(guò)1×1 卷積擴(kuò)展輸入通道,以增加特征的表征能力,然后使用3×3 深度可分離卷積提取特征,最后通過(guò)1×1逐點(diǎn)卷積壓縮通道數(shù)量。倒殘差結(jié)構(gòu)在1×1壓縮卷積后使用線性操作替代激活函數(shù),從而解決了使用倒置殘差塊之后再使用ReLU6 而失去低緯度信息的問(wèn)題。當(dāng)s=1 時(shí),使用殘差連接;當(dāng)s=2 時(shí),不使用殘差連接。
圖2 MobileNet v2 bottleneck結(jié)構(gòu)Fig.2 MobileNet v2 bottleneck structure
Transformer 是一種基于自注意力機(jī)制的深度學(xué)習(xí)模型,在自然語(yǔ)言處理(NLP)領(lǐng)域取得了顯著的成果。Dosovitskiy等人[21]將Transformer引入到計(jì)算機(jī)視覺(jué)中,提出了Vision Transformer 算法,并在計(jì)算機(jī)視覺(jué)領(lǐng)域展現(xiàn)出了出色的性能。Transformer 編碼器通過(guò)學(xué)習(xí)圖像塊之間的關(guān)系,生成全局的圖像表示,從而有效地捕捉圖像的全局上下文信息。Transformer編碼器由L個(gè)標(biāo)準(zhǔn)的Transformer 模塊組成,其中Transformer 由層歸一化(LN)、多頭自注意力模塊(MSA)、多層感知機(jī)(MLP)和殘差連接組成,F(xiàn)表示輸入,計(jì)算過(guò)程如下:
在低照度條件下,可以通過(guò)周圍的物體判斷環(huán)境中可能存在的物體,Transformer的全局信息建模能力可以從圖片的全局特征推斷出環(huán)境中可能存在目標(biāo)的位置,從而對(duì)其重點(diǎn)關(guān)注。然而Transformer 的計(jì)算量較大,因此本文對(duì)其輸入輸出進(jìn)行了修改,結(jié)構(gòu)如圖3灰色區(qū)域所示,首先將輸入F使用MaxPool 進(jìn)行降采樣,采樣至原始尺寸的1/8,再使用Flatten和Transpose 得到輸出F1,以降低Transformer的計(jì)算量,然后經(jīng)過(guò)Transformer編碼器的計(jì)算得到輸出F2=TransformerEncoder(F1),經(jīng)過(guò)Transpose、Reshape 和上采樣操作后,將F2轉(zhuǎn)化為與F相同尺寸的輸出F?,將F?和原始輸入F相加得到最終的輸出Fout,公式如下所示:
圖3 TransformerLayer結(jié)構(gòu)與訓(xùn)練流程Fig.3 TransformerLayer structure and training workflow
為了增加Transformer 的特征提取能力,本文提出來(lái)一種基于目標(biāo)標(biāo)記信息的監(jiān)督學(xué)習(xí)的方法,如圖3淺綠色區(qū)域內(nèi)所示,首先基于目標(biāo)標(biāo)記信息獲取mask 標(biāo)簽,目標(biāo)范圍區(qū)域內(nèi)標(biāo)記為1,其他位置標(biāo)記為0,然后對(duì)F?使用輸入和輸出通道一致的三個(gè)3×3卷積得到F3,再對(duì)F3使用3×3 卷積將其通道降至1 并使用Sigmoid激活函數(shù)得到輸出F4,使用MSE 損失函數(shù)計(jì)算F4與mask之間的損失LossTF,具體公式如下:
低照度場(chǎng)景下物體由于模糊、遮擋等問(wèn)題,容易被漏檢,淺層的細(xì)節(jié)特征信息對(duì)于幫助模型粗略定位物體位置至關(guān)重要,有助于發(fā)現(xiàn)那些不易被檢測(cè)到的目標(biāo)。為此本文提出了一個(gè)動(dòng)態(tài)融合淺層特征和深層特征的模塊DFFA。
如圖4 所示,首先對(duì)Neck 的第i個(gè)輸入特征NIi(Neck Inputi) 和第i個(gè)輸出特征NOi(Neck Outputi)使用Concat 和一個(gè)卷積獲取可變形卷積的偏移量offset,然后將offset和NIi作為可變形卷積的輸入得到,可變形卷積利用偏移量offset動(dòng)態(tài)地將輸入特征調(diào)整到與NOi對(duì)齊,然后將和NOi拼接后使用CBS(Conv+Batch Norm+SiLU)得到,對(duì)使用CBAM注意力機(jī)制得到最終的輸出DOi(DFFA Outputi),公式如下所示:
圖4 DFFA結(jié)構(gòu)與訓(xùn)練方法Fig.4 DFFA structure and training method
為了增加DFFA對(duì)淺層特征的信息提取能力,本文使用YOLOv8X,并對(duì)YOLOv8X 中NOi使用CBAM注意力機(jī)制,將其權(quán)重矩陣Label1、Label2、Label3輸出作為DFFA 中CBAM 空間注意力權(quán)重wi的標(biāo)簽,對(duì)DarkYOLOv8的DFFA模塊參數(shù)進(jìn)行監(jiān)督訓(xùn)練,MSE損失函數(shù)作為損失函數(shù),公式如式(14)所示:
DarkYOLOv8整體結(jié)構(gòu)如圖5所示,使用MobileNet v2主干網(wǎng)絡(luò)替換YOLOv8主干網(wǎng)絡(luò),在MobileNet v2的第二個(gè)Bottleneck層后加入TransformerLayer,對(duì)頸部網(wǎng)絡(luò)的每一層的輸入和輸出均使用DFFA模塊。
圖5 DarkYOLOv8整體結(jié)構(gòu)Fig.5 Overall architecture of DarkYOLOv8
原始YOLOv8損失函數(shù)由三部分組成,分別是分類損失Losscls、DFL 損失LossDFL以及邊界框回歸損失Lossbbox,與YOLOv8不同的是,本文額外添加了Transformer的監(jiān)督學(xué)習(xí)損失LossTF和CBAM監(jiān)督學(xué)習(xí)損失Losscbam,本文損失函數(shù)如式(15)所示:
ExDark 數(shù)據(jù)集由Loh 等人[22]于2019 年提出,旨在為低光照條件下目標(biāo)檢測(cè)算法的評(píng)估和比較提供一個(gè)具有挑戰(zhàn)性的基準(zhǔn),其檢測(cè)類別分別為自行車、船、瓶子、公共汽車、轎車、貓、椅子、杯子、狗、摩托車、人、桌子。ExDark 數(shù)據(jù)集共有7 363 張圖片,按照8∶1∶1 的比例劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集,訓(xùn)練集、驗(yàn)證集和測(cè)試集分別有5 890、736和737張圖片。
實(shí)驗(yàn)在Ubuntu22.04 LST操作系統(tǒng)下,搭配NVIDIA RTX3090顯卡,Pytorch1.13深度學(xué)習(xí)框架以及Python3.8編程語(yǔ)言進(jìn)行,未使用預(yù)訓(xùn)練權(quán)重。超參數(shù)設(shè)置如表2所示。
表2 實(shí)驗(yàn)參數(shù)Table 2 Experimental parameters
本文采用mAP評(píng)價(jià)指標(biāo)、GFLOPs和FPS來(lái)衡量模型效果。
平均精度(mean average precision,mAP)是一種常用于評(píng)價(jià)目標(biāo)檢測(cè)算法性能的指標(biāo),檢測(cè)算法計(jì)算在不同類別目標(biāo)上指定IoU的準(zhǔn)確性和召回率,計(jì)算不同類別的AP值,并計(jì)算各個(gè)類別AP的平均值則得到在指定IoU 下的mAPIoU。本文使用mAP0.5:0.95 和mAP50兩種評(píng)價(jià)指標(biāo),mAP50表示IoU閾值為50%時(shí)的mAP;mAP0.5:0.95表示在不同的IoU閾值(從0.5到0.95,步長(zhǎng)0.05)下的平均mAP。
FLOPs(floating point operations)是一種衡量深度學(xué)習(xí)模型計(jì)算復(fù)雜度的指標(biāo)。它表示在模型推理過(guò)程中進(jìn)行的浮點(diǎn)運(yùn)算的總數(shù)量,包括加法、乘法和其他浮點(diǎn)操作。
FPS(frames per second)表示目標(biāo)檢測(cè)模型在一秒鐘的時(shí)間內(nèi)能檢測(cè)圖片的數(shù)量,高FPS對(duì)實(shí)時(shí)目標(biāo)檢測(cè)系統(tǒng)至關(guān)重要。
為驗(yàn)證本文所提算法在低照度場(chǎng)景下檢測(cè)性能的優(yōu)越性,在ExDark數(shù)據(jù)集下,將DarkYOLOv8與目前主流的目標(biāo)檢測(cè)算法、針對(duì)低照度場(chǎng)景下的目標(biāo)檢測(cè)算法IA-YOLO、ZeroDCE+YOLOv5_DC、FISNet 以及低光照增強(qiáng)算法+YOLOv8n 進(jìn)行對(duì)比,結(jié)果如表3 所示,其中mAP表示mAP0.5:0.95。
表3 對(duì)比實(shí)驗(yàn)Table 3 Comparative experiments
可以看出,DarkYOLOv8在低照度條件下表現(xiàn)出明顯的優(yōu)勢(shì),它在計(jì)算量保持較低水平的同時(shí),在mAP和mAP50指標(biāo)上均領(lǐng)先。與專門(mén)設(shè)計(jì)用于低照度條件的目標(biāo)檢測(cè)算法ZeroDCE+YOLOv5_DC、IA-YOLO 以及FISNet 和相比,DarkYOLOv8 的mAP 分別領(lǐng)先了2.4、3.6 和3.3 個(gè)百分點(diǎn)。這些結(jié)果表明DarkYOLOv8 在低照度條件下具有出色的性能。
為了驗(yàn)證不同的改進(jìn)方法對(duì)模型的影響,本次研究采用了逐步添加改進(jìn)方法的消融實(shí)驗(yàn),并在ExDark 測(cè)試集上進(jìn)行了性能比較,其中BASE 表示YOLOv8n 算法,M1表示使用MobileNet v2作為主干網(wǎng)絡(luò),M2表示使用Transformer 注意力機(jī)制,M3表示使用DFFA 模塊,實(shí)驗(yàn)結(jié)果如表4 所示。結(jié)果表明,YOLOv8n 算法mAP50為66.2%,GFLOPs 為8.2。將MobileNet v2 替換原始YOLOv8 的主干網(wǎng)絡(luò)后,增加了提取圖片特征的能力,mAP50提高了1.6 個(gè)百分點(diǎn),GFLOPs 僅增加了0.19。使用Transformer 全局注意力后,模型能夠在淺層獲取圖片的全局特征信息,mAP50增加了0.6 個(gè)百分點(diǎn),由于使用了下采樣操作,因此計(jì)算量?jī)H增加了0.01。引入DFFA模塊后,模型通過(guò)利用淺層特征細(xì)節(jié)信息獲取更加細(xì)膩的特征信息,mAP50增加了1.1個(gè)百分點(diǎn)。對(duì)Transformer和DFFA 模塊使用監(jiān)督學(xué)習(xí)后mAP50增加了0.6 個(gè)百分點(diǎn),由于損失計(jì)算僅在訓(xùn)練過(guò)程中進(jìn)行,因此沒(méi)引入推理時(shí)的計(jì)算量。相對(duì)于YOLOv8n 算法,DarkYOLOv8算法在增加了僅0.33GFLOPs 的情況下,mAP50指標(biāo)提高了3.9個(gè)百分點(diǎn),同時(shí)推理時(shí)間僅略微增加,表明其適用于實(shí)時(shí)場(chǎng)景。
表4 消融實(shí)驗(yàn)Table 4 Ablation experiments 單位:%
為了展示Transformer 的全局建模能力,本文將主干網(wǎng)絡(luò)輸出的特征圖使用熱力圖可視化技術(shù)進(jìn)行可視化展示,以便于觀察模型關(guān)注的區(qū)域,結(jié)果如圖6所示,圖6(a)是原始圖片,圖6(b)顯示采用YOLOv8n進(jìn)行可視化處理的結(jié)果,圖6(c)展示了使用DarkYOLOv8進(jìn)行可視化處理的效果。圖中顏色越紅的區(qū)域表示對(duì)檢測(cè)結(jié)果的貢獻(xiàn)越大。YOLOv8n更加注重目標(biāo)位置的特征信息,而DarkYOLOv8會(huì)同時(shí)利用環(huán)境特征和目標(biāo)所在位置的特征捕捉目標(biāo)的信息。這表明Transformer能夠更充分地利用圖片中的上下文信息,從而提升對(duì)物體的檢測(cè)和理解能力。
為了直觀呈現(xiàn)改進(jìn)后算法的檢測(cè)效果,本研究針對(duì)測(cè)試集中的檢測(cè)難度較大情景進(jìn)行了檢測(cè)結(jié)果可視化分析。如圖7所示,分別給出了YOLOv8和DarkYOLOv8的檢測(cè)結(jié)果,在目標(biāo)與環(huán)境界限不清晰、模糊和明暗差異較大等挑戰(zhàn)性場(chǎng)景YOLOv8n均表現(xiàn)出較差的檢測(cè)效果,每張圖均存在漏檢情況,在明暗差異較大的場(chǎng)景下無(wú)法檢測(cè)出圖中的兩只黑貓,而DarkYOLOv8在目標(biāo)與環(huán)境界限不清晰和明暗差異較大的場(chǎng)景中均能正確地檢測(cè)出所有目標(biāo)。在模糊場(chǎng)景中,DarkYOLOv8也展現(xiàn)出更優(yōu)異的檢測(cè)效果,減少了漏檢情況。由此可以得出結(jié)論,DarkYOLOv8 具有更加優(yōu)異的檢測(cè)效果,即使是面對(duì)極端場(chǎng)景也具備優(yōu)異的檢測(cè)效果。
圖7 YOLOv8n與DarkYOLOv8在低照度情況下目標(biāo)檢測(cè)效果Fig.7 YOLOv8n and DarkYOLOv8 target detection effect under low illumination
本文提出一種基于YOLOv8的輕量化的DarkYOLOv8低照度目標(biāo)檢測(cè)算法,針對(duì)低光條件下目標(biāo)容易被漏檢且目前主流低照度目標(biāo)檢測(cè)算法計(jì)算量較大的情況,首先引入MobileNet v2主干網(wǎng)絡(luò),替換原始YOLOv8主干網(wǎng)絡(luò),MobileNet v2能夠獲取到低照度環(huán)境下的目標(biāo)的更多的特征信息,提升檢測(cè)準(zhǔn)確率,然后將Transformer-Layer 放置在主干網(wǎng)絡(luò)的第二個(gè)和第三個(gè)Bottleneck 層之間,使模型在早期就能獲取到圖片的全局特征信息,同時(shí)使用監(jiān)督學(xué)習(xí)更加準(zhǔn)確地增強(qiáng)目標(biāo)范圍內(nèi)特征的權(quán)重,進(jìn)一步提升了檢測(cè)性能,提高低照度下目標(biāo)與環(huán)境間的區(qū)分度,最后使用DFFA模塊融合頸部網(wǎng)絡(luò)淺層特征和深層特征,使用特征細(xì)節(jié)信息增加低照度場(chǎng)景下目標(biāo)檢測(cè)準(zhǔn)確率。實(shí)驗(yàn)結(jié)果表明,在FPS為153仍能應(yīng)用于實(shí)時(shí)場(chǎng)景的情況下,本文所提出的DarkYOLOv8算法在ExDark數(shù)據(jù)集上mAP50達(dá)到了70.1%,與YOLOv8n以及其他低照度場(chǎng)景下的算法相比,DarkYOLOv8算法在滿足實(shí)時(shí)應(yīng)用場(chǎng)景的同時(shí)有效改善了目標(biāo)檢測(cè)精度。