蔣錦華 莊麗萍 陳錦 姚洪澤 蔡志明
關(guān)鍵詞:多人人體姿態(tài)檢測(cè);YOLOv5s;雙向特征金字塔網(wǎng)絡(luò);檢測(cè)精度
0 引言(Introduction)
深度學(xué)習(xí)技術(shù)在圖像分割、目標(biāo)檢測(cè)等方向取得的一系列突破,促進(jìn)了多人人體姿態(tài)目標(biāo)檢測(cè)算法的進(jìn)步。
目前,基于深度學(xué)習(xí)的多人人體姿態(tài)檢測(cè)方法分為雙階段目標(biāo)檢測(cè)算法和單階段檢測(cè)算法,其中針對(duì)雙階段目標(biāo)檢測(cè),如PAPANDREOU 等[1]在第一階段采用FasterR-CNN 檢測(cè)人體;在第二階段采用ResNet預(yù)測(cè)每個(gè)關(guān)鍵點(diǎn)的熱力圖和偏移量,通過融合得到關(guān)鍵點(diǎn)的精確位置。CAO等[2]建立了一個(gè)OpenPose檢測(cè)器,加快了人體關(guān)鍵點(diǎn)的檢測(cè)速度。CHENG等[3]提出一種尺度感知的高分辨率網(wǎng)絡(luò)(HigherHRNet),通過生成高分辨率熱圖來更精確地定位人體關(guān)鍵點(diǎn)。在單階段檢測(cè)算法中,NIE等[4]首次提出了單階段的多人姿態(tài)估計(jì)網(wǎng)絡(luò),可以直接預(yù)測(cè)每個(gè)人的位置和關(guān)鍵點(diǎn)。MCNALLY等[5]提出一個(gè)密集基于錨的單階段檢測(cè)框架,同時(shí)檢測(cè)關(guān)鍵點(diǎn)對(duì)象和姿態(tài)對(duì)象,能夠更加快速地得出檢測(cè)結(jié)果。
單階段檢測(cè)與雙階段檢測(cè)相比,檢測(cè)速度更快,但準(zhǔn)確率相對(duì)較低。本研究在單階段檢測(cè)的基礎(chǔ)上,進(jìn)一步提高人體姿態(tài)的檢測(cè)準(zhǔn)確率。在單階段檢測(cè)算法中YOLO 系列的YOLOv5s網(wǎng)絡(luò)具有計(jì)算高效、實(shí)時(shí)性強(qiáng)等特點(diǎn),更適合在實(shí)際場(chǎng)景中檢測(cè)多人人體姿態(tài)。因此,本文選擇YOLOv5s網(wǎng)絡(luò)作為基準(zhǔn)模型。
1 YOLOv5s目標(biāo)檢測(cè)模型(YOLOv5s object detectionmodel)
1.1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5s的結(jié)構(gòu)由四個(gè)部分組成:輸入端、Backbone(骨干網(wǎng)絡(luò))、Neck(特征金字塔)和Head(目標(biāo)檢測(cè))。輸入端調(diào)節(jié)輸入圖片的尺寸大小,Backbone部分進(jìn)行特征提取,Neck部分通過將特征與位置信息融合使模型獲得更豐富的特征信息,Head部分進(jìn)行最終的預(yù)測(cè)輸出。
Backbone部分使用Darknet53作為特征提取網(wǎng)絡(luò),主要由Focus網(wǎng)絡(luò)和CSPNet結(jié)構(gòu)組成。Focus結(jié)構(gòu)對(duì)特征圖進(jìn)行切片操作,使特征圖的長和寬都縮小了1/2,減少了算法的計(jì)算量,加快了計(jì)算速度[6]。CSPNet結(jié)構(gòu)用于提取輸入圖像特征信息,將梯度變化完全集成到特征圖中,在減少模型參數(shù)量的同時(shí),兼顧了推理速度和準(zhǔn)確率,能夠更好地解決其他大型卷積神經(jīng)網(wǎng)絡(luò)中的梯度信息冗余問題[7]。
Neck部分使用特征金字塔+路徑聚合(FPN+PAN)結(jié)合的PANet結(jié)構(gòu),特征金字塔的結(jié)構(gòu)為自上而下,該結(jié)構(gòu)使頂層特征圖享受來自底層的特征信息,從而提升對(duì)較大目標(biāo)的檢測(cè)效果[8]。
Head的主體是4個(gè)Detect檢測(cè)器,基于網(wǎng)格的錨框在不同尺度的特征圖,檢測(cè)器分別用來檢測(cè)大、中、小目標(biāo)。YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
1.2 人體關(guān)鍵點(diǎn)檢測(cè)過程
檢測(cè)基于YOLOv5s目標(biāo)檢測(cè)框架進(jìn)行多人人體姿態(tài)估計(jì),該模型能夠在一次前向傳遞中聯(lián)合檢測(cè)多個(gè)人體邊界框及其相應(yīng)的2D姿態(tài)。對(duì)于輸入的圖像,將一個(gè)人的所有關(guān)鍵點(diǎn)與它對(duì)應(yīng)的目標(biāo)框聯(lián)系起來,存儲(chǔ)其整個(gè)2D姿態(tài)和邊界框。使用CSP-darknet53作為主干網(wǎng)絡(luò),對(duì)人體關(guān)鍵點(diǎn)進(jìn)行特征提取,生成不同尺度的特征圖。使用PANet融合主干網(wǎng)絡(luò)輸出的不同尺度特征,生成四個(gè)不同尺度的檢測(cè)頭。每個(gè)檢測(cè)頭分別用于預(yù)測(cè)框和關(guān)鍵點(diǎn)。
2 改進(jìn)后的結(jié)構(gòu)與分析(Improved structure andanalysis)
為了提高YOLOv5s在多人人體姿態(tài)中的檢測(cè)精度,本研究對(duì)模型做出以下改進(jìn):(1)對(duì)主干網(wǎng)絡(luò)進(jìn)行改進(jìn),在主干網(wǎng)絡(luò)卷積層后的每一層中都加入CA注意力模塊,再輸出給C3模塊,通過將位置坐標(biāo)信息嵌入信道注意力中,使移動(dòng)網(wǎng)絡(luò)能夠大范圍關(guān)注檢測(cè)目標(biāo),同時(shí)避免產(chǎn)生大量的計(jì)算,提高了對(duì)人體目標(biāo)的定位精度,使其能夠抑制其他無用特征,進(jìn)而更多地關(guān)注人體關(guān)鍵點(diǎn)這一特征信息。(2)對(duì)Neck部分進(jìn)行改進(jìn),在Neck部分的特征連接層模塊中加入一個(gè)可學(xué)習(xí)的權(quán)重參數(shù),形成一種簡單且高效的加權(quán)雙向特征金字塔網(wǎng)絡(luò)(BiFPN),將YOLOv5s原始的Concat替換成新構(gòu)建的Bifpn_Concat,提升網(wǎng)絡(luò)對(duì)不同尺度目標(biāo)的特征融合能力。改進(jìn)后的YOLOv5spose網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
2.1 加入CANet模塊
由于待檢測(cè)數(shù)據(jù)集為多人人體目標(biāo),存在人體目標(biāo)被遮擋、實(shí)際場(chǎng)景中大小不一且分布疏密不均等問題,為了進(jìn)一步增強(qiáng)網(wǎng)絡(luò)對(duì)待檢測(cè)目標(biāo)的特征提取能力且不影響檢測(cè)的實(shí)時(shí)性,又引入了一種更加高效且輕量級(jí)的注意力模塊,稱之為“坐標(biāo)注意力機(jī)制”,即CANet[9]。
CANet是對(duì)輸入特征圖進(jìn)行水平方向和垂直方向上的平均池化,其本質(zhì)是空間注意力,在通道注意力當(dāng)中嵌入位置信息后,賦予空間中不同位置處不同的權(quán)重系數(shù)。從空間上來看,類似于從兩個(gè)方向?qū)W(wǎng)絡(luò)進(jìn)行建模,對(duì)不同的特征進(jìn)行一個(gè)融合再提取的過程。CA的整體結(jié)構(gòu)如圖3所示。
由圖3可知,將輸入特征圖分別按X 軸和Y 軸方向進(jìn)行池化,對(duì)每個(gè)通道進(jìn)行編碼,產(chǎn)生C×H ×1和C×1×W 形狀的特征圖。將所提取到的特征圖按空間維度進(jìn)行拼接,再通過卷積和Sigmoid激活函數(shù)得到坐標(biāo)注意力。通過這種方式所產(chǎn)生的一對(duì)感知特征圖可以使CA注意力能夠在一個(gè)通道內(nèi)捕獲長距離的依賴關(guān)系,并且有助于保留精確的位置信息,使網(wǎng)絡(luò)能夠更加準(zhǔn)確地定位對(duì)象。
2.2BiFPN———加權(quán)雙向特征金字塔多尺度特征融合
BiFPN是在PANet的基礎(chǔ)上改進(jìn)而來的。雙向特征金字塔結(jié)構(gòu)(BiFPN)運(yùn)用雙向融合思想,重新構(gòu)造了自頂向下和自底向上的路線,對(duì)不同尺度的特征信息進(jìn)行融合,通過上采樣和下采樣統(tǒng)一特征分辨率尺度,并且在同一尺度的特征圖之間建立雙向連接,在一定程度上解決了特征信息遺失的問題[10]。
原始的YOLOv5s網(wǎng)絡(luò)中,PANet作為YOLOv5s的特征融合網(wǎng)絡(luò),其結(jié)構(gòu)如圖4(a)所示,雖然可以實(shí)現(xiàn)淺層信息的傳遞和高層特征圖強(qiáng)語義信息的融合,但是淺層和高層兩部分融合采用的相加運(yùn)算并沒有相關(guān)的權(quán)重設(shè)計(jì),而且只有一邊輸入沒有特征融合的節(jié)點(diǎn),冗余節(jié)點(diǎn)對(duì)特征融合的作用甚微,增加了額外的參數(shù)和計(jì)算量?;谝陨蠁栴},本文基于BiFPN結(jié)構(gòu)修改YOLOv5s網(wǎng)絡(luò)的Neck部分,將Neck部分中PANet的節(jié)點(diǎn)連接方式做出部分改變,減少了對(duì)網(wǎng)絡(luò)特征融合貢獻(xiàn)度較小的不必要連接,增加了輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)處于同一層時(shí)二者的連接,BiFPN 結(jié)構(gòu)節(jié)點(diǎn)連接方式如圖4(b)所示。在YOLOv5s網(wǎng)絡(luò)的特征融合部分中,將負(fù)責(zé)特征信息融合的張量拼接操作結(jié)合加權(quán)雙向特征金子塔(BiFPN),結(jié)合后的張量拼接操作記作Bifpn_Concat,其結(jié)構(gòu)如圖5所示。
BiFPN使用加權(quán)特征融合的方式為每個(gè)特征添加一個(gè)額外的權(quán)重。使網(wǎng)絡(luò)可以不斷調(diào)整權(quán)重,確定每個(gè)輸入特征對(duì)輸出特征的重要性;快速歸一方法如公式(1)所示,用來約束每個(gè)權(quán)重的大小,使權(quán)重大小保持在0~1,提高模型在GPU上的運(yùn)算速度。
3 實(shí)驗(yàn)結(jié)果與分析(Experimental results andanalysis)
3.1 實(shí)驗(yàn)環(huán)境與數(shù)據(jù)集
訓(xùn)練使用AutoDL云端服務(wù)器,在云端服務(wù)器上的實(shí)驗(yàn)環(huán)境配置如下:操作系統(tǒng)為Ubuntu 18.04、PyTorch 1.9.0框架、CUDA11.1、Python3.8,使用RTX3090顯卡一塊,batch-size設(shè)置為64,epoch 為300。訓(xùn)練和測(cè)試時(shí)將數(shù)據(jù)集中的圖像尺寸固定為640×640,學(xué)習(xí)率為0.01。
本次訓(xùn)練的數(shù)據(jù)集為公共數(shù)據(jù)集MS COCO2017,MSCOCO關(guān)鍵點(diǎn)檢測(cè)數(shù)據(jù)集是目前主流的二維人體姿態(tài)估計(jì)數(shù)據(jù)集之一,它包含20萬張以上的圖像和25萬個(gè)帶有關(guān)鍵點(diǎn)注釋的人體實(shí)例,每個(gè)實(shí)例最多包含17個(gè)人體關(guān)鍵點(diǎn),并對(duì)這些關(guān)鍵點(diǎn)進(jìn)行了標(biāo)注。在Train2017(約57 000張圖像,包含150 000個(gè)人體實(shí)例)數(shù)據(jù)集上進(jìn)行網(wǎng)絡(luò)模型的訓(xùn)練,在Val2017數(shù)據(jù)集上進(jìn)行網(wǎng)絡(luò)模型的驗(yàn)證和測(cè)試。
3.2 評(píng)價(jià)指標(biāo)
對(duì)于COCO數(shù)據(jù)集,采用官方指定關(guān)節(jié)點(diǎn)相似度OKS(Object Keypoint Similarity)為模型性能評(píng)價(jià)的度量方法。OKS 定義了不同人體關(guān)鍵點(diǎn)之間的相似性,值為0~1,越接近1,說明預(yù)測(cè)得到的人體關(guān)節(jié)點(diǎn)與數(shù)據(jù)集標(biāo)注的真實(shí)值越相似,預(yù)測(cè)效果越好,OKS 的公式如下:
其中:i 表示關(guān)節(jié)點(diǎn)的類型,di 表示檢測(cè)出來的關(guān)鍵點(diǎn)與其相應(yīng)的標(biāo)簽值之間的歐氏距離,s 表示目標(biāo)比例,vi 表示真實(shí)值的可見性標(biāo)志,δ 函數(shù)表示當(dāng)關(guān)鍵點(diǎn)被標(biāo)注時(shí)才納入計(jì)算,ki表示控制衰減的每個(gè)關(guān)鍵點(diǎn)的常數(shù)。
本文選用AP、AP75、APM、APL、AR 為評(píng)價(jià)指標(biāo),AP 為OKS=0.50,0.55,…,0.95時(shí),每種檢測(cè)類型的準(zhǔn)確率,用于預(yù)測(cè)關(guān)鍵點(diǎn)的平均精度值。AP75 為在OKS=0.75時(shí)關(guān)鍵點(diǎn)的準(zhǔn)確率。APM 為中等目標(biāo)檢測(cè)的AP 值,APL 為大目標(biāo)檢測(cè)的AP 值,AR 表示OKS=0.50,0.55,…,0.95這10個(gè)閾值上的平均查全率。準(zhǔn)確率P、查全率R 的具體計(jì)算如公式(3)和公式(4)所示。平均精度值A(chǔ)P 的計(jì)算如公式(5)所示:
其中:TP 為正樣本被正確識(shí)別為正樣本的數(shù)量,F(xiàn)P 為負(fù)樣本被錯(cuò)誤識(shí)別為正樣本的數(shù)量,F(xiàn)N 為正樣本被錯(cuò)誤識(shí)別為負(fù)樣本的數(shù)量,N 為目標(biāo)的類別數(shù)。AP 的意義是P-R 曲線所包圍的面積。
3.3 結(jié)果與分析
本實(shí)驗(yàn)比較了原始的YOLOv5s 網(wǎng)絡(luò)和改進(jìn)后的YOLOv5s-CA在人體姿態(tài)檢測(cè)中的各項(xiàng)精度指標(biāo),融合CA模塊前后檢測(cè)結(jié)果對(duì)比見表1。從表1中可以看出,在多人人體姿態(tài)檢測(cè)中,改進(jìn)后的YOLOv5s-CA 算法相比于原始的YOLOv5s網(wǎng)絡(luò),AP 指標(biāo)提升了0.6%,AP75 指標(biāo)提升了1.1%,中等人體目標(biāo)的準(zhǔn)確率APM 提升了0.3%,大目標(biāo)的準(zhǔn)確率提升了0.8%。由此說明:在YOLOv5s的主干特征提取網(wǎng)絡(luò)中加入CA坐標(biāo)注意力機(jī)制模塊能提升人體姿態(tài)關(guān)鍵點(diǎn)的檢測(cè)精度。
在上述改進(jìn)的基礎(chǔ)上,本研究引入雙向特征金字塔網(wǎng)絡(luò)(BiFPN),進(jìn)一步改進(jìn)YOLOv5s網(wǎng)絡(luò)的頸部(Neck)結(jié)構(gòu),將改進(jìn)后的檢測(cè)效果與原始的YOLOv5s進(jìn)行對(duì)比,結(jié)果如表2所示。從表2中的數(shù)據(jù)可以發(fā)現(xiàn),平均精度AP 提升了0.5%,AP75 指標(biāo)提升了1.5%,中等人體目標(biāo)的準(zhǔn)確率APM 提升了0.8%;在改進(jìn)CA注意力機(jī)制的基礎(chǔ)上,AP75 指標(biāo)的檢測(cè)精度又提升了0.4%。實(shí)驗(yàn)證明,在YOLOv5s的網(wǎng)絡(luò)模型中融入BiFPN模塊以改進(jìn)原來的PANet,可以進(jìn)一步提升人體目標(biāo)和人體關(guān)鍵點(diǎn)的檢測(cè)精度。
圖6與圖7分別為YOLOv5s-pose算法改進(jìn)前和改進(jìn)后的檢測(cè)效果對(duì)照,對(duì)比圖6(a)與圖7(a)的檢測(cè)效果可以看出,改進(jìn)后的算法應(yīng)用于多人人體姿態(tài)關(guān)鍵點(diǎn)檢測(cè),檢測(cè)結(jié)果更準(zhǔn)確。如圖6(a)所示,原始的YOLOv5s-pose網(wǎng)絡(luò)存在關(guān)鍵點(diǎn)對(duì)應(yīng)人體姿態(tài)錯(cuò)亂現(xiàn)象,如圖7(a)所示,改進(jìn)后的YOLOv5spose網(wǎng)絡(luò)在關(guān)鍵點(diǎn)及對(duì)應(yīng)人體姿態(tài)目標(biāo)上的檢測(cè)精度有所提升。從圖6(b)中的檢測(cè)效果可以看出,當(dāng)人體目標(biāo)被遮擋,只有部分人體部位顯示時(shí),改進(jìn)前的YOLOv5s-pose網(wǎng)絡(luò)存在人體目標(biāo)漏檢的情況,對(duì)于小目標(biāo)人體,關(guān)鍵點(diǎn)及人體姿態(tài)檢測(cè)精度較低,檢測(cè)效果較差。對(duì)比圖6(b)與圖7(b)的檢測(cè)效果可以看出,改進(jìn)后的YOLOv5s-pose網(wǎng)絡(luò)能夠較好地檢測(cè)出被遮擋部分的人體目標(biāo)及其對(duì)應(yīng)的人體姿態(tài)。此外,對(duì)于檢測(cè)小目標(biāo)的人體姿態(tài),改進(jìn)后的網(wǎng)絡(luò)的檢測(cè)效果更佳。
4 結(jié)論(Conclusion)
本文提出了一種基于YOLOv5s網(wǎng)絡(luò)改進(jìn)的多人人體姿態(tài)檢測(cè)算法,為了提升模型在COCO人體姿態(tài)數(shù)據(jù)集中的檢測(cè)精度,對(duì)模型進(jìn)行了改進(jìn)。首先在主干網(wǎng)絡(luò)中通過融入CA坐標(biāo)注意力機(jī)制模塊提升主干網(wǎng)絡(luò)部分對(duì)人體關(guān)鍵點(diǎn)的特征提取能力,其次基于BiFPN結(jié)構(gòu)在Neck部分對(duì)原始網(wǎng)絡(luò)進(jìn)行優(yōu)化改進(jìn),增強(qiáng)了不同目標(biāo)尺度的融合度,進(jìn)一步提升了模型對(duì)多人人體姿態(tài)目標(biāo)的檢測(cè)能力。實(shí)驗(yàn)結(jié)果表明,本文提出的方法在人體姿態(tài)COCO數(shù)據(jù)集中的檢測(cè)能力更強(qiáng),在面對(duì)部分人體被遮擋時(shí),算法的魯棒性更好,檢測(cè)精度更高。