箫起源于凹非寺量子位|公众号QbitAI
要让3D动画中的小人做出丝滑的动作,需要手动渲染吗?
现在交给AI,输入几句就可以了。 (不同的颜色表示不同的动作。 )
看看地面,抓住高尔夫球杆,挥动球杆,跑一点,然后蹲下。
在过去,由AI控制的3D人体模型只能“一次一个动作”或“一次一个指令”,难以连续完成指令。
现在,不进行剪辑和编辑,只需按顺序输入几个命令,3D角色就可以自动完成所有动作,整体很光滑,没有错误。
这个新AI的名字叫TEACH,来自马普所和古斯塔夫费尔大学。
网友脑洞大开:
这样拍3D动画电影,仅仅是剧本就可以了吗?
很明显,游戏和模拟行业不妨考虑一下。
那么,这样的3D角色动作神器是怎么来的呢?
用编码器“记住”前面的运动的TEACH框架基于团队不久前提出的另一个3D人体运动生成框架TEMOS。
TEMOS基于Transformer架构设计,利用人体实际运动数据进行训练。
训练时采用运动编码器( Motion Encoder )和文本编码器( text encoder )这两个编码器,同时通过运动解码器( Motion Encoder )进行输出。
但是,在使用时,原始运动编码器将被“丢弃”,只剩下文本编码器,模型直接输入文本时就可以输出相应的运动。
与输入单个文本并输出确认动作的其他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 头条签约关注我们,第一时间了解前沿科技动态