劉金濤
(山東科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,山東青島 266590)
行人目標(biāo)檢測主要應(yīng)用于智能視頻監(jiān)控、人體行為分析、智能機(jī)器人等領(lǐng)域,是解決城市治安、交通監(jiān)測、人流量統(tǒng)計(jì)等問題的關(guān)鍵技術(shù),因此行人目標(biāo)檢測技術(shù)有著廣闊的應(yīng)用前景。傳統(tǒng)目標(biāo)檢測算法主要采用人工設(shè)計(jì)的特征進(jìn)行檢測,需要使用底層信息,運(yùn)用大量先驗(yàn)知識(shí)與技巧設(shè)計(jì)一個(gè)特征提取器,對(duì)于行人目標(biāo)檢測精度低,效率也不高。隨著計(jì)算機(jī)硬件計(jì)算能力的不斷提升以及新一代深度學(xué)習(xí)技術(shù)的發(fā)展,基于深度學(xué)習(xí)的行人檢測技術(shù)逐漸成為主流。Liao等提出一種用于卷積稀疏編碼的無監(jiān)督模型對(duì)車輛或行人進(jìn)行檢測;Yi等首先提出一種復(fù)雜的感知級(jí)聯(lián)檢測器,使檢測精度與速度之間獲得最佳平衡;Lecun等結(jié)合快速級(jí)聯(lián)與深度互動(dòng)網(wǎng)絡(luò)的理念研究如何檢測車輛及行人;Ahmad等使用多個(gè)內(nèi)置子網(wǎng)絡(luò)自適應(yīng)地檢測跨尺度的行人;Li等提出一種改進(jìn)的組件模型,其對(duì)于形變之后的目標(biāo)對(duì)象具有很強(qiáng)的魯棒性。目前,Xu等采用邊界框回歸損失方法在行人檢測數(shù)據(jù)集Caltech上取得了最好性能。基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)主要可分為兩類:①基于地理區(qū)域卷積的神經(jīng)網(wǎng)絡(luò)(Region-convolutional Nerual Networks,R-CNN)系列,例如fast R-CNN和faster R-CNN;②基于端到端檢測算法的SSD(Single Shot MultiBox Detector)和YOLO(You Only Look Once)兩個(gè)系列。
現(xiàn)有方法大多新穎、有效,但也存在小目標(biāo)檢測不夠精細(xì)、檢測速度慢等問題。針對(duì)上述問題,本文提出融合CBAM(Convolutional Block Attention Module)注意力機(jī)制的YOLOv3模型,能更有針對(duì)性地處理行人目標(biāo)檢測問題。本文有3個(gè)創(chuàng)新點(diǎn):一是將YOLOv3的主干網(wǎng)絡(luò)更換成Darknet-49,并新增一個(gè)特征融合層與候選框標(biāo)記,在加快目標(biāo)檢測速度的同時(shí),可提高YOLOv3網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測精度;二是改進(jìn)YOLOv3模型的多尺度特征融合結(jié)構(gòu),在特征融合后引入CBAM注意力機(jī)制,以加強(qiáng)網(wǎng)絡(luò)的特征表達(dá)能力,提高目標(biāo)檢測精度;三是置信度損失使用DIOU代替GIOU,使模型訓(xùn)練更穩(wěn)定,并提高目標(biāo)檢測回歸框坐標(biāo)預(yù)測精度。
YOLOv3的骨干網(wǎng)絡(luò)是Darknet-53網(wǎng)絡(luò),用于提取圖像特征,并引入殘差結(jié)構(gòu)優(yōu)化網(wǎng)絡(luò)訓(xùn)練過程。YOLOv3在經(jīng)過多個(gè)卷積與上采樣之后最終得到3個(gè)卷積結(jié)果,每一個(gè)卷積結(jié)果的長、寬分別為13×13、26×26、52×52,最終提取的圖像特征為[4(box信息)+1(物體判別信息)+80(classNum置信度)]*3(每個(gè)點(diǎn)上面計(jì)算幾個(gè)anchor)。YOLOv3的檢測網(wǎng)絡(luò)是YOLO網(wǎng)絡(luò),YOLO網(wǎng)絡(luò)的作用是對(duì)這些信息進(jìn)行解碼操作。YOLO層對(duì)3個(gè)anchor box信息不去重,如果3個(gè)anchor都滿足條件,則會(huì)把信息寫入到模型進(jìn)行輸出,實(shí)現(xiàn)對(duì)融合特征進(jìn)行類別預(yù)測與邊界框回歸。YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)模型如圖1所示。
Fig.1 YOLOv3 network structuremodel圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)模型
YOLOv3算法采用多尺度預(yù)測,將輸入圖像平均分為S
×S
的小網(wǎng)格,每個(gè)網(wǎng)格使用3個(gè)anchor,每個(gè)anchor信息采用T
(x
,y
,w
,h
,c
)表示。另外,(x
,y
)表示中心坐標(biāo),(w
,h
)表示寬與高,c
表示置信度。每個(gè)anchor輸出維度為S
×S
×3×(4+1+C
),C
代表類別種類,由于本文針對(duì)單一目標(biāo)檢測任務(wù),因此其取值為1。最終在獲取每個(gè)邊框的置信度評(píng)分后設(shè)置閾值,使用非極大抑制算法(Nonmaximum Suppression)進(jìn)行處理,將得分小于閾值的評(píng)分置0,將置信度評(píng)分較高的anchor作為檢測框。YOLOv3損失函數(shù)由3部分組成,分別為:坐標(biāo)位置損失(coordinate error)、IOU損失(IOU error)、分類損失(classification error)。具體計(jì)算公式如下:
YOLOv3使用傳統(tǒng)的Darknet-53網(wǎng)絡(luò)進(jìn)行特征提取,因卷積層數(shù)過多,導(dǎo)致實(shí)時(shí)監(jiān)測效率不高。YOLOv3還使用步長為2、大小為3×3的卷積核進(jìn)行下采樣,視野范圍大,但明顯降低了空間分辨率,導(dǎo)致對(duì)小目標(biāo)的檢測精度偏低。
針對(duì)YOLOv3模型的上述問題,本文使用49層網(wǎng)絡(luò)架構(gòu)的Darknet降低網(wǎng)絡(luò)層數(shù),從而提高實(shí)時(shí)檢測效率,并在特征提取網(wǎng)絡(luò)中新增由兩倍下采樣得到的特征圖,從而形成4個(gè)目標(biāo)檢測尺度,分別為13×13、26×26、52×52、104×104。改進(jìn)后的YOLOv3網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2所示。
Fig.2 Improved YOLOv3 network structure model圖2 改進(jìn)后的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)模型
YOLOv3采用3層特征輸出進(jìn)行多尺度檢測。通過多尺度反饋處理將全局上下文信息驅(qū)動(dòng)到其他尺度分支,不僅可提高對(duì)行人的檢測識(shí)別能力,而且有助于抑制虛假檢測。本文基于YOLOv3添加一層用于特征輸出,并采用Kmeans聚類算法實(shí)現(xiàn)對(duì)anchor box的選取。由于網(wǎng)絡(luò)改進(jìn)之后,每個(gè)框檢測3個(gè)anchor box,共輸出4個(gè)目標(biāo)特征圖,所以需要修改K-means聚類算法中的K值。根據(jù)模型的復(fù)雜性,本文最終選定K值為12,得到的聚類結(jié)果如表1所示。
Table 1 Priori box size of improved YOLOv3表1 改進(jìn)YOLOv3的先驗(yàn)框尺寸
卷積神經(jīng)網(wǎng)絡(luò)的注意力機(jī)制(CBAM)由通道注意力與空間注意力模塊串聯(lián)而成,CBAM從通道與空間兩個(gè)維度對(duì)其進(jìn)行計(jì)算,然后把a(bǔ)ttention map與其輸入的feature map相乘,進(jìn)行物理與化學(xué)上的自適應(yīng)性學(xué)習(xí)。CBAM模塊主要結(jié)構(gòu)如圖3所示。
Fig.3 Main structureof CBAM module圖3 CBAM模塊主要結(jié)構(gòu)
在Concatenate層對(duì)特征圖進(jìn)行融合后,加入CBAM以優(yōu)化特征融合模塊。CBAM分別從通道和空間維度兩方面對(duì)特征圖進(jìn)行選擇,從而提高模型對(duì)特征提取的準(zhǔn)確性。
首先通道注意力模塊對(duì)特征圖F進(jìn)行全局平均池化(Avgpool)與最大池化(Maxpool),得到兩個(gè)大小為C
×1×1的特征描述符,然后將其分別送到一個(gè)多層神經(jīng)網(wǎng)絡(luò)(MLP)中,將輸出特征相加后獲得通道注意力權(quán)重,與原來的特征圖F
相乘得到新特征F
′如下:F
′∈R
傳輸?shù)娇臻g注意力模塊,執(zhí)行空間維度的平均池化與最大池化,得到兩個(gè)1×H
×W
的特征描述。將其拼接在一起之后,經(jīng)過7×7的卷積核獲得空間注意力權(quán)重。通過其相乘輸入的特征圖F
′計(jì)算得到F
,F
即為融合特征圖:f
代表拼接,f
代表使用7×7卷積核過濾,sigmoid是常用的神經(jīng)網(wǎng)絡(luò)激活函數(shù)之一。GIOU計(jì)算公式如下:
A
表示兩者之間的最小包含范圍,A
代表兩者之間相交的部分。在實(shí)際應(yīng)用中使用YOLOv3算法進(jìn)行訓(xùn)練時(shí),一般使用GIOU作為損失函數(shù),然而,GIOU存在損失值相同但會(huì)出現(xiàn)不同結(jié)果的問題,不能正確反映預(yù)測框與正確框的位置情況。主要原因是計(jì)算的位置坐標(biāo)不準(zhǔn)確,因此本文使用DIOU代替原本的GIOU作為定位損失函數(shù)。該函數(shù)可更準(zhǔn)確地計(jì)算兩中心點(diǎn)之間距離,能夠正確反映回歸框與bounding box之間的位置關(guān)系,并且融合了GIOU尺度不變性的優(yōu)點(diǎn)。
DIOU計(jì)算公式如下:
b
,b
)代表兩框之間中心點(diǎn)距離,c
代表兩框?qū)蔷€之間距離。優(yōu)化算法采用小批量隨機(jī)梯度下降算法(Mini-Bath Gradient Descent,MBGD),MBGD算法有訓(xùn)練次數(shù)少、收斂快等優(yōu)點(diǎn),因此適用于對(duì)本文模型進(jìn)行優(yōu)化。模型訓(xùn)練過程如下:
(1)確定網(wǎng)絡(luò)訓(xùn)練參數(shù)θ
。模型訓(xùn)練參數(shù)包括卷積權(quán)重、偏置以及CBAM注意力機(jī)制的池化算子,如式(6)所示。x
。(3)獲取目標(biāo)檢測結(jié)果D
:L
(θ
):(5)采用MBGD優(yōu)化模型:
(6)如果網(wǎng)絡(luò)收斂至最優(yōu)狀態(tài),則訓(xùn)練結(jié)束,否則返回步驟(2)。
本文實(shí)驗(yàn)使用INRIA數(shù)據(jù)集中的1 500張圖片評(píng)估模型性能,INRIA數(shù)據(jù)集中的圖片相比于傳統(tǒng)行人數(shù)據(jù)集,無論是密集疏散狀態(tài)還是光照條件都更加全面,適合于行人檢測任務(wù)。此外,本研究還添加了從實(shí)際生活中拍攝的1 000張圖片,這些圖片根據(jù)Pascal VOC的標(biāo)簽進(jìn)行標(biāo)注,通過Labelling標(biāo)注工具得到訓(xùn)練所需的xml文件,每一個(gè)圖片名對(duì)應(yīng)一個(gè)label.xml。一共2 500張圖片,圖片中包含明暗圖片和目標(biāo)密集疏散圖片。具體方法如下:將兩組數(shù)據(jù)集合成一組數(shù)據(jù),并且按照訓(xùn)練集與測試集7:3的比例進(jìn)行分配;使用混合后的小樣本數(shù)據(jù)集做實(shí)驗(yàn)。
本文實(shí)驗(yàn)平臺(tái)配置為:操作系統(tǒng)為Windows10,中央處理器為Inter Core i5-9300H,內(nèi)存大小為8GB,GPU為NVIDIA GeForce GTX 1650,GPU加速器為CUDA10.0,CUDNN7.6,深度學(xué)習(xí)框架選用Darknet網(wǎng)絡(luò)。
本文算法測試使用平均準(zhǔn)確率Mean Average Precision(mAP)、召回率Recall(R)、準(zhǔn)確率(P)、召回率加權(quán)平均值(F1)以及平均交并比(IOU)評(píng)價(jià)算法性能,評(píng)價(jià)公式分別為:
AP
表示各目標(biāo)對(duì)應(yīng)的準(zhǔn)確率,h
表示目標(biāo)物體類別總數(shù)。TP
為正檢率,即標(biāo)定為正樣本,實(shí)際檢測也為正樣本;FP
為誤檢率,即標(biāo)定為負(fù)樣本,實(shí)際檢測為正樣本;FN
為漏檢率,即標(biāo)定為正樣本,實(shí)際檢測為負(fù)樣本。TP
為正檢率,即標(biāo)定為正樣本,實(shí)際檢測也為正樣本:FP
為誤檢率,即標(biāo)定為負(fù)樣本,實(shí)際檢測為正樣本。S
代表A框面積,S
代表B框面積,S
代表A框與B框交集部分面積,IOU值在0~1之間。通常來說,值越接近于1,代表重疊度越高,相應(yīng)候選框越精確。4.3.1 實(shí)驗(yàn)檢測效果與評(píng)價(jià)
YOLOv3行人目標(biāo)檢測模型比較如圖4所示。
Fig.4 Comparison of YOLOv3 pedestrian target detection model圖4 YOLOv3行人目標(biāo)檢測模型比較
其中,左側(cè)為原始行人圖像,中間為手動(dòng)標(biāo)記的行人圖像,右側(cè)為模型檢測效果圖。通過比較圖4中的第一行,可發(fā)現(xiàn)模型的行人檢測框與手動(dòng)標(biāo)記的行人檢測框在坐標(biāo)、尺寸上基本相同,表明本文模型的有效性與準(zhǔn)確性;通過對(duì)比第二行,驗(yàn)證了模型對(duì)密集行人優(yōu)異的檢測能力;通過對(duì)比第三行,驗(yàn)證了模型對(duì)小尺寸行人優(yōu)異的檢測能力。
模型評(píng)價(jià)指標(biāo)計(jì)算結(jié)果如表2所示。由表2可以看出,模型的平均準(zhǔn)確率為85.61%,表明對(duì)行人的分類識(shí)別能力良好;召回率為84%,表明對(duì)行人檢測的漏檢率較低;交并比為83.9%,表明對(duì)行人的檢測精度良好。
Table2 Model evaluation index calculation results表2 模型評(píng)價(jià)指標(biāo)計(jì)算結(jié)果 (%)
4.3.2 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)比較實(shí)驗(yàn)
為驗(yàn)證修改后網(wǎng)絡(luò)的可靠性,對(duì)Darknet-53網(wǎng)絡(luò)與本文改進(jìn)的Darknet-49網(wǎng)絡(luò)在同一數(shù)據(jù)集(INRIA)上的訓(xùn)練時(shí)間及實(shí)際檢測效果進(jìn)行比較。訓(xùn)練的損失變化曲線如圖5所示(彩圖掃OSID碼可見)。
Fig.5 Losscurve圖5 損失變化曲線
由圖5可以看出,在相同的參數(shù)條件下,改進(jìn)的Darknet49網(wǎng)絡(luò)下降速度更快,數(shù)據(jù)波動(dòng)范圍更小。
為驗(yàn)證改進(jìn)后的YOLOv3算法在實(shí)際應(yīng)用中的效果,采用相同數(shù)據(jù)進(jìn)行兩種網(wǎng)絡(luò)模型的對(duì)比實(shí)驗(yàn),分別得到以下兩種行人目標(biāo)檢測結(jié)果,如圖6、圖7所示。
Fig.6 YOLOv3 pedestrian target detection results圖6 YOLOv3行人目標(biāo)檢測結(jié)果
Fig.7 Improved YOLOv3 pedestrian target detection results圖7 改進(jìn)的YOLOv3行人目標(biāo)檢測結(jié)果
比較圖6、圖7可以發(fā)現(xiàn),在光線較暗的場景下,YOLOv3的漏檢率較高;在人群比較密集的場景下,YOLOv3識(shí)別精度較低;在小目標(biāo)檢測的場景下,YOLOv3對(duì)小目標(biāo)的漏檢率較高,而改進(jìn)后的YOLOv3算法泛化能力與抗干擾能力更強(qiáng)。
4.3.3 損失函數(shù)比較實(shí)驗(yàn)
為驗(yàn)證改進(jìn)損失函數(shù)的有效性,本文分別使用原始損失函數(shù)與改進(jìn)后損失函數(shù)的模型在相同數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),最終得到的不同損失函數(shù)比較如表3所示。
由表3可知,相較于GIOU,使用DIOU損失函數(shù)后的精確率提高了2.5%左右,召回率也有一定提升。
Table3 Comparison of different lossfunctions表3 不同損失函數(shù)比較
為對(duì)改進(jìn)后算法的檢測精度進(jìn)行更嚴(yán)謹(jǐn)?shù)卦u(píng)估,將本文算法與經(jīng)典目標(biāo)檢測算法進(jìn)行比較實(shí)驗(yàn),結(jié)果如表4所示。
Table4 Test results of each algorithm on thetest set表4 各算法在測試集上的測試結(jié)果
由表4可知,YOLOv3算法憑借端到端網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)勢,檢測速度達(dá)到了每秒62幀,但平均精確率僅有81.13%;Faster R-CNN依靠生成候選框,檢測精度達(dá)到86.75%,但由于其結(jié)構(gòu)復(fù)雜,檢測效率明顯偏低;傳統(tǒng)的HOG+SVM算法在精度和速度上都不及其他算法;本文改進(jìn)的算法相較于YOLOv3與HOG+SVM算法,檢測精度分別提升了4.5%與23%,檢測速度也有明顯提升,雖然相較于Faster R-CNN略低,但是明顯高于其他算法。
針對(duì)目前目標(biāo)檢測算法存在的實(shí)時(shí)性差、檢測精度不高、對(duì)硬件過度依賴等問題,給出了一系列優(yōu)化方案。本文使用融合CBAM注意力機(jī)制的YOLOv3進(jìn)行行人目標(biāo)檢測,數(shù)據(jù)集采用INRIA數(shù)據(jù)集與自制數(shù)據(jù)集進(jìn)行混合實(shí)驗(yàn),在特征融合過程中添加CBAM注意力機(jī)制,獲取更多特征以提高檢測精度。實(shí)驗(yàn)結(jié)果表明,本文提出目標(biāo)檢測模型的優(yōu)勢在于檢測速度以及對(duì)小目標(biāo)物體的檢測精度,但該模型也存在目標(biāo)檢測邊界不夠精確的問題,這將是下一步的研究方向。