AI終於能生成流暢3D動作片了,不同動作過渡無bug,準確識別文字
蕭簫 發自 凹非寺
量子位 | 公眾號 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,古斯塔夫·艾菲爾大學助理教授,研究方向是計算機視覺、影片特徵學習、人體運動分析等。