英伟达 CALM 虚拟角色定制模型开源


什么是CALM

它可以生成多样化且可定向行为的角色。该方法通过模仿学习来学习语义运动表示,以捕捉人体运动的复杂性和多样性,并能够直接控制角色运动。该方法联合学习控制策略和运动编码器,该编码器可以重建给定运动的关键特征,而不仅仅是复制它。该方法分为三个阶段:第一阶段是低级训练,CALM 学习编码器和解码器;第二阶段是方向性控制,高级任务驱动策略被用来选择潜在变量,这些变量被提供给生成所请求的动作的低级策略;第三阶段是推理,先前训练的模型(低级策略和方向控制器)组合起来组成复杂的动作。在这个阶段,用户可以生成一个包含标准规则和命令的有限状态机 (FSM),这些决定了执行哪个动作。该方法的实验结果表明,CALM 学习语义运动表示,从而能够控制生成的运动和风格调节,以进行更高级别的任务训练。最后,该方法可以使用直观的界面来控制角色,类似于视频游戏中的界面。


概述


为了实现零样本任务解决方案,CALM 分为 3 个阶段。 (1)联合训练运动编码器和低级策略(解码器),将运动捕捉序列映射到控制模拟角色的动作。 (2)使用潜在空间调节来训练高级策略,以实现对运动执行方向的控制,同时保留所请求的风格。 (3)使用简单的有限状态机将步骤 1 和步骤 2 结合起来,以便在无需进一步训练且无需细致的奖励/终止设计的情况下解决任务。

第一阶段:低级培训


在低级训练期间,CALM 学习编码器和解码器。编码器从运动参考数据集(关节位置的时间序列)中获取运动,并将其映射到低维潜在表示。此外,CALM 还联合学习解码器。解码器是一个低级策略,它与模拟器交互并生成与参考数据集类似的运动。该策略根据需要产生各种行为,但不以运动的方向性为条件。例如,可以指示它行走,但无法直观地控制行走的方向。

有意义的运动表示


为了评估学习到的运动表示,我们测试了在潜在空间中的运动之间进行插值的能力。这里,初始潜在是 sprint 的潜在表示。最后的潜伏是蹲伏闲置。在整个情节中,潜伏随时间线性插值,从春天到蹲伏闲置。角色通过语义上有意义的过渡平滑地过渡,逐渐降低速度并倾斜上半身。

第二阶段:方向性控制


为了控制运动方向,我们训练高级任务驱动策略来选择潜在变量。这些潜在变量被提供给生成所请求的动作的低级策略。在这里,学习到的运动表示启用了一种风格调节形式。为了实现这一点,运动编码器用于获取所请求运动的潜在表示。然后,向高级策略提供与所选潜伏和代表所请求风格的潜伏之间的余弦距离成比例的额外奖励,从而指导高级策略采用所需的行为风格。例如,这里训练了方向性控制器,以能够控制所执行的运动形式以及角色执行运动的方向——蹲伏行走、举起盾牌行走和奔跑。

第三阶段:推理


最后,将先前训练的模型(低级策略和方向控制器)组合起来组成复杂的动作,而无需额外的训练。为此,用户生成一个包含标准规则和命令的有限状态机 (FSM)。这些决定了执行哪个动作,类似于用户如何控制视频游戏角色。例如,它们确定角色是否应该执行直接使用低级策略执行的简单动作,或者需要高级控制的定向动作。作为一个例子,人们可以构建一个 FSM,如 (a)“蹲着走向目标,直到距离 < 1m”,然后 (b)“踢”,最后 (c)“庆祝”。

github链接 research 博客