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