任你旋轉跳躍不停歇,也能完美呈現3D姿態估計

魚羊 十三 發自 凹非寺
量子位 報道 | 公眾號 QbitAI

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

讓AI通過預測,捕捉你「左手畫龍,右手畫彩虹」的動作,對於AI理解人類行為至關重要。

想要做到這一點,人體運動數據不可或缺,但實際上,真實的3D運動數據恰恰是稀缺資源。

現在,來自馬克斯·普朗克智能系統研究所的一項研究,利用對抗學習框架,在缺少真實3D標籤的情況下,也能對實時視頻裡的人體運動,做出運動學上的合理預測。

就像這樣,奔跑、跳躍都能跟得上:

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

並且,相比前輩,這一名為VIBE的方法更懂人心,連胳膊要抬幾度,都計算得明明白白。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源


那麼,VIBE到底是如何做到的?

對抗學習框架

關鍵創新,在於採用了對抗學習框架。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

一方面,利用時間(temporal)生成網絡,預估視頻序列中每個幀的SMPL人體模型參數。

注:SMPL,即A Skinned Multi-Person Linear Model,馬普所提出的一種人體建模方法。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

具體來說,給定一個單人視頻作為輸入,使用預先訓練的CNN提取每個幀的特徵。

訓練雙向門控循環單元組成的時間編碼器,輸出包含過去和將來幀中信息的潛在變量。

然後,利用這些特徵對SMPL人體模型的參數進行迴歸。

另一方面,運動鑑別器能夠以SMPL格式訪問大量人體動作。

將生成器生成的樣本,和取自AMASS的樣本作為鑑別器的輸入,訓練其辨別真實動作和“偽”動作。

AMASS是一個大型開源3D運動捕捉數據集,包含40個小時的運動數據,344個主題,超過11000個動作。(項目地址見文末)

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

由於循環網絡在順序處理輸入時會更新其隱藏狀態,最終的隱藏狀態將保留該序列中信息的摘要。研究人員在鑑別器中引入了自注意力機制,來放大最終表示中最重要的幀的作用。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

多項性能指標達SOTA

老規矩,先來看下數據集。

對於訓練數據集,混合使用了2D和3D數據集。

PennActionPoseTrack是唯一的ground-truth 2D視頻數據集,3D數據集方面採用的是MPI-INF3DHPHuman3.6M。除此之外,還利用AMASS進行對抗性訓練,獲得真實樣本。

在評估、對比方面,採用的數據集主要是3DPWMPI-INF3DHPHuman3.6M

那麼,在訓練後,在上述三個數據集上,採用最先進方法結果的比較,如表1所示:


任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

△表1:在3DPW、MPI-INF-3DHP、H36M三個數據集上,各個最先進方法的結果比較


研究人員在這個三個數據集上,將VIBE和其他最先進的,基於幀和時間的模型做了性能比較。

可以不難看出,VIBE在3DPW和MPI-INF-3DHP這兩個數據集上的表現是比較好的,性能上超越了其他模型。

在H36M數據集上,也得到相對接近於目前最優值的結果。

除此之外,表1中還涉及了一個加速度誤差(acceleration error),從數值上可以看出,VIBE與基於幀的HMR方法相比,誤差是較小的,也就是結果更加平滑。

但與基於時間的模型相比,加速度誤差卻比較高,但是這裡卻存在一個問題,基於時間的模型,採用了較為“激進”的平滑處理方式,會使得快速運動視頻的準確性降低,如下圖所示。


任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

△上:VIBE;下:基於時間的HMR。


VIBE模型能夠恢復正確的全局旋轉,這是前人提出的方法中存在的一個比較嚴重的問題,這也是在表1中MPJPE和PVE指標比較好的原因。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

此外,實驗還證明,有和沒有運動鑑別器DM,對模型的性能也具有較大的影響,如表2所示。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

△表2:運動鑑別器DM的消融實驗


還嘗試了幾種自注意力的配置,將VIBE方法與靜態合併方法進行了比較,結果如表3所示。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

△表3:自注意力的消融實驗



GitHub已開源,快速上手玩Demo

除了吊炸天的實驗效果,另一個令人激動的消息是,論文代碼已開源!

研究人員在實現過程中採用的是Pytorch,實驗設備需要同時支持 CPU 和 GPU 的推理,在RTX2080Ti上速度高達30幀/秒,以及是在3DPW 和 MPI-INF-3DHP 數據集上實現 SOTA 結果。

任你旋轉跳躍不停歇,也能完美呈現3D姿態估計 | 代碼開源

準備工作也很簡單,首先要克隆這個項目,只需輸入:

<code>git clone https://github.com/mkocabas/VIBE.git/<code>

使用 pip 或 conda 安裝需求:

<code># pip
bash install_pip.sh

# conda
bash install_conda.sh/<code>

接下來在這個GitHub項目中,下載好數據集,可以運行:

<code>bash prepare_data.sh/<code>

然後就可以運行已經準備好的demo代碼了(可以在任意視頻上運行VIBE):

<code># Run on a local video
python demo.py --vid_file sample_video.mp4 --output_folder output/ --display

# Run on a YouTube video
python demo.py --vid_file https://www.youtube.com/watch?v=wPZP8Bwxplo --output_folder output/ --display/<code>

當然,如果你沒有上述實驗所需要的設備、環境,可以採用Google Colab。同樣,研究人員也為你準備好了Colab的“快速通道”,來運行demo,可戳下方鏈接:

https://colab.research.google.com/drive/1dFfwxZ52MN86FA6uFNypMEdFShd2euQA

那麼,趕緊上手來試試吧!

傳送門

論文地址:https://arxiv.org/abs/1912.05656

GitHub地址:https://github.com/mkocabas/VIBE

AMASS數據集:https://amass.is.tue.mpg.de/

— 完 —

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態


分享到:


相關文章: