徐芳芯,樊嶸,馬小陸
(1.京都情報大學院大學應用信息技術研究科,日本 京都 606-8225;2.安徽工業大學電氣與信息工程學院,安徽 馬鞍山 243002)
行人檢測是目標檢測領域的重要分支任務,也是行人重識別、行人追蹤等任務的基礎。隨著卷積神經網絡研究的日益進步,在稀疏場景下的行人檢測已經取得了較好的效果,但在含有較多行人的擁擠場景中行人檢測仍然面臨一些挑戰。
在擁擠行人場景中存在大量的目標間相互遮擋以及非目標物體遮擋,不但造成待測目標缺失了部分特征,還會引入噪聲干擾,容易使模型產生誤檢。針對該問題,學者們進行了大量研究。XU等[1]通過對人體關鍵點及部位進行檢測間接實現對行人目標的檢測,具有較高的遮擋行人檢測精度。HOU等[2]采用復數視角進行檢測,有效緩解了遮擋情況對行人檢測的影響。李頎等[3]提出一種基于遮擋感知的行人檢測與跟蹤算法,利用遮擋感知算法提高遮擋情況下的行人檢測精度。ZHANG等[4]提出遮擋下的行人檢測算法(OR-CNN),通過對損失函數進行改進并在檢測中對候選框進行再分類,有效提升了遮擋行人檢測精度。劉毅等[5]通過在改進的區域卷積神經網絡(Faster R-CNN)的基礎上融入Swin-Transformer 骨干網絡并加入層級重用模塊有效增加了模型的遮擋行人檢測精度。以上方法雖然緩解了遮擋對模型檢測精度的影響,但在含有大量遮擋目標行人的擁擠行人檢測場景下模型性能仍需進一步提升。
在擁擠行人檢測場景中,行人目標較多,單個目標尺寸較小,分辨率較低,容易使模型產生漏檢。針對該問題,學者們也進行了大量研究。XU等[6]提出基于高斯感受野的標簽分配策略,有效增加了模型對小目標待測物體的檢測精度。ZHAO等[7]通過將不同尺度的特征進行融合,有效緩解了小目標特征信息不足的問題。黃鳳琪等[8]使用k-means++算法重構目標錨框并構建殘差可變形模塊,有效提高了模型對小目標行人的檢測精度。樊嶸等[9]以注意力模型(DETR)作為基準模型,引入更高效的骨干網絡以及可變形注意力編碼器有效提高了小目標行人檢測精度。以上方法雖然有效提升了小目標物體檢測精度,但在含有大量被遮擋小目標的擁擠場景下仍需進一步提升性能。
為了有效解決擁擠行人檢測任務中出現的遮擋目標誤檢以及小目標漏檢問題,本文以YOLOv7[10]作為基礎模型進行以下改進:
1)在骨干網絡中融入BiFormer[11]視覺變換器模塊使模型在進行特征提取時更多地聚焦于重要行人特征,緩解遮擋對檢測的影響。同時,采用改進的高效層聚合網絡(RC-ELAN)模塊替換原有的ELAN模塊,提升模型對重要特征的表征能力,有效提升模型整體檢測精度。
2)采用融入雙向特征金字塔網絡(BiFPN)[12]思想的頸部網絡進行特征融合,高效利用含有較多小目標特征信息的中低維特征圖,提升模型對小目標行人的檢測精度。同時,在頸部網絡中融入通道空間注意力模塊(CSAM)[13]、轉置卷積模塊以及改進的Rep-ELAN-W 模塊,提升模型復雜度以及重要特征表征能力,進而提升模型整體檢測精度。
3)訓練時采用高效的完全交并比(E-CIoU)[14]作為損失函數,緩解原有損失函數訓練效率較低的問題,通過提升訓練效率使模型可以進一步收斂至更高的精度。
4)在當前含有大量小目標行人與遮擋目標行人的WiderPerson[15]擁擠行人數據集上與部分常用行人檢測算法進行對比實驗以驗證改進的YOLOv7 算法的擁擠行人檢測能力。
YOLOv7 是目前性能最優的YOLO 系列算法。YOLOv7 在設計上與YOLOv4[16]類似,在進行檢測任務時,輸入圖像被送入骨干網絡進行特征提取,隨后由頸部網絡對提取的特征進行特征融合并得到大、中、小3 種尺寸的特征,最終由檢測頭分別輸出3 個不同尺寸的預測結果用于大、中、小目標物體檢測[17]。
在進行網絡結構設計時,YOLOv7 使用高效層聚合網絡(ELAN)模塊作為核心學習模塊。該模塊通過優化梯度的傳播路徑與傳播效率獲得了較高的非線性學習能力,使用該模塊還能有效緩解模型縮放時產生的收斂性惡化現象。盡管ELAN 模塊擁有優秀的性能但自身難以區分特征的重要程度,因此在模型訓練前期,相比于重要特征,會對部分非重要特征有更強的表征能力,影響了模型整體的訓練效率。另外,YOLOv7 在設計頸部網絡時沿用了YOLOv5[18]的雙向路徑聚合網絡(PANet)[19]并加入了較多的ELAN 模塊進行下采樣學習,使得模型在進行特征融合時更多關注含有較多語義信息的高維度特征,即使完成融合,包含較多小目標信息的中低維特征仍會受到不可逆的損耗,影響網絡對小目標行人的檢測性能。
因此,從特征提取與特征融合兩個角度出發對模型進行模塊與結構改進,分別提升骨干網絡的重要特征提取能力以及頸部網絡的特征提純能力,進而提升模型在擁擠行人場景中的檢測能力。YOLOv7 網絡結構如圖1 所示。
視覺變換模型[20]取得良好性能的關鍵組件是自注意力機制,可以通過捕捉長程依賴關系實現自適應特征提取,但由于需要計算所有像素點之間的注意力關系,傳統的視覺變換器計算開銷較大。BiFormer 視覺變換器通過將視覺變換計算分為2個階段進行以減少計算開銷:第1 個階段在控制稀疏性的前提下進行稀疏注意力計算,完成計算后的特征圖被劃分為需要計算注意力的圖像區域以及非必要的圖像區域;第2 個階段在第1 個階段得出的需要計算區域中進行細粒度自注意力計算。BiFormer模塊結構如圖2所示。

圖2 BiFormer 模塊結構Fig.2 BiFormer module structure
當進行注意力計算時,先將特征圖劃分為S×S個互不重疊的圖像區域,再將每個區域通過線性映射分別獲取該區域對應的Key、Value、Query 向量。在第1 個階段,利用Key 與Query 向量通過稀疏矩陣注意力計算篩選出關聯性較強的圖像區域。在第2 個階段,利用Value 向量通過矩陣計算對篩選出的重要圖像區域進行細粒度自注意力計算,進而完成視覺變換注意力計算。
通道空間注意力模塊是一種即插即用的輕量化高效注意力模塊,會同時從通道維度以及空間維度出發計算特征圖的注意力權重,并對特征圖進行注意力權重優化,其中,通道注意力會協助網絡區分哪些特征較重要并進行重點提取,空間注意力更多感知這些重要特征在特征圖中所處的位置,兩個機制相配合,幫助骨干網絡對重要的特征進行更好的特征提取。通道空間注意力模塊結構如圖3 所示。

圖3 通道空間注意力模塊結構Fig.3 Channel space attention module structure
針對ELAN 模塊在訓練前期難以區分特征重要性的問題,采用通道空間注意力模塊以及多分支卷積模塊[21]對其進行改進。將ELAN 模塊中的4 個3×3 卷積替換為多分支卷積,在不影響模型前向傳播效率的前提下有效提升模型在訓練階段的非線性表征能力。在ELAN 模塊的首層增設一個通道空間注意力模塊,使ELAN 模塊在進行特征擬合時可以自適應聚焦于重要特征。此外,設計用于骨干網絡的融合多分支卷積模塊與通道空間注意力模塊的RC-ELAN 模塊以及用于頸部網絡的僅融入多分支卷積模塊的Rep-ELAN-W 模塊。RCELAN 模塊以及Rep-ELAN-W 模塊結構如圖4 和圖5 所示。

圖4 RC-ELAN 模塊結構Fig.4 RC-ELAN module structure

圖5 Rep-ELAN-W 模塊結構Fig.5 Rep-ELAN-W module structure
為了更好地對重要行人特征進行有效提取,將骨干網絡初期的第1、2 以及4 個卷積模塊替換為多分支卷積模塊,第3 個卷積模塊替換為BiFormer 視覺變換器模塊,使模型可以在初期特征提取時進行自注意力特征計算,提升網絡初期重要特征提取效率。將骨干網絡中的ELAN 模塊全部替換為RC-ELAN 模塊,使骨干網絡在訓練時可以通過注意力機制更多地聚焦于重要行人特征,進而為頸部網絡提供高效的多尺度特征圖。改進的骨干網絡結構如圖6 所示。

圖6 改進的骨干網絡結構Fig.6 Improved backbone network structure
BiFPN 是基于神經網絡架構搜索(NAS)[22]的高效特征融合結構。在進行特征融合時,BiFPN加入了可學習的特征圖權重因子,不同于將所有特征圖等權重接收后進行下一步操作的拼接(Concat)模塊,可學習權重因子允許網絡通過學習自行選擇接收哪一層更多的特征信息,使網絡擁有區分不同層級特征重要性的能力,可以更好地對重要的小目標特征進行保留。BiFPN 結構如圖7 所示。

圖7 BiFPN 結構Fig.7 BiFPN structure
轉置卷積是一種特殊的卷積操作,在進行轉置卷積運算時,特征圖中的一個元素分別與卷積核中的所有元素進行乘積并按步長放置于該元素對應的位置,主要用來增大特征圖的高與寬進而完成上采樣操作,以卷積核寬度取2、步長取1 為例,轉置卷積原理如圖8 所示。

圖8 轉置卷積原理Fig.8 Transposed convolution principle
在特征融合過程中,為了使高維特征圖與低維特征圖進行特征融合,通常需要對分辨率較低的高維特征圖進行上采樣操作。在進行特征融合時,YOLOv7 采用最近鄰插值模塊作為上采樣模塊。雖然最近鄰插值可以有效提升圖像分辨率,但容易造成圖像灰度的不連續。為了更好地進行上采樣,采用轉置卷積模塊進行上采樣操作,在上采樣過程中引入更多的非線性因素以及更高的復雜度,并允許網絡自適應放大更重要的特征,有效緩解了上采樣過程中產生的失真問題。
為了更好地利用改進骨干網絡提供的高效多尺度特征圖,借鑒BiFPN 思想重新設計了特征融合頸部網絡。在進行特征融合時,為了充分利用高維特征圖中的重要語義信息以及中低維特征圖包含的大量的遮擋目標特征信息。當經過上采樣的高維特征圖與含有較多重要特征的中低維特征圖進行融合時:首先,使用通道空間注意力模塊對高維特征圖進行特征重構,使模型可以自適應地聚焦于更適合當前任務要求的特征;然后,使用轉置卷積進行上采樣操作,增強模型的非線性擬合能力;最后,使用加權特征融合方式進行融合,使網絡在訓練過程中自適應學習更適合當前任務的特征圖。由于經過上采樣的高維特征圖與中低維特征圖進行融合后的特征圖含有較多重要特征,采用Rep-ELAN-W 模塊進行特征學習,進一步提升模型學習效率。當中低維特征圖與高維特征圖進行融合時,采用拼接的方式進行融合,最大限度保留中低維特征圖所包含的小目標特征信息。改進的YOLOv7 頸部網絡結構如圖9所示。

圖9 改進的頸部網絡結構Fig.9 Improved neck network structure
改進的YOLOv7 網絡結構如圖10 所示。

圖10 改進的YOLOv7 網絡結構Fig.10 Improved YOLOv7 network structure
為了進一步提升模型的訓練效率并使模型可以收斂至更高精度,對YOLOv7 的回歸損失函數進行改進。
YOLOv7 采 用CIoU[23]損失函 數計算 回歸損失,CIoU 作為目前表現最好的邊界回歸損失函數之一,同時考慮了預測框與真實框之間的重疊區域、中心點距離與長寬比關系,通過使用交并比(IoU)、歐氏距離以及對應長寬比來測量預測框與真實框的重疊區域。CIoU 損失函數計算過程如式(1)~式(4)所示:
其中:v表示預測框與真實框的相似性因子;α表示權重函數;RCIoU表示差異懲罰項;ρ2(b,bgt)表示預測框與真實框的歐氏距離;c表示包含預測框與真實框的最小重疊區域對角線距離。
由于CIoU 中的v并不是真正的長寬比及其對應置信度差異,因此在進行訓練時一旦預測框收斂至真實框的長寬比,CIoU 有可能阻止模型進一步優化相似度。為了解決此問題,高效交并比(EIoU)[24]損失函數在CIoU 損失函數的基礎上對相似性因子v進行了拆分并設置了新的懲罰項,重新計算預測框與真實框的長寬比,解決CIoU 有可能阻止模型進一步優化相似度的問題。但當存在某一邊長度差距較大時,EIoU 損失的計算會變慢,導致模型整體收斂速度下降。EIoU 損失函數計算公式如式(5)所示:
針對上述問題,采用結合CIoU 與EIoU 的E-CIoU 損失函數作為回歸損失計算函數。在模型訓練時先采用CIoU 對預測框的長寬比進行優化,在預測框收斂到一個合適的區間后,每個邊緣再由EIoU 進行進一步優化,直到收斂到一個合適的值。E-CIoU 損失函數計算公式如式(6)所示:
為了驗證改進的YOLOv7 算法在擁擠行人檢測場景中的實際性能,選擇已公開的擁擠行人檢測數據集WiderPerson 進行模塊消融實驗以及橫向性能對比實驗。WiderPerson 數據集的圖像擁有多個不同的來源,數據集本身不再局限于交通場景。數據集共有13 382 張圖片,合計約40 萬個待測目標。選取數據集中給出標簽的9 000 張圖片并按8∶2 劃分為訓練集與驗證集進行實驗。
在運行32 GB 內存、Ryzen5-5600G 處理器、NVIDIA TeslaP40 顯卡的硬件平臺上進行模型訓練,運行庫版本為CUDA 11.6,軟件環境為PyTorch 1.12.0 與MMDetection[25]。為了更好地與其 他檢測算法進行性能對比,在檢測任務中僅有行人一類目標,屬于二分類問題,直接使用平均精準度(AP)來衡量模型檢測精度,其中,AP50表示IoU 閾值為0.5時 的AP 值,AP50∶95表 示IoU 閾值為0.5~0.95 時 的AP 值。
由于在骨干網絡部分添加的改進模塊較多,因此用于驗證改進模塊有效性的消融實驗分為兩部分進行,分別是驗證骨干網絡改進有效性的骨干網絡消融實驗以及驗證網絡結構改進有效性的整體網絡消融實驗。
4.3.1 骨干網絡消融實驗
為了驗證骨干網絡的改進有效性,進行骨干網絡改進消融實驗。為了驗證RC-ELAN 模塊的有效性,列舉僅采用RepConv 模塊改進的Rep-ELAN 模塊、僅采用CSAM 模塊改進的CSAM-ELAN 模塊以及同時采用兩者進行改進的RC-ELAN 模塊。為了方便對比改動模塊前后的性能變化,列出了每組實驗變動的模塊名稱。每組模型均使用Adam[26]優化器在WiderPerson 擁擠行人檢測數據集上進行200 輪訓練。使用AP50與AP50∶95作為模型的性能衡量指標,初始學習率均為0.001。骨干網絡消融實驗結果如表1 所示,其中“√”代表使用該網絡或模塊,下同。

表1 骨干網絡消融實驗結果Table 1 Backbone network ablation experimental results %
由表1 可以看出:對比骨干網絡消融實驗中的YOLOv7 實驗與實驗A 可知,融入BiFormer 模塊可以有效緩解遮擋對檢測的影響;對比YOLOv7 實驗與實驗B~D 可知,RC-ELAN 模塊的加入可以有效提升模型對重要特征的表征能力;對比YOLOv7 實驗與實驗C~E 可 知,BiFormer 模塊與RC-ELAN 模塊的引入有效提升了骨干網絡的重要特征提取能力,可以有效提升模型的最終檢測精度。
4.3.2 整體網絡消融實驗
為了驗證網絡結構改進與損失函數改進的有效性,進行網絡結構改進的消融實驗。每組實驗僅替換原模型的部分模塊,為便于對比,列出了替換結構與原結構名稱。每組模型均使用Adam 優化器在WiderPerson 擁擠行人檢測數據集上進行200 輪訓練,使用AP50與AP50∶95作為模型的性能衡量指標,初始學習率均為0.001。整體網絡消融實驗結果如表2所示。

表2 整體網絡消融實驗結果Table 2 Overall network ablation experimental results %
由表2 可以看出:對比YOLOv7 實驗與實驗A可知,改進的骨干網絡可以有效提升模型的檢測性能;對比YOLOv7 實驗與實驗B 可知,單獨加入改進的頸部網絡可以提升模型的復雜度以及重要特征表征能力,進而提升網絡的整體檢測性能;對比YOLOv7 實驗與實驗A~C 可知,改進的骨干網絡與頸部網絡不會產生性能沖突,兩者同時使用有效提升了模型檢測精度;對比YOLOv7 實驗與實驗D 可知,E-CIoU 損失函數可以使模型進一步收斂至更高精度;對比YOLOv7 實驗與實驗D、E 可知,E-CIoU損失函數可以進一步使模型收斂至更高精度。
為了驗證改進的YOLOv7 算法能否較好地運用于擁擠 行人檢 測場景,將其與YOLOv7[10]、YOLOv5[18]、單鏡頭多盒檢測(SSD)[27]、RetinaNet[28]、Faster R-CNN[29]、YOLOv3[30]、YOLOX[31]等常用 行人檢測算法進行對比實驗。每組實驗在WiderPerson 擁擠行人數據集上進行200 輪訓練且均使用Adam 優化器 進行優 化,使 用AP50、AP50∶95作為模型的性能衡量指標。所有實驗組均未使用預訓練權重,初始學習率均為0.001。性能對比實驗結果如表3 所示。

表3 性能對比實驗結果Table 3 Performance comparison experimental results %
由表3 可以看出,在擁擠行人檢測場景中,所提算法的常規檢測精度與小目標檢測精度均高于YOLO-X、YOLO-V5 等常用行人檢測算法,能夠較好地應用于擁擠行人檢測場景。
為了更好地展現所提算法檢測效果,在圖11 中可視化了YOLOv7 原算法以及改進算法在擁擠行人場景中的檢測效果,其中,左側為原算法檢測效果,右側為改進算法檢測效果。經過對比可知,在原算法中漏檢的部分遮擋行人目標被改進算法有效檢測。可見,改進的YOLOv7 算法可以更好地應用于擁擠行人檢測場景。

圖11 檢測效果對比Fig.11 Comparison of detection effects
針對擁擠行人場景中的行人漏檢與誤檢問題,本文提出改進的YOLOv7 擁擠行人檢測算法。通過在骨干網絡中加入BiFormer 視覺變換器模塊以及改進的RC-ELAN 模塊使骨干網絡在進行特征提取時聚焦于被遮擋行人的重要特征,有效提升了骨干網絡對被遮擋行人重要特征的提取能力。在進行特征融合時,采用融入BiFPN 思想的改進頸部網絡,有效提升了模型對重要特征的提純能力。最終在訓練過程中引入E-CIoU 損失函數,有效提升了模型的訓練效率,使模型可以進一步收斂至更高精度。在WiderPerson 擁擠行人檢測數據集上的實驗結果表明,所提算法相比于YOLOv7、YOLOv5 和YOLOX算法具有更高的檢測精度。但由于所提算法在輸出檢測結果時需要采用非極大值抑制后處理[32]操作進行檢測框抑制,導致模型整體檢測性能受限于后處理精度,因此如何緩解非極大值抑制后處理誤差對模型檢測精度的影響仍是目標檢測領域的研究重點。