論文地址:https://arxiv.org/pdf/2203.15625.pdf
Github:https://github.com/Garfield-kh/PoseTriplet
單位:新加坡國立大學、南洋理工大學、華為
2022CVPR Oral Presentation
摘要
現有的自監督三維人體姿勢估計方法在很大程度上依賴於一致性損失等弱監督來指導學習,這不可避免地導致在真實場景中,不可見姿勢的結果較差。在本文中,作者提出了一種新的自監督方法,該方法允許通過self-enhancing dual-loop學習框架顯式生成2D-3D姿勢對以增強監督。這可以通過引入基於強化學習的imitator來實現,該imitator與pose estimator和pose hallucinator一起學習,這三個組件在訓練過程中形成兩個循環,相互補充和加強。具體來說,姿態估計器(pose estimator)將輸入的2D姿勢序列轉換為低分辨率的3D輸出,然后由實施物理約束的imitator進行優化增強。經過優化的3D姿勢隨后被輸入到pose hallucinator,以產生更加多樣化的數據,而這些數據又被imitator強化,並進一步用於訓練姿勢估計器。在實踐中,這種協同進化方案能夠在不依賴任何給定3D數據的情況下,根據自生成的運動數據訓練姿勢估計器。在各種基准的廣泛實驗表明,作者的方法產生的結果顯著優於現有技術,並且在某些情況下,甚至與完全監督方法的結果一致。
1&2 Introduction&Related works
主要講之前的方法都是有監督的,需要標簽的訓練,當然也有采用半監督和弱監督的訓練方式,來解決3D標簽不足的問題。在本文中,作者提出一種新的自監督方法,作者的方法屬於單視圖環境下的自監督方法。與以往通過一致性或對抗實現弱監督信號的自監督方法不同,該方法直接使用自生成數據中的強監督信號,從而獲得更准確、更穩定的模型性能。半監督類別下的偽標簽策略與該方法非常接近。但是,作者的方法不需要真實標簽數據進行模型預訓練,引入了物理合理性改進和多樣性增強,以實現更好的性能。

主要貢獻:
通過pose estimator、imitator和hallucinator的共同進化,實現了一種用於自監督3D姿勢估計的新方案。這三個組件相互補充,相互受益,共同形成了一個獨立的系統,可以實現逼真的3D姿勢序列,並進一步實現2D-3D增強監控。通過僅采用2D姿勢作為輸入,PosetReplet在各種基准測試中提供了真正令人鼓舞的結果,在很大程度上超過了最先進的水平,甚至接近完全監督的結果。
3. Methodology
注:含有上下標的符號有點多,注意區分。
給定一段2D pose sequence x1:T=(x1,…,xT)作為輸入,幀長為T,x為每個2D節點的坐標,目標為3D pose sequence X1:T=(X1,…,XT),X為對應三維關鍵點的坐標。
通常,姿勢估計器P通過完全監督學習方法,使用大量成對的2D和3D姿勢數據進行訓練,可表示為:

其中Lp表示損失函數,通常被定義為預測和真實3D姿態序列之間的均方誤差(MSE)。然而,真實3D姿勢數據的捕獲成本很高,這限制了這些方法的適用性。為了避免使用3D數據,以前的自監督方法通常采用弱2D再投影損失來學習三維估計器:

Ⅱ表示透視投影函數。再投影損失只提供了微弱的監督,這往往會導致不穩定或不自然的估計。在這項工作中,作者的目標是設計一個自我監督學習框架,其核心是一個迭代的自我改進范式,作者建議使用一些專門設計的變換T來增強當前估計(例如,產生更平滑和多樣的運動):

然后將增強的估計投影到二維姿勢,以獲得成對的訓練數據{x′1:T,X′1:T},用於改進姿勢估計器:(X'是增強后的3D,x'是增強的3D投影得到的2D,Pθ(x'1:T)為輸入增強后的2D得到的3D估計)

這里θn和θn+1表示當前估計器和改進估計器的參數。然后,可以利用改進的估計器開始數據增強和訓練的新迭代。基於這種自我改進的范例,可以從一組二維姿勢序列{x1:T}開始訓練一個效果良好的姿勢估計器。
3.1. PoseTriplet
為了構建一個有效的自我改進框架,作者確定了增強三維運動序列的兩個挑戰性方面:1)由於忽略力、質量和接觸建模,估計器的姿勢估計在物理上可能不合理;2) 現有的二維運動可能在多樣性方面受到限制,因此學習的模型不能很好地推廣。為了應對這些挑戰,作者引入了一種基於強化學習輔助人體運動建模的姿勢仿真器(pose imitator)和一種基於生成運動插值的姿勢幻覺器(pose hallucinator),從而對三維運動進行細化和多樣化。前者幫助糾正物理上不自然/反常的部分(physical artifacts),而后者生成新的基於已存在姿勢的姿勢序列。作者發現運動中的這兩個方面是互補的,因此將它們結合在一起。生成的管道有助於獲取3D運動數據{x'1:T,X′1:T},具有顯著改善的物理合理性和運動多樣性。然而,這兩種方法的簡單兩步組合會生成質量較差的3D姿勢序列,原因是,由於估計不可信,首先執行運動多樣化可能無效,而隨后執行運動多樣化可能會引入物理偽影。因此,作者進一步引入了一個雙環方案,並將這兩個分量與姿態估計器統一到一個新的自監督框架PoseTriplet中。

Dual-loop architecture 如Figure2所示,這個雙環結構包含三個模塊:a pose estimator P, a pose imitatorI, 以及 a pose hallucinator H。給定一段2D pose sequence x1:T=(x1,…,xT)作為輸入,pose estimator首先將其轉換為低分辨率的3D pose sequence:

{X-1:T}為被轉換為低分辨率的相應動作,並作為語義引導信號發送給pose imitator,后者實施物理人體運動動力學建模,並獲得物理上合理的運動序列:

通過學習生成動作完全模型,然后pose hallucinator生成新穎且多樣的運動序列{`X 1:T}基於imitator改進的動作:

之后,不是將{`x1:T}作為estimator的增強數據來關閉循環,而是引入另一個循環。將{`x1:T}反饋給imitator,以糾正誘發的物理偽影,並獲得最終預期的合理且多樣的運動序列:

然后將{ˆX1:T}投影到2D以獲得配對數據{ˆx1:T,ˆX1:T}用於訓練姿勢估計器。
通過聯合優化這種雙環結構,三個組成部分形成了一個緊密的協同進化范式:1)estimator受益於多樣且合理的增強數據,以學習更准確的估計。2) imitator根據改進的估計和hallucinator生成的各種數據學習更健壯、更自然的運動。3) hallucinator根據來自imitator的改進數據生成質量更高的各種姿勢序列。
Loop starting 這種自我提升學習范式的另一個挑戰是循環啟動,不能獲取3D運動數據時,整個框架無法開始學習。回想一下,pose imitator采用基於物理的人體運動模型,因此作者開發了一種零數據生成策略,生成初始3D姿勢序列,用於啟動雙循環學習。具體來說,在水平面上以隨機方向和適當速度生成根軌跡信號。然后,該軌跡被用作RL代理的制導信號。通過控制代理跟隨生成的軌跡,可以生成物理上合理的運動序列。然后將這些運動序列投影以獲得2D-3D姿勢對,並用於訓練初始pose estimator。這樣,整個雙環學習就可以開始了。
3.2. Module detail
3.2.1 Pose estimator
pose estimator根據輸入2D序列x1:T估計3D姿勢序列X1:T。具體來說,作者采用了與VideoPose類似的估計器架構,它可以預測根軌跡和根相對關節位置。該軌跡可作為pose imitator的附加運動信號。同時,pose estimator可以校正根運動中的噪聲。我們使用均方誤差(MSE)損失進行與根相關的姿勢估計,並使用加權L1損失進行以下軌跡估計[38]。
Projection for training estimator 給定生成的3D動作序列數據{ˆX1:T},將其投影到2D以獲得成對的訓練數據。考慮兩種投影策略:1) 啟發式隨機投影,將虛擬攝像機設置為一定的仰角、方位角范圍、高度和距離范圍,以匹配室內拍攝環境;2) 基於生成對抗學習的投射,Generator用於回歸每個運動序列的相機方向和位置,該回歸通過Discriminator學習,Discriminator通過生成的相機參數區分真實和投影的二維姿勢序列,通過這種方式,可以從真實的2D姿勢數據中提取合理的相機視點分布,從而提高生成的2D-3D成對數據的合理性。這兩種策略結合在作者的框架中,以確保相機視點的多樣性。
3.2.2 Pose imitator
由於缺乏物理約束,由pose estimator P預測的3D姿勢序列{X-1:T}會產生不自然的偽影,例如腳部滑動偽影、漂浮、地板穿透等。這些偽影使得它不能直接用作estimator P或Hallucinator H的訓練數據。為了解決這個問題,作者引入了一個基於強化學習的pose imitator L,用於模仿pose estimator產生的3D姿勢序列{X-1:T},以生成物理上合理的動作序列{X~1:T}。
Background 仿真過程(imitate process)可以看作是一個馬爾可夫決策過程。給定參考動作和當前狀態st∈ S、 代理與仿真環境進行交互,當動作at∈A時得到獎勵rt。其中,動作at由一個策略函數:π(at | st)決定,該策略函數以當前狀態st為前提,獎勵rt取決於代理的動作與參考動作的相似程度。當動作被采納,當前狀態st通過轉移函數T(st+1|st, at)轉至下一狀態st+1。目標是學習到一個策略,使平均累積報酬最大化∑∞i=1γirt(即,在物理仿真中執行與參考運動類似的行為),其中γ是貼現因子。更具體的策略下文展開說明。
State 包括參考運動的當前姿勢qt、當前速度q˙t和目標姿勢q~t+1。為了處理來自pose estimator含有噪聲的參考動作,引入了額外的編碼特征ϕ,連接和融合過去與未來的動作信息。通過這種方式,控制策略能夠感知過去和未來的參考動作,因此對噪聲更具魯棒性。
Action 涉及兩種力:內力和外力。內力是(有個actuator,不知如何翻譯比較好)施加在非根部關節(如肘部、膝蓋)上的。外力ηt是施加在根關節(即髖關節)上的虛擬力,用於額外的交互作用(例如坐在椅子上),並由策略網絡進行回歸。
Rewards 衡量代理和參考動作之間的差異。這些差異反映了姿勢相關(姿勢、速度)、根相關(根部高度、根部速度)和身體末端因素(位置、速度)。此外,為了避免不必要的外力跟隨,對虛擬力施加了調節損失。作者發現,由於參考動作的噪聲,代理很難在上述設置下移動,因此進一步在動作特征中引入腳的相對位置來增強腳的運動。
3.2.3 Pose hallucinator
pose hallucinator的目標是根據來自pose imitator的改進數據(refined data)生成新穎多樣的動作序列。在這項工作中,作者選擇了動作插值技術來生成新的姿勢動作。具體的,從改進的姿勢序列(refined pose sequence)中采樣關鍵幀,並通過神經網絡插值缺失幀以生成新的動作數據。具體來說,pose hallucinator是由一個遞歸神經網絡(RNN)結構構成的,輸入是采樣的時序關鍵幀(以一定的幀間隔采樣關鍵幀)。基於這些采樣關鍵幀,模型按順序預測中間幀。利用reconstrcution loss和adversary loss對該模型進行訓練。reconstrcution loss衡量真實姿勢和預測姿勢之間的L2距離。adversary loss提供了時間監督,以避免RNN坍塌(即預測平均動作)。在推理階段,從不同的動作序列幀(motion clips)中隨機選擇幀,並基於這些采樣的關鍵幀生成新的運動序列。
4. Experiments
4.2. Quantitative results
自監督能夠做到和監督學習一樣的效果,可以說非常好了,下面是在三個數據集上的實驗結果對比:



4.3. Qualitative results





4.4. Ablation study


5. Conclusion
優勢前面都說了,我趕着去吃飯,就不寫了。
Limitations 主要的限制是訓練效率較低,例如,在配備英特爾至強金6278C CPU和特斯拉T4 GPU的機器上訓練3輪需要7天。原因是imitator(L)是用基於CPU的強化學習(RL)實現的,hallucinator(H)是用RNN架構實例化的。
