馬明旭,馬宏,宋華偉
(1.鄭州大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,河南 鄭州 450000;2.戰(zhàn)略支援部隊(duì)信息工程大學(xué)信息技術(shù)研究所,河南 鄭州 450000)
隨著計(jì)算機(jī)視覺各個(gè)分支領(lǐng)域的不斷發(fā)展,深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)等技術(shù)的不斷成熟,業(yè)界提出了人體姿態(tài)估計(jì)這一研究方向。姿態(tài)估計(jì)相比于傳統(tǒng)的目標(biāo)檢測,能夠在檢測的過程中提供更多維度、更深層次的人體特征信息,可以實(shí)時(shí)掌握人體二維空間的姿態(tài)和位置變換,為計(jì)算機(jī)視覺的應(yīng)用和人體行為解讀等諸多方向提供了巨大的可拓展性。在城市街道場景中,如十字路口工廠園區(qū)、養(yǎng)老院、醫(yī)院、體育場等公共區(qū)域,經(jīng)常會(huì)發(fā)生一些異常行為(如摔倒、打架斗毆、溺水、區(qū)域入侵等),帶來的影響可能非常嚴(yán)重,因此在發(fā)生異常行為初期,通過監(jiān)控采集和算法分析,由相關(guān)單位提供及時(shí)的響應(yīng)和援助是至關(guān)重要的。通過對人體姿態(tài)估計(jì)的研究,以及充分地理解單個(gè)人或人群在視頻中的交互信息,開發(fā)設(shè)計(jì)一個(gè)能夠滿足工業(yè)應(yīng)用部署的行人姿態(tài)估計(jì)算法,對于公共安全、醫(yī)療監(jiān)護(hù)、安防、虛擬現(xiàn)實(shí)等領(lǐng)域都有著巨大的應(yīng)用價(jià)值。
人體姿態(tài)估計(jì)作為計(jì)算機(jī)視覺中備受關(guān)注的重要任務(wù)之一,也是人類利用計(jì)算機(jī)理解人體動(dòng)作、行為信息的重要一環(huán),近年來逐漸成為了國內(nèi)外學(xué)術(shù)界和工業(yè)應(yīng)用的熱門研究方向。傳統(tǒng)的多人姿態(tài)估計(jì)根據(jù)方法的不同,分為自底向上和自頂向下兩大類[1-2]。自頂向下[3-5]的方式首先通過檢測算法獲得人形輪廓,然后檢測出輪廓內(nèi)的關(guān)鍵點(diǎn),進(jìn)而連接所有關(guān)鍵點(diǎn)獲取人體姿態(tài),這種方式較為直觀,易于理解,骨骼信息提取的精度較高。文獻(xiàn)[6]提出的DeepPose最早將卷積神經(jīng)網(wǎng)絡(luò)(CNN)應(yīng)用于人體關(guān)節(jié)點(diǎn)檢測,將人體姿態(tài)估計(jì)轉(zhuǎn)換為關(guān)節(jié)點(diǎn)回歸問題,并提出了將CNN應(yīng)用于人體關(guān)節(jié)點(diǎn)回歸的方法,將整幅圖像輸入到7層CNN來做關(guān)節(jié)點(diǎn)回歸,更進(jìn)一步,使用級聯(lián)的CNN檢測器來增加關(guān)節(jié)點(diǎn)定位的精確度。AlphaPose[7]是由上海交通大學(xué)研究團(tuán)隊(duì)提出的一種新的區(qū)域多人姿態(tài)估計(jì)(RMPE)框架,能夠?qū)崿F(xiàn)在人體候選框不準(zhǔn)確的情況下進(jìn)行姿態(tài)估計(jì)。自底向上[8-10]的方法需要先檢測出一幅圖像內(nèi)的所有人體部位,然后通過聚類等方法將所有關(guān)鍵點(diǎn)進(jìn)行連接并分組,拼接成每個(gè)人的骨架,這種方法的最大特點(diǎn)是只需對圖片進(jìn)行一次檢測,并且檢測速度不受圖像內(nèi)人數(shù)的影響。文獻(xiàn)[11]提出的OpenPose通過部分親和場(PAFs)的非參數(shù)表示,首次提出了關(guān)聯(lián)分?jǐn)?shù),用學(xué)習(xí)的方法將身體部位與圖像中的個(gè)體關(guān)聯(lián)起來。文獻(xiàn)[9]提出的Higher HRNet通過提高輸出分辨率大幅提升了預(yù)測精度。文獻(xiàn)[12]提出了一種基于流行的YOLOv5[13]目標(biāo)檢測框架的二維多人姿態(tài)估計(jì)算法YOLO-Pose,該算法使用了一種新型的無熱力圖聯(lián)合檢測方法,能夠?qū)崿F(xiàn)端到端的訓(xùn)練并且優(yōu)化目標(biāo)關(guān)鍵點(diǎn)相似度(OKS)指標(biāo),該方法不需要對自底向上的方法進(jìn)行后處理,而是通過將檢測到的關(guān)鍵點(diǎn)分組到一個(gè)框架中,每個(gè)包圍框都包含一個(gè)相關(guān)聯(lián)的姿態(tài),從而實(shí)現(xiàn)關(guān)鍵點(diǎn)的固有分組。除了傳統(tǒng)的二維姿態(tài)估計(jì)[2]外,三維姿態(tài)估計(jì)[14]和視頻流場景下連續(xù)的姿態(tài)估計(jì)也是近期的熱門研究方向。文獻(xiàn)[15]提出了一種雙向交換二維和三維信息的框架,利用單目相機(jī)采集到的視頻信息,該框架能夠估計(jì)出高精度的三維人體姿態(tài)。文獻(xiàn)[16]采用三階段多特征網(wǎng)絡(luò)生成初始姿態(tài)關(guān)節(jié)點(diǎn)數(shù)據(jù),通過自底向上的樹形結(jié)構(gòu)學(xué)習(xí)身體部位之間的空間特征,并將相鄰3幀圖像進(jìn)行融合來保證視頻估計(jì)前后的一致性。
雖然上述算法在某些場景下取得了不錯(cuò)的表現(xiàn),但是在實(shí)際的城市街景中,在待檢測行人目標(biāo)有效面積較小的條件下,檢測精度會(huì)受到嚴(yán)重影響,同時(shí)會(huì)出現(xiàn)較高的漏檢率,且部分算法效率低,無法滿足工業(yè)應(yīng)用的實(shí)時(shí)性要求。導(dǎo)致小目標(biāo)行人檢測困難的主要原因有2個(gè):1)小目標(biāo)標(biāo)注區(qū)域的面積占比少;2)訓(xùn)練數(shù)據(jù)集中小目標(biāo)的實(shí)例少。針對問題1),可通過進(jìn)一步提升神經(jīng)網(wǎng)絡(luò)模型對小目標(biāo)區(qū)域的感興趣程度、加強(qiáng)各層級網(wǎng)絡(luò)所提取到的有用特征信息的有效融合、優(yōu)化錨框(anchor)的聚類手段等方法解決;針對問題2),則需要豐富數(shù)據(jù)集中標(biāo)注目標(biāo)尺度的多樣性,在數(shù)據(jù)層面就聚焦解決小目標(biāo)行人檢測難的問題。
近年來,基于深度學(xué)習(xí)的計(jì)算機(jī)視覺技術(shù)不斷進(jìn)步,針對小目標(biāo)行人檢測問題的優(yōu)化方法層出不窮[17-18]。文獻(xiàn)[17]提出的TPH-YOLOv5將即插即用的注意力模塊(CBAM)集成到Y(jié)OLOv5模型中,幫助網(wǎng)絡(luò)在大區(qū)域覆蓋的圖像中找到感興趣的區(qū)域,同時(shí)增加一個(gè)更小尺度的檢測頭來預(yù)測更小的物體,該文證實(shí)了CBAM模塊能夠注意到更有價(jià)值的目標(biāo)區(qū)域,提升了對小目標(biāo)物體的預(yù)測精度。文獻(xiàn)[19]提出了一種高效的加權(quán)雙向特征金字塔網(wǎng)絡(luò)(BiFPN),通過在同一水平的節(jié)點(diǎn)之間增加一條額外的通道,在不增加太多計(jì)算成本的情況下融合更多尺度的特征信息,該方法改進(jìn)了路徑聚合PANet[20]網(wǎng)絡(luò)結(jié)構(gòu),豐富了特征融合的來源。文獻(xiàn)[21]提出的SIoU Loss[21]考慮到預(yù)測框與真實(shí)框之間的向量角度信息,重新定義了懲罰指標(biāo),證明了SIoU損失函數(shù)能夠提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度和準(zhǔn)確性。文獻(xiàn)[22]通過使用k-means++[23]算法重新聚類錨框,避免聚類中心過近所導(dǎo)致的局部最優(yōu)解問題,提升了目標(biāo)檢測算法的預(yù)測精度,加快了模型的收斂。
針對YOLO-Pose算法在城市街景中對小目標(biāo)行人的預(yù)測效果不佳的問題,本文提出一種基于YOLO-Pose算法改進(jìn)的小目標(biāo)行人姿態(tài)估計(jì)算法YOLO-Pose-CBAM。
YOLO-Pose[12]基于當(dāng)前流行的YOLOv5[13]目標(biāo)檢測算法,使用CSP-darknet53網(wǎng)絡(luò)[24]作為特征提取骨干網(wǎng)絡(luò)(Backbone),使用PANet[20]網(wǎng)絡(luò)融合多尺度特征作為頸部結(jié)構(gòu)(Neck),最后使用4個(gè)不同尺度的解耦頭用于預(yù)測候選框和關(guān)鍵點(diǎn)。YOLO-Pose的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示(彩色效果見《計(jì)算機(jī)工程》官網(wǎng)HTML版,下同)。
圖1 YOLO-Pose網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLO-Pose network structure
輸入的圖像通過CSP-darknet53骨干網(wǎng)絡(luò)產(chǎn)生4種不同尺度的特征圖:p1(80×80),p2(40×40),p3(20×20),p4(10×10),相比于原始的YOLOv5目標(biāo)檢測算法多添加了一個(gè)尺寸的特征圖,通過在更多尺度上采集特征信息,能夠?qū)崿F(xiàn)更好的檢測效果。使用PANet網(wǎng)絡(luò)來融合不同尺度的特征圖,將PANet的輸出作為4個(gè)尺度檢測頭的輸入,傳到每個(gè)檢測頭中的box候選框檢測器和關(guān)鍵點(diǎn)檢測器中。最終使用CIoU[25]損失作為邊界框的監(jiān)督,將IoU的損失概念從邊界框擴(kuò)展到關(guān)鍵點(diǎn),使用OKS作為關(guān)鍵點(diǎn)的IoU,針對特定部位的關(guān)鍵點(diǎn)傾斜重要性,比如耳朵、鼻子、眼睛會(huì)比肩膀、膝蓋、臀部等在像素級別上受到更多的錯(cuò)誤懲罰??倱p失函數(shù)公式如下:
λkptsLkpts+λkpts_confLkpts_conf)
(1)
為了平衡不同規(guī)模之間的損失,超參數(shù)的值設(shè)置為:λcls=0.5,λbox=0.05,λkpts=0.1,λkpts_conf=0.5。
對于每個(gè)邊界框,存儲(chǔ)對應(yīng)的一套姿態(tài)信息,針對每一個(gè)單獨(dú)的關(guān)鍵點(diǎn)計(jì)算OKS指標(biāo),并累加到最終的OKS損失,公式如下:
(2)
其中:OOKS表示OKS指標(biāo);dn代表第n個(gè)關(guān)鍵點(diǎn)預(yù)測和真實(shí)坐標(biāo)的歐氏距離;kn代表關(guān)鍵點(diǎn)的特定權(quán)重;s代表目標(biāo)的比例;δ(vn>0)代表每個(gè)關(guān)鍵點(diǎn)的可見性標(biāo)識。
針對每個(gè)關(guān)鍵點(diǎn)學(xué)習(xí)一個(gè)置信度參數(shù),它表示該關(guān)鍵點(diǎn)對于目標(biāo)人體是否存在,關(guān)鍵點(diǎn)置信度的損失公式為:
Lkpts_conf(s,i,j,k)=
(3)
YOLOv5目標(biāo)檢測算法主要著眼于COCO數(shù)據(jù)集[26]在目標(biāo)檢測上的挑戰(zhàn),其每個(gè)候選框預(yù)測85種元素,包含80個(gè)類別的目標(biāo)分?jǐn)?shù)、邊界框的4個(gè)位置坐標(biāo)和置信度分?jǐn)?shù)。對于YOLO-Pose算法而言,檢測到的一個(gè)人的anchor會(huì)存儲(chǔ)整個(gè)二維姿態(tài)信息和邊界框信息,而它需要檢測的只有人體這一種類別。COCO keypoints人體關(guān)鍵點(diǎn)數(shù)據(jù)集中每個(gè)人體信息使用17個(gè)關(guān)節(jié)點(diǎn)表示,并且每個(gè)關(guān)節(jié)點(diǎn)使用坐標(biāo)和置信度{x,y, conf}確定,也就是對于每個(gè)檢測到人的anchor,關(guān)鍵點(diǎn)頭預(yù)測3×17=51個(gè)元素,候選框頭預(yù)測6個(gè)元素{Cx,Cy,W,H,Bconf,Sconf},其中,Bconf、Sconf表示為候選框和類別的置信度。因此,對于YOLO-Pose預(yù)測到的每個(gè)anchor,所有需要的元素可以表達(dá)為一個(gè)向量,即:
(4)
與自上而下的方法相比,YOLO-Pose對于關(guān)鍵點(diǎn)沒有限制約束其必須在檢測的邊界框內(nèi),因此,如果關(guān)鍵點(diǎn)被遮擋或位于邊界框外,也仍然能被正確識別[13]。但筆者在實(shí)際測試中發(fā)現(xiàn),YOLO-Pose算法對城市街景中較小的行人目標(biāo)不夠敏感,經(jīng)常出現(xiàn)漏檢情況。針對該問題,本文對YOLO-Pose算法模型進(jìn)行了改進(jìn)。
如圖2所示,本文算法主要有以下技術(shù)創(chuàng)新點(diǎn):1)在YOLO-Pose算法的特征提取網(wǎng)絡(luò)中加入CBAM注意力機(jī)制[27],構(gòu)建了一個(gè)全新的特征提取網(wǎng)絡(luò),從通道和空間2個(gè)維度提取更有效的特征信息,增加對小目標(biāo)特征信息的關(guān)注度;2)構(gòu)建跨層級聯(lián)特征融合通道[28],加強(qiáng)淺層特征與深層特征之間的信息交流,進(jìn)一步豐富人體姿態(tài)估計(jì)特征融合的尺度和來源,緩解漏檢和誤檢問題;3)引入SIoU[21]代替CIoU[25],使用真實(shí)框與預(yù)測框之間的向量角度重新定義損失函數(shù),加速收斂并提升預(yù)測的準(zhǔn)確度;4)使用k-means++[23]算法代替k-means算法,規(guī)避初始聚類中心過近的問題。
圖2 改進(jìn)的YOLO-Pose-CBAM網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Improved YOLO-Pose-CBAM network structure
1.2.1 CBAM輕量化注意力模塊的引入
為了解決YOLO-Pose在城市街景中對小目標(biāo)行人不敏感的問題,本文提出改進(jìn)的YOLO-Pose-CBAM算法,提升了算法模型對小目標(biāo)行人的敏感度,同時(shí)增強(qiáng)了姿態(tài)估計(jì)的穩(wěn)定性和可靠性。
文獻(xiàn)[27]提出了一種輕量化的CBAM注意力模塊,它可以同時(shí)在通道和空間2種維度上進(jìn)行Attention操作,能賦予網(wǎng)絡(luò)更大的感受野,使網(wǎng)絡(luò)更關(guān)注識別的物體。同時(shí)其輕量化的設(shè)計(jì),能夠忽略開銷無縫集成到Y(jié)OLO-Pose的架構(gòu)中。本文將CBAM注意力模塊放到每個(gè)檢測頭的前一層,使其從空間和通道2個(gè)維度進(jìn)行注意力特征融合。
CBAM注意力機(jī)制包含了通道注意力模塊(CAM)和空間注意力模塊(SAM),如圖3~圖5所示,給定的中間特征圖的信息沿著通道和空間2個(gè)單獨(dú)的維度依次生成注意力映射。
圖3 CBAM注意力機(jī)制Fig.3 CBAM attention mechanism
如圖4所示,通道注意力模塊將維數(shù)為C×H×W的中間層特征圖作為輸入,使用AvgPool和MaxPool對特征圖進(jìn)行空間維度壓縮后生產(chǎn)2個(gè)通道注意力向量,分別用Favg,c、Fmax,c來表示。隨后將Favg,c、Fmax,c輸入一個(gè)由3層全連接網(wǎng)絡(luò)組成的共享多層感知器W0,并生成2個(gè)維數(shù)為C×1×1的注意力向量,最終將2個(gè)注意力向量相加,通過Sigmoid函數(shù)融合為一個(gè)維度C×1×1的通道注意力向量Mc,如式(5)所示:
圖4 通道注意力模塊Fig.4 Channel attention module
Mc(F)=
σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=
σ(W1(W0(Favg,c))+W1(W0(Fmax,c)))
(5)
如圖5所示,空間注意力模塊將CAM輸出的結(jié)果進(jìn)行MaxPool和AvgPool操作,隨后將得到的2個(gè)1×H×W特征圖進(jìn)行Concat拼接操作,通過7×7卷積將其變?yōu)?×H×W的特征圖,經(jīng)過Sigmoid激活函數(shù)得到SAM的輸出結(jié)果。最終將空間注意力模塊的輸出結(jié)果乘上原特征圖變回C×H×W大小,即為CBAM整體的輸出結(jié)果,如式(6)所示:
圖5 空間注意力模塊Fig.5 Spatial attention module
Ms(F)=
σ(f7×7([AvgPool(F);MaxPool(F)]))=
σ(f7×7([Favg,s;Fmax,s]))
(6)
本文的實(shí)驗(yàn)在引入CBAM注意力機(jī)制的同時(shí),將YOLO-Pose網(wǎng)絡(luò)中的空間金字塔池化(SPP)結(jié)構(gòu)替換為快速SPP(SPPF)結(jié)構(gòu),網(wǎng)絡(luò)模型整體訓(xùn)練速度相較于SPP提升7.67%。將CBAM模塊集成到Y(jié)OLO-Pose的每一個(gè)檢測頭前,使模型的性能得到了較大的提升,對小目標(biāo)行人姿態(tài)估計(jì)的增強(qiáng)尤為明顯。
1.2.2 跨層級聯(lián)的特征融合
在單階段的目標(biāo)檢測器[1]中,骨干網(wǎng)絡(luò)主要負(fù)責(zé)提取數(shù)據(jù)中更復(fù)雜的紋理特征,而頸部網(wǎng)絡(luò)放在骨干網(wǎng)絡(luò)之后,可以更好地利用提取到的特征信息,提升特征的多樣性和魯棒性。YOLO-Pose采用的PANet[20]結(jié)構(gòu)引入了自底向上的路徑,雖然在頸部提取到了較為復(fù)雜的特征信息,但忽略了行人目標(biāo)淺層特征較為明顯這一特性。因此,為進(jìn)一步加強(qiáng)算法對小目標(biāo)行人的特征提取能力,防止有效信息在傳遞過程中丟失,增強(qiáng)網(wǎng)絡(luò)對小目標(biāo)行人的回歸能力,本文對YOLO-Pose的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)。
如圖6所示,本文在骨干網(wǎng)絡(luò)和頸部之間增加2條跨層的級聯(lián)通道[4]。第1條級聯(lián)通道將骨干網(wǎng)絡(luò)中8倍下采樣的特征圖A1∈C×H×W(C、H、W分別代表通道數(shù)、高度和寬度)、頸部上采樣特征圖B1∈(C/2)×H×W、頸部下采樣特征圖C1∈(C/2)×H×W通過Concat拼接操作融合為特征圖M1∈(2×C)×H×W,第2條級聯(lián)通道同理。
圖6 跨層級聯(lián)的特征融合結(jié)構(gòu)Fig.6 Cross layer cascading feature fusion structure
不同通道數(shù)的特征圖融合公式如下:
Mi=Concat(Bi,Ci,Ai)
(7)
通過將淺層網(wǎng)絡(luò)中提取到的原始行人輪廓特征與深層網(wǎng)絡(luò)中提煉的輪廓特征進(jìn)行跨層級聯(lián)融合,加強(qiáng)了淺層特征與深層特征之間的信息交流,使網(wǎng)絡(luò)可以有選擇性地提取特征信息,改善了原網(wǎng)絡(luò)中融合特征來源單一導(dǎo)致的漏檢、誤檢等問題,提升了預(yù)測精度。
1.2.3 SIoU改進(jìn)損失函數(shù)的引入
在YOLO-Pose中,損失函數(shù)中使用CIoU[25]作為邊界框的監(jiān)督指標(biāo)。CIoU Loss公式如下:
(8)
(9)
(10)
其中:CCIoU表示CIoU;IIoU表示IoU;(b,bt)分別表示預(yù)測框和真實(shí)框的中心點(diǎn);ρ2(b,bt)表示預(yù)測框與真實(shí)框中心點(diǎn)的歐氏距離;c表示預(yù)測框與真實(shí)框的最小外接矩形對角線長度;a是權(quán)重函數(shù);v用于衡量預(yù)測框與真實(shí)框的長寬一致性。
在本文算法中,引入了最新的SIoU Loss[21]重新定義了邊界框回歸的定位損失函數(shù)。SIoU相較于CIoU,進(jìn)一步考慮了真實(shí)框和預(yù)測框之間的向量角度,具體包含4個(gè)部分:角度損失,距離損失,形狀損失,IoU損失。SIoU Loss回歸損失函數(shù)公式如下:
(11)
其中:SSIoU表示SIoU。
1)角度損失公式如下:
(12)
(13)
ch=max(bcy,t,bcy)-min(bcy,t,bcy)
(14)
2)距離損失公式如下:
(15)
(16)
γ=2-Λ
(17)
其中:(cw,ch)為預(yù)測框與真實(shí)框最小外接矩陣的寬和高。
3)形狀損失公式如下:
(18)
(19)
其中:(w,h)和(wt,ht)分別為預(yù)測框和真實(shí)框的寬和高;θ負(fù)責(zé)控制對形狀損失的關(guān)注程度,避免過于關(guān)注形狀損失而減少了對預(yù)測框的移動(dòng)。
4)IoU損失公式如下:
(20)
綜上,引入SIoU后的邊界框定位損失函數(shù)定義為:
(21)
1.2.4 k-means++改進(jìn)錨框聚類
k-means算法是一種廣泛使用的聚類算法,在YOLO系列算法中默認(rèn)使用k-means算法聚類COCO數(shù)據(jù)集標(biāo)注的錨框,并且采用遺傳算法在訓(xùn)練的過程中調(diào)整錨框[29]。但k-means算法在正式聚類之前要先初始化k個(gè)聚類中心點(diǎn),k-means存在的巨大缺陷就是收斂情況嚴(yán)重依賴于聚類中心的初始化情況,如果初始點(diǎn)選擇不當(dāng)會(huì)導(dǎo)致精度和效果不佳。
在開展本文算法模型實(shí)驗(yàn)時(shí),首先進(jìn)行數(shù)據(jù)集的構(gòu)建,其次對YOLO-Pose算法進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化和參數(shù)的調(diào)優(yōu),最后對比其他姿態(tài)估計(jì)算法,驗(yàn)證本文算法在城市街道等場景監(jiān)控視頻下的有效性和先進(jìn)性。
COCO keypoints數(shù)據(jù)集[26]是一個(gè)可以用于同時(shí)檢測目標(biāo)并定位其關(guān)鍵點(diǎn)的大規(guī)模數(shù)據(jù)集。COCO keypoints將人體關(guān)鍵點(diǎn)的定義為17個(gè)關(guān)節(jié)點(diǎn),分別為nose、left_eye、right_eye、left_ear、right_ear、left_shoulder、right_shoulder、left_elbow、right_elbow、left_wrist、right_wirst、left_hip、right_hip、left_knee、right_knee、left_ankle、right_ankle。在城市街景環(huán)境中,監(jiān)控?cái)z像頭中的行人目標(biāo)的待檢測區(qū)域往往比較小,且可能出現(xiàn)擁擠的情況,這些場景在MS COCO數(shù)據(jù)集上有67.01%的圖片沒有重疊的人群[30],因此,有必要引入符合應(yīng)用場景的數(shù)據(jù)集作為評判標(biāo)準(zhǔn)。WiderPerson數(shù)據(jù)集[31]是戶外行人檢測基準(zhǔn)數(shù)據(jù)集,圖像選自廣泛的場景,不再局限于單一場景,其多樣化、密集型、室外的特點(diǎn)非常符合小目標(biāo)行人姿態(tài)估計(jì)的應(yīng)用場景。
本文著眼于改進(jìn)YOLO-Pose算法在城市街道等場景中檢測小目標(biāo)行人姿態(tài)的性能,為了驗(yàn)證算法在小目標(biāo)行人姿態(tài)估計(jì)方面的先進(jìn)性,本文通過數(shù)據(jù)采集以及使用標(biāo)注軟件對WiderPerson目標(biāo)檢測數(shù)據(jù)進(jìn)行人體關(guān)鍵點(diǎn)標(biāo)注,得到高質(zhì)量的小目標(biāo)人群數(shù)據(jù)集WiderKeypoints。本文實(shí)驗(yàn)訓(xùn)練和驗(yàn)證數(shù)據(jù)集均為WiderKeypoints,數(shù)據(jù)集概況如表1所示,其中,訓(xùn)練集、驗(yàn)證集、測試集的比例為8∶1∶1。
表1 實(shí)驗(yàn)數(shù)據(jù)集概況Table 1 Overview of experimental datasets 單位:個(gè)
在目標(biāo)檢測任務(wù)中,常見的評價(jià)指標(biāo)有精度、召回率和平均精度均值(mAP)。精度表示預(yù)測中正確的目標(biāo)占全部預(yù)測目標(biāo)的比例,召回率表示所有已標(biāo)注目標(biāo)中模型預(yù)測正確的比例,也稱為查全率。這2個(gè)指標(biāo)的計(jì)算方式如下:
(22)
(23)
其中:P表示精度;R表示召回率;NTP表示被正確劃分為正例的個(gè)數(shù),即實(shí)際為正例且被分類器劃分為正例的實(shí)例數(shù);NFP表示被錯(cuò)誤劃分為正例的個(gè)數(shù),即實(shí)際為負(fù)例但被分類器劃分為正例的實(shí)例數(shù);NFN表示被錯(cuò)誤劃分為負(fù)例的個(gè)數(shù),即實(shí)際為正例但被分類器劃分為負(fù)例的實(shí)例數(shù)。
平均精度均值是P和R這對變量的融合指標(biāo),表示網(wǎng)絡(luò)模型預(yù)測的識別精度,是所有類別平均精度(AP)的均值,如下所示:
(24)
(25)
其中:AAP表示AP;AmAP表示mAP;m代表類別的個(gè)數(shù),在本文中為1(person),此時(shí)mAP等價(jià)于AP。
參考COCO數(shù)據(jù)集中姿態(tài)估計(jì)任務(wù)的判定標(biāo)準(zhǔn),本文使用OKS來測量預(yù)測關(guān)鍵點(diǎn)與真實(shí)關(guān)鍵點(diǎn)之間相似度,實(shí)驗(yàn)的評價(jià)指標(biāo)包括:1)OKS=0.5條件下的預(yù)測平均精度AP50;2)OKS=0.5,0.55,…,0.95這10個(gè)閾值點(diǎn)的模型預(yù)測平均精度均值;3)算法速度(FPS)。
2.3.1 環(huán)境設(shè)置與訓(xùn)練結(jié)果
本文實(shí)驗(yàn)平臺(tái)服務(wù)器配置如表2所示。
表2 實(shí)驗(yàn)平臺(tái)配置Table 2 Experimental platform configuration
本文算法網(wǎng)絡(luò)模型共460層,總參數(shù)量為14 372 140,每秒10億次的浮點(diǎn)運(yùn)算數(shù)(GFLOPs)為19.6,經(jīng)過37.943 h完成300個(gè)epoch訓(xùn)練,模型權(quán)重大小為30 MB。在模型訓(xùn)練的超參數(shù)設(shè)置中,初始學(xué)習(xí)率lr0=0.01,最終學(xué)習(xí)率lrf=0.2,隨機(jī)梯度下降的動(dòng)量momentum=0.937,權(quán)重衰減weight_decay=0.000 5,采用3個(gè)輪次的warmup,共訓(xùn)練300輪,輸入圖像大小為640×640像素。
圖7為本文網(wǎng)絡(luò)模型的訓(xùn)練損失曲線,損失曲線在訓(xùn)練剛開始階段下降幅度較大,在迭代250輪左右時(shí)下降趨勢開始變緩,在迭代300輪后,總體損失函數(shù)值收斂于0.196,相較于YOLO-Pose原損失函數(shù),引入SIoU后改進(jìn)的損失函數(shù)能使網(wǎng)絡(luò)更快收斂,因此,本文網(wǎng)絡(luò)損失函數(shù)改進(jìn)合理。
圖7 損失函數(shù)變化曲線對比Fig.7 Comparison of change curve of loss function
2.3.2 消融實(shí)驗(yàn)
為了進(jìn)一步驗(yàn)證本文算法在小目標(biāo)行人場景下具有更先進(jìn)的檢測效果,使用YOLO-Pose作為基準(zhǔn)模型對網(wǎng)絡(luò)逐步改進(jìn),對于每個(gè)步驟改進(jìn)后的新模型,在融合數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)和測試,得出模型消融實(shí)驗(yàn)結(jié)果,如表3所示。
表3 消融實(shí)驗(yàn)結(jié)果Table 3 Ablation experiment results
2.3.3 不同算法檢測結(jié)果對比
為了進(jìn)一步驗(yàn)證本文算法的有效性和優(yōu)越性,將本文算法和其他算法在相同的數(shù)據(jù)集和實(shí)驗(yàn)環(huán)境下進(jìn)行測試,輸入圖像大小為640×640像素,得到各個(gè)算法的檢測結(jié)果,如表4所示。
表4 不同算法檢測結(jié)果Table 4 Detection results of different algorithms
2.3.4 姿態(tài)估計(jì)檢測效果對比
圖8給出了針對測試集的檢測效果對比,可見YOLO-Pose-CBAM展現(xiàn)出了更高的精度和預(yù)測穩(wěn)定性。如圖8(a)所示,在非特殊場景下,原算法出現(xiàn)骨骼信息丟失,而本文算法對圖中的手部和腿部有更細(xì)節(jié)的表現(xiàn),預(yù)測出的骨骼架構(gòu)更加清晰、準(zhǔn)確;如圖8(b)所示,當(dāng)人體之間存在較多重疊區(qū)域時(shí),原算法出現(xiàn)近半數(shù)目標(biāo)漏檢問題,而本文算法對重疊遮擋有較強(qiáng)的抗干擾能力;如圖8(c)所示,當(dāng)室外人群較密集、視角較低時(shí),原算法對畫面中央遠(yuǎn)端行人的檢測出現(xiàn)丟失情況,相比之下本文算法依舊表現(xiàn)穩(wěn)定??傊?本文算法針對測試集中的小目標(biāo)行人、密集人群等場景都有更優(yōu)異的姿態(tài)估計(jì)效果。
圖8 測試集檢測效果對比Fig.8 Comparison of test set detection effects
針對實(shí)際城市街景的小目標(biāo)行人姿態(tài)估計(jì)對比如圖9所示,可以看出,在圖像邊緣區(qū)域,當(dāng)行人即將走進(jìn)畫面或走出畫面時(shí),目標(biāo)區(qū)域逐漸變小,原算法會(huì)出現(xiàn)一段檢測不到的真空帶,在真空帶出現(xiàn)異常信息漏檢可能會(huì)造成嚴(yán)重的影響。而本文算法能夠在目標(biāo)較遠(yuǎn)、較小的情況下對行人姿態(tài)進(jìn)行精確估計(jì),有助于監(jiān)控安防系統(tǒng)關(guān)注區(qū)域內(nèi)的重點(diǎn)行人信息,在發(fā)生異常行為的初期,提供及時(shí)有效的援助,避免異常事件發(fā)酵成嚴(yán)重的社會(huì)事件。因此,針對城市街景小目標(biāo)行人的場景,改進(jìn)后的網(wǎng)絡(luò)模型預(yù)測精度明顯優(yōu)于原網(wǎng)絡(luò)。
圖9 街景行人檢測效果對比Fig.9 Comparison of pedestrian detection effects in street views
本文提出了一種改進(jìn)YOLO-Pose的人體姿態(tài)估計(jì)算法YOLO-Pose-CBAM。本文的貢獻(xiàn)主要包括:在特征提取網(wǎng)絡(luò)中引入CBAM注意力機(jī)制,建立跨層級聯(lián)的特征融合通道,使用SIoU改進(jìn)損失函數(shù),同時(shí)引入k-means++解決檢測框初始聚類中心的選擇局限性問題,構(gòu)建WiderKeypoints小目標(biāo)行人關(guān)鍵點(diǎn)數(shù)據(jù)集,驗(yàn)證算法有效性。實(shí)驗(yàn)結(jié)果表明,本文提出的算法在檢測速度相近的前提下,提升了對小目標(biāo)行人姿態(tài)的提取和估計(jì)能力,能夠精準(zhǔn)地檢測到戶外攝像頭環(huán)境下的多人人體姿態(tài)信息,實(shí)現(xiàn)穩(wěn)定的姿態(tài)估計(jì)效果。未來將通過對姿態(tài)估計(jì)得到的信息進(jìn)行數(shù)據(jù)分析,結(jié)合目標(biāo)追蹤技術(shù)實(shí)現(xiàn)姿態(tài)追蹤,同時(shí),將引入Tensorrt技術(shù)進(jìn)行網(wǎng)絡(luò)推理加速,以及更深層次地分析人體姿態(tài)的意義。