林怡雪,高尚,王光彩,劉曉欣,范迪
(山東科技大學(xué),青島266590)
人體骨骼關(guān)鍵點(diǎn)的定位是人機(jī)交互、智能安防、虛擬現(xiàn)實(shí)和行為識(shí)別等領(lǐng)域的重要部分[1]。人體關(guān)鍵點(diǎn)定位方法可分成兩個(gè)類別:基于傳統(tǒng)模型的方法和基于深度學(xué)習(xí)的方法[2]。傳統(tǒng)的人體關(guān)鍵點(diǎn)定位方法主要基于可變形組件模型(Deformable Part Model,DPM)[3,4],實(shí)現(xiàn)對人體部件的探測、結(jié)構(gòu)化分類及預(yù)測。在人體部件探測過程中,需要手動(dòng)設(shè)計(jì)SIFT[5]、HOG[6]等算子提取低級(jí)特征并進(jìn)行聚合。因此其最終預(yù)測結(jié)果會(huì)受前期手動(dòng)提取特征的局限而不能達(dá)到令人滿意的效果。
近年來,深度學(xué)習(xí)逐漸成為主流方法,它能夠克服傳統(tǒng)方法中存在的不足。2014 年Toshev 等人提出的DeepPose[7],直接利用神經(jīng)網(wǎng)絡(luò)回歸關(guān)鍵點(diǎn)坐標(biāo),但因人體姿勢變化靈活,場景復(fù)雜,因此很難預(yù)測準(zhǔn)確。針對這一問題,Jain 等人提出了一種用熱力圖(heatmap)表示關(guān)鍵點(diǎn)的方法,其模型結(jié)合了卷積網(wǎng)絡(luò)和圖模型兩部分,前者提取特征,后者則學(xué)習(xí)空間關(guān)系[8]。后來Tompson 等人提出了一種全卷積的網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN)模型來學(xué)習(xí)熱力圖[9],并進(jìn)一步改進(jìn)為利用多分支的級(jí)聯(lián)(cascade)網(wǎng)絡(luò)優(yōu)化定位效果[10]。2016 年Nellwell 提出了一種經(jīng)典的堆疊沙漏網(wǎng)絡(luò)(Stacked Hourglass Network)模型[11],通過重復(fù)堆疊的上采樣下采樣和中間監(jiān)督,將不同尺度的特征聯(lián)系起來。
自然場景下多人的人體關(guān)鍵點(diǎn)定位更具挑戰(zhàn)。Insafutdinov 等人提出DeepCut[12],用全連接圖(Fully Connected Graph)中的整數(shù)線性規(guī)劃(Integer Linear Program,ILP)解決分配問題,后續(xù)他又在此基礎(chǔ)上加入ResNet[13],改進(jìn)并提出DeeperCut[14]網(wǎng)絡(luò)。OpenPose[15]引入關(guān)節(jié)引力場(Part Affinity Fields,PAF)使網(wǎng)絡(luò)的準(zhǔn)確率和速度均有提升。Mask R-CNN[16]通過多任務(wù)網(wǎng)絡(luò)同時(shí)檢測人體位置和預(yù)測關(guān)鍵點(diǎn)。Fang 等人提出的局部多人姿態(tài)估計(jì)(Regional Multi-person Pose Estimation,RMPE)方法可以減輕錯(cuò)誤的人體檢測結(jié)果帶來的影響[17]。2018 年微軟提出的Simple Baseline[18]方法利用簡單的網(wǎng)絡(luò)結(jié)構(gòu)就能達(dá)到較高性能。2019 年中科大和微軟亞洲研究院聯(lián)合發(fā)布的HRNet(High Resolution Net)[19]利用并行結(jié)構(gòu)保持高分辨率,一舉打破了COCO關(guān)鍵點(diǎn)定位比賽的三項(xiàng)紀(jì)錄。從算法策略上看,可以把多人關(guān)鍵點(diǎn)定位網(wǎng)絡(luò)分為自底向上和自頂向下兩類。前者先定位出圖片中的所有關(guān)鍵點(diǎn)然后再進(jìn)行聚類,如文獻(xiàn)[12,14,15],后者先檢測圖片中的人再定位其關(guān)鍵點(diǎn),如文獻(xiàn)[16,17,18,19]。
然而自頂向下方法的效果對人體檢測框依賴比較重,圖片中的遮擋、干擾、復(fù)雜背景等容易使結(jié)果產(chǎn)生較大誤差。針對這一問題,本文在特征金字塔網(wǎng)絡(luò)的基礎(chǔ)上引入注意力模塊,通過權(quán)重分配使網(wǎng)絡(luò)著重學(xué)習(xí)有用特征,以提高網(wǎng)絡(luò)對關(guān)鍵點(diǎn)定位的精度。本文所設(shè)計(jì)的方法通過COCO 數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),從實(shí)驗(yàn)結(jié)果看,本文加入注意力模型后的CPN,相較于原網(wǎng)絡(luò)而言,其平均準(zhǔn)確率和平均召回率均有所提升,在單人、多人、干擾復(fù)雜、嚴(yán)重遮擋等情況下均獲得了很好的定位結(jié)果。從與當(dāng)前主要關(guān)鍵點(diǎn)定位算法對比實(shí)驗(yàn)看,本文算法的定位準(zhǔn)確率或精度較對比方法有一定提升。
骨骼關(guān)鍵點(diǎn)的定位主要是通過對圖片像素點(diǎn)進(jìn)行預(yù)測打分,以確定最有可能為關(guān)鍵點(diǎn)的位置。本文所提出算法的框架是在CPN(Cascaded Pyramid Network)[20]的基礎(chǔ)上加入CBAM(Convolutional Block Attention Module)[21]注意力模型機(jī)制,以提高網(wǎng)絡(luò)輸出的準(zhǔn)確率。本文網(wǎng)絡(luò)模型如圖1 所示。
CPN 的基礎(chǔ)骨架網(wǎng)絡(luò)為ResNet-50。ResNet-50利用數(shù)個(gè)瓶頸塊(bottleneck)為特征金字塔提供不同深度的特征信息。而CPN 通過分別在其中的第3、7、13、16 個(gè)bottleneck 塊后輸出提取的信息并進(jìn)行融合,由于其輸出特征尺寸逐漸由大變小而命名為特征金字塔網(wǎng)絡(luò)。之后,不同大小的特征通過上采樣統(tǒng)一尺寸,并被拼接層(concat layer)以第一維度(即通道方向)組合到一起,其中由淺到深各層上采樣的倍數(shù)分別為1、2、4和8。
注意力模型CBAM 被加入到ResNet-50 最深層的bottleneck 之后。此結(jié)構(gòu)可以在不改變整個(gè)網(wǎng)絡(luò)整體架構(gòu)的基礎(chǔ)上,通過特征金字塔的逐層上采樣網(wǎng)絡(luò)作用在深淺不同的特征信息上。本文網(wǎng)絡(luò)輸出圖片中的每一個(gè)像素點(diǎn)是骨骼關(guān)鍵點(diǎn)的預(yù)測概率,并組成熱力圖,之后由soft-argmax 函數(shù)將熱力圖轉(zhuǎn)換為關(guān)鍵點(diǎn)的數(shù)值坐標(biāo)并輸出。
關(guān)鍵點(diǎn)定位基礎(chǔ)框架采用CPN 級(jí)聯(lián)金字塔網(wǎng)絡(luò)。CPN 網(wǎng)絡(luò)是一種自頂向下的人體關(guān)鍵點(diǎn)定位網(wǎng)絡(luò),它以人體檢測網(wǎng)絡(luò)的輸出為輸入,經(jīng)過網(wǎng)絡(luò)處理定位骨骼關(guān)鍵點(diǎn)。CPN 網(wǎng)絡(luò)包括兩部分:前期粗略檢測關(guān)鍵點(diǎn)的GlobalNet 網(wǎng)絡(luò)和微調(diào)網(wǎng)絡(luò)RefineNet,其結(jié)構(gòu)如圖2 所示。
圖1 引入注意力模型的CPN網(wǎng)絡(luò)
圖2 CPN特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)
淺層特征在空間上具有較高的分辨率,但是語義上包含的信息量較少;深層特征語義上包含的信息較多,但空間分辨率較低。GlobalNet 利用網(wǎng)絡(luò)結(jié)構(gòu)將這兩者結(jié)合,它利用骨架網(wǎng)絡(luò)ResNet 中的瓶頸塊提取信息,每經(jīng)過一層處理,特征圖的大小減半,而通道數(shù)增加兩倍。在經(jīng)過特征提取后,GlobalNet 將底層特征進(jìn)行上采樣,然后與上層特征疊加,實(shí)現(xiàn)淺層特征和深層特征融合。經(jīng)過GlobalNet 的學(xué)習(xí),網(wǎng)絡(luò)已經(jīng)能夠基于外觀特征預(yù)測出一些容易定位的關(guān)鍵點(diǎn)位置(如眼睛),但是另外一些需要基于上下文信息的定位,則需要后面的RefineNet 進(jìn)行預(yù)測。
RefineNet 接收GlobalNet 輸出的特征,并通過concat 層把這些信息拼合起來。同時(shí)RefineNet 在不同大小的特征信息后面加入了不同個(gè)數(shù)的bottleneck 塊進(jìn)一步細(xì)化提取信息。RefineNet 利用L2 損失作為監(jiān)督,通過減小預(yù)測值與真實(shí)值之間的歐氏距離,重點(diǎn)學(xué)習(xí)那些難以學(xué)習(xí)到的關(guān)鍵點(diǎn)(如遮擋)。通過微調(diào),網(wǎng)絡(luò)可以在較小尺度的空間上達(dá)到效率和性能的平衡。
為了幫助計(jì)算機(jī)理解圖像,現(xiàn)代深度學(xué)習(xí)網(wǎng)絡(luò)常常會(huì)加入注意力機(jī)制,其本質(zhì)是通過對圖像特征信息分配權(quán)重系數(shù),來強(qiáng)調(diào)對于學(xué)習(xí)目標(biāo)有用的重要位置,而抑制某些無關(guān)緊要的信息。對于已有人體關(guān)鍵點(diǎn)定位網(wǎng)絡(luò)而言,精度受限制的一個(gè)重要原因是受到復(fù)雜背景和遮擋的干擾。對于相距很近甚至緊挨的兩個(gè)人,人體檢測框無法完全將兩人區(qū)分開。注意力模型能很好地解決這個(gè)問題。
本文為了提高CPN 網(wǎng)絡(luò)模型的預(yù)測精準(zhǔn)度,在骨架網(wǎng)絡(luò)ResNet-50 的最深層bottleneck 后加入了注意力機(jī)制CBAM 模塊,組成新的ResNet 模塊,其模型架構(gòu)如圖3 所示。
圖3 CBAM注意力機(jī)制模型
圖3 注意力模塊可分為通道注意力(channel attention)和空間注意力(spatial attention)兩部分。其中通道注意力通過池化操作學(xué)習(xí)每個(gè)通道的重要度,從而對每個(gè)通道分配不同的權(quán)重。經(jīng)過全局最大池化和平均池化后進(jìn)入多層感知機(jī)(Multilayer Perceptron,MLP)進(jìn)行學(xué)習(xí),學(xué)習(xí)結(jié)果疊加后得到通道注意力。
空間注意力的輸入為經(jīng)過通道注意力加權(quán)的特征圖,它學(xué)習(xí)特征圖譜中各個(gè)位置對于需要估計(jì)點(diǎn)的重要性程度。分別經(jīng)過最大池化和平均池化后,將二者按照第一維度進(jìn)行拼接,之后通過一個(gè)大小為3×3 的卷積,最終生成空間注意力。
由于CBAM 中卷積操作都對原特征圖進(jìn)行了填充(padding),因此輸出不改變特征大小,從而加強(qiáng)了此模塊的可移植性,可以在不改變骨架結(jié)構(gòu)的基礎(chǔ)上插入網(wǎng)絡(luò)。
本文方法主要在COCO[22]數(shù)據(jù)集上進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和評(píng)估。此數(shù)據(jù)集包括143k 多張圖片。其中有訓(xùn)練集圖片118288 張,驗(yàn)證集圖片5000 張以及測試集圖片20288 張。COCO 數(shù)據(jù)集中關(guān)于人物的標(biāo)注有250k 例,共有多達(dá)1700k 個(gè)人物骨骼關(guān)鍵點(diǎn)。COCO的標(biāo)簽有17 個(gè)關(guān)鍵點(diǎn)位置坐標(biāo),分別為鼻子、左右眼、左右耳、左右肩部、左右手肘、左右手腕、左右臀部、左右膝蓋和左右腳踝。
實(shí)驗(yàn)平臺(tái)是NVIDIA RTX 2070 顯卡服務(wù)器及Anaconda 環(huán)境。網(wǎng)絡(luò)輸入的圖片大小統(tǒng)一為256×128 像素,并經(jīng)過隨機(jī)裁剪及翻轉(zhuǎn)進(jìn)行數(shù)據(jù)增強(qiáng)。模型利用公開數(shù)據(jù)集ImageNet[23]的預(yù)訓(xùn)練模型進(jìn)行權(quán)值初始化。實(shí)驗(yàn)過程中,利用Adam[24]優(yōu)化器進(jìn)行梯度下降,初始學(xué)習(xí)率設(shè)為5×10-4,每經(jīng)過6 輪訓(xùn)練,學(xué)習(xí)率減半。
COCO 官方評(píng)價(jià)方法沿用了類似目標(biāo)檢測的相似度度量方法,即平均準(zhǔn)確率(Average Precision,AP)和平均召回率(Average Recall,AR)并對之做了一定調(diào)整,使其適應(yīng)關(guān)鍵點(diǎn)的評(píng)估。
COCO 數(shù)據(jù)集采用OKS(Object Keypoint Similarity)作為關(guān)鍵點(diǎn)相似度度量的指標(biāo),以此來判斷某個(gè)點(diǎn)的預(yù)測是否準(zhǔn)確,計(jì)算公式如下:
上式中OKSp表示圖片中第p 個(gè)人的相似度指標(biāo),其中i 表示骨骼關(guān)鍵點(diǎn)的編號(hào);dpi為第p 個(gè)人的第i個(gè)關(guān)鍵點(diǎn)的預(yù)測位置與真實(shí)位置之間的歐氏距離;sp為人體p 的尺度因子,定義為人體框面積的平方根;σi是人體骨骼關(guān)鍵點(diǎn)的歸一化因子,由人工標(biāo)注位置偏移的標(biāo)準(zhǔn)差計(jì)算得到;vpi為第p 人的第i 個(gè)關(guān)鍵點(diǎn)的狀態(tài),δ()為克羅內(nèi)克函數(shù),即只有被標(biāo)注為可見的人體骨骼關(guān)鍵點(diǎn)(v=1)才計(jì)入評(píng)價(jià)指標(biāo),其公式如下:
由式(1)可知,兩個(gè)關(guān)鍵點(diǎn)間的相似度取值在[0,1]之間。選定一個(gè)閾值t 后,通過將圖上一點(diǎn)p 的相似度值即OKSp與t 作比較,可以判斷p 是否預(yù)測準(zhǔn)確。因此測試集上的平均準(zhǔn)確率(AP@t)為:
平均準(zhǔn)確率的均值A(chǔ)P 運(yùn)用廣泛,它表示在給定閾值在[0.5,0.95]的范圍內(nèi)以0.05 為步長遞增下的平均準(zhǔn)確率的平均值,其計(jì)算公式如下:
本文選取當(dāng)前主要的關(guān)鍵點(diǎn)定位方法進(jìn)行對比測試。實(shí)驗(yàn)在COCO 數(shù)據(jù)集上進(jìn)行訓(xùn)練并在其test-dev中進(jìn)行測試對比。對比實(shí)驗(yàn)的網(wǎng)絡(luò)有CMU-Pose[25]、Mask R-CNN[8]、G-RMI[26]、PersonLab[27],以及CPN[20]。其中CMU-Pose[25]為2016 年的COCO 人體關(guān)鍵點(diǎn)定位比賽的冠軍。評(píng)價(jià)指標(biāo)采用AP、AR;閾值為0.5,0.75 的AP、AR;以及其在中型目標(biāo)下的(APm,ARm)、大目標(biāo)下的(APl,ARl)。
圖4 本文改進(jìn)的CPN 網(wǎng)絡(luò)及原CPN 的實(shí)驗(yàn)對比結(jié)果。由圖4 可知,本文改進(jìn)CPN 網(wǎng)絡(luò)的AP 和AR分別可達(dá)到72.3 和78.3,與原CPN 網(wǎng)絡(luò)相比分別提高了0.7 和0.3。且在其他閾值及大中目標(biāo)下的評(píng)價(jià)指標(biāo)也均有所提升。
圖4 本文改進(jìn)網(wǎng)絡(luò)與原CPN的比較
圖5 是與CMU-Pose、Mask R-CNN、G-RMI、PersonLab 的對比實(shí)驗(yàn)結(jié)果。由圖5 可看到,本文的網(wǎng)絡(luò)在定位準(zhǔn)確率上的表現(xiàn)明顯優(yōu)于自底向上的方法如CMU-Pose 和較新的算法PersonLab;較同類自頂向下的算法G-RMI 和Mask R-CNN,本文方法在精度上也有一定程度的提高。
圖5 本文方法與當(dāng)前主流算法在COCO數(shù)據(jù)集上的比較
圖6 為本文網(wǎng)絡(luò)在不同條件下的實(shí)驗(yàn)效果。圖中人體的17 個(gè)關(guān)鍵點(diǎn)分別用不同顏色的點(diǎn)標(biāo)識(shí),并將相關(guān)聯(lián)的點(diǎn)用彩色線條兩兩連接。結(jié)果表明,該網(wǎng)絡(luò)不僅能夠在單人圖片如(a)、(d)、(g)中表現(xiàn)良好,且能在多人圖片的復(fù)雜干擾情況如(b)、(c)、(e)、(f)中獲得不錯(cuò)的效果。其中(c)、(g)包含小尺寸人體圖片,(b)、(e)有嚴(yán)重遮擋,(b)、(d)包含圖片中關(guān)鍵點(diǎn)不全的情況,都能很好的定位關(guān)鍵點(diǎn)。
圖6 本文方法在不同條件下的測試效果
針對現(xiàn)有人體關(guān)鍵點(diǎn)檢測網(wǎng)絡(luò)在多人情況下因遮擋等干擾導(dǎo)致準(zhǔn)確率低的問題,本文提出了一種改進(jìn)CPN 的人體關(guān)鍵點(diǎn)定位算法,在原網(wǎng)絡(luò)中引入了注意力模型CBAM,很好地發(fā)揮了CPN 特征金字塔網(wǎng)絡(luò)對深層和淺層的融合,以及注意力模塊分配權(quán)重學(xué)習(xí)有用信息的優(yōu)勢,提高了關(guān)鍵點(diǎn)定位的準(zhǔn)確性。通過實(shí)驗(yàn)對比表明,本文方法比較好地改善了原CPN 網(wǎng)絡(luò)及當(dāng)前方法在遮擋、干擾、背景復(fù)雜等情況下檢測不準(zhǔn)的問題,實(shí)現(xiàn)了平均準(zhǔn)確率和平均召回率均的提升。后續(xù)可以重點(diǎn)解決網(wǎng)絡(luò)的輕量化問題,在不影響準(zhǔn)確率的基礎(chǔ)上減少參數(shù),提高運(yùn)行速度。