?

基于改進YOLOv5s-pose的多人人體姿態估計

2024-01-29 00:31蔣錦華莊麗萍陳錦姚洪澤蔡志明
軟件工程 2024年1期

蔣錦華 莊麗萍 陳錦 姚洪澤 蔡志明

關鍵詞:多人人體姿態檢測;YOLOv5s;雙向特征金字塔網絡;檢測精度

0 引言(Introduction)

深度學習技術在圖像分割、目標檢測等方向取得的一系列突破,促進了多人人體姿態目標檢測算法的進步。

目前,基于深度學習的多人人體姿態檢測方法分為雙階段目標檢測算法和單階段檢測算法,其中針對雙階段目標檢測,如PAPANDREOU 等[1]在第一階段采用FasterR-CNN 檢測人體;在第二階段采用ResNet預測每個關鍵點的熱力圖和偏移量,通過融合得到關鍵點的精確位置。CAO等[2]建立了一個OpenPose檢測器,加快了人體關鍵點的檢測速度。CHENG等[3]提出一種尺度感知的高分辨率網絡(HigherHRNet),通過生成高分辨率熱圖來更精確地定位人體關鍵點。在單階段檢測算法中,NIE等[4]首次提出了單階段的多人姿態估計網絡,可以直接預測每個人的位置和關鍵點。MCNALLY等[5]提出一個密集基于錨的單階段檢測框架,同時檢測關鍵點對象和姿態對象,能夠更加快速地得出檢測結果。

單階段檢測與雙階段檢測相比,檢測速度更快,但準確率相對較低。本研究在單階段檢測的基礎上,進一步提高人體姿態的檢測準確率。在單階段檢測算法中YOLO 系列的YOLOv5s網絡具有計算高效、實時性強等特點,更適合在實際場景中檢測多人人體姿態。因此,本文選擇YOLOv5s網絡作為基準模型。

1 YOLOv5s目標檢測模型(YOLOv5s object detectionmodel)

1.1 YOLOv5s網絡結構

YOLOv5s的結構由四個部分組成:輸入端、Backbone(骨干網絡)、Neck(特征金字塔)和Head(目標檢測)。輸入端調節輸入圖片的尺寸大小,Backbone部分進行特征提取,Neck部分通過將特征與位置信息融合使模型獲得更豐富的特征信息,Head部分進行最終的預測輸出。

Backbone部分使用Darknet53作為特征提取網絡,主要由Focus網絡和CSPNet結構組成。Focus結構對特征圖進行切片操作,使特征圖的長和寬都縮小了1/2,減少了算法的計算量,加快了計算速度[6]。CSPNet結構用于提取輸入圖像特征信息,將梯度變化完全集成到特征圖中,在減少模型參數量的同時,兼顧了推理速度和準確率,能夠更好地解決其他大型卷積神經網絡中的梯度信息冗余問題[7]。

Neck部分使用特征金字塔+路徑聚合(FPN+PAN)結合的PANet結構,特征金字塔的結構為自上而下,該結構使頂層特征圖享受來自底層的特征信息,從而提升對較大目標的檢測效果[8]。

Head的主體是4個Detect檢測器,基于網格的錨框在不同尺度的特征圖,檢測器分別用來檢測大、中、小目標。YOLOv5s網絡結構如圖1所示。

1.2 人體關鍵點檢測過程

檢測基于YOLOv5s目標檢測框架進行多人人體姿態估計,該模型能夠在一次前向傳遞中聯合檢測多個人體邊界框及其相應的2D姿態。對于輸入的圖像,將一個人的所有關鍵點與它對應的目標框聯系起來,存儲其整個2D姿態和邊界框。使用CSP-darknet53作為主干網絡,對人體關鍵點進行特征提取,生成不同尺度的特征圖。使用PANet融合主干網絡輸出的不同尺度特征,生成四個不同尺度的檢測頭。每個檢測頭分別用于預測框和關鍵點。

2 改進后的結構與分析(Improved structure andanalysis)

為了提高YOLOv5s在多人人體姿態中的檢測精度,本研究對模型做出以下改進:(1)對主干網絡進行改進,在主干網絡卷積層后的每一層中都加入CA注意力模塊,再輸出給C3模塊,通過將位置坐標信息嵌入信道注意力中,使移動網絡能夠大范圍關注檢測目標,同時避免產生大量的計算,提高了對人體目標的定位精度,使其能夠抑制其他無用特征,進而更多地關注人體關鍵點這一特征信息。(2)對Neck部分進行改進,在Neck部分的特征連接層模塊中加入一個可學習的權重參數,形成一種簡單且高效的加權雙向特征金字塔網絡(BiFPN),將YOLOv5s原始的Concat替換成新構建的Bifpn_Concat,提升網絡對不同尺度目標的特征融合能力。改進后的YOLOv5spose網絡結構如圖2所示。

2.1 加入CANet模塊

由于待檢測數據集為多人人體目標,存在人體目標被遮擋、實際場景中大小不一且分布疏密不均等問題,為了進一步增強網絡對待檢測目標的特征提取能力且不影響檢測的實時性,又引入了一種更加高效且輕量級的注意力模塊,稱之為“坐標注意力機制”,即CANet[9]。

CANet是對輸入特征圖進行水平方向和垂直方向上的平均池化,其本質是空間注意力,在通道注意力當中嵌入位置信息后,賦予空間中不同位置處不同的權重系數。從空間上來看,類似于從兩個方向對網絡進行建模,對不同的特征進行一個融合再提取的過程。CA的整體結構如圖3所示。

由圖3可知,將輸入特征圖分別按X 軸和Y 軸方向進行池化,對每個通道進行編碼,產生C×H ×1和C×1×W 形狀的特征圖。將所提取到的特征圖按空間維度進行拼接,再通過卷積和Sigmoid激活函數得到坐標注意力。通過這種方式所產生的一對感知特征圖可以使CA注意力能夠在一個通道內捕獲長距離的依賴關系,并且有助于保留精確的位置信息,使網絡能夠更加準確地定位對象。

2.2BiFPN———加權雙向特征金字塔多尺度特征融合

BiFPN是在PANet的基礎上改進而來的。雙向特征金字塔結構(BiFPN)運用雙向融合思想,重新構造了自頂向下和自底向上的路線,對不同尺度的特征信息進行融合,通過上采樣和下采樣統一特征分辨率尺度,并且在同一尺度的特征圖之間建立雙向連接,在一定程度上解決了特征信息遺失的問題[10]。

原始的YOLOv5s網絡中,PANet作為YOLOv5s的特征融合網絡,其結構如圖4(a)所示,雖然可以實現淺層信息的傳遞和高層特征圖強語義信息的融合,但是淺層和高層兩部分融合采用的相加運算并沒有相關的權重設計,而且只有一邊輸入沒有特征融合的節點,冗余節點對特征融合的作用甚微,增加了額外的參數和計算量?;谝陨蠁栴},本文基于BiFPN結構修改YOLOv5s網絡的Neck部分,將Neck部分中PANet的節點連接方式做出部分改變,減少了對網絡特征融合貢獻度較小的不必要連接,增加了輸入節點和輸出節點處于同一層時二者的連接,BiFPN 結構節點連接方式如圖4(b)所示。在YOLOv5s網絡的特征融合部分中,將負責特征信息融合的張量拼接操作結合加權雙向特征金子塔(BiFPN),結合后的張量拼接操作記作Bifpn_Concat,其結構如圖5所示。

BiFPN使用加權特征融合的方式為每個特征添加一個額外的權重。使網絡可以不斷調整權重,確定每個輸入特征對輸出特征的重要性;快速歸一方法如公式(1)所示,用來約束每個權重的大小,使權重大小保持在0~1,提高模型在GPU上的運算速度。

3 實驗結果與分析(Experimental results andanalysis)

3.1 實驗環境與數據集

訓練使用AutoDL云端服務器,在云端服務器上的實驗環境配置如下:操作系統為Ubuntu 18.04、PyTorch 1.9.0框架、CUDA11.1、Python3.8,使用RTX3090顯卡一塊,batch-size設置為64,epoch 為300。訓練和測試時將數據集中的圖像尺寸固定為640×640,學習率為0.01。

本次訓練的數據集為公共數據集MS COCO2017,MSCOCO關鍵點檢測數據集是目前主流的二維人體姿態估計數據集之一,它包含20萬張以上的圖像和25萬個帶有關鍵點注釋的人體實例,每個實例最多包含17個人體關鍵點,并對這些關鍵點進行了標注。在Train2017(約57 000張圖像,包含150 000個人體實例)數據集上進行網絡模型的訓練,在Val2017數據集上進行網絡模型的驗證和測試。

3.2 評價指標

對于COCO數據集,采用官方指定關節點相似度OKS(Object Keypoint Similarity)為模型性能評價的度量方法。OKS 定義了不同人體關鍵點之間的相似性,值為0~1,越接近1,說明預測得到的人體關節點與數據集標注的真實值越相似,預測效果越好,OKS 的公式如下:

其中:i 表示關節點的類型,di 表示檢測出來的關鍵點與其相應的標簽值之間的歐氏距離,s 表示目標比例,vi 表示真實值的可見性標志,δ 函數表示當關鍵點被標注時才納入計算,ki表示控制衰減的每個關鍵點的常數。

本文選用AP、AP75、APM、APL、AR 為評價指標,AP 為OKS=0.50,0.55,…,0.95時,每種檢測類型的準確率,用于預測關鍵點的平均精度值。AP75 為在OKS=0.75時關鍵點的準確率。APM 為中等目標檢測的AP 值,APL 為大目標檢測的AP 值,AR 表示OKS=0.50,0.55,…,0.95這10個閾值上的平均查全率。準確率P、查全率R 的具體計算如公式(3)和公式(4)所示。平均精度值AP 的計算如公式(5)所示:

其中:TP 為正樣本被正確識別為正樣本的數量,FP 為負樣本被錯誤識別為正樣本的數量,FN 為正樣本被錯誤識別為負樣本的數量,N 為目標的類別數。AP 的意義是P-R 曲線所包圍的面積。

3.3 結果與分析

本實驗比較了原始的YOLOv5s 網絡和改進后的YOLOv5s-CA在人體姿態檢測中的各項精度指標,融合CA模塊前后檢測結果對比見表1。從表1中可以看出,在多人人體姿態檢測中,改進后的YOLOv5s-CA 算法相比于原始的YOLOv5s網絡,AP 指標提升了0.6%,AP75 指標提升了1.1%,中等人體目標的準確率APM 提升了0.3%,大目標的準確率提升了0.8%。由此說明:在YOLOv5s的主干特征提取網絡中加入CA坐標注意力機制模塊能提升人體姿態關鍵點的檢測精度。

在上述改進的基礎上,本研究引入雙向特征金字塔網絡(BiFPN),進一步改進YOLOv5s網絡的頸部(Neck)結構,將改進后的檢測效果與原始的YOLOv5s進行對比,結果如表2所示。從表2中的數據可以發現,平均精度AP 提升了0.5%,AP75 指標提升了1.5%,中等人體目標的準確率APM 提升了0.8%;在改進CA注意力機制的基礎上,AP75 指標的檢測精度又提升了0.4%。實驗證明,在YOLOv5s的網絡模型中融入BiFPN模塊以改進原來的PANet,可以進一步提升人體目標和人體關鍵點的檢測精度。

圖6與圖7分別為YOLOv5s-pose算法改進前和改進后的檢測效果對照,對比圖6(a)與圖7(a)的檢測效果可以看出,改進后的算法應用于多人人體姿態關鍵點檢測,檢測結果更準確。如圖6(a)所示,原始的YOLOv5s-pose網絡存在關鍵點對應人體姿態錯亂現象,如圖7(a)所示,改進后的YOLOv5spose網絡在關鍵點及對應人體姿態目標上的檢測精度有所提升。從圖6(b)中的檢測效果可以看出,當人體目標被遮擋,只有部分人體部位顯示時,改進前的YOLOv5s-pose網絡存在人體目標漏檢的情況,對于小目標人體,關鍵點及人體姿態檢測精度較低,檢測效果較差。對比圖6(b)與圖7(b)的檢測效果可以看出,改進后的YOLOv5s-pose網絡能夠較好地檢測出被遮擋部分的人體目標及其對應的人體姿態。此外,對于檢測小目標的人體姿態,改進后的網絡的檢測效果更佳。

4 結論(Conclusion)

本文提出了一種基于YOLOv5s網絡改進的多人人體姿態檢測算法,為了提升模型在COCO人體姿態數據集中的檢測精度,對模型進行了改進。首先在主干網絡中通過融入CA坐標注意力機制模塊提升主干網絡部分對人體關鍵點的特征提取能力,其次基于BiFPN結構在Neck部分對原始網絡進行優化改進,增強了不同目標尺度的融合度,進一步提升了模型對多人人體姿態目標的檢測能力。實驗結果表明,本文提出的方法在人體姿態COCO數據集中的檢測能力更強,在面對部分人體被遮擋時,算法的魯棒性更好,檢測精度更高。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合