黃友 張娜 包曉安
摘 要: 由于背景復雜和人體容易被遮擋等情況的發(fā)生,導致人體骨架關鍵點的定位精度不高。針對這一問題,本文提出一種基于改進級聯(lián)金字塔網(wǎng)絡的人體骨架提取算法。該算法將注意力模塊加入到級聯(lián)金字塔特征提取網(wǎng)絡的每一個殘差塊之后,根據(jù)特征圖的不同部分和不同特征圖的重要性程度分配不同的權重。同時將原來級聯(lián)金字塔網(wǎng)絡的2次上采樣操作改為一次,以減少上采樣過程中產(chǎn)生的冗余背景特征。實驗結(jié)果表明:該算法可以較好地改善原CPN網(wǎng)絡在遮擋、背景復雜等情況下定位不精準的問題。
關鍵詞: 級聯(lián)金字塔網(wǎng)絡; 注意力機制; 多層次特征提取; 特征融合; 困難關鍵點挖掘; 目標關鍵點相似度
文章編號: 2095-2163(2021)07-0054-06中圖分類號:TP391.41文獻標志碼: A
Human skeleton extraction algorithm based on improved cascaded pyramid network
HUANG You, ZHANG Na, BAO Xiao'an
(School of Informatics Science and Technology,? Zhejiang Sci-Tech University, Hangzhou 310018, China )
【Abstract】Due to the complex background and the easy occlusion of the human body, the positioning accuracy of the key points of the human skeleton is not high. Aiming at this problem, this paper proposes a human skeleton extraction algorithm based on an improved cascaded pyramid network. The algorithm adds the attention module to each residual block of the cascaded pyramid feature extraction network, and assigns different weights according to different parts of the feature map and the importance of different feature maps. At the same time, the two upsampling operations of the original cascaded pyramid network are changed to one to reduce the redundant background features generated in the upsampling process. Experimental results show that the algorithm can better improve the problem of inaccurate positioning in the original CPN network under occlusion and complex background conditions.
【Key words】cascaded pyramid network; attention mechanism; multi-level feature extraction; feature fusion; hard keypoints mining; object keypoint similarity
0 引 言
人體骨架提取(也被稱為人體骨架關鍵點檢測)算法主要是檢測人體的鼻子、左右眼、左右耳、左右肩、左右手肘、左右手腕、左右臀、左右膝、左右腿等關鍵點,使用這些關鍵點描述人體的骨架信息[1]。人體骨架關鍵點檢測算法被廣泛應用在人機交互、智能視頻監(jiān)控、智能安防、行為識別、任務跟蹤和步態(tài)識別等領域[2]。
早期的基于人體骨架的行為識別方法主要是通過手工設計特征的方式來對行為進行表征[3]。然而,這些手工特征只在一些特定的數(shù)據(jù)集上表現(xiàn)良好,可能無法遷移到其它數(shù)據(jù)集上,不具有普適性[4]。隨著深度學習的出現(xiàn),一些使用基于深度神經(jīng)網(wǎng)絡對人體骨架進行行為識別的方法越來越受到人們的歡迎[5]。
基于深度學習的人體骨架關鍵點檢測算法主要有2個方向。一種是自上而下,一種是自下而上。自上而下的人體骨架關鍵點檢測算法主要包含2個部分:人體目標檢測和單人人體骨架關鍵點檢測[6]。首先通過目標檢測算法將人體目標檢測出來,然后在此基礎上對單個人做人體骨架關鍵點檢測,其中代表性算法有G-RMI[7]、CFN[8]、RMPE[9]、Mask R-CNN[10]和 CPN[11]。目前,自上而下的人體骨架關鍵點檢測算法在MSCOCO數(shù)據(jù)集上最好的檢測精度是72.6%。自下而上的人體骨架關鍵點檢測算法也包含2個部分:關鍵點檢測和關鍵點聚類[12]。首先需要將圖片中所有的關鍵點都檢測出來,然后根據(jù)關鍵點之間的關系對所有的關鍵點進行聚類得到不同的個體,其中對關鍵點之間關系進行建模的代表性算法有PAF[13]、Associative Embedding[14]、Part Segmentation[15]和Mid-Range offsets[16]。自下而上的人體骨架關鍵點檢測算法目前在MSCOCO數(shù)據(jù)集上最好的檢測精度是68.7%。
自上而下的人體骨架提取方法定位精度比自下而上的方法高,但是該方法比較依賴檢測到的人體目標框。由于圖片中人體容易被遮擋和干擾[17],導致對人體關鍵點的定位精度不高。針對這一問題,本文提出一種基于改進級聯(lián)金字塔網(wǎng)絡的人體骨架提取算法。該算法將注意力模塊加入到級聯(lián)金字塔的特征提取網(wǎng)絡中,通過模型學習對不同的特征信息分配權重系數(shù)。以增強網(wǎng)絡對重要特征信息的關注同時減弱無用的復雜背景特征信息,進而提高對遮擋的人體關鍵點的定位精度。同時將原級聯(lián)金字塔網(wǎng)絡的2次上采樣過程改為一次,以減少在上采樣過程中產(chǎn)生的背景特征。
1 相關研究
1.1 級聯(lián)金字塔網(wǎng)絡
級聯(lián)金字塔網(wǎng)絡(Cascaded Pyramid Network, CPN)網(wǎng)絡包括2個部分:粗略檢測關鍵點的GlobalNet網(wǎng)絡和微調(diào)RefineNet網(wǎng)絡,其網(wǎng)絡結(jié)構(gòu)如圖1所示。GlobalNet網(wǎng)絡使用殘差網(wǎng)絡提取多尺度特征圖,通過特征金字塔網(wǎng)絡融合多尺度特征圖,實現(xiàn)對人體關鍵點的初步定位。RefineNet網(wǎng)絡以沙漏網(wǎng)絡為基礎,對由GlobalNet網(wǎng)絡檢測的關鍵點中損失較大的關鍵點進行修正,進而實現(xiàn)對人體關鍵點的精確定位。
GlobalNet網(wǎng)絡采用ResNet50殘差網(wǎng)絡提取多層次的特征,再使用FPN對這些多尺度特征進行融合,利用L2損失函數(shù)計算關鍵點定位損失。采用Resnet50的第3、7、13和16個Bottleneck塊的輸出作為多尺度特征圖,分別記為C_2, C_3, C_4和C_5。對每一層特征圖,利用一個3×3的卷積濾波層去生成一組熱力圖,每張熱力圖對應一個關鍵點,分別記為H_2,H_3,H_4和H_5。
這些特征圖中,淺層特征圖具有較高的空間分辨率,但是其中包含的語義信息較少,而深層特征圖具有較多的語義信息,但是空間分辨率較低。單一層的特征圖無法兼顧空間分辨率和較多的語義信息,故采用FPN網(wǎng)絡來對這些特征圖進行融合,使得融合后的特征圖中既包含豐富的語義信息,同時也包含由于不斷降采樣而丟失的底層細節(jié)信息。FPN通過對底層特征進行上采樣,再與上層特征進行融合,實現(xiàn)淺層特征與深層特征之間的融合,實際上是淺層特征生成的熱力圖與深層特征生成的熱力圖之間的融合。利用L2損失函數(shù)計算這些生成的熱力圖與真實關鍵點坐標生成的熱力圖之間的誤差,根據(jù)誤差對網(wǎng)絡進行訓練。
GlobalNet網(wǎng)絡對于一些簡單的、可見的、容易檢測的關鍵點(比如眼睛)的定位精度較高,可是對于一些隱藏的關鍵點(比如臀部)的定位精度較低。對于這些難以檢測的關鍵點的定位通常需要利用更多的語義信息,單獨使用GlobalNet網(wǎng)絡無法直接識別這些“困難”關鍵點。
RefineNet網(wǎng)絡就是為了處理這些“困難”關鍵點,RefineNet接收來自GlobalNet網(wǎng)絡提取的多層次特征,對于不同層的特征圖后加入不同數(shù)量的Bottleneck殘差模塊進一步提取更深層的特征,再對這些特征圖進行上采樣并通過concat層把這些信息拼接起來。這樣就綜合利用了FPN所有層的特征,可以獲取到更多的語義信息。
而隨著網(wǎng)絡訓練的進行,網(wǎng)絡會更傾向于關注可見的“簡單”關鍵點,但是其重要性不及“困難”關鍵點。因此,網(wǎng)絡需要在兩者的關注之間取得一個平衡。為此,RefineNet采用帶有在線困難關鍵點挖掘(Online Hard Keypoints Mining, OHKM)的L2函數(shù)作為計算關鍵點預測損失函數(shù),根據(jù)訓練損失顯式地選擇“困難”關鍵點,并且只對這些“困難”關鍵點反向傳播梯度進行訓練。
1.2 注意力機制
注意力機制(Convolutional Block Attention Module, CBAM)[18]是通過學習對圖像不同特征信息和不同特征層分配權重系數(shù),以便能夠強調(diào)對學習目標有用的信息抑制無用的信息。注意力模塊一般可分為通道注意力模塊和空間注意力模塊兩部分,兩者的側(cè)重點不同。
通道注意力模塊是通過池化操作學習每個通道的重要性程度,將輸入特征圖分別經(jīng)過最大池化和平均池化,之后用多層感知機(Multilayer Perceptron, MLP)進行學習,將學習的結(jié)果疊加之后經(jīng)過sigmoid函數(shù)激活得到通道注意力(如圖2左半部分所示)??臻g注意力模塊是學習特征圖中不同位置對于學習目標的重要性程度,將輸入特征圖經(jīng)過最大池化和平均池化后,將二者的輸出按照第一維度進行拼接,再經(jīng)過一個3×3的卷積層,之后經(jīng)過sigmoid函數(shù)激活得到空間注意力(如圖2右半部分所示)。
2 本文設計
CPN網(wǎng)絡是一種自上而下的關鍵點定位算法,需要先檢測到人體目標框再對人體目標做單人骨架關鍵點定位。由于圖像背景復雜,會導致檢測到的[CM(22]人體存在遮擋和干擾等情況,進而影響到被遮擋的
關鍵點的定位準確度。同時在原CPN網(wǎng)絡中,采取了2次上采樣操作,而上采樣操作會帶來更多的背景特征。
針對檢測到的人體被遮擋問題,本文提出了一種基于改進CPN的人體骨架提取算法。該算法是將CBAM加入到CPN網(wǎng)絡中,其網(wǎng)絡模型結(jié)構(gòu)如圖3所示。采用在ResNet50網(wǎng)絡的第3、7、13和16個Bottleneck塊的輸出之后分別加入CBAM模塊,CBAM可以在不改變網(wǎng)絡的整體架構(gòu)的基礎上作用于深淺不同的多層次特征圖上。通過不同的權重分配使網(wǎng)絡能夠著重學習有用的特征而抑制無用的特征,也即是加強對關鍵點的特征圖的關注而減少對復雜背景的關注。這樣可以較好地提高復雜背景下人體關鍵點的定位精度。
針對上采樣過程中產(chǎn)生的冗余背景特征問題,本文采用將2次上采樣修改為一次。具體實現(xiàn)過程為對經(jīng)過CBAM處理之后的多層次特征圖進行上采樣,其中特征圖由淺到深分別上采樣的倍數(shù)為1、2、4和8。
再對經(jīng)過上采樣之后的特征圖進行融合,使得融合之后的特征圖中既包含豐富的語義信息,同時也包含由于不斷降采樣而丟失的底層細節(jié)信息。
3 實驗結(jié)果及分析
本文實驗所用的計算機配置如下:CPU為Intel(R) Xeon(R) Silver 4110 CPU @ 2.10 GHz;GPU為15 G NVIDIA Corporation TU104GL [Tesla T4]顯卡;主頻為4.00 GHz;系統(tǒng)為CentOS 7.7。采用Python3.6作為編程語言,深度學習框架選取Pytorch1.4.0。
3.1 實驗數(shù)據(jù)集
為評估本節(jié)所設計算法的性能,采用COCO數(shù)據(jù)集進行實驗驗證。COCO數(shù)據(jù)集對人體的17個骨架關鍵點進行標注,共計有58 945張圖片,有15 K個標記的人物,有171 K個標記的關鍵點。由于數(shù)據(jù)集中一部分圖像的質(zhì)量不高,采用圖像標準化、隨機調(diào)整亮度和對比度等操作對圖像進行處理,改善圖像的視覺效果,使得圖像能夠更適合分析和處理的需求。
采用其中44 208張包含人體骨架關鍵點標注信息的圖片作為實驗訓練集,其余的14 737張圖片作為實驗測試集。同時選用在實際場景下采集的幾張圖片驗證本文改進算法的性能。
3.2 性能評價指標
人體骨架關鍵點檢測算法的預測值無法與真實值一一對應,不能像分類問題那樣采用一些常用指標(如:精度、召回率等)進行性能評價。因此,需要構(gòu)建一個合適的人體骨架關鍵點相似度的度量指標,以此來判斷某個關鍵點的預測是否正確,從而評價算法的優(yōu)劣。目前,最常用的就是OKS(Object Keypoint Similarity)指標,這個指標啟發(fā)于目標檢測中的IoU指標。其計算公式如下:
其中,OKSp表示圖像中第p個人的相似度指標;p為人工標注的真實人體的編號;i為人體骨架關鍵點的編號;dpi為第p個人的第i個關鍵點的預測位置與真實位置之間的歐氏距離;Sp為第p個人的尺度因子,定義為此人在人工標注框中所占面積的平方根;σi是第i個骨架關鍵點的歸一化因子,是通過對已有的數(shù)據(jù)集中這個關鍵點的計算標準差得到的。該值越大,表示這個關鍵點越難標注;值越小,表示這個關鍵點越容易標注;vpi為第p個人的第i個關鍵點的狀態(tài); δ(vpi=1)為克羅內(nèi)克函數(shù),即只有被標注為可見的人體骨架關鍵點(vpi=1)才計入評價指標,其計算公式如下:
由公式(2)可知,2個關鍵點之間的相似度取值在[0, 1]之間。選定一個閾值t后,通過將圖中第p個人的相似度值(即OKSp)與t作比較。如果當前的OKSp大于t,那就說明當前這個人的骨架關鍵點成功檢測出來了,并且檢測對了。如果小于t,則說明檢測失敗或者誤檢漏檢。再統(tǒng)計圖中所有人的OKS,計算其中大于t的比值。該比值是閾值為t時的人體骨架關鍵點檢測算法的平均精度(Average Precesion, AP),其計算公式如下:
最后再根據(jù)不同的閾值t,計算平均值,即為mAP(mean Average Precesion)。一般情況下閾值是在[0.5, 0.95]的范圍內(nèi)以0.05為步長遞增選取,mAP計算公式為:
3.3 模型參數(shù)設置
本節(jié)設計算法設置網(wǎng)絡輸入圖像大小為256×192(寬×高),利用公開數(shù)據(jù)集ImageNet的預訓練參數(shù)進行模型初始化,利用Adam優(yōu)化器優(yōu)化學習率,進而調(diào)整網(wǎng)絡的參數(shù)。訓練的批次大小為16,max_epoch為12。這里采用預熱(warm up)學習率策略,學習率在前500次迭代中線性增加至初始學習率0.001,之后在epoch7和epoch10的時候衰減為之前的1/3。
3.4 實驗結(jié)果及分析
為了驗證本文提出的改進CPN網(wǎng)絡對人體骨架關鍵點的檢測精度優(yōu)于原CPN網(wǎng)絡,使用COCO數(shù)據(jù)集進行訓練并做對比試驗。采用平均準確率mAP、閾值為0.5,0.75的平均準確率AP@0.5和AP@0.75、中等尺度目標的平均準確率APM和大尺度目標的平均準確率APL作為對比指標,試驗結(jié)果如圖4所示。從圖4中可以看出,本節(jié)提出的改進的CPN網(wǎng)絡的mAP為73.2,相較于原CPN網(wǎng)絡提高了1.8。而且在其他閾值及不同尺度目標情況下的AP也都有一定的提升。
為了進一步分析在網(wǎng)絡的不同位置添加CBAM模塊對人體關鍵點檢測精度的影響,分別采用在ResNet50網(wǎng)絡的第3、7、13和16個Bottleneck塊的輸出之后加入CBAM模塊以及只在ResNet50網(wǎng)絡的16個Bottleneck塊的輸出之后加入CBAM模塊進行對比試驗。同樣地,采用平均準確率mAP、閾值為0.5,0.75的平均準確率AP@0.5和AP@0.75、中等尺度目標的平均準確率APM和大尺度目標的平均準確率APL作為對比指標,試驗結(jié)果如圖5所示。從圖5中可以看出,采用在ResNet50網(wǎng)絡的第3、7、13和16個Bottleneck塊的輸出之后加入CBAM模塊的mAP為73.2,相較于只在ResNet50網(wǎng)絡的16個Bottleneck塊的輸出之后加入CBAM模塊提高了0.9,而且在其他閾值及不同尺度目標情況下的AP也都有一定的提升。
同時為了驗證本節(jié)提出的改進CPN網(wǎng)絡對人體骨架關鍵點的檢測精度優(yōu)于當前主要的關鍵點檢測方法,選取當前主流的關鍵點檢測方法做對比試驗。主要有CMU-Pose、Mask R-CNN、G-RMI和PersonLab,其中CMU-Pose和PersonLab是自底向上的方法,Mask R-CNN和G-RMI是自頂向下的方法。實驗結(jié)果如圖6所示。從圖6中可以看出,本文提出的改進CPN網(wǎng)絡對關鍵點的定位精度明顯優(yōu)于CMU-Pose和PersonLab,較同類方法Mask R-CNN和G-RMI也有一定的提高。
為了驗證本文設計的算法在不同背景情況下的檢測效果,選取在影院復雜背景情況中的一張單人圖片和一張多人圖片分別在有無遮擋情況下做實驗進行檢測。對人體的17個不同的關鍵點用不同的顏色進行標記,并將有聯(lián)系的關鍵點用直線連接起來。檢測結(jié)果如圖7所示。從圖7中可以看出,不管是單人圖片、還是多人圖片的關鍵點檢測精度都很高。在遮擋情況下,也能很好地定位人體的關鍵點。
4 結(jié)束語
本文提出了一種基于改進CPN的人體骨架關鍵點檢測算法,采用在ResNet50網(wǎng)絡的第3、7、13和16個Bottleneck塊的輸出之后加入CBAM模塊,以提高在遮擋和復雜背景情況下人體關鍵點的定位精度。研究中,為了減少在上采樣過程中產(chǎn)生的冗余背景特征,將原CPN的2次上采樣過程改為一次。通過實驗可知,本文設計的算法的人體關鍵點定位精度比原CPN高,同時在遮擋情況下,也能對人體關鍵點進行精確定位。由于在原CPN模型中加入了CBAM,會增加模型的參數(shù)量和計算量。后期的研究方向是在不影響模型定位精度的基礎上,減少模型的參數(shù)量,提高網(wǎng)絡的運行速度。
參考文獻
[1]郭天曉, 胡慶銳, 李建偉, 等. 基于人體骨架特征編碼的健身動作識別方法[J]. 計算機應用,2021,41(5):1458-1464.
[2]田志強, 鄧春華, 張俊雯. 基于骨骼時序散度特征的人體行為識別算法[J]. 計算機應用,2021,41(5):1450-1457.
[3]蔡強, 鄧毅彪, 李海生, 等. 基于深度學習的人體行為識別方法綜述[J]. 計算機科學, 2020, 47(4): 85-93.
[4] 邊緣, 孔小瑩, 張莉, 等. 基于卷積神經(jīng)網(wǎng)絡的植物葉片樹種識別研究與實現(xiàn)[J]. 智能計算機與應用, 2020, 10(10): 23-26.
[5]李揚志, 袁家政, 劉宏哲. 基于時空注意力圖卷積網(wǎng)絡模型的人體骨架動作識別算法[J]. 計算機應用,2021,41(7):1915-1921.
[6]CAO Z, SIMON T, WEI S E, et al. Realtime multi-person 2d pose estimation using part affinity fields[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu,HI,USA:IEEE,2017: 7291-7299.
[7]CHEN L C, HERMANS A, PAPANDREOU G, et al. Masklab: Instance segmentation by refining object detection with semantic and direction features[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, USA:IEEE, 2018: 4013-4022.
[8]LI Jiahao, LI Bin, XU Jizheng, et al. Fully connected network-based intra prediction for image coding[J]. IEEE Transactions on Image Processing, 2018, 27(7): 3236-3247.
[9]FANG Haoshu, XIE Shuqin, TAI Y W, et al. Rmpe: Regional multi-person pose estimation[C]//Proceedings of the IEEE International Conference on Computer Vision.Venice:IEEE, 2017: 2353-2362.
[10]HE K, GKIOXARI G, DOLLR P, et al. Mask r-cnn[C]//Proceedings of the IEEE International Conference on Computer Vision. Venice:IEEE,2017: 2961-2969.
[11]CHEN Yilun, WANG Zhicheng, PENG Yuxiang, et al. Cascaded pyramid network for multi-person pose estimation[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Salt Lake City,UT:IEEE, 2018: 7103-7112.
[12]SUN Ke, XIAO Bin, LIU Dong, et al. Deep high-resolution representation learning for human pose estimation[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition.Long Beach, CA, USA:IEEE, 2019: 5693-5703.
[13]CAO Z, HIDALGO G, SIMON T, et al. OpenPose: realtime multi-person 2D pose estimation using Part Affinity Fields[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019, 43(1): 172-186.
[14]YU Zehao, ZHENG Jia, LIAN Dongze, et al. Single-image piece-wise planar 3d reconstruction via associative embedding[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition.Long Beach, CA, USA:IEEE, 2019: 1029-1037.
[15]XIA Fangting, WANG Peng, CHEN Xianjie, et al. Joint multi-person pose estimation and semantic part segmentation[C]// Proceedings of the IEEE conference on computer vision and pattern recognition.? Honolulu, HI, USA:IEEE,2017: 6769-6778.
[16]PAPANDREOU G, ZHU T, CHEN L C, et al. Personlab: Person pose estimation and instance segmentation with a bottom-up, part-based, geometric embedding model[M]//FERRARI V, HEBERT M, SMINCHISESCU C, et al. Computer Vision-ECCV 2018. Lecture Notes in Computer Science. Cham:Springer,2018,11218:282-299.
[17]葉飛, 劉子龍. 基于改進YOLOv3算法的行人檢測研究[J]. 電子科技, 2021, 34(1): 5-9,30.
[18]WOO S, PARK J, LEE J Y, et al. Cbam: Convolutional block attention module[M]//FERRARI V, HEBERT M, SMINCHISESCU C, ET AL. Computer Vision-ECCV 2018. Lecture Notes in Computer Science. Cham:Springer, 2018, 11211: 3-19.
基金項目: 國家自然科學基金(620705014;1); 浙江省自然科學基金青年基金(LQ20F050010); 浙江省重點研發(fā)計劃項目(2020C03094)。
作者簡介: 黃? 友(1995-),男,碩士研究生,主要研究方向:圖像處理、深度學習; 張 娜(1977-),女,副教授,主要研究方向:智能信息處理;包曉安(1973-),男,教授,主要研究方向:軟件測試、智能信息處理。
通訊作者: 包曉安Email: baoxiaoan@zstu.edu.cn
收稿日期: 2021-03-24