蕭簫 發自 凹非寺
量子位 | 公眾號 QbitAI
讓3D動畫小人做一套絲滑的動作,需要手動渲染多久?
現在交給AI,輸入幾句話就能搞定(不同顏色代表不同動作):
看向地面並抓住高爾夫球杆,揮動球杆,小跑一段,蹲下。
此前,AI控制的3D人體模型基本只能「每次做一個動作」或「每次完成一條指令」,難以連續完成指令。
現在,無需剪輯或編輯,只需按順序輸入幾條命令,3D人物就能自動完成每一套動作,全程絲滑無bug。
這隻新AI的名字叫TEACH,來自馬普所和古斯塔夫·艾菲爾大學。
網友們腦洞大開:
這樣以後拍3D動畫電影,是不是只用劇本就能搞定了?
顯然,遊戲和模擬行業可以考慮一下了。
那麼,這樣的3D人物動作神器是怎麼來的呢?
用編碼器「記住」前一個動作
TEACH的架構,基於團隊不久前提出的另一個3D人體運動生成框架TEMOS。
TEMOS基於Transformer架構設計,利用人體真實運動數據進行訓練。
它在訓練時會採用兩個編碼器,分別是動作編碼器(Motion Encoder)和文本編碼器(Text Encoder),同時通過動作解碼器(Motion Decoder)輸出。
但在使用時,原本的動作編碼器就會被「扔掉」、只保留文本編碼器,這樣模型直接輸入文本後,就能輸出對應的動作。
與其他輸入單一文本、輸出確定性動作的AI不同,TEMOS能通過單一文本,生成多種不同的人體運動。
例如「人繞圈」和「站著走幾步路停下來」這種單一指令,就能生成好幾種不同的運動方式:
△轉圈方式、走路步幅都不一樣
TEACH的架構正是基於TEMOS設計,動作編碼器直接就從TEMOS那兒搬了過來。
但TEACH重新設計了文本編碼器,其中包括一個名叫Past Encoder的編碼器,它會在生成每一個動作時,提供前一個動作的上下文,以增加動作與動作之間的連貫性。
如果是一系列指令中的第一個動作,就禁用Past Encoder,畢竟沒有前一個動作可以學了。
TEACH在BABEL數據集上進行訓練,這是一個時長43小時的動捕數據集,包含過渡動作、整體抽象動作、以及每一幀的具體動作。
在訓練時,BABEL的這一系列動捕數據會被切分成很多個子集,每個子集中包含一些過渡動作,讓TEACH能學會過渡並輸出。
至於為什麼不用另一個數據集KIT進行訓練,作者們也給出了自己的看法。
例如在動詞類型上,BABEL出現要比KIT更具體,相比之下KIT更喜歡用do/perform這種「模糊的」辭彙。
研究人員將TEACH與TEMOS就連續動作生成效果進行了對比。
比TEMOS效果更好
先來看看TEACH生成一系列動作的效果,連續不重樣:
隨後,研究人員將TEMOS與TEACH進行了對比。
他們使用兩種方法對TEMOS模型進行了訓練,並分別將它們稱之為Independent和Joint,區別在於訓練用的數據上。
其中,Independent直接用單個動作訓練,在生成時將前後兩個動作用對齊、球麵線性插值等方式融合在一起;Joint直接用動作對和分隔開的語言標籤作為輸入。
Slerp是一種線性插值運算,主要用於在兩個表示旋轉的四元數之間平滑插值,讓變換過程看起來更流暢。
以生成「揮揮右手,舉起左手」連續兩個動作為例。
Independent的表現效果最差,人物當場坐下了;Joint效果好一點,但人物並沒有舉起左手;效果最好的是TEACH,在揮動右手後又舉起了左手,最後才放下。
在BABEL數據集上測試表明,TEACH的生成誤差是最低的,除此之外Independent和Joint的表現都不太好。
研究人員還測了測使用上一個動作的最佳幀數,發現當使用前一個動作的5幀時,生成的過渡動作效果最好。
作者介紹
Nikos Athanasiou,馬普所在讀研究生,研究方向是多模態AI,喜歡探索人類行動和語言背後的關係。
Mathis Petrovich,在古斯塔夫·艾菲爾大學(Université Gustave Eiffel)讀博,同時也在馬普所工作,研究方向是基於標籤或文字說明產生真實的、多樣化人體運動。
Michael J. Black,馬克思·普朗克智能系統研究所主任,如今谷歌學術上論文引用次數達到62000+次。
Gul Varol,古斯塔夫·艾菲爾大學助理教授,研究方向是計算機視覺、視頻特徵學習、人體運動分析等。
目前TEACH已經開源,感興趣的小夥伴們可以戳下方地址體驗了~
GitHub地址:
https://github.com/athn-nik/teach
論文地址:
https://arxiv.org/abs/2209.04066
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態