常方園,于文年
(1.武漢郵電科學(xué)研究院,湖北武漢 430074;2.南京烽火天地通信科技有限公司,江蘇 南京 210019)
人體姿態(tài)識(shí)別技術(shù)廣泛應(yīng)用于智慧課堂、醫(yī)療健康、人機(jī)交互等眾多自動(dòng)化領(lǐng)域,姿態(tài)識(shí)別技術(shù)可以用于實(shí)現(xiàn)高質(zhì)量的人機(jī)交互體驗(yàn),還可以用于實(shí)現(xiàn)行為預(yù)判功能,通過(guò)對(duì)當(dāng)前的行為進(jìn)行分析,推測(cè)目標(biāo)在下一時(shí)間軸的若干行為。
傳統(tǒng)的姿態(tài)識(shí)別方法是基于圖模型的方法,通過(guò)將身體部位表示為樹(shù)狀結(jié)構(gòu)的圖形模型來(lái)建模它們的空間相關(guān)性,從而預(yù)測(cè)身體關(guān)節(jié)的位置。DeepPose[1]模型利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)來(lái)提取目標(biāo)關(guān)節(jié)點(diǎn)坐標(biāo)信息,將2D 人體姿態(tài)識(shí)別任務(wù)中經(jīng)典的圖像處理和模板匹配問(wèn)題轉(zhuǎn)化為使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像特征提取和關(guān)鍵點(diǎn)坐標(biāo)回歸的問(wèn)題。隨后,出現(xiàn)了基于熱圖[2]、卷積姿態(tài)機(jī)(Convolutional Pose Machines,CPM)[3]以及AlpahPose[4]等一系列深度學(xué)習(xí)方法來(lái)處理人體姿態(tài)識(shí)別問(wèn)題。
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),如VGG[5]、ResNet[6]等的參數(shù)主要集中于卷積層,在卷積階段浪費(fèi)了大量的資源,不利于在移動(dòng)端集成。MobileNet[7]網(wǎng)絡(luò)將傳統(tǒng)的卷積用深度可分離卷積代替,大幅降低網(wǎng)絡(luò)卷積層的參數(shù)量和計(jì)算量,減少網(wǎng)絡(luò)復(fù)雜度,進(jìn)而提高運(yùn)行速度。MobileNet-v1 的網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示,其中,Conv 表示標(biāo)準(zhǔn)卷積,Conv dw 表示深度可分離卷積,s1 表示步長(zhǎng)為1。
表1 MobileNet網(wǎng)絡(luò)結(jié)構(gòu)
假設(shè)輸入特征圖F 的大小為DF×DF×M,卷積過(guò)程中步長(zhǎng)和填充為1,其中,DF為特征圖的寬度,M為特征圖的深度,采用標(biāo)準(zhǔn)卷積經(jīng)過(guò)N個(gè)大小為DB×DB×M的卷積核B 后,生成大小為DF×DF×N的特征圖G,此過(guò)程所需的計(jì)算量可以用式(1)表示。
深度可分離卷積將標(biāo)準(zhǔn)卷積分為兩步,首先,進(jìn)行深度卷積,獲得和原圖像深度相同的特征圖,然后,經(jīng)過(guò)1×1 的逐點(diǎn)卷積生成特征圖。其中,逐點(diǎn)卷積過(guò)程中不改變特征圖的特性,只增加了通道數(shù)。同樣大小的特征圖F 經(jīng)過(guò)深度可分離卷積(第一個(gè)卷積核為DB×DB×1 輸出特征圖大小為DF×DF×M,第二個(gè)卷積核為1×1×M)得到的特征圖G 為DF×DF×N所需的計(jì)算量可以用式(2)表示。
假設(shè)DB=3,由式(3)可以看出,相對(duì)于傳統(tǒng)的標(biāo)準(zhǔn)卷積,深度可分離卷積的計(jì)算量大幅下降,MobileNetv1 計(jì)算量?jī)H為標(biāo)準(zhǔn)卷積計(jì)算量的1/9~1/8。
Transformer[8]最初用于機(jī)器翻譯,基于Transformer的模型,如BERT[9],通常在大量數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練,然后對(duì)較小的數(shù)據(jù)集進(jìn)行微調(diào)。近年來(lái),Transformer結(jié)構(gòu)和自注意力機(jī)制[10]逐漸在計(jì)算機(jī)視覺(jué)領(lǐng)域嶄露頭角,開(kāi)始應(yīng)用于圖像分類[11]、目標(biāo)檢測(cè)[12]、語(yǔ)義分割[13]等領(lǐng)域。
Transformer 是一個(gè)完全依賴于自注意力機(jī)制來(lái)計(jì)算其輸入和輸出表示而不使用序列對(duì)齊的循環(huán)神經(jīng)網(wǎng)絡(luò)或卷積神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)換模型。如圖1 所示,Transformer 主要由編碼和解碼兩個(gè)部分組成。
圖1 Transformer結(jié)構(gòu)
Transformer 的核心為多頭自注意力機(jī)制,多頭注意力機(jī)制由自注意力組成。自注意力機(jī)制的出現(xiàn)減少了處理高維輸入數(shù)據(jù)的計(jì)算負(fù)擔(dān),同時(shí)還能夠使系統(tǒng)更專注于找到輸入數(shù)據(jù)和輸出數(shù)據(jù)間的有用信息,進(jìn)一步提高輸出的質(zhì)量。多頭自注意力機(jī)制就是每個(gè)自注意力計(jì)算出一個(gè)結(jié)果矩陣,然后將N個(gè)結(jié)果矩陣拼接起來(lái),乘以權(quán)重矩陣得到最終矩陣。
對(duì)于關(guān)鍵點(diǎn)位置的預(yù)測(cè)僅為編碼任務(wù),它將原始圖像信息壓縮成一個(gè)緊湊的關(guān)鍵點(diǎn)位置表示,所以該文僅采用編碼結(jié)構(gòu)來(lái)進(jìn)行關(guān)鍵點(diǎn)定位。模型主要包含三部分:基于卷積的主干網(wǎng)絡(luò)提取低維圖像特征、Transformer 編碼器來(lái)捕捉特征向量之間的空間交互、預(yù)測(cè)關(guān)鍵點(diǎn)熱圖結(jié)構(gòu)。
對(duì)于主網(wǎng)絡(luò)保留MobileNet-v1 的部分網(wǎng)絡(luò)層,并加入了殘差結(jié)構(gòu)來(lái)提取低維圖像特征。給定一個(gè)輸入圖像的大小為I∈R3×HI×WI,假定主網(wǎng)絡(luò)的輸出的空間結(jié)構(gòu)圖像特征為Xf∈Rd×H×W。然后將圖像扁平化為一個(gè)序列X∈RL×d,其中,L=H×W,將這個(gè)d維的序列送入Transformer 結(jié)構(gòu)中。數(shù)據(jù)輸入后加入位置信息進(jìn)行嵌入,Transformer 使用了固定的位置編碼來(lái)表示絕對(duì)位置信息,位置信息的計(jì)算如式(4)-(5)所示,其中,dmodel的值設(shè)置為256。
自注意力機(jī)制將經(jīng)過(guò)位置編碼后的序列X∈RL×d通過(guò)矩陣WQ,WK,WV∈Rd×d轉(zhuǎn)換為Q∈RL×d,K∈RL×d,V∈RL×d矩陣,自注意力的計(jì)算過(guò)程如式(6)所示。
自注意捕捉并揭示了這些預(yù)測(cè)對(duì)每個(gè)圖像位置的總貢獻(xiàn),這種來(lái)自不同圖像位置的貢獻(xiàn)可以通過(guò)梯度來(lái)反映。通過(guò)計(jì)算導(dǎo)數(shù)hi∈RK(K為關(guān)鍵點(diǎn)類型數(shù))關(guān)于最后一個(gè)注意層輸入序列位置j的xj,具體分析了圖像位置j處的xj如何影響預(yù)測(cè)位置i的激活hi的關(guān)鍵點(diǎn)熱圖。最后一個(gè)注意層作為一個(gè)聚合器,它根據(jù)注意點(diǎn)獲取所有圖像的值,并在預(yù)測(cè)的關(guān)鍵點(diǎn)熱圖中形成最大的激活。
該文采用8 個(gè)自注意力機(jī)制組成多頭自注意力機(jī)制。將N個(gè)自注意力機(jī)制計(jì)算出來(lái)的結(jié)果矩陣拼接起來(lái),乘以權(quán)重矩陣W即可得到最終結(jié)果矩陣,具體計(jì)算過(guò)程如式(7)-(8)所示。
若模型訓(xùn)練過(guò)程中圖像的大小不匹配,則采用4×4 的轉(zhuǎn)置卷積進(jìn)行上采樣以獲得尺寸相同的特征圖,最后,用一個(gè)1×1 卷積來(lái)預(yù)測(cè)K種關(guān)鍵點(diǎn)熱圖。對(duì)于傳統(tǒng)的基于CNN 的方法,它們也使用熱圖激活作為關(guān)鍵位置,但由于CNN 的深度和高度非線性,人們無(wú)法直接找到預(yù)測(cè)的可解釋模式?;贏ctivation Maximization(AM)[14]的方法可能會(huì)提供一些方法,但需要額外的優(yōu)化成本來(lái)學(xué)習(xí)。
AM 能夠最大限度地激活一個(gè)特定神經(jīng)元的輸入?yún)^(qū)域,激活的最大位置為關(guān)鍵點(diǎn)的位置。如式(9)所示,神經(jīng)元在熱圖的i*位置的激活hi*被最大激活,i*代表一個(gè)關(guān)鍵點(diǎn)的真實(shí)位置。
假設(shè)模型用參數(shù)θ*進(jìn)行了優(yōu)化,并預(yù)測(cè)了一個(gè)特定關(guān)鍵點(diǎn)的位置為i(在熱圖中的最大位置)。這些位置J,其元素j與i具有較高的注意力得分(≥δ),是對(duì)預(yù)測(cè)有顯著貢獻(xiàn)的依賴關(guān)系。J可由式(10)表示,其中A∈RL×L是最后一層注意力層的注意力圖,同時(shí)也是θ*和I的函數(shù)。該文通過(guò)Transformer將AM 擴(kuò)展到基于熱圖的定位,并且優(yōu)化在訓(xùn)練中隱式完成不需要額外的開(kāi)銷。
該文采用開(kāi)源的COCO 數(shù)據(jù)集進(jìn)行模型的構(gòu)建,COCO 數(shù)據(jù)集有91 類,包含18 GB 的訓(xùn)練集數(shù)據(jù),驗(yàn)證圖像有1 GB 和6 GB 的測(cè)試圖像。訓(xùn)練集用于模型擬合,驗(yàn)證集用于訓(xùn)練過(guò)程中,在訓(xùn)練幾次完整數(shù)據(jù)集后進(jìn)行評(píng)估,測(cè)試集則用于評(píng)價(jià)模型的性能。
訓(xùn)練數(shù)據(jù)集中人目標(biāo)位置標(biāo)簽和目標(biāo)關(guān)鍵點(diǎn)標(biāo)簽是數(shù)據(jù)的原始特征,如圖2 所示。這些特征并不適合直接應(yīng)用到姿態(tài)識(shí)別中,因此需要從數(shù)據(jù)的原始特征中提取出姿態(tài)識(shí)別有效特征。該實(shí)驗(yàn)需要一塊RTX2080TiGPUs,torch 版 本為1.6.0,torchvision 為0.7.0,CUDA 為10.1,python 為3.6.5。
圖2 姿態(tài)數(shù)據(jù)原始特征
該文將輸入圖像進(jìn)行數(shù)據(jù)處理將大小固定為256×192,生成的特征圖的大小設(shè)置為64×48,編碼結(jié)構(gòu)的層數(shù)為4,Relu 作為激活函數(shù)。
在COCO 數(shù)據(jù)集上進(jìn)行訓(xùn)練,迭代次數(shù)設(shè)置為230 次,選用Adam(設(shè)置初始學(xué)習(xí)率為0.000 1,指數(shù)衰減率β1和β2分別設(shè)置為0.99 和0.0)作為優(yōu)化器。
將基于MobileNet 和Transformer 生成的人體關(guān)鍵點(diǎn)進(jìn)行關(guān)鍵點(diǎn)連接,得出姿態(tài)估計(jì)如圖3 所示。該文先用HRNet-w32[15]和ResNet-50[16]進(jìn)行實(shí)驗(yàn),由表2 可以看出,ResNet 網(wǎng)絡(luò)模型比HRNet 的參數(shù)量少,但HRNet 比ResNet 的性能好。將提取特征的MoileNet 網(wǎng)絡(luò)與HRnet 和ResNet-50 網(wǎng)絡(luò)進(jìn)行比較,其中關(guān)鍵點(diǎn)檢測(cè)與定位均采用Transformer 中的編碼結(jié)構(gòu),表2 表明使用了MobileNet 特征提取器的方法在參數(shù)量和浮點(diǎn)數(shù)運(yùn)算量均少于HRNet 和ResNet,但性能卻與HRNet 和ResNet 相差不超過(guò)1%。
圖3 人體姿態(tài)估計(jì)
表2 COCO驗(yàn)證集上的效果
該文提出一種結(jié)合MobileNet 網(wǎng)絡(luò)結(jié)構(gòu)和Transformer 編碼器對(duì)人體關(guān)鍵點(diǎn)定位的方法,使用深度可分離卷積代替標(biāo)準(zhǔn)卷積作為特征提取器,在網(wǎng)絡(luò)中還設(shè)計(jì)了具有殘差連接的細(xì)化結(jié)構(gòu)來(lái)提取淺層信息。與傳統(tǒng)的方法相比,既選擇了深度可分離卷積來(lái)減少參數(shù)量,又選擇了Transformer 的編碼器結(jié)構(gòu)進(jìn)行關(guān)鍵點(diǎn)檢測(cè),在保持輕量化的同時(shí)又利用了Transformer 并行結(jié)構(gòu)特點(diǎn),使得模型的訓(xùn)練速度更快。實(shí)驗(yàn)結(jié)果表明,該模型具有較小的參數(shù)量,較高的識(shí)別準(zhǔn)確率和識(shí)別效率,可應(yīng)用到智能視頻監(jiān)控系統(tǒng)中,結(jié)合目標(biāo)檢測(cè)、識(shí)別以及人體姿態(tài)估計(jì)算法,判斷視頻監(jiān)控覆蓋范圍內(nèi)所有人體目標(biāo)姿態(tài)。