趙佳圓,張玉茹,蘇曉東,徐紅巖,李世洲,張玉榮
(1.哈爾濱商業大學計算機與信息工程學院,黑龍江 哈爾濱 150028;2.黑龍江省電子商務與智能信息處理重點實驗室,黑龍江 哈爾濱 150028)
近年來,人體姿態估計任務[1]已經成為計算機視覺領域的研究熱點,主要應用于人機交互[2]、行為識別[3]等領域。該任務的主要目的是檢測并定位圖片中所有人體關鍵點,例如手、膝蓋等。目前的研究表明,盡管卷積神經網絡在姿態估計任務中表現不錯,但對于局部信息比較敏感,要想獲取全局上下文信息,就必須依賴更大的卷積核或更深的層。目前,許多單尺度網絡都采用經典的編解碼器結構,例如文獻[4-5]介紹上述網絡通過卷積、池化等下采樣操作提取特征,并通過上采樣操作恢復分辨率。雖然這樣的結構已經取得了很好的性能,但對于復雜關鍵點的識別精度難以提升,主要原因是單尺度網絡缺乏輸入空間的上下文信息。為了解決這個問題,文獻[6-7]提出了多尺度結構,將不同尺度的特征進行融合,以獲得共享的特征表達。
雖然多尺度結構已經取得了不錯的效果,但是它在實際任務中仍然會受到人體可變性和外部因素的影響。此外,復雜的關鍵點(如“膝”和“腳踝”)很難被精確識別。在MPII 數據集中,高分辨率網絡(HRNet)對簡單的關鍵點(如“頭”和“肩”)的PCKh@0.5 精度已經接近飽和,分別為96.2%和95.0%。然而,對于復雜的關鍵點,例如“膝”和“腳踝”,PCKh@0.5 精度僅達到84.3% 和80.6%,這限制了模型的整體性能。雖然高分辨自回歸網絡(HR-ARNet)[8]對HRNet[7]模型進 行改進,并引入 了卷積注意力模塊(CBAM)注意力機制[9]和自注意力機制[10],然而單階段的自注意力機制會使模型的注意力范圍過大,缺乏對特定區域的控制,導致學習到的關節之間的關系不清。
本文提出一種基于注意力機制的人體關鍵點隱式建模網絡,旨在建模關節之間的關系,從而提高復雜關鍵點檢測的能力。該模型由兩種不同的注意力機制組成[10-11],首先通過HRNet 網絡對輸入圖像進行初步的特征提取,隨后采用十字注意力網絡和多階段的自注意力機制準確識別復雜的關鍵點,之后隱式建模關鍵點間結構化信息以提高模型的整體性能,最后采用焦點損失函數解決訓練過程中可能弱化不可見關鍵點的問題,加速模型收斂速度并提高識別能力。
早期的人體姿態估計方法大多基于概率圖和圖結構模型來解決[12-13],用若干個可變形的“部件”(即肢體,如頭部、手臂、腿等)組成的集合來表示一個完整的人體結構,各個部件采用模板匹配來進行檢測,然后依據各個部件之間的空間約束關系對人體姿態的關鍵點進行建模。近年來的研究表明,深度卷積神經網絡的方法在人體姿態估計任務中取得較好的效果。
文獻[14]介紹基于深度學習的人體姿態估計算法DeepPose,并借鑒深度神經網絡(DNN)在圖像分類等任務上的良好表現,展開了使用DNN 進行人體姿態估計的研究,將原本的手工特征提取和模板匹配問題轉換為網絡自動提取特征和關鍵點坐標回歸問題。文獻[15]介紹基于熱圖的人體姿態估計模型,提出了由深度卷積神經網絡(DCNN)和馬爾可夫隨機場(MRF)組成的一種新的混合架構,通過渲染關鍵點熱圖的方法,從改變真值的角度提升模型精度。文獻[5]提出了Hourglass 模型,可以在所有尺度上對特征進行處理和合并,以最好地捕捉與身體相關的各種空間關系,并且采用了重復的自下而上與自上而下的中間監督機制來提高模型性能,且為了生成最終預測集采取池化和上采樣的連續步驟。之后出現了許多基于多尺度特征融合的方法,例如文獻[16]提出了級聯金字塔網絡(CPN),該網絡結合特征金字塔結構與多尺度特征融合,通過多尺度信息顯式地處理“難”關鍵點,最后將不同尺度的信息通過上采樣和拼接得到最終特征圖。文獻[8]提出基于圖搜索方法,將殘差模塊擴展到金字塔網絡中,增強DCNN 的尺度不變性。文獻[4]提出由SimpleBaseline 繼承沙漏結構,但使用殘差網絡(ResNet)[17]替換掉原有的對稱結構,為人體姿態估計任務提供了新的特征提取網絡。文獻[18]提出通過結構化空間學習,使用三階段多特征深度卷積網絡框架生成初始姿態,保持時間一致性,從而獲得精準的人體姿態估計結果。文獻[19]介紹了利用幀間時間差異建模動態上下文,利用互信息量尋找關鍵信息,去除噪聲,提升姿態估計精度。
與上述方法不同,文獻[7]認為由低到高恢復分辨率的過程會損失一些特征信息,故提出全程保持高分辨率特征的網絡HRNet,該網絡由并行高分辨率與低分辨率子網絡組成,并在多分辨率子網絡之間重復交換信息,通過重復多尺度融合,在相同深度和相似級別的低分辨率表示的幫助下提高高分辨率表示,從而使高分辨率特征圖也有豐富的姿勢估計。經過這樣全程保持高分辨率特征,反復的多尺度特征融合,可以生成更精確的關鍵點熱圖。由于這樣密集的多尺度特征融合,使卷積神經網絡學習了共享的特征表達,也使得該結構得到了最先進的結果。此外,文獻[16]使用在線難關節點挖掘(OHKM)損失函數代替普通的MSE 損失函數,從損失函數的角度提升了模型的識別精度,更加關注一些復雜的關鍵點。
注意力機制是一種用于計算機視覺系統中快速高效地關注重點區域的特性。它被廣泛地應用于各種計算機視覺任務中,如圖像分割[20]和目標檢測[21]等。文獻[9]提出卷積注意力模塊(CBAM),如圖1所示,它結合了空間和通道之間的注意力特征。通過卷積建立特征之間的相關性,CBAM 可以提高特征在通道和空間上的聯系,更有利于提取目標的有效特征。CBAM 中的空間注意力模塊的輸出需要經過7×7 卷積進行信息整合,但由于7×7 的感受野受限,對于人體姿態估計任務往往需要更大的感受野。為了解決這個問題,在語義分割任務中,文獻[11]介紹了十字交叉注意力網絡(CCNet),如圖2 所示。CCNet 將感受野擴大到全局范圍,從而提高了圖像分割的精度。

圖1 CBAM 注意力機制Fig.1 CBAM attention mechanism

圖2 十字交叉注意力機制Fig.2 Cross attention mechanism
隨著Vision Transformer[22]的推出,人體姿態估計任務的新思路隨之而來。Transformer 的主要思想是通過計算輸入之間的注意力和自注意力來獲得全局感受野。雖 然PoseFormer[23]是第1 個使用 純Transformer 架構進行姿態估計的模型,但由于純Transformer 結構的特征提取能力較弱,需要大量的訓練數據,因此大多數工作使用卷積神經網絡(CNN)與Transformer 相結合 的架構。例 如,TokenPose[24]使用CNN 進行特征提取,并將每個關鍵點嵌入到一個Token 中,以同時從圖像中學習約束和外觀線索。HR-ARNet[8]提出了注意力細化網絡,利用注意力機制對HRNet 提取的特征進行細化,使用單階段自注意力機制尋找關節遠距離關系。但是,使用單階段方法會使每個關鍵點的注意力不集中。受到TransPose[25]的啟發,本 文方法對CNN 提取的特征進行迭代注意力計算,以達到細化目標關鍵點的目的。
本文旨在構建一個可即插即用的網絡,用于建模人體關鍵點之間的遠程關系。首先描述模型的整體架構,然后對注意力計算進行數學分析,最后通過結合相關損失函數的方法達到對復雜關鍵點識別的目的。
本文提出一種基于注意力機制的關鍵點隱式建模網絡,如圖3 所示,該網絡由3 個部分組成,分別是CNN 主干網絡用于特征提取、特征篩選網絡基于十字交叉注意力機制、多階段關節隱式建模網絡。

圖3 關鍵點隱式建模架構Fig.3 Architecture of key points implicit modeling
為了證明本文提出方法的有效性,本文選擇當前精度最高的HRNet[7]作為主干網絡,并使用經典的特征提取網絡ResNet[17]作為主干網絡來證明本文方法的魯棒性。
HRNet 在整個網絡前向傳播的過程中能夠保持輸入圖片的高分辨率特征,并且在不同階段進行高低分辨率特征融合,從而在MSCOCO 和MPII 數據集上獲得了優于以往研究的成果。如圖4 所示,在HRNet 的最后一層將前面各層子網信息進行融合,產生輸出,并且全程保留高分辨率信息。由于并行的子網代表來自之前網絡中不同尺度的語義信息,直接聚合會存在信息冗余。因此,本文使用十字交叉注意力機制關注關鍵信息,抑制冗余信息,從而增強了網絡的特征融合能力。

圖4 HRNet 網絡結構Fig.4 HRNet network structure
特征篩選網絡基于十字交叉注意力機制搭建,設從主干網絡輸出得到局部特征圖為F?RH×W×C,其中,H×W代表特征圖的分辨率,C代表通道數。將其通過兩個1×1 卷積映射至不同特征空間,得到兩個分別為Q與K的特征張量,{Q,K} ?RC'×W×H,C'表示特征圖的通道數,且C' <C,同時通過另一個1×1卷積,得到一個V特征張量,V?RC×W×H。在Q張量中某個位置沿通道取出一向量Qu,Qu?RC'。同時,在K張量中相同位置,取出該位置所在一行與一列的 一組向量,即特征向量Ωu?R[H+W-1]×C',將 兩個向量進行融合,融合運算定義如下:
其中:i?[1,2,…,(H+W-1)];u代表平面維度;di,u代表特 征Qu與Ωi,u之間的 相關程 度,且di,u?R[H+W-1][W×H],Ωi,u代表Ωu中的第i個元素。經過融合計算后,應用Softmax 對位置關系進行歸一化,得出注意力權重A。在V中位置u處取出該位置所在一行與一列的一組向量,即特征向量φu?R[H+W-1]×C,用于遠程上下文信息聚合操作,聚合運算定義如下:
最終輸出Hu' 大小為C×W×H,通過這樣計算,可以達到對局部特征進行增強的目的,擁有一個更加寬闊的上下文視圖。
在人體姿態估計任務中,卷積運算只處理卷積核大小的局部信息,若想獲得遠距離關鍵點之間的關系,則需要擴大感受野。目前基于卷積神經網絡擴大感受野的方法大多為增加卷積神經網絡的深度或者增大卷積核[26],但這無疑帶來了更大的計算量。
為解決這一問題,本文利用自注意力機制來尋找關節之間遠距離依賴。設CNN 主干網絡輸出特征圖F?RH×W×C,首先通過1×1 卷積將其映射至特征圖Fforward?RH×W×d,以提升網絡對特征的表征能力。如果直接使用特征圖F計算相似性,則直接體現了語義上的相似性,在計算注意力權重時會產生一定的局限性。而映射到新的空間后,則增加了輸入之間相似性計算的多樣性,不僅僅是在語義上的相似性,更加強化了上下文的注意力。之后將其特征圖展開為X?RL×d的序列,其中L=H×W,經過N層注意力網絡和前向傳播網絡。多階段關節建模網絡整體架構如圖5 所示。

圖5 多階段關節隱式建模網絡Fig.5 Multistage joint implicit modeling network
對于上一階段特征圖,首先通過3個矩陣Wq、Wk、Wv?Rd×d將其映射至Q?RL×d、K?RL×d和V?RL×d。之后,注意力分數矩陣A?RN×N計算方式如下:
其中:Wq、Wk、Wv3 個矩陣中的參數都是可學習的。自注意力機制通過計算向量之間的相關性,很好地解釋了特征圖之間的相關性,從而建模遠距離關節關系。而通過堆疊N層,可以逐漸細化響應位置。
網絡的FNN 部分是必不可少的,在自注意力機制的計算內部結構中進行的是線性變換,而線性變換的學習能力不如非線性變換強。盡管注意力輸出利用自注意力機制,學習到了每個特征的新表達形式,但是這種表征的表達能力可能并不強。通過使用激活函數,可以加強數值較大的部分并抑制數值較小的部分,從而提高相關部分的表達效果。此外,在全連接層中,將數據映射到高維空間再映射到低維空間的過程可以學習到更抽象的特征,同時也可以防止過擬合。
本文提出基于熱圖的姿態估計方法,在網絡對圖片預測過程中,網絡針對每個關鍵點生成一張概率圖,共有X張概率圖,X為關節點數量。假設是模型預測第k個關鍵點概率圖,由高斯函數渲染,Hk~N(zk,σ),其 中,zk=(xk,yk),表示輸 入圖像 中第k個關鍵點位置,損失值由均方誤差計算:
可以看出,如果通過所有關鍵點計算損失值,則有可能會使網絡關注簡單關鍵點,如“頭”等,而忽略復雜關鍵點,如“膝蓋”等。本文使用焦點損失,反向傳播前Y個關鍵點損失,使模型更能關注復雜關鍵點,表達式如下:
本文使 用公開 數據集MPII 數據集[27]和MSCOCO 數據集[28]評估本文的方法。所有模型用PyTorch 框架實現,實驗顯卡使用一塊NVIDIA GeForce RTX 2080 Ti。
MPII數據集包括約25 000張圖片和超過400 000個帶有16 個關鍵點的標簽。該數據集涉及410 種人類活動,例如“騎自行車”、“滑雪”等,其中有超過33 000 個不可見關鍵點,且許多圖片的背景十分復雜。這使得該數據集非常適合評估本文的工作。本文使用官方數據集劃分,使用包含22 246 張圖片的訓練集來訓練模型,并使用包含2 958 張圖片的驗證集來驗證模型的有效性。參照之前的工作[6,29],輸入圖像是根據注釋中心的尺度參數從原始圖像中裁剪出256×256 像素的圖像。MSCOCO 數據集包含超過200 000 張圖片和250 000 個帶有17 個關鍵點的人體實例。在MSCOCO 數據集中,將輸入圖像的分辨率大小調整為256×192 像素。MSCOCO 數據集被劃分為train、val 和test-dev 3 個集合,分別包含57 000 張、5 000 張和20 000 張圖片。本文實驗在train 集上進行訓練,并在val 集上進行驗證。
MPII 數據集 評價指標為PCKh[27],其計算方式如下:
其中:X為關鍵點數;PPCKh@α是頭部閾值為α時預 測正確關鍵點的比例;f(pi)代表關鍵點相似度。f(pi)計算方法如下:
其中:0.6L表示人體頭部區域框對角線長度的60%;是關鍵點pi的預測值是關鍵點pi的真值;代表預測值與真實值之間歐氏距離;α為頭部歸一化閾值。
在MSCOCO 數據集上,使用Average Precision(AP)做評價指標。AP 基于關鍵點相似度(OKS)計算,OKS 計算方式如下:
其中:di為網絡預測值與真實值的歐氏距離;vi代表該關鍵點的可見性;s代表物體像素面積;ki代表關鍵點影響因子。平均精度指標與召回率表示如下:AP50(OKS 為0.5 的AP 值),APM(中尺度目標),APL(大尺度目標),AP(OKS 為0.50,0.55,…,0.95 的平均精度),AR(OKS 為0.50,0.55,…,0.95 的平均召回率)。
本文在Nvidia GeForce RTX 2080 Ti 顯卡上對其他模型進行復現,用于與本文方法進行對比。表1與表2 為本文方法在MPII 數據集與MSCOCO 數據集上的實驗結果(加粗字體為最優值)。

表1 MPII 數據集實驗結果Table 1 Experimental results of MPII dataset %

表2 MSCOCO 數據集實驗結果Table 2 Experimental results of MSCOCO dataset
為體現本文方法可適用于不同特征提取網絡,本文分別使用HRNet 與ResNet 做主干網絡進行定量分析。實驗結果表明,本文方法能夠提升不同特征提取網絡的準確性,并提高復雜關鍵點的識別能力。在MPII 數據集中,使用本文方法對HRNet 和ResNet 兩種網絡進行實驗,結果顯示在HRNet 的基礎上,本文方法的精度提高了1.7%,而對于ResNet,精度提高了18.6%。值得注意的是,在以HRNet 為主干網絡的實驗中,關鍵點“膝”和“腳踝”的精度分別提高了3.1%和2.3%。在以ResNet 為主干網絡的實驗中,關鍵點“膝”和“腳踝”的精度分別提高了24.1%和25.6%。這表明本文方法對不同的特征提取網絡都有效,并且具有魯棒性。
實驗結果顯示,在MSCOCO 數據集中,使用ResNet 作為主干網絡時,平均精度(AP)提高了34.7%,而使用HRNet 作為主干網絡時,AP 僅提高了2.6%。對比實驗結果表明,使用經典的ResNet 作為主干網絡的精度可以與其他優秀模型相媲美,這再次證明了本文提出方法的有效性。
為確定模型中超參數,本文以MPII 數據集為基準數據集,HRNet 為特征提取網絡,對超參數進行消融實驗。
1)多頭注意力:本文使用了多頭注意力機制來建模網絡。不同頭數的注意力機制代表了模型從不同角度提取特征,因此導致了不同的最終效果。本文分別嘗試了頭數為1、2 和4 個的情況,并將結果列在表3 中。實驗結果表明,當頭數為2 個時,模型效果最佳。然而,當頭數增加時,效果開始下降。這可能是因為增加頭數會導致模型的注意力分散到其他區域,從而削弱注意力機制。相反,使用單頭注意力機制可能會使模型過度關注當前位置,而忽略其他信息。

表3 模型頭數消融實驗結果Table 3 Ablation experiment results of model heads
2)隱式建模層數:本文對隱式建模網絡中隱式建模層數N進行消融分析,實驗結果如表4 所示。從表4 可以看出,當隱式建模層數為4 時,模型效果最佳。相較于2 層網絡,4 層網絡更注重“難”關鍵點的提取,具有更細致的特征。但是,6 層網絡相較于4 層網絡并沒有明顯提升,這表明過多的層數可能會導致特征冗余,影響模型精度。

表4 隱式建模層數消融實驗結果Table 4 Ablation experiment results of implicit modeling layers
3)特征篩選網絡:本文對不同的特征篩選網絡進行比較,實驗結果如表5 所示。從表5 可以看出,相較于CBAM 網絡,十字交叉網絡更適合人體姿態估計任務,這表明在人體姿態估計任務中,空間信息更有利于關鍵點的檢測。

表5 不同特征篩選網絡消融實驗結果Table 5 Ablation experiment results of different feature screening networks %
4)關鍵點損失數:本文對焦點損失反向傳播關節損失個數Y進行消融實驗,實驗結果如表6 所示。實驗結果表明,當Y=5 時,模型表現最佳。相比于不使用焦點損失,即Y=16 的情況,焦點損失可以提高模型的精度,與假設一致,即焦點損失可以使模型更加關注“難”關鍵點。當Y>5 時,模型的精度會下降,這可能是因為隨著關節損失個數的增加,模型對于“難”關鍵點的關注減弱,從而導致精度降低。

表6 關鍵點損失數消融實驗結果Table 6 Ablation experiment results of key point loss count
對隱式建模的每個階段的可視化如圖6 所示。從圖6 可以看出,不同的CNN 架構具有不同的關節依賴偏好。但隨著注意力層的增加,兩個模型的關注點都會逐漸細化,即使是不可見點,模型仍然可以通過其他關節線索對其進行推斷。如圖7 所示,分別展示了在MSCOCO 驗證集與MPII 驗證集上的結果。本文使用自注意力機制,打破卷積操作的局部感受,使用非局部方法對關鍵點結構隱式建模,以提升模型的識別能力。但本文算法具有一定的局限性,由于本文算法仍屬于熱圖方法,需要足夠的內存,難以在資源受限的設備上運行,雖然使用了非局部方法,但由于自注意力機制只能在有限的上下文中關注特征的相關性,因此仍有可能存在一定的局部感受,需要更詳細的分析和實驗來確定。

圖6 不同骨干網絡的可視化結果Fig.6 Visualization results of different backbone networks

圖7 在MSCOCO 和MPII 驗證集上的可視化結果Fig.7 Visualization results on MSCOCO and MPII validation sets
本文提出一種基于注意力機制的人體關鍵點隱式建模方法。首先基于十字交叉注意力機制搭建特征篩選網絡,增強關鍵特征,抑制不重要特征;其次采用多階段自注意力機制構建關鍵點隱式建模網絡,通過反復計算關節特征之間相關性,明確學習關鍵點之間約束關系,隱式建模關節之間的高階關系;最后采用焦點損失,使模型更加關注復雜識別關鍵點,提升模型對復雜關鍵點的識別能力。實驗結果表明,本文方法能夠很好地融入任意人體姿態估計特征提取網絡中,即插即用,可以提高網絡識別精度,并具有泛化能力。下一步將從圖形學角度對本文方法進行研究,以達到提升模型關鍵點識別能力、縮短模型的訓練時間和提高模型魯棒性的目的。