劉金濤
(山東科技大學計算機科學與工程學院,山東青島 266590)
行人目標檢測主要應用于智能視頻監控、人體行為分析、智能機器人等領域,是解決城市治安、交通監測、人流量統計等問題的關鍵技術,因此行人目標檢測技術有著廣闊的應用前景。傳統目標檢測算法主要采用人工設計的特征進行檢測,需要使用底層信息,運用大量先驗知識與技巧設計一個特征提取器,對于行人目標檢測精度低,效率也不高。隨著計算機硬件計算能力的不斷提升以及新一代深度學習技術的發展,基于深度學習的行人檢測技術逐漸成為主流。Liao等提出一種用于卷積稀疏編碼的無監督模型對車輛或行人進行檢測;Yi等首先提出一種復雜的感知級聯檢測器,使檢測精度與速度之間獲得最佳平衡;Lecun等結合快速級聯與深度互動網絡的理念研究如何檢測車輛及行人;Ahmad等使用多個內置子網絡自適應地檢測跨尺度的行人;Li等提出一種改進的組件模型,其對于形變之后的目標對象具有很強的魯棒性。目前,Xu等采用邊界框回歸損失方法在行人檢測數據集Caltech上取得了最好性能。基于深度學習的目標檢測技術主要可分為兩類:①基于地理區域卷積的神經網絡(Region-convolutional Nerual Networks,R-CNN)系列,例如fast R-CNN和faster R-CNN;②基于端到端檢測算法的SSD(Single Shot MultiBox Detector)和YOLO(You Only Look Once)兩個系列。
現有方法大多新穎、有效,但也存在小目標檢測不夠精細、檢測速度慢等問題。針對上述問題,本文提出融合CBAM(Convolutional Block Attention Module)注意力機制的YOLOv3模型,能更有針對性地處理行人目標檢測問題。本文有3個創新點:一是將YOLOv3的主干網絡更換成Darknet-49,并新增一個特征融合層與候選框標記,在加快目標檢測速度的同時,可提高YOLOv3網絡對小目標的檢測精度;二是改進YOLOv3模型的多尺度特征融合結構,在特征融合后引入CBAM注意力機制,以加強網絡的特征表達能力,提高目標檢測精度;三是置信度損失使用DIOU代替GIOU,使模型訓練更穩定,并提高目標檢測回歸框坐標預測精度。
YOLOv3的骨干網絡是Darknet-53網絡,用于提取圖像特征,并引入殘差結構優化網絡訓練過程。YOLOv3在經過多個卷積與上采樣之后最終得到3個卷積結果,每一個卷積結果的長、寬分別為13×13、26×26、52×52,最終提取的圖像特征為[4(box信息)+1(物體判別信息)+80(classNum置信度)]*3(每個點上面計算幾個anchor)。YOLOv3的檢測網絡是YOLO網絡,YOLO網絡的作用是對這些信息進行解碼操作。YOLO層對3個anchor box信息不去重,如果3個anchor都滿足條件,則會把信息寫入到模型進行輸出,實現對融合特征進行類別預測與邊界框回歸。YOLOv3網絡結構模型如圖1所示。

Fig.1 YOLOv3 network structuremodel圖1 YOLOv3網絡結構模型
YOLOv3算法采用多尺度預測,將輸入圖像平均分為S
×S
的小網格,每個網格使用3個anchor,每個anchor信息采用T
(x
,y
,w
,h
,c
)表示。另外,(x
,y
)表示中心坐標,(w
,h
)表示寬與高,c
表示置信度。每個anchor輸出維度為S
×S
×3×(4+1+C
),C
代表類別種類,由于本文針對單一目標檢測任務,因此其取值為1。最終在獲取每個邊框的置信度評分后設置閾值,使用非極大抑制算法(Nonmaximum Suppression)進行處理,將得分小于閾值的評分置0,將置信度評分較高的anchor作為檢測框。YOLOv3損失函數由3部分組成,分別為:坐標位置損失(coordinate error)、IOU損失(IOU error)、分類損失(classification error)。具體計算公式如下:

YOLOv3使用傳統的Darknet-53網絡進行特征提取,因卷積層數過多,導致實時監測效率不高。YOLOv3還使用步長為2、大小為3×3的卷積核進行下采樣,視野范圍大,但明顯降低了空間分辨率,導致對小目標的檢測精度偏低。
針對YOLOv3模型的上述問題,本文使用49層網絡架構的Darknet降低網絡層數,從而提高實時檢測效率,并在特征提取網絡中新增由兩倍下采樣得到的特征圖,從而形成4個目標檢測尺度,分別為13×13、26×26、52×52、104×104。改進后的YOLOv3網絡模型結構如圖2所示。

Fig.2 Improved YOLOv3 network structure model圖2 改進后的YOLOv3網絡結構模型
YOLOv3采用3層特征輸出進行多尺度檢測。通過多尺度反饋處理將全局上下文信息驅動到其他尺度分支,不僅可提高對行人的檢測識別能力,而且有助于抑制虛假檢測。本文基于YOLOv3添加一層用于特征輸出,并采用Kmeans聚類算法實現對anchor box的選取。由于網絡改進之后,每個框檢測3個anchor box,共輸出4個目標特征圖,所以需要修改K-means聚類算法中的K值。根據模型的復雜性,本文最終選定K值為12,得到的聚類結果如表1所示。

Table 1 Priori box size of improved YOLOv3表1 改進YOLOv3的先驗框尺寸
卷積神經網絡的注意力機制(CBAM)由通道注意力與空間注意力模塊串聯而成,CBAM從通道與空間兩個維度對其進行計算,然后把attention map與其輸入的feature map相乘,進行物理與化學上的自適應性學習。CBAM模塊主要結構如圖3所示。

Fig.3 Main structureof CBAM module圖3 CBAM模塊主要結構
在Concatenate層對特征圖進行融合后,加入CBAM以優化特征融合模塊。CBAM分別從通道和空間維度兩方面對特征圖進行選擇,從而提高模型對特征提取的準確性。
首先通道注意力模塊對特征圖F進行全局平均池化(Avgpool)與最大池化(Maxpool),得到兩個大小為C
×1×1的特征描述符,然后將其分別送到一個多層神經網絡(MLP)中,將輸出特征相加后獲得通道注意力權重,與原來的特征圖F
相乘得到新特征F
′如下:
F
′∈R
傳輸到空間注意力模塊,執行空間維度的平均池化與最大池化,得到兩個1×H
×W
的特征描述。將其拼接在一起之后,經過7×7的卷積核獲得空間注意力權重。通過其相乘輸入的特征圖F
′計算得到F
,F
即為融合特征圖:
f
代表拼接,f
代表使用7×7卷積核過濾,sigmoid是常用的神經網絡激活函數之一。GIOU計算公式如下:

A
表示兩者之間的最小包含范圍,A
代表兩者之間相交的部分。在實際應用中使用YOLOv3算法進行訓練時,一般使用GIOU作為損失函數,然而,GIOU存在損失值相同但會出現不同結果的問題,不能正確反映預測框與正確框的位置情況。主要原因是計算的位置坐標不準確,因此本文使用DIOU代替原本的GIOU作為定位損失函數。該函數可更準確地計算兩中心點之間距離,能夠正確反映回歸框與bounding box之間的位置關系,并且融合了GIOU尺度不變性的優點。
DIOU計算公式如下:

b
,b
)代表兩框之間中心點距離,c
代表兩框對角線之間距離。優化算法采用小批量隨機梯度下降算法(Mini-Bath Gradient Descent,MBGD),MBGD算法有訓練次數少、收斂快等優點,因此適用于對本文模型進行優化。模型訓練過程如下:
(1)確定網絡訓練參數θ
。模型訓練參數包括卷積權重、偏置以及CBAM注意力機制的池化算子,如式(6)所示。

x
。(3)獲取目標檢測結果D
:
L
(θ
):
(5)采用MBGD優化模型:

(6)如果網絡收斂至最優狀態,則訓練結束,否則返回步驟(2)。
本文實驗使用INRIA數據集中的1 500張圖片評估模型性能,INRIA數據集中的圖片相比于傳統行人數據集,無論是密集疏散狀態還是光照條件都更加全面,適合于行人檢測任務。此外,本研究還添加了從實際生活中拍攝的1 000張圖片,這些圖片根據Pascal VOC的標簽進行標注,通過Labelling標注工具得到訓練所需的xml文件,每一個圖片名對應一個label.xml。一共2 500張圖片,圖片中包含明暗圖片和目標密集疏散圖片。具體方法如下:將兩組數據集合成一組數據,并且按照訓練集與測試集7:3的比例進行分配;使用混合后的小樣本數據集做實驗。
本文實驗平臺配置為:操作系統為Windows10,中央處理器為Inter Core i5-9300H,內存大小為8GB,GPU為NVIDIA GeForce GTX 1650,GPU加速器為CUDA10.0,CUDNN7.6,深度學習框架選用Darknet網絡。
本文算法測試使用平均準確率Mean Average Precision(mAP)、召回率Recall(R)、準確率(P)、召回率加權平均值(F1)以及平均交并比(IOU)評價算法性能,評價公式分別為:

AP
表示各目標對應的準確率,h
表示目標物體類別總數。
TP
為正檢率,即標定為正樣本,實際檢測也為正樣本;FP
為誤檢率,即標定為負樣本,實際檢測為正樣本;FN
為漏檢率,即標定為正樣本,實際檢測為負樣本。
TP
為正檢率,即標定為正樣本,實際檢測也為正樣本:FP
為誤檢率,即標定為負樣本,實際檢測為正樣本。
S
代表A框面積,S
代表B框面積,S
代表A框與B框交集部分面積,IOU值在0~1之間。通常來說,值越接近于1,代表重疊度越高,相應候選框越精確。4.3.1 實驗檢測效果與評價
YOLOv3行人目標檢測模型比較如圖4所示。

Fig.4 Comparison of YOLOv3 pedestrian target detection model圖4 YOLOv3行人目標檢測模型比較
其中,左側為原始行人圖像,中間為手動標記的行人圖像,右側為模型檢測效果圖。通過比較圖4中的第一行,可發現模型的行人檢測框與手動標記的行人檢測框在坐標、尺寸上基本相同,表明本文模型的有效性與準確性;通過對比第二行,驗證了模型對密集行人優異的檢測能力;通過對比第三行,驗證了模型對小尺寸行人優異的檢測能力。
模型評價指標計算結果如表2所示。由表2可以看出,模型的平均準確率為85.61%,表明對行人的分類識別能力良好;召回率為84%,表明對行人檢測的漏檢率較低;交并比為83.9%,表明對行人的檢測精度良好。

Table2 Model evaluation index calculation results表2 模型評價指標計算結果 (%)
4.3.2 YOLOv3網絡結構比較實驗
為驗證修改后網絡的可靠性,對Darknet-53網絡與本文改進的Darknet-49網絡在同一數據集(INRIA)上的訓練時間及實際檢測效果進行比較。訓練的損失變化曲線如圖5所示(彩圖掃OSID碼可見)。

Fig.5 Losscurve圖5 損失變化曲線
由圖5可以看出,在相同的參數條件下,改進的Darknet49網絡下降速度更快,數據波動范圍更小。
為驗證改進后的YOLOv3算法在實際應用中的效果,采用相同數據進行兩種網絡模型的對比實驗,分別得到以下兩種行人目標檢測結果,如圖6、圖7所示。

Fig.6 YOLOv3 pedestrian target detection results圖6 YOLOv3行人目標檢測結果

Fig.7 Improved YOLOv3 pedestrian target detection results圖7 改進的YOLOv3行人目標檢測結果
比較圖6、圖7可以發現,在光線較暗的場景下,YOLOv3的漏檢率較高;在人群比較密集的場景下,YOLOv3識別精度較低;在小目標檢測的場景下,YOLOv3對小目標的漏檢率較高,而改進后的YOLOv3算法泛化能力與抗干擾能力更強。
4.3.3 損失函數比較實驗
為驗證改進損失函數的有效性,本文分別使用原始損失函數與改進后損失函數的模型在相同數據集上進行實驗,最終得到的不同損失函數比較如表3所示。
由表3可知,相較于GIOU,使用DIOU損失函數后的精確率提高了2.5%左右,召回率也有一定提升。

Table3 Comparison of different lossfunctions表3 不同損失函數比較
為對改進后算法的檢測精度進行更嚴謹地評估,將本文算法與經典目標檢測算法進行比較實驗,結果如表4所示。

Table4 Test results of each algorithm on thetest set表4 各算法在測試集上的測試結果
由表4可知,YOLOv3算法憑借端到端網絡結構的優勢,檢測速度達到了每秒62幀,但平均精確率僅有81.13%;Faster R-CNN依靠生成候選框,檢測精度達到86.75%,但由于其結構復雜,檢測效率明顯偏低;傳統的HOG+SVM算法在精度和速度上都不及其他算法;本文改進的算法相較于YOLOv3與HOG+SVM算法,檢測精度分別提升了4.5%與23%,檢測速度也有明顯提升,雖然相較于Faster R-CNN略低,但是明顯高于其他算法。
針對目前目標檢測算法存在的實時性差、檢測精度不高、對硬件過度依賴等問題,給出了一系列優化方案。本文使用融合CBAM注意力機制的YOLOv3進行行人目標檢測,數據集采用INRIA數據集與自制數據集進行混合實驗,在特征融合過程中添加CBAM注意力機制,獲取更多特征以提高檢測精度。實驗結果表明,本文提出目標檢測模型的優勢在于檢測速度以及對小目標物體的檢測精度,但該模型也存在目標檢測邊界不夠精確的問題,這將是下一步的研究方向。