论文笔记--3D Human Pose Estimation with Spatial and Temporal Transformers(用空间和时间变换器进行三维人体姿势估计)
用空間和時間變換器進行三維人體姿勢估計
摘要
??Transformer架構已經成為自然語言處理中的首選模型,現在正被引入計算機視覺任務中,如圖像分類、物體檢測和語義分割。然而,在人類姿勢估計領域,卷積架構仍然占主導地位。在這項工作中,我們提出了PoseFormer,這是一種純粹的基于變換器的方法,用于視頻中的三維人體姿勢估計,不涉及卷積架構。受視覺變換器最新發展的啟發,我們設計了一個空間-時間變換器結構,以全面模擬每一幀內的人體關節關系以及跨幀的時間相關性,然后輸出中心幀的精確三維人體姿勢。我們在兩個流行的標準基準數據集上對我們的方法進行了定量和定性的評估。Human3.6M和MPI-INF-3DHP。廣泛的實驗表明,PoseFormer在這兩個數據集上都取得了最先進的性能。
1. 簡介
??人體姿態估計(HPE)的目的是定位關節,并從圖像和視頻等輸入數據中建立一個身體代表(如骨架位置)。HPE提供了人體的幾何和運動信息,可以應用于廣泛的領域(如人機交互、運動分析、醫療保健)。目前的工作一般可分為兩類:(1)直接估計方法,和(2)二維到三維的提升方法。直接估計方法[31, 29]從二維圖像或視頻幀中推斷出一個三維人體姿態,而不需要立即估計二維姿態的表現。二維到三維的提升方法[25, 5, 43, 38]從中間估計的二維姿態推斷出三維人體姿態。受益于最先進的二維姿態檢測器的卓越性能,二維到三維提升方法通常優于直接估計方法。然而,這些二維姿態到三維的映射并不簡單;由于深度模糊和遮擋,各種潛在的三維姿態可以從同一個二維姿態中產生。為了緩解這些問題并保持自然的一致性,最近的許多工作都將視頻的時間信息整合到他們的方法中。例如,[25,5]利用時間卷積神經網絡(CNN)來捕捉來自相鄰幀的全局依賴性,[33]利用遞歸架構達到類似的效果。然而,這些架構的時間相關性窗口都是有限的。基于CNN的方法通常依賴于擴張技術,它本身具有有限的時間連通性,而遞歸網絡主要被限制在簡單的順序關聯上。
??最近,transformer [37]由于其效率、可擴展性和強大的建模能力,已經成為自然語言處理(NLP)的事實上的模型。由于transformer的自注意力機制,跨長輸入序列的全局相關性可以被明顯地捕獲。這使得它成為一個特別適合序列數據問題的架構,因此自然可擴展到三維HPE。憑借其全面的連接性和表達方式,轉化器提供了一個學習更強大的跨幀時間表示的機會。然而,最近的工作[12, 36]表明,轉化器需要特定的設計來實現與視覺任務的CNN對應的性能相媲美。具體來說,它們通常需要極大規模的訓練數據集[12],或者如果應用于較小的數據集,則需要增強的數據擴充和正則化[36]。此外,現有的視覺變換器主要限于圖像分類[12, 36]、物體檢測[4, 50]和分割[41, 47],但如何利用變換器的力量進行三維HPE仍不清楚。
??為了開始回答這個問題,我們首先在二維到三維的提升HPE上直接應用轉換器。在這種情況下,我們將給定序列中每一幀的整個二維姿勢視為一個標記(圖1(a))。雖然這種基線方法在一定程度上是可行的,但它忽略了空間關系的自然區分(關節到關節),把潛在的改進留在了桌面上。對這一基線的自然擴展是將每個二維關節坐標視為一個標記,并提供一個由序列中所有幀的這些關節組成的輸入(圖1(b))。然而,在這種情況下,當使用長幀序列時,標記的數量會變得越來越大(在三維HPE中,每幀有17個關節,最多可達243幀,標記的數量將是243×17=4131)。由于轉化器計算每個標記對另一個標記的直接注意,模型的內存要求接近一個不合理的水平。
圖1. 兩種基線方法。
??因此,作為對這些挑戰的有效解決方案,我們提出了PoseFormer,這是第一個用于視頻中2D到3D提升HPE的純transformer網絡。PoseFormer直接建立了空間和時間方面的模型,這兩個維度都有不同的變換器模塊。PoseFormer不僅能在空間和時間元素上產生強大的表征,而且對于長的輸入序列不會引起巨大的標記數。在高層次上,PoseFormer只是從一個現成的二維姿勢估計器中獲取檢測到的二維姿勢序列,并輸出中心幀的三維姿勢。更具體地說,我們建立了一個空間變換器模塊,對每一幀中的二維關節之間的局部關系進行編碼。空間自關注層考慮了二維關節的位置信息,并返回該幀的潛在特征表示。接下來,我們的時間轉換模塊分析每個空間特征表征之間的全局依賴關系,并生成一個精確的三維姿勢估計。
??在兩個流行的三維HPE基準上進行的實驗評估,即Human3.6M[16]和MPI-INF-3DHP[27],表明PoseFormer在這兩個數據集上取得了最先進的性能。我們將我們估計的3D姿勢與最先進的方法進行了可視化比較,發現PoseFormer產生了更平滑和更可靠的結果。同時,在消融研究中提供了PoseFormer注意力圖的可視化和分析,以了解我們模型的內部工作原理并證明其有效性。我們的貢獻有三個方面。
- 我們提出了第一個基于變換器的純模型–PoseFormer,用于二維到三維提升類別下的三維HPE。
- 我們設計了一個有效的空間-時間變換器模型,其中空間變換器模塊編碼人體關節之間的局部關系,而時間變換器模塊捕捉整個序列中跨幀的全局依賴關系。
- 在沒有任何附加條件的情況下,我們的PoseFormer模型在Human3.6M和MPI-INF-3DHP數據集上都取得了最先進的結果。
2. 相關工作
??在此,我們特別總結了三維單人單視角HPE方法。直接估計方法從二維圖像中推斷出三維人體姿態,而不需要立即估計二維姿態表示。二維到三維的提升方法利用二維姿態作為輸入來生成相應的三維姿態,這在該領域的最新方法中比較流行。任何現成的二維姿態估計器都可以與這些方法有效兼容。我們提出的方法PoseFormer也遵循二維到三維的提升管道,因此我們將在本節中主要關注此類方法。
??二維到三維提升的HPE。二維到三維提升方法利用了從輸入圖像或視頻幀中估計的二維姿勢。OpenPose[3]、CPN[6]、AlphaPose[13]和HRNet[35]已經被廣泛地用作二維姿勢檢測器。基于這種中間表征,三維姿態可以用各種方法生成。Martinez等人[26]提出了一個簡單有效的全連接殘差網絡,根據單幀的二維關節位置回歸三維關節位置。然而,視頻可以提供時間信息以提高準確性和魯棒性,而不是從單眼圖像中估計三維人體姿勢[49, 10, 32, 8, 2, 44, 38]。Hossain和Little[33]提出了一個使用長短時記憶(LSTM)單元的循環神經網絡,以利用輸入序列中的時間信息。一些作品[10, 2, 21]利用空間-時間關系和約束條件,如骨長和左右對稱來提高性能。Pavllo等人[32]引入了一個時間卷積網絡,通過連續的二維序列的二維關鍵點估計三維姿勢。在[32]的基礎上,Chen等人[5]增加了骨骼方向模塊和骨骼長度模塊,以確保各視頻幀的時間一致性,Liu等人[25]利用注意機制來識別重要的幀。然而,以前最先進的方法(如[25,5])依靠擴張的時間卷積來捕獲全局依賴性,這在時間連通性方面有內在的限制。此外,這些工作[25, 5, 33, 32]大多使用簡單的操作將關節坐標投射到一個潛在的空間,而沒有考慮人體關節的運動學相關性。
??三維HPE中的GNNs。當然,人體姿勢可以被表示為一個圖,其中關節是節點,骨骼是邊。圖神經網絡(GNN)也被應用于二維到三維的姿勢提升問題,并提供了很好的性能[9, 45, 24]。Ci等人[9]提出了一個框架,名為局部連接網絡(LCNs),它利用完全連接網絡和GNN操作來編碼局部聯合鄰域之間的關系。Zhao等人[45]解決了圖卷積網絡[19](GCN)操作的一個局限性,特別是如何在節點間共享權重矩陣。引入了語義圖卷積操作來學習邊的通道權重。
??對于我們的PoseFormer,transformer可以被看作是一種圖神經網絡,具有獨特的、通常是有利的圖操作。具體來說,transformer編碼器模塊基本上形成了一個全連接的圖,其中邊緣權重是使用輸入條件、多頭自我注意來計算的。該操作還包括節點特征的歸一化,一個跨注意力頭輸出的前饋聚合器,以及殘余連接,這使得它能夠有效地擴展堆疊層。與其他圖操作相比,這樣的操作可以說是有利的。例如,節點之間的連接強度是由transformer的自我注意機制決定的,而不是像這個任務中采用的典型的基于GCN的公式那樣,通過鄰接矩陣預先定義。這使得模型能夠靈活地適應每個輸入姿勢下各關節的相對重要性。此外,轉化器的綜合縮放和歸一化組件可能有利于減輕許多GNN操作變體在許多層堆疊在一起時的過度平滑效應[48]。
??視覺transformer。最近,人們對將transformer應用于視覺任務產生了興趣[17, 14]。Carion等人[4]提出了一個用于物體檢測和全景分割的DEtection TRansformer(DETR)。Dosovitskiy等人[12]提出了一個純粹的變換器架構,即視覺變換器(ViT),它在圖像分類上實現了最先進的性能。然而,ViT是在大規模數據集ImageNet-21k和JFT300M上訓練的,需要大量的計算資源。然后,一個數據高效的圖像轉換器(DeiT)[36]被提出,它建立在具有知識提煉功能的ViT之上。對于像HPE這樣的回歸問題,Yang等人[40]提出了一個轉化器網絡,Transpose,它只從圖像中估計二維姿勢。Lin等人[23]在他們的方法METRO(MEsh TRansfOrmer)中結合了CNN和transformer器網絡,從單一圖像中重建三維姿勢和網格頂點。與我們的方法相比,METRO屬于直接估計的范疇。另外,METRO忽略了時間上的一致性,這限制了其估計的穩健性。我們的空間-時間變換器架構利用了每一幀的關鍵點相關性,并保留了視頻中的自然時間一致性。
3. 方法
圖2. (a) 時間變換器基線。(b) 空間-時間變換器(PoseFormer)架構,由三個模塊組成。空間變換器模塊用于提取特征,考慮到每個單獨骨架的關節關聯性。一個時間轉換模塊,用于學習整個序列的全局依賴關系。一個回歸頭模塊對中心幀的最終三維姿勢進行回歸。變換器編碼器的說明是按照ViT[12]進行的。
??我們遵循與[26, 32, 25, 5]相同的視頻中3D HPE的2D-3D提升管道。每一幀的二維姿態由一個現成的二維姿態檢測器獲得,然后將連續幀的二維姿態序列作為估計中心幀三維姿態的輸入。與之前基于CNN的最先進的模型相比,我們產生了一個極具競爭力的無卷積變換器網絡。
3.1. 時間變換器基線
??作為transformer在二維到三維提升中的基準應用,我們將每個二維姿勢視為一個輸入標記,并采用轉換器來捕捉輸入之間的全局依賴關系,如圖2(a)所示。我們將每個輸入標記稱為一個patch,與ViT[12]的術語相似。對于輸入序列 X ∈ R f × ( J ? 2 ) X\in R^{f\times \left( J\cdot 2 \right)} X∈Rf×(J?2), f f f是輸入序列的幀數, J J J是每個二維姿勢的關節數,2表示二維空間中的關節坐標。 { X i ∈ R 1 × ( J ? 2 ) ∣ i = 1 , 2 , . . . , f } \left\{ X^i\in \mathbb{R}^{1\times \left( J\cdot 2 \right)}|i=1,2,...,f \right\} {Xi∈R1×(J?2)∣i=1,2,...,f}表示每幀的輸入向量。補丁嵌入(patch embedding)是一個可訓練的線性投影層,將每個patch嵌入到一個高維特征。transformer網絡利用位置嵌入(positional embeddings )來保留序列的位置信息。該程序可以被表述為
Z 0 = [ X 1 E ; X 2 E ; . . . ; X f E ] + E p o s ( 1 ) Z_0=\left[ X^1E;X^2E;...;X^fE \right] +E_{pos}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \left( 1 \right) Z0?=[X1E;X2E;...;XfE]+Epos???????????????(1)
??在通過線性投影矩陣 E ∈ R ( J ? 2 ) × C E\in \mathbb{R}^{\left( J\cdot 2 \right) \times C} E∈R(J?2)×C嵌入并與位置嵌入 E p o s ∈ R f × C E_{pos}\in \mathbb{R}^{f\times C} Epos?∈Rf×C相加后,輸入序列 X ∈ R f × ( J ? 2 ) X\in \mathbb{R}^{f\times \left( J\cdot 2 \right)} X∈Rf×(J?2)成為 Z 0 ∈ R f × C Z_0\in \mathbb{R}^{f\times C} Z0?∈Rf×C,其中 C C C是嵌入維度。 Z 0 Z_0 Z0?被送到時態變換器編碼器(Temporal Transformer Encoder)。
??作為變換器的核心功能,自我注意被設計為將輸入序列的不同位置與嵌入式特征聯系起來。我們的變換器編碼器是由多頭自我注意塊(Multi-head Self Attention blocks )與多層感知器(MLP)塊組成的,如[12]。LayerNorm在每個塊之前應用,剩余連接在每個塊之后應用[39, 1]。
??Scaled Dot-Product Attention可以被描述為一個映射函數,它將查詢矩陣 Q Q Q、關鍵矩陣 K K K和價值矩陣 V V V映射到輸出注意力矩陣。 Q , K , V ∈ R N × d Q,K,V\in \mathbb{R}^{N\times d} Q,K,V∈RN×d,其中 N N N是序列中的向量數, d d d是維度。在這個注意力操作中,利用了一個縮放系數來進行適當的歸一化,以防止當 d d d的大值導致點乘的幅度變大時出現極小的梯度。因此,因此,縮放點積的輸出注意可以表示為:
A t t e n t i o n ( Q , K , V ) = S o f t max ? ( Q K ? / d ) V ( 2 ) Attention\left( Q,K,V \right) =Soft\max \left( QK^{\top}/\sqrtozvdkddzhkzd \right) V\ \ \ \ \ \ \ \ \ \ \ \left( 2 \right) Attention(Q,K,V)=Softmax(QK?/d?)V???????????(2)
??在我們的時間變換器(temporal transformer)中, d = C d=C d=C, N = f N=f N=f。 Q Q Q、 K K K和 V V V是通過線性變換 W Q W_Q WQ?、 W K W_K WK?和 W V ∈ R C × C W_V\in \mathbb{R}^{C\times C} WV?∈RC×C從嵌入特征 Z ∈ R f × C Z\in \mathbb{R}^{f\times C} Z∈Rf×C計算出來的。
Q = Z W Q , K = Z W K , V = Z W V ( 3 ) Q=ZW_Q,\ K=ZW_K,\ V=ZW_V\ \ \ \ \ \ \ \ \ \ \ \left( 3 \right) Q=ZWQ?,?K=ZWK?,?V=ZWV????????????(3)
??Multi-head Self Attention Layer(MSA)利用多個head來聯合模擬來自不同位置的代表子空間的信息。每個head平行地應用Scaled Dot-Product Attention。MSA的輸出將是h個注意力head輸出的串聯。
M S A ( Q , K , V ) = C o m c a t ( H 1 , H 2 , . . . , H h ) W o u t ( 4 ) MSA\left( Q,K,V \right) =Comcat\left( H_1,H_2,...,H_h \right) W_{out}\ \ \ \ \ \ \ \ \ \ \ \left( 4 \right) MSA(Q,K,V)=Comcat(H1?,H2?,...,Hh?)Wout????????????(4)
w h e r e H i = A t t e n t i o n ( Q i , K i , V i ) , i ∈ [ 1 , . . . , h ] ( 5 ) where\ H_i=Attention\left( Q_i,\ K_i,\ V_i \right) ,\ i\in \left[ 1,...,h \right] \ \ \ \ \ \ \ \left( 5 \right) where?Hi?=Attention(Qi?,?Ki?,?Vi?),?i∈[1,...,h]???????(5)
考慮到我們的嵌入特征 Z 0 ∈ R f × C Z_0\in \mathbb{R}^{f\times C} Z0?∈Rf×C,L層的時態變換器編碼器(Temporal Transformer Encoder)結構可以表示如下:
Z ? ′ = M S A ( L N ( Z ? ? 1 ) ) + Z ? ? 1 , ? = 1 , 2... L ( 6 ) Z_{\ell}^{'}=MSA\left( LN\left( Z_{\ell -1} \right) \right) +Z_{\ell -1},\ \ \ \ \ell =1,2...L\ \ \ \ \ \ \ \ \ \ \ \left( 6 \right) Z?′?=MSA(LN(Z??1?))+Z??1?,?????=1,2...L???????????(6)
Z ? = M L P ( L N ( Z ? ′ ) ) + Z ? ′ , ? = 1 , 2... L ( 7 ) Z_{\ell}=MLP\left( LN\left( Z_{\ell}^{'} \right) \right) +Z_{\ell}^{'},\ \ \ \ \ \ \ \ \ \ell =1,2...L\ \ \ \ \ \ \ \ \ \ \ \left( 7 \right) Z??=MLP(LN(Z?′?))+Z?′?,??????????=1,2...L???????????(7)
Y = L N ( Z L ) ( 8 ) Y=LN\left( Z_L \right) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left( 8 \right) Y=LN(ZL?)??????????????????????????????????(8)
??其中 L N ( ? ) LN\left( \cdot \right) LN(?)表示層歸一化算子(與ViT中相同)。時間變換器編碼器由 L L L個相同的層組成,編碼器輸出 Y ∈ R f × C Y\in \mathbb{R}^{f\times C} Y∈Rf×C與編碼器輸入 Z 0 ∈ R f × C Z_0\in \mathbb{R}^{f\times C} Z0?∈Rf×C保持相同大小。
??為了預測中心幀的三維姿態,編碼器輸出 Y ∈ R f × C Y\in \mathbb{R}^{f\times C} Y∈Rf×C通過取幀維度的平均值縮減為向量 y ∈ R 1 × C y\in \mathbb{R}^{1\times C} y∈R1×C。最后,一個MLP模塊將輸出回歸到 y ∈ R 1 × ( J ? 3 ) y\in \mathbb{R}^{1\times \left( J\cdot 3 \right)} y∈R1×(J?3),這就是中心幀的三維姿勢。
3.2. 姿勢變換器:空間-時間變換器(PoseFormer: Spatial-Temporal Transformer)
??我們觀察到,時間變換器基線主要關注輸入序列中幀之間的全局依賴關系。補丁嵌入(patch embedding),一個線性變換,被用來投射關節坐標到一個隱藏的維度。然而,局部關節坐標之間的運動學信息在時間變換器基線中沒有得到有力的體現,因為簡單的線性投影層不能學習注意力信息。一個潛在的變通方法是將每個關節坐標視為一個單獨的patch,并將所有幀的關節作為輸入送入轉化器(見圖1(b))。然而,patch的數量會迅速增加(幀數f乘以關節數J),導致模型的計算復雜性為 O ( ( f ? J ) 2 ) O\left( \left( f\cdot J \right) ^2 \right) O((f?J)2)。例如,如果我們對每個二維姿勢使用81個幀和17個關節,patch的數量將是1377個(ViT模型使用576個patch(輸入尺寸=384×384,patch尺寸=16×16))。
??為了有效地學習局部聯合關聯,我們采用了兩個分離的transformers,分別用于空間和時間信息。如圖2(b)所示,PoseFormer由三個模塊組成:空間變換器模塊(spatial transformer module)、時間變換器模塊( temporal transformer)和回歸頭模塊( regression head module)。
??空間變換器模塊(Spatial Transformer Module)。空間轉換模塊是為了從單幀中提取高維的特征嵌入。給定一個具有 J J J個關節的二維姿勢,我們將每個關節(即兩個坐標)視為一個patch,并遵循一般的視覺變換器管道,在所有patch中進行特征提取。首先,我們用可訓練的線性投影將每個關節的坐標映射到一個高維度,這被稱為空間補丁嵌入。我們將其與可學習的空間位置嵌入[12] E S P o s ∈ R J × c E_{SPos}\in \mathbb{R}^{J\times c} ESPos?∈RJ×c相加,因此第i幀的輸入 X i ∈ R 1 × ( J ? 2 ) X_i\in \mathbb{R}^{1\times \left( J\cdot 2 \right)} Xi?∈R1×(J?2)成為 z 0 i ∈ R J × c z_{0}^{i}\in \mathbb{R}^{J\times c} z0i?∈RJ×c,其中 2 2 2表示每一幀的二維坐標, c c c是空間嵌入的維度。所得的關節特征序列被送入空間變換器編碼器,該編碼器應用自我注意機制來整合所有關節的信息。對于第 i i i幀,具有 L L L層的空間變換器編碼器的輸出將是 z L i ∈ R J × c z_{L}^{i}\in \mathbb{R}^{J\times c} zLi?∈RJ×c。
??時間變換器模塊(Temporal Transformer Module)。由于空間變換器模塊(spatial transformer module)對每一幀的高維特征進行編碼,時間變換器模塊的目標是對整個幀序列的依賴關系進行建模。對于第 i i i幀,空間變換器 z L i ∈ R J × c z_{L}^{i}\in \mathbb{R}^{J\times c} zLi?∈RJ×c的輸出被平鋪為向量 z i ∈ R 1 × ( J ? c ) z^i\in \mathbb{R}^{1\times \left( J\cdot c \right)} zi∈R1×(J?c)。然后我們將這些來自 f f f個輸入幀的向量 { z 1 , z 2 , . . . , z f } \left\{ z^1,\ z^2,...,\ z^f \right\} {z1,?z2,...,?zf}連接起來,作為 Z 0 ∈ R f × ( J ? c ) Z_0\in \mathbb{R}^{f\times \left( J\cdot c \right)} Z0?∈Rf×(J?c)。在時間變換器模塊之前,我們添加可學習的時間位置嵌入[12] E T P o s ∈ R f × ( J ? c ) E_{TPos}\in \mathbb{R}^{f\times \left( J\cdot c \right)} ETPos?∈Rf×(J?c),以保留幀的位置信息。對于時間變換器編碼器(temporal transformer encoder),我們采用與空間變換器編碼器相同的結構,它由多頭自我注意塊和 M L P MLP MLP塊組成。時空變換器模塊的輸出是 Y ∈ R f × ( J ? c ) Y\in \mathbb{R}^{f\times \left( J\cdot c \right)} Y∈Rf×(J?c)。
??回歸頭(Regression Head)。由于我們使用一連串的幀來預測中心幀的三維姿勢,時間變換器模塊(temporal transformer module)的輸出 Y ∈ R f × ( J ? c ) Y\in \mathbb{R}^{f\times \left( J\cdot c \right)} Y∈Rf×(J?c)需要被還原為 y ∈ R 1 × ( J ? c ) y\in \mathbb{R}^{1\times \left( J\cdot c \right)} y∈R1×(J?c)。我們在幀的維度上應用加權平均運算(用學到的權重)來實現這一點。最后,一個具有 L a y e r n o r m Layer norm Layernorm和一個線性層的簡單 M L P MLP MLP模塊返回輸出 y ∈ R 1 × ( J ? 3 ) y\in \mathbb{R}^{1\times \left( J\cdot 3 \right)} y∈R1×(J?3),這是中心幀的預測三維姿勢。
??損失函數。為了訓練我們的時空轉換模型,我們應用標準的 M P J P E MPJPE MPJPE(平均每關節位置誤差)損失來最小化預測姿勢和地面真實姿勢之間的誤差,即
L = 1 J ∑ k = 1 J ∥ p k ? p ^ k ∥ 2 ( 9 ) \mathcal{L}=\frac{1}{J}\sum\limits_{k=1}^J{\lVert p_k-\hat{p}_k \rVert _2}\ \ \ \ \ \ \ \ \left( 9 \right) L=J1?k=1∑J?∥pk??p^?k?∥2?????????(9)
其中 p k p_k pk?和 p ^ k \hat{p}_k p^?k?分別是第 k k k個關節的地面真相和估計的三維關節位置。
4. 實驗
4.1. 數據集和評估指標
??我們在兩個常用的三維HPE數據集上評估我們的模型,Human3.6M[16]和MPI-INF-3DHP[27]。
Human3.6M[16]是最廣泛使用的三維單人HPE的室內數據集。有11位專業演員表演了17個動作,如坐、走、講電話等。每個主體的視頻都是從室內環境中的4個不同角度錄制的。這個數據集包含了360萬個視頻幀,這些視頻幀帶有由精確的基于標記的運動捕捉系統捕獲的三維地面真實注釋。按照以前的工作[32, 25, 5],我們采用相同的實驗設置:所有15個動作都用于訓練和測試,模型在五個部分(S1, S5, S6, S7, S8)上進行訓練,并在兩個主體(S9和S11)上進行測試。
??MPI-INF-3DHP[27]是一個更具挑戰性的3D姿勢數據集。它包含了受限的室內場景和復雜的室外場景。有8個演員從14個攝像機視角執行8個動作,涵蓋了更多的姿勢多樣性。MPI-INF-3DHP提供了一個由6個不同場景的主體組成的測試集。我們遵循[22, 5, 38]中的設置。
??對于Human3.6M數據集,我們使用最常用的評估指標(MPJPE和P-MPJPE)[46]來評估我們對地面真實三維姿勢的估計性能。MPJPE(平均每關節位置誤差)被計算為估計的關節和地面真實之間的平均歐氏距離,單位為毫米;我們把MPJPE稱為協議1。P-MPJPE是通過對估計的三維姿態和地面實況進行后處理后的MPJPE,它對單個關節的預測失敗更為穩健。我們將P-MPJPE稱為協議2。
??對于MPI-INF-3DHP數據集,我們使用MPJPE、150mm范圍內的正確關鍵點百分比(PCK)[22, 5, 38],以及曲線下面積(AUC)。
4.2. 實施細節
??我們用Pytorch[30]實現了我們提出的方法。兩個NVIDIA RTX 3090 GPU被用于訓練和測試。在進行實驗時,我們選擇了三種不同的幀序列長度,即f=9、f=27、f=81。關于幀數與結果的細節將在消融研究中討論(第4.4節)。我們按照[32, 25, 5]在訓練和測試中應用水平翻轉的姿勢作為數據增強。我們使用Adam[18]優化器對我們的模型進行了130個歷時的訓練,權重衰減為0.1。我們采用指數學習率衰減計劃,初始學習率為2e-4,每個歷時的衰減系數為0.98。我們將批次大小設置為1024,并采用隨機深度[15],對變換器編碼器層的速率為0.1。對于二維姿勢檢測器,我們按照[32, 25, 5]在Human3.6M上使用級聯金字塔網絡(CPN)[7],并按照[28, 22]將地面真實二維姿勢作為MPI-INF-3DHP的輸入。
4.3. 與最新技術水平的比較
??Human3.6M。我們在表1中報告了測試集(S9和S11)的所有15個動作結果。最后一欄提供了所有測試集的平均性能。按照從二維到三維的提升方法,我們使用CPN網絡作為二維姿勢檢測器,然后將檢測到的二維姿勢作為輸入進行訓練和測試。在協議1和協議2下,PoseFormer比我們的基線(即第3.1節中的時間變換器基線)要好很多(6.1%和6.4%)。這清楚地表明了使用空間變換器對每一幀中的關節之間的相關性進行表達式建模的優勢。如表1(頂部)所示,PoseFormer在協議1下產生的平均MPJPE最低,為44.3mm。與基于變換器的方法METRO[23]相比,PoseFormer將MPJPE降低了約18%,因為METRO忽略了時間上的一致性,因為三維姿勢是由單一圖像估計的。對于協議2,我們也獲得了最佳的整體結果,如表1(底部)所示。此外,PoseFormer在困難的動作上實現了更準確的姿勢預測,如Photo、SittingDown、WalkDog和Smoke。與其他簡單的動作不同,這些動作中的姿勢變化更快,一些長距離的幀有很強的相關性。在這種情況下,全局依賴性起著重要的作用,而轉化器的注意機制則特別有優勢。
??為了進一步研究我們方法的下限,我們直接使用地面真實的二維姿勢作為輸入,以減輕由嘈雜的二維姿勢數據引起的誤差。結果顯示在表2中。通過使用干凈的二維姿勢數據,MPJPE從44.3mm減少到31.3mm,約為29.7%。PoseFormer在9個動作中取得了最佳得分,在6個動作中取得了第二好的得分。與SRNet[43]相比,平均得分提高了約2%。
表1. 使用檢測到的二維姿勢作為輸入,在協議1和2下對Human3.6M的估計三維姿勢和地面真實三維姿勢之間的平均每關節位置誤差的定量比較。上表:協議1(MPJPE)下的結果。下表:協議2(P-MPJPE)下的結果。f表示每種方法使用的輸入幀數,?表示輸入的2D姿勢由級聯金字塔網絡(CPN)檢測,?表示基于變形器的模型。(紅色:最佳;藍色:次佳)
??在圖3中,我們還比較了在Human3.6M測試集S11上誤差最大的一些單個關節的MPJPE與動作照片。PoseFormer在這些困難的關節上取得了比[32, 5]更好的性能。
??MPI-INF-3DHP。表3報告了PoseFormer與其他方法在MPI-INF-3DHP上的定量結果。與Human3.6M相比,這個數據集包含的訓練樣本較少,而且有些樣本來自于室外場景。由于該數據集的序列長度通常較短,我們使用9幀的2D姿勢作為我們的模型輸入。我們的方法在所有三個評估指標(PCK、AUC和MPJPE)上再次取得了最佳表現。
圖3. 在Human3.6M測試集S11的所有幀中,與照片動作的平均聯合誤差比較。
??定性結果。我們還提供了三維估計姿態和地面實況之間的視覺比較。我們在Human3.6M測試集S11上對PoseFormer進行了評估,該測試集是最具挑戰性的動作之一(所有方法的MPJPE都很高)。與最先進的方法[5]相比,我們的PoseFormer實現了更準確的預測,如圖4所示。
4.4. 消融研究
??為了驗證PoseFormer各個部分的貢獻以及超參數對性能的影響,我們在協議1下用Human3.6M數據集進行了廣泛的消融實驗。
??PoseFormer的設計。我們研究了空間變換器的影響,以及表4中空間和時間變換器的位置嵌入。我們輸入9幀CPN檢測到的2D姿勢(J=17)來預測3D姿勢。為了公平地比較每個模塊的影響,所有的結構參數都是固定的;空間變換器的嵌入尺寸是17×32=544,空間變換器編碼器層的數量是4。 對于時間變換器,嵌入尺寸與空間變換器一致(即544),我們也應用4個時間變換器層。為了驗證我們的空間-時間設計的影響,我們首先與我們在第3.1節開始的轉化器基線進行比較。表4中的結果表明,我們的空間-時間變換器產生了重大影響(從52.5到49.9MPJPE),因為聯合相關關系被更有力地模擬了。這也與表1中f=81時的結果(Baseline vs. PoseFormer)一致。接下來,我們評估位置嵌入的影響。我們探索了四種可能的組合:沒有位置嵌入,只有空間位置嵌入,只有時間位置嵌入,以及空間和時間位置嵌入。比較這些組合的結果,很明顯,位置嵌入提高了性能。通過在空間和時間模塊上應用這些東西,達到了最佳的整體效果。
表2. 在協議1(MPJPE)下的Human3.6M數據集上,使用地面真實2D姿勢作為輸入,估計的3D姿勢和地面真實3D姿勢之間的平均每關節位置誤差的定量比較。(紅色:最佳;藍色:次佳)
圖4. 我們的方法(PoseFormer)和Chen等人的SOTA方法[5]在Human3.6M測試集S11上的照片動作的定性比較。綠色箭頭強調了PoseFormer明顯具有更好結果的位置。
表3. 與以前的MPIINF-3DHP方法的定量比較。最好的分數用粗體字標出。
表4. 對PoseFormer中不同組件的消融研究。評估是在Human3.6M(協議1)上進行的,使用檢測到的2D姿勢作為輸入。(T: 只有時間上的;S-T: 空間-時間上的)
表5. 對PoseFormer中不同結構參數的消融研究。評估是在Human3.6M(協議1)上進行的,使用檢測到的二維姿勢作為輸入。c是空間變換器補丁嵌入維度。LS和LT分別表示空間和時間變換器的層數。
表6. 計算復雜性、MPJPE和推理速度(每秒一幀(FPS))的比較。評估是在協議1下對Human3.6M進行的,使用檢測到的2D姿勢作為輸入。FPS是基于單個GeForce GTX 2080 Ti GPU。
??架構參數分析。我們探索各種參數組合,以找到表5中的最佳網絡結構。c代表空間變換器中的嵌入特征維度,L表示變換器編碼器中使用的層數。在PoseFormer中,空間變換器的輸出被壓扁,并與時間位置嵌入相加,形成時間變換器編碼器的輸入。因此,時間變換器編碼器的嵌入特征維度是c×J。我們模型的最佳參數是c=32,LS=4,LT=4。
??計算復雜性分析。我們在表6中報告了不同輸入序列長度(f)下的模型性能、參數總數和每幀估計浮點運算(FLOPs),以及輸出幀/秒(FPS)的數量。當序列長度增加時,我們的模型取得了更好的準確性,而參數總數并沒有增加很多。這是因為幀數只影響到時間位置嵌入層,它不需要很多參數。與其他模型相比,我們的模型需要的總參數較少,性能也很有競爭力。我們報告了不同模型在單個GeForce RTX 2080 Ti GPU上的推理FPS,遵循[5]中的相同設置。盡管我們模型的推理速度不是絕對最快的,但對于實時推理來說,其速度還是可以接受的。對于完整的3D HPE處理,首先由2D姿勢檢測器檢測2D姿勢,然后由我們的方法估計3D姿勢。普通二維姿勢檢測器的FPS通常低于80,這意味著我們模型的推理速度不會成為瓶頸。
圖5. 空間變換器中的自我關注的可視化。x軸(水平)和y軸(垂直)分別對應于查詢和預測的輸出。像素wi,j(i:行,j:列)表示第j個查詢對第i個輸出的關注權重。紅色表示更強的注意力。注意力輸出從0到1被規范化。
圖6. 時空變換器中自我注意力的可視化。X軸(水平)和Y軸(垂直)分別對應于查詢和預測的輸出。像素wi,j(i:行,j:列)表示第j個查詢對第i個輸出的關注權重。紅色表示更強的注意力。注意力輸出從0到1被規范化。
??注意力的可視化。為了通過多頭自我注意塊來說明注意機制,我們在Human3.6M測試集S11上對一個特定動作(SittingDown)進行了評估,并將來自空間和時間變換器的自我注意圖分別可視化,如圖5和圖6所示。對于空間自我注意圖,X軸對應于17個關節的查詢,Y軸表示注意力的輸出。如圖5所示,注意頭返回不同的注意強度,這代表了在輸入關節之間學到的各種局部關系。我們發現,頭3關注的是15和16號關節,也就是右肘和右腕。頭5建立了左腿和左臂的連接(4、5、6號關節和11、12、13號關節)。這些關節可以被歸類為身體的左側部分,而頭7集中在右側(關節1、2、3與關節12、13、14)。
??對于圖6中的時間性自我注意圖,X軸對應于81幀的查詢,Y軸表示注意的輸出。長期的全局依賴性是由不同的注意力頭學習的。頭3的注意力與中心幀右側的一些幀(如第58、62和69幀)高度相關。頭7捕捉到了第1、20、22、42、78幀的依賴關系,盡管它們的距離很遠。空間和時間注意力圖表明,PoseFormer成功地模擬了關節之間的局部關系,同時也捕捉到了整個輸入序列的長期全局依賴關系。
表7. 對HumanEva測試集的MPJPE評估。FT表示在Human3.6M上使用預訓練的模型進行微調。
??對小數據集的泛化。之前的工作,如[12],得出的結論是,在數據量不足的情況下訓練的轉化器不能很好地進行泛化。我們用我們的模型進行了一個實驗,以研究在一個小數據集–HumanEva[34]上的轉化器學習能力。與Human3.6M(大于100萬幀)相比,它是一個小得多的數據集(小于50K幀)。表7顯示了從頭開始訓練以及在Human3.6M上使用預訓練模型進行微調的結果。我們發現,在微調時,性能可以提高很大的幅度,這遵循了以前的觀察[12, 36],即變壓器在大規模數據集上預訓練時可以表現良好。
5. 總結
??在本文中,我們提出了PoseFormer,一種基于純變換器的方法,用于從二維視頻中進行三維姿勢估計。空間變換器模塊對二維關節之間的局部關系進行編碼,時間變換器模塊捕捉任意幀之間的全局依賴關系,而不考慮距離。廣泛的實驗表明,我們的模型在兩個流行的三維姿勢數據集上實現了最先進的性能。
總結
以上是生活随笔為你收集整理的论文笔记--3D Human Pose Estimation with Spatial and Temporal Transformers(用空间和时间变换器进行三维人体姿势估计)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 时阅
- 下一篇: Seaborn常用绘图函数-sjs