?

基于多頭自注意力機制和PANet的優化YOLOv5行人檢測算法

2024-01-29 10:47宋子昂劉惠臨
寧夏師范學院學報 2024年1期
關鍵詞:行人樣本特征

宋子昂,劉惠臨

(安徽理工大學 計算機科學與工程學院,安徽 淮南 232001)

在計算機視覺領域,行人檢測一直是一個重要且具有挑戰性的問題.近年來,隨著人工智能技術的飛速發展,行人檢測在視頻監控和無人駕駛、人群統計和智能交通等眾多領域獲得了越來越多的應用.現在行人檢測技術日益成熟,但仍然存在進一步改進和發展的空間.例如,在實際場景下行人往往面臨小范圍多目標以及目標行人尺度小的問題.目前,基于深度學習的行人檢測技術分為2大類:第一類是基于候選框的雙階段算法,其中以Faster R-CNN[1]為代表.這種算法模型檢測精度較高,但由于其訓練過程復雜且檢測速度慢,導致雙階段算法難以滿足實際應用.第二類是基于單階段算法,以SSD[2]和YOLO為代表.與雙階段算法相比,這類算法采用端到端的訓練方式,使其擁有更快的檢測速度.通過這種簡化的設計,單階段算法在實際應用中能夠更好地滿足實時行人檢測的需求.為了解決密集場景下行人檢測準確率不高的問題,研究者們提出一系列方法和數據集.在數據集方面,ZHANG等[3]提出CityPersons數據集,ZHANG等[4]提出Wider Person數據集,這些數據集為后續的研究提供了豐富的數據支持.針對密集行人場景下的檢測精度,WANG等[5]引入互斥損失函數(repulsion loss),該函數能夠減少高度重疊的預測框對檢測目標的干擾,提高了Faster R-CNN的檢測精度.此外,PANG等[6]提出基于注意力掩碼的算法,增強了對于遮擋部分的特征提取,從而達到較好的檢測效果.此外,LIU等[7]提出一種采用動態閾值的非極大值抑制算法,通過密度子網預測每個位置的密度,并根據不同密度值為NMS設置適合的交并比(Intersection over Union,IoU)閾值.本文以單階段檢測算法YOLO系列中的YOLOv5作為基礎模型進行改進,旨在解決以下問題:首先,針對密集場景下目標行人存在大量遮擋,導致行人部分特征丟失的問題,在其骨干網絡末端嵌入融合了多頭自注意力層(Multi-Head Self-Attention, MHSA)的BoTC3模塊,加強了網絡對目標行人的全局信息感知,同時采用更適合密集場景的Varifocal Loss[8]損失函數替換原有的Focal Loss損失.其次,針對目標行人尺度小的問題,改進了PANet結構,獲取更細粒度信息的特征圖.最后,比較所提算法與常用檢測算法對于擁擠場景下行人檢測的性能,證明所提算法的有效性.

1 YOLOv5算法概述

YOLOv5是當下主流的目標檢測框架,它汲取了YOLOv1、YOLOv2、YOLOv3和YOLOv4 4種模型的優點并進行了整合,因此選擇YOLOv5作為實驗改進的基線模型.整體網絡結構如圖1所示.

圖1 YOLOv5網絡結構

YOLOv5由輸入端、骨干網絡、頸部網絡和頭部網絡組成.輸入端采用Mosaic數據增強技術以提升模型的性能和泛化能力.Mosaic數據增強技術通過增加樣本的多樣性和復雜性,使模型能夠更好地適應各種實際場景,增強了模型的魯棒性.同時,拼接多張圖片還有助于提高訓練效率,減少數據加載和預處理時間.

YOLOv5的骨干特征網絡由CSP-Darknet53組成.在YOLOv5的骨干網絡中,主要是C3模塊和CBS模塊的堆棧.C3模塊主要由n個瓶頸模塊、多個CBS模塊和2個大小為1 × 1的卷積層組成,旨在更好地提取圖像的深層特征.C3模塊和瓶頸模塊分別如圖2(a)和(b)所示.CBS模塊指普通卷積層、BatchNorm 2d層和SiLU層的順序連接,用于對輸入特征圖執行卷積、批量歸一化和激活函數操作.CBS模塊具體結構如圖2(c)所示.

(a)C3 (b)Bottleneck

主干的最后一層是SPP模塊.先使用第一CBS模塊將輸入圖像的通道數減半,然后將第一CBS模塊輸出的特征圖通過3個不同大小的最大池層(13×13、9×9和5×5),并將與第一CBS模塊的輸出一起構建的剩余邊緣并行連接.最后通過第二CBS模塊將通道數減半,保證不同大小輸入的特征圖在池化后高度和寬度都能保持一致,結構如圖2(d)所示.

Neck部分受PANet[9]模型啟發,在FPN[10]架構的基礎上引入一種自下而上的增強途徑,即FPN+PAN結構,旨在縮減信息傳遞距離.該途徑利用底層特征中蘊含的精確定位信息,強化了特征金字塔結構.具體來源,FPN層自上而下傳遞高級語義特征,特征金字塔則自下而上傳遞準確的定位信號,通過在不同的主干層上進行參數匯聚,進一步增強了特征提取的效能.

2 YOLOv5算法改進

本文對YOLOv5的骨干網絡、頸部網絡和損失函數進行了相應的改進.首先,在骨干網絡的最后一層使用基于多頭自注意力機制的BoTC3模塊替換原本的C3模塊,以此提高檢測精度.其次,基于目標行人多數為小尺度目標,在頸部網絡中修改FPN+PAN結構,獲得具有更細粒度信息的特征圖.最后,使用Varifocal Loss損失替換Focal Loss損失,以此解決密集場景下檢測性能不佳的問題.改進的YOLOv5網絡結構如圖3所示.

圖3 改進后的YOLOv5網絡結構

2.1 瓶頸變換器

瓶頸變換器(Bottleneck Transformer)是一種在計算機視覺領域中應用的注意力機制網絡模塊.它是對傳統Transformer模型的改進和優化.傳統的Transformer模型在處理圖像數據時存在輸入特征圖的尺寸較大,導致計算和內存消耗較高的問題.為了解決這個問題,Bottleneck Transformer引入瓶頸結構(Bottleneck structure).瓶頸變換器首先通過一個降維卷積層將輸入特征圖的通道數降低,從而減少計算量.然后在降維后的特征圖上采用經典的Transformer模塊,包括自注意力機制和前饋神經網絡.這些模塊能夠對特征圖中不同位置之間的關系進行建模和學習.最后使用一個升維卷積層將特征圖的維度恢復到原始大小.瓶頸變換器的優勢在于通過降維和升維操作減少了計算和內存開銷,同時保持較高的模型表達能力.這使它成為處理大尺寸圖像數據的有效工具,特別適用于圖像分類、目標檢測和圖像分割等計算機視覺任務.

YOLOv5的骨干網使用大量的卷積層捕獲圖像的局部信息,卷積層的堆疊提高了骨干網提取特征的性能,但也增加了模型參數的數量,降低了模型的推理速度.文獻[11]用多頭自注意算子代替殘差卷積神經網絡卷積算子,可以提高模型的識別精度,減少模型參數的數量.借鑒該方法,將YOLOv5骨干網絡的C3模塊替換為BOTC3模塊.改進后的BoTC3如圖4所示.由于多頭自注意力是一種顯式機制,用于對全局依賴項進行建模,因此將該模塊嵌入骨干網絡末端,使其更有效地處理和整合特征圖中密集且微小的缺陷語義信息,并提高缺陷檢測的準確率.

圖4 改進后的BoTC3模塊

多頭自注意(Multi-Head Self- Attention,MSHA)將位置編碼視為空間注意,在水平和垂直2個維度上嵌入2個可學習的空間注意向量,然后將空間向量求和融合到q中得到內容位置.對內容-位置和內容-內容進行求和,得到對空間敏感的相似特征,使 MHSA能夠聚焦于合適的區域,使模型更容易收斂.圖5中Rw和Rh分別對應寬度和高度的相對位置編碼,其中q、k 、r和v分別表示查詢、鍵、位置編碼和值,qrT和qkT是注意力對數,WQ、Wk和Wv分別是用于查詢向量、鍵向量和值向量的投影矩陣。在瓶頸變壓器模塊中引入 MHSA 層,利用全容進行求和,得到對空間敏感的相似特征,使 MHSA 能夠聚焦于合適的區域,使模型更容易收斂.在瓶頸變壓器模塊中引入MHSA層,利用全局自注意對卷積捕獲的特征映射中包含的信息進行處理和聚合[12],降低模型的參數,避免卷積神經網絡參數疊加導致的模型膨脹,并在一定程度上提高了推理的準確性.MHSA結構如圖5示.

圖5 MHSA結構

2.2 PANet網絡的改進

在FPN[10]+ PAN結構的輸出中,得到了20×20、40×40和80×80 3個不同大小的特征圖.這些結構通過融合來自不同尺度的特征圖,提供了多尺度的信息,有助于檢測不同大小的目標.其中20 × 20和40 × 40的特征圖被用于檢測較大尺寸的目標,80×80的特征圖被用于檢測較小尺寸的目標.針對行人檢測這一特定任務,較小的目標更為常見.因此,為了更好地適應行人檢測任務并提高邊界框回歸的精度,舍棄20 × 20和40 × 40的特征圖.通過丟棄這些特征圖和針對大目標的識別幀,能夠減少無用的計算操作,并且更集中地關注中小尺寸目標的檢測.這種優化策略既提高了模型的效率,又保證了行人檢測的準確性.

同時,為了獲得更加細粒度的特征圖,對PANet網絡的連接方式進行改進.通過對骨干網絡輸出的2次上采樣,并將其與相應尺寸的骨干網絡特征圖進行融合,得到新的160 × 160特征圖.由于改進后的骨干網絡生成了320 × 320、160 × 160、80 × 80 3層特征映射,所以不需要對FPN進行2次上采樣.最終實驗選擇160 × 160和80 × 80的特征圖作為探測頭.PANet網絡改進后的示意圖見圖6.

圖6 YOLOv5中PANet網絡改進結構圖

2.3 損失函數的改進

YOLOv5模型在分類任務中采用了Focal Loss作為損失函數,旨在解決類別不平衡的問題.該損失函數通過為少數困難樣本分配較大的權重,對多數簡單樣本的權重進行更多的衰減實現優化.Folcal Loss的計算定義如下:

(1)

其中,p為目標類的預測概率,范圍為[-1,1];y為真實正負樣本類別,取值1或-1;α是一個用于平衡正負類別權重的因子,其值在0~1;β是一個用于調整難以分類樣本權重的因子,其值通常設定為一個正數,用于放大難以分類樣本的損失;(1-p)β為前景類調制因子;pβ為背景類調制因子.

為了突出小范圍多目標密集檢測任務中正樣本的貢獻,將YOLOv5模型中的損失函數替換為Varifocal Loss.Varifocal Loss基于二元交叉熵損失,并繼承了Focal Loss的加權處理策略,同時優化了密集目標訓練中前景類和背景類極度不平衡的問題.Varifocal Loss能夠更好地預測目標的存在置信度和定位精度,從而提升檢測目標的性能.Varifocal Loss的計算定義如下:

(2)

在上述公式中,預測的IoU感知分類評分p用于衡量目標預測的準確性.對于正樣本,該評分由預測框和真實框之間的交并比值q確定.而對于負樣本,q的取值為0.調節因子α可以對負樣本數量進行調節,并對負樣本的評分p進行pβ衰減,以便更好地利用正樣本的信息.此外,對正樣本的加權考慮了交并比值q的影響.當正樣本和真實框之間的交并比值較高時,正樣本對損失函數的貢獻將增加,從而使訓練過程集中在高質量的正樣本上.

通過以上機制,可以更好地優化分類損失函數,使其在正負樣本的處理上更具針對性.這種方法充分利用了正樣本的信息,同時通過調節負樣本數量和考慮交并比值q的加權,使訓練過程更加關注高質量的正樣本.

3 實驗及結果分析

3.1 數據集

WiderPerson數據集是一個戶外行人檢測數據集,包括常規行人、騎自行車的人、部分遮擋的人、假人和人群5種類別.根據本實驗的需求,假人和人群這2種類別是不需要的,因此只將前3種類別合并為行人類別.合并后的數據集包含訓練圖片8000張、測試圖片1000張.

3.2 實驗策略及環境

實驗代碼基于YOLOv5進行改進.在本次實驗中,將圖片輸入大小設置為640×640像素.通過深入分析,決定將批處理(bath-size)大小設置為16,并將訓練輪數(epoch)設定為300.初始學習率為0.01,學習率動量為0.1,采用隨機梯度下降方法,其他為默認設置.實驗環境如表1所示.

表1 實驗環境

3.3 評價指標

在本次實驗中,采用一些評價指標作為衡量模型性能的標準.這些指標包括mAP@0.5、mAP@0.5∶0.95、召回率(Recall)和準確率(Precision).其中,mAP@0.5與mAP@0.5∶0.95分別表示在IoU閾值設置為0.5與0.5~0.95時的平均精度值(AP).TP表示真陽性,即檢測模型正確預測到的樣本正例.TN表示真陰性,即模型正確預測到的樣本負例.FP表示假陽性,即模型沒有預測到的樣本負例.FN表示假陰性,即模型沒有正確預測到的樣本正例.Precision表示被分類為正例的樣本中實際為正例的比例,而召回率(Recall)則度量了模型正確識別出的正例數量占總正例數量的比例.AP是Precision-Recall曲線下的面積.具體的計算公式如下:

(3)

(4)

(5)

(6)

3.4 消融實驗

為了更好地展示檢測結果和評估性能,進行了模塊消融實驗.實驗結果詳見表2.

表2 消融實驗結果

由表2可知,與原始的YOLOv5模型相比,使用Varifocal Loss損失函數替換原模型中的Focal Loss后召回率與mAP@0.5∶0.95分別提升了0.2%與0.1%.實驗結果顯示,使用Varifocal Loss損失函數替換Focal Loss損失函數的改進對于密集場景下的行人檢測是有效的.在YOLOv5骨干網絡的末端增加BoTC3模塊后,mAP@0.5與mAP@0.5:0.95分別提升到88.7%與62.3%.實驗結果表明融合了多頭自注意力機制的BoTC3模塊能夠有效檢測部分特征丟失的目標行人.在原模型中添加改進后的PANet網絡后,召回率與mAP@0.5分別提升到82.3%與90.2%,mAP@0.5∶0.95也提升到63%.實驗結果充分證明改進后的PANet網絡在檢測小尺度目標行人方面的適用性.相較于原模型,最終模型的召回率、mAP@0.5與mAP@0.5∶0.95分別提高了5.7%、1.6%和0.9%,證明此方法的可行性.為了更加直觀地體現改進后算法的檢測性能,對改進前后模型的檢測效果進行對比展示,如圖7所示.實驗結果表明,該算法對于小目標行人以及密集行人的檢測相較于原YOLOv5模型都獲得了較好的檢測效果.

(a)原始圖像

3.5 對比實驗

為了驗證所提算法的有效性,現將所提算法與常見主流算法做比較.為了保持實驗對比的公平性,統一將圖片輸入大小設置為640×640,進行對比實驗的訓練參數和超參數都設置為默認值.如表3所示,所提算法在準確率上遠高于SSD算法和YOLOv4算法,略低于YOLOv7-tiny,但在mAP上優于YOLOv7-tiny.總的來說,所提算法在行人檢測任務中的綜合性能優于目前的主流算法.

表3 對比實驗結果

4 結論

提出了一種適用于密集場景下的改進型YOLOv5行人檢測方法.為了提高整體檢測效果并增強對遮擋和較小行人目標的提取能力,基于YOLOv5網絡模型進行改進.引入融合了多頭自注意力機制的模塊,解決了由于目標行人之間互相遮擋導致的部分特征丟失問題,提升了整體網絡性能.在特征融合階段,改進了PANet網絡,增強了對小尺度目標的檢測能力,從而提高小尺度行人的檢測精度.此外,使用Varifocal Loss損失函數替換Varifocal Loss損失,使模型更適用于密集場景中的行人檢測.

實驗結果表明,所提方法在密集場景中的行人檢測方面具有更好的效果,可視為一種有效的檢測方法.然而所提方法的參數量較大,為了進一步提高模型的推理速度,需要在保證準確率的前提下進行網絡輕量化.

猜你喜歡
行人樣本特征
毒舌出沒,行人避讓
用樣本估計總體復習點撥
如何表達“特征”
不忠誠的四個特征
路不為尋找者而設
推動醫改的“直銷樣本”
抓住特征巧觀察
我是行人
隨機微分方程的樣本Lyapunov二次型估計
村企共贏的樣本
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合