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,古斯塔夫·艾菲尔大学助理教授,研究方向是计算机视觉、视频特征学习、人体运动分析等。

目前TEACH已经开源,感兴趣的小伙伴们可以戳下方地址体验了~

GitHub地址:

https://github.com/athn-nik/teach

论文地址:

https://arxiv.org/abs/2209.04066

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

原文地址:https://www.toutiao.com/article/7151269063145292291/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340