萧箫 发自 凹非寺量子位 | 公众号 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,古斯塔夫·艾菲尔大学助理教授,研究方向是计算机视觉、视频特征学习、人体运动分析等。