黃 晨,高 巖
1(華東師范大學 軟件工程學院,上海 200333) 2(華東師范大學 計算機學院,上海 200333)
人體動作識別作為人類行為智能分析領(lǐng)域一項基礎(chǔ)而困難的任務在智能監(jiān)控系統(tǒng)、人機交互[1]、游戲控制和智能機器人等多個領(lǐng)域具有廣泛的應用.人體動作識別就是借助攝像頭或其他傳感器設(shè)備,在復雜背景、不同人群的前提下對人體做出的動作進行快速、準確的識別,而人體姿態(tài)估計是人體動作識別的基礎(chǔ).因此,對人體姿態(tài)估計方法進行研究具有十分重要的現(xiàn)實意義.
人體姿態(tài)估計[2]是將檢測到的如頸,肘和膝等人體關(guān)鍵點聯(lián)系以對人體姿態(tài)進行估計.近年來,隨著深度學習方法的流行,產(chǎn)生了許多基于單人姿態(tài)估計的研究成果,CMU的Yaser Sheikh研究小組提出了卷積姿態(tài)網(wǎng)絡[3](Convolutional Pose Ma-chine,CPM),首次對人體骨架關(guān)鍵點信息顯式建模,通過輸出熱力圖(Heatmap)按Channel尋找最大響應點.同時,由于行人檢測算法的提升,出現(xiàn)了如Faster RCNN[4],YOLO[5]等許多優(yōu)秀的檢測模型,使得多人姿態(tài)估計算法的研究成為主流.按照實現(xiàn)流程的不同,可將多人姿態(tài)估計算法分為自底向上(Bottom-Up)和自頂向下(Top-Down)兩類算法.Bottom-Up類方法是先檢測所有關(guān)鍵點再將關(guān)鍵點按照所屬人體目標進行組裝,最有代表性的當屬2016年COCO比賽冠軍-OpenPose.OpenPose[6]是基于CPM組件來搜索圖像中所有骨架關(guān)鍵點的位置,并采用肢體親和場(Part Affinity Fields,PAF)方法對關(guān)鍵點進行組裝.Top-Down類方法是先進行人體目標檢測,然后將截取的目標分別進行單人姿態(tài)估計.曠視科技提出了CPN網(wǎng)絡[7],其是一種由粗到細(Coarse-to-Fine)的網(wǎng)絡結(jié)構(gòu),充分利用了單人上下文信息.相比Bottom-up類方法,Top-Down類方法有兩點優(yōu)勢:1)對人體目標檢測的召回率更好;2)基于單人目標進行姿態(tài)估計時的關(guān)鍵點準確度更高,但是在人數(shù)較多的時候,Top-Down速度上會處于劣勢,這就需要采用更輕便,高效的人體目標檢測器來提升檢測速度.
本文提出了一種Mobile-YOLOv3人體檢測器和多尺度融合網(wǎng)絡相結(jié)合的Top-Down類多人姿態(tài)估計算法.首先,采用Mobile-YOLOv3作為人體檢測器,將原YOLOv3模型主干網(wǎng)絡中的常規(guī)卷積結(jié)構(gòu)替換為深度可分離卷積結(jié)構(gòu)(Depth-wise Separable Convolutions)以提升人體目標檢測速度.然后以經(jīng)典U型網(wǎng)絡為基礎(chǔ),嵌入了基于通道注意力機制的多尺度特征融合模塊,對融合后的關(guān)鍵特征通道信息進行篩選,提高了姿態(tài)估計準確度.最后在COCO數(shù)據(jù)集上的試驗結(jié)果驗證了文中多人姿態(tài)估計算法的有效性和優(yōu)越性.
編碼-解碼U型網(wǎng)絡[8]包含圖像下采樣編碼和上采樣解碼兩個階段,根據(jù)輸出層和損失函數(shù)的不同,可分別用于語義分割,人體姿態(tài)估計等圖像任務上,網(wǎng)絡模型如圖1所示.
圖1 編碼-解碼U型網(wǎng)絡結(jié)構(gòu)Fig.1 Coding and decoding U-shaped network structure
下采樣編碼階段是通過連續(xù)的堆疊池化層或步長大于1的卷積層來實現(xiàn)圖像特征的提取,越靠近底部的特征尺度越小,語義信息越豐富.像素級圖像任務需要網(wǎng)絡的輸出結(jié)果接近于原圖尺度,于是在經(jīng)過下采樣特征提取之后需要進一步對特征進行上采樣解碼,常用的上采樣基礎(chǔ)模塊有插值法[9]和反卷積.
文獻[10]提出用于人體姿態(tài)估計的堆疊沙漏網(wǎng)絡(Stacked hourglass Network,SHN),其是由一系列稱為“沙漏(Hourglass)”的基礎(chǔ)網(wǎng)絡結(jié)構(gòu)堆疊而成,沙漏結(jié)構(gòu)實質(zhì)上也是一種U型網(wǎng)絡,最低得到4×4的尺度.下采樣采用的是卷積串聯(lián)Max-Pooling的模式,上采樣采用最近鄰插值結(jié)合跨層連接,其結(jié)構(gòu)如圖2所示.
圖2 沙漏模塊結(jié)構(gòu)Fig.2 Hourglass module structure
為了避免梯度下降時出現(xiàn)梯度消失的問題,SHN網(wǎng)絡在訓練過程中采用了中間監(jiān)督(Intermediate Supervision)方法,每個沙漏結(jié)構(gòu)在訓練過程中的輸出結(jié)果都會與訓練集標注的關(guān)鍵點熱力圖計算均方誤差,網(wǎng)絡總損失即為所有沙漏輸出的均方誤差之和.在推理階段則直接使用最后一個沙漏結(jié)構(gòu)的輸出作為最終網(wǎng)絡預測結(jié)果.
本文提出的姿態(tài)估計網(wǎng)絡的基礎(chǔ)結(jié)構(gòu)同屬于U型網(wǎng)絡,再采用多階段不斷堆疊基礎(chǔ)模塊的方式形成粗到細(Coarse-to-Fine)的完整網(wǎng)絡結(jié)構(gòu).
本文提出的自頂向下多人姿態(tài)估計模型包括人體目標檢測和姿態(tài)估計兩部分,整體流程如圖3所示.
圖3 自頂向下方法流程Fig.3 Top-down method flow
首先對YOLOv3目標檢測模型進行改進,將原YOLO v3模型主干網(wǎng)絡中的常規(guī)卷積結(jié)構(gòu)替換為深度可分離卷積結(jié)構(gòu)以提升人體目標檢測速度,并減少輸出通道數(shù),在專業(yè)行人檢測數(shù)據(jù)集上進行重訓練.其次,提出的姿態(tài)估計模型中設(shè)計了基于通道注意力機制的多尺度融合模塊,高分辨率特征學習肢體關(guān)鍵點位置信息,低尺度特征學習肢體連接關(guān)系,改進了常規(guī)U型網(wǎng)絡中只有同尺度上通道互連的缺點,進一步提高了姿態(tài)估計準確率.
圖像卷積操作是深度學習中圖像處理算法的(Convolutional Neural Networks,CNN)的基礎(chǔ),通過卷積核的滑動,提取出整張圖片的特征.常規(guī)卷積過程在特征通道數(shù)過大情況下,卷積核的參數(shù)數(shù)量會非常龐大,從而計算效率較低.
不同于常規(guī)卷積中每個卷積核對圖片各通道同時進行操作,深度可分離卷積(Depth wise Separable Convolution)是采用不同卷積核對多通道圖片中的不同通道分別進行卷積,整個卷積操作分解為分離卷積過程和點卷積過程兩步進行.假設(shè)有通道數(shù)為C的W×H×C的圖片,卷積核3×3 (設(shè)Pad=1,Stride=1),通過分離卷積操作分別得到每個通道的特征圖(Feature Map).
常規(guī)卷積過程的參數(shù)和深度可分離卷積過程的參數(shù)量分別如式(1)和式(2)所示:
P1=3×3×C×K
(1)
P2=3×3×C+1×1×K
(2)
常規(guī)卷積過程和深度可分離卷積過程的乘法運算量分別如式(3)和式(4)所示:
C1=H×W×C×K×3×3
(3)
C2=H×W×C×3×3+H×W×C×K
(4)
通過對比式(1)和式(2),式(3)和式(4),深度可分離卷積過程不論是在參數(shù)量還是乘法運算量上都遠遠小于常規(guī)卷積過程,故采用深度可分離卷積結(jié)構(gòu)有利于網(wǎng)絡模型的輕量化,對后續(xù)人體關(guān)鍵點檢測速度的提高具有很大的提升作用.
YOLOv3[11]人體目標檢測算法在保證檢測精度的同時,檢測速度相比于其它深度學習目標檢測算法有了非常大的提升.文中為了進一步提高人體目標檢測的速度,將2.1節(jié)介紹的深度可分離卷積過程應用到Y(jié)OLOv3模型中,將Darknet-53結(jié)構(gòu)中的常規(guī)卷積層替換為深度可分離卷積層,以減少網(wǎng)絡模型的計算量.
姿態(tài)估計網(wǎng)絡中不同尺度的特征信息都有重要意義,其中高分辨率的特征信息較好的保留了局部信息,用于姿態(tài)關(guān)鍵點位置的檢測;低尺度的特征信息則包含整個目標的全局信息,能夠推理關(guān)鍵點之間的連接關(guān)系.
在網(wǎng)絡中引入多尺度融合模塊將高分辨率表征信息和低尺度提取的語義特征信息在通道維度上進行融合,使低尺度特征圖上也能獲得高分辨率局部信息,而高分辨率特征也能融合全局推理信息.高、中、低3種不同尺度輸入的融合結(jié)構(gòu)圖如圖4 所示.
圖4 多尺度合并與通道注意力融合模塊結(jié)構(gòu)Fig.4 Module structure of multi scale merging and channel attention fusion
圖4中,整個融合模塊分為多尺度合并和通道注意力融合兩個階段,第一階段是不同尺度的特征在Channel維度上的合并,融合時的下采樣模塊采用的是步長為2的3×3卷積核,上采樣模塊是采用最近鄰插值方法.
融合特征的不同Channel對該尺度檢測的重要性不同,故在多尺度合并之后引入通道域注意力機制(Channel-Wise Attention),使模型可以學習不同Channel特征的重要程度.
深度學習中的注意力機制來源于人類視覺中注意力特點,即人類可以專注于觀察某一事物,而忽略無關(guān)對象[12].通道注意力本質(zhì)上是建立顯式模型來重新定義Channel間的關(guān)系,即對不同Channel進行特征重標定,加強有用信息而弱化無關(guān)信息.
(5)
(6)
目標函數(shù)Ls模型參數(shù)θ的梯度如式(7)所示:
(7)
為了增強對輸入向量的非線性表達能力,整個通道注意力機制的聚合過程可以分為3個步驟.首先,通過全局池化層將特征圖提取出包含各通道全局信息的1×1×C特征向量,如式(8)所示:
(8)
其中,W、H和C分別為特征圖的長、寬和通道數(shù),fc為特征圖每個格點的值.
然后,利用全連接操作對全局池化層得到的特征向量進行縮放,參數(shù)優(yōu)化完后再通過全連接層恢復維度,對應輸入向量的權(quán)重,如式(9)所示:
s=σ(ω1δ(ω2g))
(9)
其中,ω1和ω2為全連接層權(quán)重,σ為ReLU激活函數(shù).δ為Sigmoid激活函數(shù).
最后,將經(jīng)過兩個全連接層得到的權(quán)重乘回輸入向量中,得到該尺度下融合之后的結(jié)果.
由SHN網(wǎng)絡結(jié)構(gòu)啟發(fā),文中完整姿態(tài)估計網(wǎng)絡采用分階段堆疊多尺度融合模塊的方式.從輸入到輸出分為3個階段,各個階段內(nèi)網(wǎng)絡特征的尺度數(shù)目呈依次增加的形式,如第1階段只有2種尺度特征,第2階段包含3種尺度,依次遞增直到最后第3階段包含4種尺度.從上往下特征圖的尺度依次減半,通道數(shù)倍增,如圖5所示.
圖5 完整姿態(tài)估計網(wǎng)絡結(jié)構(gòu)Fig.5 Complete network structure of pose estimation
考慮到骨架網(wǎng)絡不需要單位像素級精細度的要求,最后輸出層的特征維度為輸入尺寸的4倍下采樣,通道數(shù)為17,對應COCO數(shù)據(jù)集的17個骨架關(guān)節(jié)點,每個通道上最大響應位置即為該關(guān)節(jié)點預測位置.
實驗的硬件環(huán)境為i7-9700處理器,RTX2080Ti顯卡.
文中提出的自頂向下多人體姿態(tài)估計方法分為人體目標檢測和姿態(tài)關(guān)鍵點估計兩部分,文獻[13]采用SSD-512作為人體目標檢測器,相比于使用FasterRCNN,將姿態(tài)關(guān)鍵點估計精度提升了6.9%,可見高效的人體目標檢測器對整個多人姿態(tài)估計方法至關(guān)重要.
將Mobile-YOLO v3模型在PascalVOC、COCO數(shù)據(jù)集上重新進行訓練,最后在Caltech人體目標數(shù)據(jù)集上測試,為了進一步評估文中改進的人體檢測器性能,與YOLOv3、tinyYOLOv3(YOLOv3輕量版,速度更快精度稍差)進行對比,評價行人檢測器的指標有:
1)查準率(Precision):正確被檢測出的目標數(shù)與總檢測數(shù)之比.
2)召回率(Recall):正確被檢測出的目標數(shù)與總有效目標數(shù)之比.
圖6 人體目標檢測器 P-R曲線Fig.6 P-R curve of human target detector
Precision-Recall是一組矛盾度量指標,將設(shè)定的檢測閾值調(diào)低必將使得Precision升高,同時伴隨Recall值下降.當設(shè)定多組不同閾值便可得到P-R曲線,所有檢測模型均在同樣數(shù)據(jù)集訓練同樣輪次,得到P-R曲線如圖6所示.
P-R曲線下方面積即檢測器的平均準確率AP值,顯然曲線位置越高同樣的召回率下查準率也越高,即意味著該檢測模型的效果越好,從圖中可以看出本文提出的Mobile-YOLOv3模型效果與原版YOLOv3模型效果十分接近.另外,由于人體目標檢測只是人體姿態(tài)估計的一個預篩選環(huán)節(jié),故對檢測速度提出要求,不同檢測器的權(quán)重大小、檢測速度以及準確率如表1所示.
表1 人體目標檢測器效率性能對比Table 1 Efficiency and performance comparison of human target detectors
從表1中可以看出,本文改進的檢測模型采用深度可分離卷積層作為基本卷積結(jié)構(gòu),極大減小了卷積權(quán)重參數(shù)和運算量,相比原版YOLOv3模型精度有稍許下降,但網(wǎng)絡推理檢測時間僅為其5%,同時比同一速度量級的tinyYOLOv3在平均準確率上有19.2%的提升,綜合性能最佳,可以為后續(xù)人體姿態(tài)關(guān)鍵點檢測提供高精度的實時目標輸入.
采用COCO人體關(guān)鍵點數(shù)據(jù)集[14]來評估文中所提網(wǎng)絡結(jié)構(gòu)的性能,COCO數(shù)據(jù)集由超過200000張樣本圖片組成,包含250000個人體目標及17個標注的姿態(tài)關(guān)鍵點.先將檢測到的人體目標圖像裁剪縮放到488×288分辨率再輸入網(wǎng)絡,在訓練過程中采用了如旋轉(zhuǎn)、水平翻轉(zhuǎn)等數(shù)據(jù)擴增方法,使用Adam方法更新網(wǎng)絡參數(shù),總共迭代訓練20000輪,前10000輪的學習率設(shè)置為10-3,后續(xù)訓練的學習率下降到10-4.
文中所提多人姿態(tài)估計方法在包含多人體目標圖像上的關(guān)鍵點檢測結(jié)果如圖7所示.
從圖7中可以看出,即使輸入圖像包含諸如多人物、非正常直立姿態(tài)以及模糊遮擋等情況,文中所提方法仍能較好的檢測出人物姿態(tài)的關(guān)鍵點.姿態(tài)估計算法的定量度量方法是計算算法模型的平均準確度(Average Precision,AP)值,人體姿態(tài)估計的AP值是綜合了不同關(guān)鍵點類型和人體大小尺寸的歸一化結(jié)果,如對于膝蓋一類的大范圍關(guān)鍵點和眼睛一類的小范圍關(guān)鍵點,相同絕對偏差計算得到的誤差百分比將會有很大區(qū)別.
圖7 多人姿態(tài)估計結(jié)果圖Fig.7 Result pictures of multi-person pose estimation
關(guān)鍵點檢測的準確度(Precision)計算如式(10)所示:
(10)
其中,TP為檢測正確的目標數(shù),F(xiàn)P為錯誤檢測的目標數(shù).
姿態(tài)關(guān)鍵點相似性指標OKS定義如式(11)所示:
(11)
其中,di為估計的關(guān)鍵點與真實關(guān)鍵點的歐氏距離,vi為該關(guān)鍵點是否遮擋的標志,s為目標尺寸,ki是每個關(guān)鍵點的乘積常數(shù).AP為OKS分別取(0.55 0.6…0.9 0.95)值時所有準確度的平均值.
首先驗證文中設(shè)計的通道注意力多尺度融合模塊的性能,設(shè)置3種不同網(wǎng)絡結(jié)構(gòu):不使用融合模塊、僅使用多尺度合并、多尺度合并加上通道注意力融合.對3種網(wǎng)絡分別進行訓練,得到結(jié)果如表2所示.
表2 不同網(wǎng)絡結(jié)構(gòu)的結(jié)果Table 2 Results of different network structures
表2第2種結(jié)構(gòu)為所示文獻[15]的姿態(tài)估計模型,僅在最后特征輸出階段采用了基于注意力的融合方式,對估計結(jié)果的精度提升有限;第3種結(jié)構(gòu)為HRNET[16]模型,該模型將不同尺度特征直接在通道維度上進行拼接,而本文模型在融合階段加入了通道注意力機制,在全局語義信息中心突出了關(guān)鍵點的位置信息,網(wǎng)絡運算量僅提升了約4.2%,姿態(tài)估計的AP值提升了1.1,有效提升了姿態(tài)估計準確度.
在不同輸入分辨率下,與堆疊沙漏網(wǎng)絡 (Stacked Hourglass Network,SHN)、級聯(lián)金字塔網(wǎng)絡 (Cascaded Pyramid Network,CPN)的比較如圖8所示.
圖8 不同輸入分辨率對模型性能影響Fig.8 Effect of different input resolutions on model performance
從圖8可以看出,相比其他姿態(tài)估計模型,本文所提模型在越低的輸入分辨率上提升越明顯,主要是由于文中模型的多分辨率融合網(wǎng)絡結(jié)構(gòu)使得任一子網(wǎng)絡都能始終保留原始輸入分辨率信息,從而豐富了局部特征提高了關(guān)鍵點檢測準確度.
多人二維姿態(tài)估計是視頻人體動作識別的關(guān)鍵技術(shù).文中提出了一種Mobile-YOLOv3人體檢測器和多尺度融合網(wǎng)絡相結(jié)合的多人姿態(tài)估計算法.將原YOLOv3模型主干網(wǎng)絡中的常規(guī)卷積結(jié)構(gòu)替換為深度可分離卷積以提升人體目標檢測速度.姿態(tài)估計模型中設(shè)計了基于通道注意力機制的多尺度融合模塊,其中高分辨率特征學習肢體關(guān)鍵點位置信息,低尺度特征學習肢體連接關(guān)系,進一步提高了姿態(tài)估計準確率.試驗結(jié)果表明:相比于SHN和CPN算法,本文提出的多人姿態(tài)估計模型在COCO數(shù)據(jù)集上姿態(tài)估計平均準確度在最高448×288分辨率時提高了4.7和3.7.
文中提出的姿態(tài)估計網(wǎng)絡采用多階段堆疊多尺度融合模塊的方式進行搭建,結(jié)構(gòu)設(shè)計靈活,文中采用3階段網(wǎng)絡結(jié)構(gòu)時在速度與精度上取得了較好的效果.實際工程應用中,可根據(jù)任務需求增減網(wǎng)絡階段數(shù),如在對精度要求不高的任務環(huán)境下(摔倒檢測等大幅度體態(tài)改變),可采用2階段網(wǎng)絡結(jié)構(gòu)以提高檢測速度.