本文是對 2020 年 9 月發表於計算機圖形學頂級期刊 ACM Transactions on Graphics(ToG)的論文《基於骨骼一致性的單目視頻人體運動重建(MotioNet: 3D Human Motion Reconstruction from Monocular Video with Skeleton Consistency)》的解讀。
該論文由北京大學與山東大學、北京電影學院、以色列特拉維夫與耶路撒冷大學合作,針對從單目視頻中提取人體運動的問題,區別於直接回歸關節坐標的方法,作者在神經網絡中利用正向運動學,預測出時序一致的人體骨架及所對應的關節旋轉,減小了網絡預測的空間搜索範圍,網絡輸出的結果也能直接運用於角色動畫的驅動。
論文連結:https://arxiv.org/abs/2006.12075
項目主頁:https://rubbly.cn/publications/motioNet
1
背景
人體運動是現實世界中最常見的視覺內容之一,隨著圖像視頻獲取設備的大規模普及,對理解人類行為這一機器視覺任務的智能化解決變得日益重要。然而真實場景下的人體運動重建一直是一個具有挑戰性的問題,人體高自由度的關節所構成的姿態難以用簡單的模板進行匹配,真實場景下的複雜光照、背景也增大了這個問題的難度。
隨著深度學習的發展,大量的研究工作致力於從視頻序列中,通過有監督的方法預測人體三維關節坐標來表示人體運動[2]。在得到二維關鍵點或者圖形深層特徵後,通過在預測的坐標位置和真實坐標位置之間計算損失函數,將這個問題轉變為回歸問題。
然而,在預測過程中人體結構並未完全考慮。網絡不同的關節點的預測結果來源於獨立的維度,每一個關節點的預測都會在全局空間中進行搜索,沒有相互之間的約束;在同一個視頻的預測中,前後幀預測的骨架也會產生不一致,這不僅導致了不平滑的結果,近大遠小的投影規則也導致了在深度預測上的二義性。
圖1. 同一段預測在不同時刻的骨架相對大小 [Pavllo et al., CVPR 2019]
同時,如果想在角色動畫中使用這樣的數據時,首先需要利用反向運動學(Inverse Kinematics)將關節坐標點轉換為對應的旋轉。然而,關節位置只能描述在特定坐標維度上的信息,無法描述自身的旋轉,因此這樣不完整的運動信息很難直接運動於角色動畫的驅動。
圖2. 關節坐標位置表示方法中的二義性:同樣的關節坐標可以代表不同的旋轉
為了解決這些問題,本文設計了一種使用骨骼位置+動態關節旋轉的方式表示人體動作的雙通路網絡結構,提供了以旋轉為主要表達方式的人體運動重建解決方案,同時利用腳步接觸信號等方式,提高了結果的可視效果。
2
方法
方法的核心為正向運動學,給定父關節初始位置,通過應用不同的變換方式得到子關節位置。人體的任何一個動作,都有正向運動學的參與。該過程的基本數據結構為旋轉,通過不同關節之間的旋轉組合,可以實現不同的人體姿態。本文通過神經網絡的方式,實現了正向運動學的過程。
圖3. 將旋轉運用到T-pose上的正向運動學過程
網絡由雙分支的編碼器組成,其中,第一個分支負責預測關節旋轉、地面接觸信號、全局坐標等信息,而另一個分支負責預測以骨骼長度為基本元素組合而成的初始姿態(T-pose),然後關節旋轉與 T-pose 輸入到正向運動學(FK)層,得到組合而成的三維動作序列。
圖4. 網絡結構示意圖
對於 T 幀的輸入,第一個分支會產生 T 幀的輸出,而第二個分支會通過池化的方式進行信息的壓縮,只產生 1 幀輸出,作為時序統一的骨架信息。在我們的解決方案中,將預測出的骨骼長度應用到固定的骨骼拓撲結構上,形成 T-pose。然後第一個分支所產生的每一幀的旋轉,通過 FK 應用到時序統一的 T-pose 上,便得到了這個骨架在不同幀下的人體姿態。預測的序列通過與真實三維動作進行坐標上的誤差比對,進行網絡的收斂。
網絡的輸入是由其他方法產生的二維運動序列,在訓練過程中,本文使用數據集中的真實三維運動數據,然後通過投影的方式得到所對應的二維數據。但為了適應在真實視頻中因為快速運動、遮擋等因素所產生的噪音,本文在訓練數據中模擬噪音的分布,將代表關節預測置信度作為網絡輸入的另一個維度。
為了提高生成效果的質量,除了最後關節坐標的損失函數,本文還使用了以下方法提高結果的質量:
1、腳步接觸信號
正向運動學中骨骼鏈的存在,使得父關節所產生的預測誤差會不斷在末端關節中累積,導致了腳步滑動、末端關節抖動的問題。因此在訓練過程中,我們同時預測腳步與地面的接觸信號,當腳關節接觸地面時,其關節運動應該相對穩定,因此預測得到的關節角速度應該接近0。
2、生成結果的對抗訓練
本文使用旋轉作為運動的表達形式,因此可以很靈活的在旋轉上應用各種操縱器,滿足角色動畫的要求。例如本文所使用了對抗學習的方法,使得預測出的關節旋轉的相對變化,儘可能接近真實的旋轉。在做抬手的動作時,判別器會傾向於手部不應該出現奇怪的自旋轉,從而讓網絡輸出這樣認為是「真實」的結果。
3
實驗結果
在不同視頻上展示的結果可以看出,本文所提出的方法具有能夠從複雜背景、運動中提取出合理的三維運動的能力。
圖5. 不同視頻下的網絡輸出
與其他方法進行了定性比較可以發現,其他算法在關節位置的正確性、旋轉的合理性上都存在較大的問題。尤其是在快速運動或存在遮擋的情況下,這些方法往往會出現錯誤的預測。
圖6. 對比結果, Kanazawa [2018], Pavllo [2019], Mehta [2017]
同時,由於預測的骨架在視頻前後的一致性,本文產生的結果不會在深度上產生二義性,因此相比起其他方法,本文能得到更精準的全局坐標。
圖7. 全局位置預測對比結果
參考文獻
[1] Zhe Cao, Gines Hidalgo, Tomas Simon, Shih-En Wei, and Yaser Sheikh. 2018. OpenPose: realtime multi-person 2D pose estimation using Part Affinity Fields. arXiv preprint arXiv:1812.08008 (2018).
[2] Pavllo, D., Feichtenhofer, C., Grangier, D., & Auli, M. (2019). 3d human pose estimation in video with temporal convolutions and semi-supervised training. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 7753-7762).