Redian新闻
>
单张A100,50亿步训练!英伟达开源最强虚拟角色定制模型,超逼真动作零样本生成,游戏动画行业要变天

单张A100,50亿步训练!英伟达开源最强虚拟角色定制模型,超逼真动作零样本生成,游戏动画行业要变天

公众号新闻



  新智元报道  

编辑:好困 润
【新智元导读】近日,英伟达正式开源了超强虚拟角色定制模型CALM。基于此,开发者可以利用AI,零样本生成复杂逼真的动作,简单而自由地控制角色。

8月8日深夜,英伟达CEO黄仁勋,再次登上了世界顶级计算机图形学会议SIGGRAPH的舞台,用一系列重磅更新展示了在AI和元宇宙方向上的野心。
而就在最近,被SIGGRAPH 2023收录的CALM模型的正式开源,也让游戏和动画开发直接飙上了AI加持的快车道。
CALM可以自学「人类的动作」,无需额外训练就能自由合成和控制虚拟角色的动作,效果逼真自然。
也许很快整个游戏、动画工业的格局就要彻底改变,而VR场景中的人物和角色也将从此不再生硬,元宇宙可能真的要加速到来了!

AI控制角色蹲行靠近目标,当距离足够近时踢腿,最后举起双臂庆祝
具体来说,英伟达联合以色列理工学院、巴伊兰大学和西蒙菲莎大学,共同提出了一种全新的条件对抗潜模型(Conditional Adversarial Latent Models,CALM)。
通过模仿学习,CALM学习到了一种可以捕捉人类动作复杂性和多样性的动作表征,并能直接控制角色的动作。
该方法可以联合学习控制策略和动作编码器,对给定动作的关键特征进行重建,而不仅仅是复制。
结果表明,CALM可以通过学习语义动作表征,对生成的动作进行控制,并且为更高层的任务训练提供风格调整。
训练完成后,用户就可以利用像电脑游戏一样的界面,非常直观地对角色进行控制了。

论文地址:https://arxiv.org/abs/2305.02195

项目地址:https://github.com/NVlabs/CALM

实现方法


CALM以对抗性技能嵌入为基础,并借鉴了其代码。

研究人员利用单张A100 GPU,通过在4096个Isaac Gym环境上进行并行训练,共计50亿步。

项目地址:https://xbpeng.github.io/projects/ASE/index.html
为了实现零样本任务解决方案,CALM由3个阶段组成:
(1)动作编码器和底层策略(解码器)联合训练,将动作捕捉序列映射为控制模拟角色的动作。
(2)使用潜空间调节训练高层策略,从而实现对执行动作方向的控制,同时保留所需的风格。
(3)将步骤1和2结合起来,使用简单的有限状态机来解决任务,无需进一步训练,也无需精心设计奖励/终止条件。

阶段1:底层训练

在底层训练阶段,CALM学习了一个编码器和一个解码器。
编码器接收来自动作参考数据集的动作,即关节位置的时间序列,并将其映射到低维潜表征(low-dimensional latent representation)。
解码器是一个底层策略,通过与模拟器进行交互,来生成类似于参考数据集的动作。
这个策略能够按需产生各种行为,但不受动作方向性的影响。例如,它可以被指示走路,但无法本能的地控制行走的方向。
为了评估学习到的动作表征能力,研究人员测试了在潜空间中在动作之间进行插值的能力。
在这里,初始的潜表征是「冲刺」,最终的潜表征是「蹲下不动」。
在整个过程中,潜表征会随着时间进行线性插值,而角色则会通过语义上有意义的转换来平稳过渡,逐渐减慢速度并倾斜上半身。

阶段2:方向控制

为了控制动作方向,研究人员训练了一个高层任务驱动策略来选择潜变量。
其中,这些潜变量被提供给底层策略,并让后者生成所需的动作。
为了实现这一点,研究人员首先通过动作编码器来获取动作潜表征。
然后,根据高层策略所选的潜变量与代表所需风格的潜变量之间的余弦距离成比例,给它一个额外的奖励,从而引导高层策略采用所期望的行为风格。
而训练好的方向控制器,就可以控制角色所执行的动作形式和方向了。
比如下面的「蹲下行走」、「举盾行走」和「奔跑」。

蹲行

举盾

奔跑

阶段3:推理

最后,把之前训练过的模型结合起来(底层策略和方向控制器),以在没有额外训练的情况下组合出复杂的动作。
为此,用户创建一个包含标准规则和指令的有限状态机(finite-state machine,FSM)。
这些规则和指令确定要执行哪种动作,类似于用户控制游戏角色的方式。
例如,它们决定角色是否应该执行简单的动作,直接使用底层策略进行执行,或者是否需要高层控制来进行定向动作。

比如,FSM可以构建如下的动作流程:

(1)转身,

(2)向着目标蹲行,直到距离<1m,

(3)庆祝。
以下是更多的效果展示:

测试结果

可控动作生成

研究人员首先分析了CALM的三个方面:(1)编码器质量,(2)底层控制器的多样性,以及(3)组合系统的可控性。
编码器质量
使用之前研究中的类别分离性(separability)测试,研究人员在编码器学习的表示上衡量了潜空间内动作类别之间的分离性,将动作类别定义为单个动作文件(motion file)中的子动作。
如上表所示,CALM将动作编码为具有更好分离性的表征。
多样性
研究人员使用参考数据集训练了一个分类器,将动作序列映射到原始动作索引(originating motion index)。
当从随机采样的潜变量𝑧 ∼ Z生成时,研究人员记录了生成动作的Inception Score。
如上表所示,CALM显著改善了生成动作的多样性。
可控性
最后,研究人员通过用户调研来量化了CALM生成所要求动作的能力。
为了进行评估,研究人员给用户提供了一个参考动作和一个文本描述,然后询问用户对生成的动作是否和描述相似进行分类。
对于每个模型,研究人员向用户呈现了40个参考动作,每个参考动作生成了3个版本。
记录下准确性——由控制器生成的准确版本所占的百分比。
结果显示,与ASE相比,CALM使生成的动作更易控制,将感知生成的准确率从35%提高到78%。
这些改进和提高是通过使用条件鉴别性目标来对表示(编码器)和生成动作模型(底层策略)进行端到端学习来实现的。
一系列的结果表明,CALM学习了将动作编码为语义上有意义的表示,能够生成与示范具有类似特征动作的控制器。
在整个过程中,条件动作(conditional motion)发生了改变,从而生成了向被要求的动作之间类似人类动作的过渡。
此外,为了说明潜空间的语义结构,研究人员将两个语义相关的动作「冲刺」和「蹲下空闲」进行编码,并在时间上在编码之间进行插值。
如上图e所示,CALM在两个动作之间平稳过渡,同时不间断地执行连贯的行走动作,同时降低了速度和高度。

解决下游任务

使用编码器和底层策略,研究人员展示了如何使用类似于视频游戏控制的命令来为解决未见过的任务组合动作。
方向运动控制
首先,研究人员展示了在给定一个参考动作𝑀和一个方向𝑑∗的情况下,一个高层策略可以学会控制底层策略。
研究人员将这个任务称为Heading。角色应该在请求的方向上产生具有相似特征的动作。
研究人员在上中展示了学到的动作,并在下表的Heading列中对它们进行了量化。高层策略被设定为同时学习「奔跑」,「持盾行走」和「蹲下行走」的条件。
在评估过程中,高层策略被设定为一个固定的风格,并且在随机时间步骤上更改方向。
研究人员记录了生成请求风格的成功程度,使用人工评估员进行评估,并且测量动作的方向——请求动作方向与实际动作方向之间的余弦距离。
结果表明,通过将潜变量约束在接近参考动作编码(reference motion encoding)的范围内,高层策略能够在指定的风格中生成动作,同时确保它在要求的方向上移动。
在没有进一步训练的情况下解决任务
在研究人员的最终实验中,研究人员将可定向的底层控制器与高层动作策略结合在一起,为新的任务提供零样本解决方案。
研究人员设计了两个任务,位置和攻击。
对于位置任务,人物应该达到并保持在目标位置内——以围绕旗杆的圆圈来表示。
更复杂的任务「攻击」要求人物到达目标并击倒目标。
在这两种任务中,人物都受到一系列参考动作的控制。
为了实现这一点,将方向向量设定到目标位置,在人物的本地坐标框架中表示。
一旦在范围内,底层策略直接提供相应于所请求动作(例如踢、持盾冲刺或剑挥)的潜在变量。
如上图所示,CALM可以用于解决任务,具体数值见之前方向运动控制部分中的表一。
就像一个人类玩家用手柄控制人物一样,由于CALM的可控性很好,在没有任何进一步的训练或设计了任务特定的奖励的条件下,FSM按顺序地命令人物在动作之间进行过渡。
角色以一种类似人类的动作组合,完成了任务。

项目开源

准备工作

下载安装Isaac Gym,并安装外部依赖项:
pip install -r requirements.txt

预训练

首先,可以使用以下命令对CALM模型进行训练,从而模仿数据集中的动作片段:
python calm/run.py --task HumanoidAMPGetup --cfg_env calm/data/cfg/humanoid_calm_sword_shield_getup.yaml --cfg_train calm/data/cfg/train/rlg/calm_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/dataset_reallusion_sword_shield.yaml --headless  --track

要测试训练好的模型,请使用以下命令:
python calm/run.py --test --task HumanoidAMPGetup --num_envs 16 --cfg_env calm/data/cfg/humanoid_calm_sword_shield_getup.yaml --cfg_train calm/data/cfg/train/rlg/calm_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/dataset_reallusion_sword_shield.yaml --checkpoint [path_to_calm_checkpoint]


精确训练

在训练完CALM底层控制器之后,就可以使用它来训练运动控制器了。
以下命令将使用预训练的CALM模型执行目标朝向任务:
python calm/run.py --task HumanoidHeadingConditioned --cfg_env calm/data/cfg/humanoid_sword_shield_heading_conditioned.yaml --cfg_train calm/data/cfg/train/rlg/hrl_humanoid_style_control.yaml --motion_file calm/data/motions/reallusion_sword_shield/dataset_reallusion_sword_shield_fsm_movements.yaml --llc_checkpoint [path_to_llc_checkpoint] --headless --track


要测试训练好的模型,请使用以下命令:
python calm/run.py --test --task HumanoidHeadingConditioned --num_envs 16 --cfg_env calm/data/cfg/humanoid_sword_shield_heading_conditioned.yaml --cfg_train calm/data/cfg/train/rlg/hrl_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/dataset_reallusion_sword_shield_fsm_movements.yaml --llc_checkpoint [path_to_llc_checkpoint] --checkpoint [path_to_hlc_checkpoint]

任务解决(只用推理,无需训练)

CALM底层控制器和高层运动控制器可以结合起来,无需进一步训练即可解决任务。
此阶段仅进行推理:
python calm/run.py --test --task HumanoidStrikeFSM --num_envs 16 --cfg_env calm/data/cfg/humanoid_sword_shield_strike_fsm.yaml --cfg_train calm/data/cfg/train/rlg/hrl_humanoid_fsm.yaml --motion_file calm/data/motions/reallusion_sword_shield/dataset_reallusion_sword_shield_fsm_movements.yaml --llc_checkpoint [path_to_llc_checkpoint] --checkpoint [path_to_hlc_checkpoint]


内置任务及其各自的配置文件为:
HumanoidStrikeFSM: calm/data/cfg/humanoid_sword_shield_strike_fsm.yamlHumanoidLocationFSM: calm/data/cfg/humanoid_sword_shield_location_fsm.yaml


任务训练

除了精确训练外,还可以训练高层控制器直接解决任务。
以下命令将使用预训练的CALM模型执行目标朝向任务:
python calm/run.py --task HumanoidHeading --cfg_env calm/data/cfg/humanoid_sword_shield_heading.yaml --cfg_train calm/data/cfg/train/rlg/hrl_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/RL_Avatar_Idle_Ready_Motion.npy --llc_checkpoint [path_to_llc_checkpoint] --headless --track


内置任务及其各自的配置文件为:
HumanoidReach: calm/data/cfg/humanoid_sword_shield_reach.yamlHumanoidHeading: calm/data/cfg/humanoid_sword_shield_heading.yamlHumanoidLocation: calm/data/cfg/humanoid_sword_shield_location.yamlHumanoidStrike: calm/data/cfg/humanoid_sword_shield_strike.yaml

要测试训练好的模型,请使用以下命令:
python calm/run.py --test --task HumanoidHeading --num_envs 16 --cfg_env calm/data/cfg/humanoid_sword_shield_heading.yaml --cfg_train calm/data/cfg/train/rlg/hrl_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/RL_Avatar_Idle_Ready_Motion.npy --llc_checkpoint [path_to_llc_checkpoint] --checkpoint [path_to_hlc_checkpoint]

AMP

同时,项目还提供了Adversarial Motion Priors的实现。使用以下命令可以训练模型模仿给定的参考动作:
python calm/run.py --task HumanoidAMP --cfg_env calm/data/cfg/humanoid_sword_shield.yaml --cfg_train calm/data/cfg/train/rlg/amp_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/sword_shield/RL_Avatar_Atk_2xCombo01_Motion.npy --headless  --track

训练好的模型可以通过以下方式进行测试:
python calm/run.py --test --task HumanoidAMP --num_envs 16 --cfg_env calm/data/cfg/humanoid_sword_shield.yaml --cfg_train calm/data/cfg/train/rlg/amp_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/sword_shield/RL_Avatar_Atk_2xCombo01_Motion.npy --checkpoint [path_to_amp_checkpoint]

动作数据

可以使用以下命令对动作片段进行可视化:
python calm/run.py --test --task HumanoidViewMotion --num_envs 2 --cfg_env calm/data/cfg/humanoid_sword_shield.yaml --cfg_train calm/data/cfg/train/rlg/amp_humanoid.yaml --motion_file calm/data/motions/reallusion_sword_shield/sword_shield/RL_Avatar_Atk_2xCombo01_Motion.npy


参考资料:

https://research.nvidia.com/labs/par/calm/


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
ICCV 2023 | 基于预训练视觉语言模型和大语言模型的零样本图像到文本生成百川开源最强中英文百亿参数模型!超越LLaMA,中国开源大模型开启商用新纪元智源开源最强语义向量模型BGE!中英文测评全面超过OpenAI、Meta医疗行业要变天了......文生3D模型大突破!MVDream重磅来袭,一句话生成超逼真三维模型3D AI生成出新玩法了:无需数小时,只要45秒,单张图片即可生成 3D模型GPT-5正秘密训练!DeepMind联创爆料,这模型比GPT-4大100倍重大突破,中科院宣布!比英伟达快1.5到10倍,AI芯片要变天?VALSE 2023 | 左旺孟教授:预训练模型和语言增强的零样本视觉学习MySQL 调整版本控制模型,发布首个创新版本 8.1.0H100推理飙升8倍!英伟达官宣开源TensorRT-LLM,支持10+模型行业双巨头「惊天合体」,3D 打印行业要变天了?看NBA决赛的启示推理效率比ControlNet高20+倍!谷歌发布MediaPipe Diffusion插件,「移动端」可用的图像生成控制模型重磅!BC工人死亡的头号元凶竟是它!省府立法管制!这个行业要变天!市值百亿、年收入近13亿元,最强虚拟偶像公司Anycolor如何发财的字节对话类AI产品内测;GPT-5或需5万张H100;智源最强开源语义向量模型上线丨AIGC大事日报微软也搞起了开源小模型!利用OpenAI的ChatGPT和GPT-4 训练,实力碾压当前最强开源模型谷歌最新研究:可交互式动态图片生成,细节逼真!班级活动丨身体力行,心系历史,共赴挑战:清华经管EMBA 22-A班集体跑步训练CVPR 2023 | 浙大&南洋理工提出PADing:零样本通用分割框架用SAM做零样本视频对象分割!港科大等开源首个「稀疏点传播」方法SAM-PT,性能直追有监督SOTANATTI,你离我越来越近了(下)现在飞中国的机票贵的简直太离谱了!年度最绝融资:拿英伟达H100抵押贷款165亿,买更多英伟达GPU扩建10个数据中心超逼真3D生成模型!华南理工贾奎团队ICCV'23新作:支持重新照明、编辑和物理仿真英伟达DLSS 3.5发布!全新AI「光线重建」实现超逼真光影,新老显卡都支持微前沿 | 强可控视频生成;定制化样本检索器;用脑电重建视觉感知;大模型鲁棒性评测见证了世界移民史奇迹的绿酱想要一个更像自己的虚拟角色?拿相片用AvatarBooth生成第一章 个体的行为法则(全文)650亿参数大模型预训练方案开源可商用!LLaMA训练加速38%,来自明星开源项目游戏动漫角色占76%,Character.ai成了当代网友的“梦中情聊”青铜动物雕塑,超逼真~超逼真人像视频,百分百AI生成!创业团队出身Snapchat,7个月已收入百万美元
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。