常方園,于文年
(1.武漢郵電科學研究院,湖北武漢 430074;2.南京烽火天地通信科技有限公司,江蘇 南京 210019)
人體姿態識別技術廣泛應用于智慧課堂、醫療健康、人機交互等眾多自動化領域,姿態識別技術可以用于實現高質量的人機交互體驗,還可以用于實現行為預判功能,通過對當前的行為進行分析,推測目標在下一時間軸的若干行為。
傳統的姿態識別方法是基于圖模型的方法,通過將身體部位表示為樹狀結構的圖形模型來建模它們的空間相關性,從而預測身體關節的位置。DeepPose[1]模型利用卷積神經網絡(Convolutional Neural Network,CNN)來提取目標關節點坐標信息,將2D 人體姿態識別任務中經典的圖像處理和模板匹配問題轉化為使用卷積神經網絡進行圖像特征提取和關鍵點坐標回歸的問題。隨后,出現了基于熱圖[2]、卷積姿態機(Convolutional Pose Machines,CPM)[3]以及AlpahPose[4]等一系列深度學習方法來處理人體姿態識別問題。
傳統的神經網絡,如VGG[5]、ResNet[6]等的參數主要集中于卷積層,在卷積階段浪費了大量的資源,不利于在移動端集成。MobileNet[7]網絡將傳統的卷積用深度可分離卷積代替,大幅降低網絡卷積層的參數量和計算量,減少網絡復雜度,進而提高運行速度。MobileNet-v1 的網絡結構如表1 所示,其中,Conv 表示標準卷積,Conv dw 表示深度可分離卷積,s1 表示步長為1。

表1 MobileNet網絡結構
假設輸入特征圖F 的大小為DF×DF×M,卷積過程中步長和填充為1,其中,DF為特征圖的寬度,M為特征圖的深度,采用標準卷積經過N個大小為DB×DB×M的卷積核B 后,生成大小為DF×DF×N的特征圖G,此過程所需的計算量可以用式(1)表示。
深度可分離卷積將標準卷積分為兩步,首先,進行深度卷積,獲得和原圖像深度相同的特征圖,然后,經過1×1 的逐點卷積生成特征圖。其中,逐點卷積過程中不改變特征圖的特性,只增加了通道數。同樣大小的特征圖F 經過深度可分離卷積(第一個卷積核為DB×DB×1 輸出特征圖大小為DF×DF×M,第二個卷積核為1×1×M)得到的特征圖G 為DF×DF×N所需的計算量可以用式(2)表示。
假設DB=3,由式(3)可以看出,相對于傳統的標準卷積,深度可分離卷積的計算量大幅下降,MobileNetv1 計算量僅為標準卷積計算量的1/9~1/8。
Transformer[8]最初用于機器翻譯,基于Transformer的模型,如BERT[9],通常在大量數據上進行預訓練,然后對較小的數據集進行微調。近年來,Transformer結構和自注意力機制[10]逐漸在計算機視覺領域嶄露頭角,開始應用于圖像分類[11]、目標檢測[12]、語義分割[13]等領域。
Transformer 是一個完全依賴于自注意力機制來計算其輸入和輸出表示而不使用序列對齊的循環神經網絡或卷積神經網絡的轉換模型。如圖1 所示,Transformer 主要由編碼和解碼兩個部分組成。

圖1 Transformer結構
Transformer 的核心為多頭自注意力機制,多頭注意力機制由自注意力組成。自注意力機制的出現減少了處理高維輸入數據的計算負擔,同時還能夠使系統更專注于找到輸入數據和輸出數據間的有用信息,進一步提高輸出的質量。多頭自注意力機制就是每個自注意力計算出一個結果矩陣,然后將N個結果矩陣拼接起來,乘以權重矩陣得到最終矩陣。
對于關鍵點位置的預測僅為編碼任務,它將原始圖像信息壓縮成一個緊湊的關鍵點位置表示,所以該文僅采用編碼結構來進行關鍵點定位。模型主要包含三部分:基于卷積的主干網絡提取低維圖像特征、Transformer 編碼器來捕捉特征向量之間的空間交互、預測關鍵點熱圖結構。
對于主網絡保留MobileNet-v1 的部分網絡層,并加入了殘差結構來提取低維圖像特征。給定一個輸入圖像的大小為I∈R3×HI×WI,假定主網絡的輸出的空間結構圖像特征為Xf∈Rd×H×W。然后將圖像扁平化為一個序列X∈RL×d,其中,L=H×W,將這個d維的序列送入Transformer 結構中。數據輸入后加入位置信息進行嵌入,Transformer 使用了固定的位置編碼來表示絕對位置信息,位置信息的計算如式(4)-(5)所示,其中,dmodel的值設置為256。
自注意力機制將經過位置編碼后的序列X∈RL×d通過矩陣WQ,WK,WV∈Rd×d轉換為Q∈RL×d,K∈RL×d,V∈RL×d矩陣,自注意力的計算過程如式(6)所示。
自注意捕捉并揭示了這些預測對每個圖像位置的總貢獻,這種來自不同圖像位置的貢獻可以通過梯度來反映。通過計算導數hi∈RK(K為關鍵點類型數)關于最后一個注意層輸入序列位置j的xj,具體分析了圖像位置j處的xj如何影響預測位置i的激活hi的關鍵點熱圖。最后一個注意層作為一個聚合器,它根據注意點獲取所有圖像的值,并在預測的關鍵點熱圖中形成最大的激活。
該文采用8 個自注意力機制組成多頭自注意力機制。將N個自注意力機制計算出來的結果矩陣拼接起來,乘以權重矩陣W即可得到最終結果矩陣,具體計算過程如式(7)-(8)所示。
若模型訓練過程中圖像的大小不匹配,則采用4×4 的轉置卷積進行上采樣以獲得尺寸相同的特征圖,最后,用一個1×1 卷積來預測K種關鍵點熱圖。對于傳統的基于CNN 的方法,它們也使用熱圖激活作為關鍵位置,但由于CNN 的深度和高度非線性,人們無法直接找到預測的可解釋模式。基于Activation Maximization(AM)[14]的方法可能會提供一些方法,但需要額外的優化成本來學習。
AM 能夠最大限度地激活一個特定神經元的輸入區域,激活的最大位置為關鍵點的位置。如式(9)所示,神經元在熱圖的i*位置的激活hi*被最大激活,i*代表一個關鍵點的真實位置。
假設模型用參數θ*進行了優化,并預測了一個特定關鍵點的位置為i(在熱圖中的最大位置)。這些位置J,其元素j與i具有較高的注意力得分(≥δ),是對預測有顯著貢獻的依賴關系。J可由式(10)表示,其中A∈RL×L是最后一層注意力層的注意力圖,同時也是θ*和I的函數。該文通過Transformer將AM 擴展到基于熱圖的定位,并且優化在訓練中隱式完成不需要額外的開銷。
該文采用開源的COCO 數據集進行模型的構建,COCO 數據集有91 類,包含18 GB 的訓練集數據,驗證圖像有1 GB 和6 GB 的測試圖像。訓練集用于模型擬合,驗證集用于訓練過程中,在訓練幾次完整數據集后進行評估,測試集則用于評價模型的性能。
訓練數據集中人目標位置標簽和目標關鍵點標簽是數據的原始特征,如圖2 所示。這些特征并不適合直接應用到姿態識別中,因此需要從數據的原始特征中提取出姿態識別有效特征。該實驗需要一塊RTX2080TiGPUs,torch 版 本為1.6.0,torchvision 為0.7.0,CUDA 為10.1,python 為3.6.5。

圖2 姿態數據原始特征
該文將輸入圖像進行數據處理將大小固定為256×192,生成的特征圖的大小設置為64×48,編碼結構的層數為4,Relu 作為激活函數。
在COCO 數據集上進行訓練,迭代次數設置為230 次,選用Adam(設置初始學習率為0.000 1,指數衰減率β1和β2分別設置為0.99 和0.0)作為優化器。
將基于MobileNet 和Transformer 生成的人體關鍵點進行關鍵點連接,得出姿態估計如圖3 所示。該文先用HRNet-w32[15]和ResNet-50[16]進行實驗,由表2 可以看出,ResNet 網絡模型比HRNet 的參數量少,但HRNet 比ResNet 的性能好。將提取特征的MoileNet 網絡與HRnet 和ResNet-50 網絡進行比較,其中關鍵點檢測與定位均采用Transformer 中的編碼結構,表2 表明使用了MobileNet 特征提取器的方法在參數量和浮點數運算量均少于HRNet 和ResNet,但性能卻與HRNet 和ResNet 相差不超過1%。

圖3 人體姿態估計

表2 COCO驗證集上的效果
該文提出一種結合MobileNet 網絡結構和Transformer 編碼器對人體關鍵點定位的方法,使用深度可分離卷積代替標準卷積作為特征提取器,在網絡中還設計了具有殘差連接的細化結構來提取淺層信息。與傳統的方法相比,既選擇了深度可分離卷積來減少參數量,又選擇了Transformer 的編碼器結構進行關鍵點檢測,在保持輕量化的同時又利用了Transformer 并行結構特點,使得模型的訓練速度更快。實驗結果表明,該模型具有較小的參數量,較高的識別準確率和識別效率,可應用到智能視頻監控系統中,結合目標檢測、識別以及人體姿態估計算法,判斷視頻監控覆蓋范圍內所有人體目標姿態。