CVPR'24 Highlight|一个框架搞定人物动作生成,精细到手部运动
本文作者蒋楠是北京大学智能学院二年级博士生,指导教师朱毅鑫教授,与北京通用人工智能研究院黄思远博士联合开展研究工作。他的研究重点是人-物交互理解和数字人的动作生成,并于ICCV,CVPR和ECCV等顶会发表多篇论文。
近年来,人物动作生成的研究取得了显著的进展,在众多领域,如计算机视觉、计算机图形学、机器人技术以及人机交互等方面获得广泛的关注。然而,现有工作大多只关注动作本身,以场景和动作类别同时作为约束条件的研究依然处于起步阶段。
为了解决这一问题,北京通用人工智能研究院联合北京大学、北京理工大学的研究员提出了一种使用自回归条件扩散模型的动作生成框架,实现真实、带有语义、符合场景且无长度限制的动作生成。此外,文章发布了大规模人物 - 场景交互数据集 TRUMANS,包含准确且丰富的针对人物动作以及三维场景的标注信息。
- 论文链接:https://arxiv.org/pdf/2403.08629
- 项目主页:https://jnnan.github.io/trumans/
- 代码、数据链接:https://github.com/jnnan/trumans_utils
研究概述
图 1. 人物 - 场景交互动作生成方法和 TRUMANS 数据集
与场景物体的交互是人们日常活动的重要组成部分,例如坐在椅子上、拿起瓶子或打开抽屉等动作。如今,仿真人类肢体动作已成为计算机视觉、计算机图形学、机器人技术和人机交互等领域的一项重要任务。生成人体动作的核心目标在于创造自然、逼真且多样化的动态模式。深度学习技术的兴起使人体动作生成方法得到飞速发展。人体建模技术的重大突破也使构建庞大的人体动作数据库变得更为便捷。基于这些进展,近年来以数据为驱动的人体动作生成技术越来越受到研究界的重视。
目前,多数动作生成的方法以语义作为控制变量,在给定交互物体 [1] 和场景 [2] 的条件下生成动作的研究仍处于起步阶段,这主要由于缺乏高质量人体动作与场景交互数据集。现有的真实场景数据集在人体动作捕捉质量方面仍有不足。尽管通过 VICON 等设备录制的动作捕捉数据集能够带来质量的提升,但这些数据集缺乏多样化的 3D 场景中人与物体的交互。最近,使用虚拟仿真技术的合成数据集因其低成本和高适应性而引起研究者们的关注。
针对现有方法的不足,本文提出了一种融合场景和语义信息的动作生成框架,由自回归的扩散模型作为驱动,能够在给定动作类别和路径点的条件下,生成符合场景约束的人物动作。为了获取场景中的动作数据,本工作发布了一个全新的人物 - 场景交互数据集 TRUMANS,包含在真实世界捕捉的 15 小时动作数据,并合成到 3D 虚拟场景中,覆盖了卧室、餐厅和办公室等 100 个场景配置。TRUMANS 包含寻路、物体操作、及与刚性和铰接物体的交互等全面的日常行为。
动作生成框架
图 2. 本文提出的动作生成框架使用自回归机制,将场景和动作类别作为条件控制动作的生成。
本研究提出的方法采用自回归的方式逐段生成动作。段内的起始动作源于上一段末尾,后续动作由扩散模型生成。为了使生成的动作符合场景约束,作者基于空间占有网格提出一个局部场景感知器,将每段动作终点附近环境的特征编码,并纳入动作生成模型的条件。为了将逐帧的动作标签作为可控条件纳入,动作信息编码器将时间信息整合到动作片段中,使得模型可以在任意时刻接受指令,并生成符合给定动作标签的运动。
本文提出的方法可以支持路径轨迹约束以及精确的关节位置控制。由于本文方法采用了自回归逐段生成的机制,路径和关节约束可以通过为每段动作生成设定子目标的方式实现。对于行走动作控制,每个子目标描述了当前段末尾人物骨盆在水平面的预设位置。根据当前段的起始和终止位置之间的场景信息,模型生成包含骨盆运动轨迹在内的全身动作。例如,当子目标位于椅子上时,需要让角色坐下。对于涉及物体抓握的动作,手部的位置控制也使用相同的技术。例如生成抓取瓶子或推门等动作时,将手部关节位置设为子目标,并由用户设置在物体上的期望位置。模型将关节上的噪声归零并补全其余部分的人体动作。进一步的精细接触通过优化手与物体的相对位置的方式实现。
本地场景感知器用于获取本地场景几何信息,并将其作为运动生成的条件。具体来说,给定一个场景,首先生成一个全局占用网格,每个单元格被分配一个布尔值表示其是否可达,1 表示可达,0 表示不可达。本地占用网格是以当前循环节的子目标为中心的三维网格,垂直范围内从 0 米到 1.8 米,方向与第一帧中角色骨盆的偏航方向对齐。本地占用网格的值通过查询全局占用网格获取。本文提出使用 Vision Transformer (ViT) 对体素网格进行编码。通过沿 xy 平面划分本地占用网格,将 z 轴视为特征通道来构建 Token,并将这些 Token 输入到 ViT 模型中。场景经过 ViT 编码后的输出被用作动作生成模型的条件。
与之前基于单一动作描述生成完整动作序列的方法不同,本文在生成长期动作时逐帧使用动作标签作为条件。在这个模型中,一个特定动作可能会超过一个循环节,并在多个循环节中继续。因此模型需要理解动作执行的进程。为了解决这个问题,本研究引入了一个进度标识符,用于支持逐帧的动作类别标签。具体实现方式为在原始 multi-hot 动作标签上,对每段完整的交互添加一个 0 到 1 之间随时间线性增长的数。这样的操作使得模型能够应对跨多个循环节的动作,增强生成动作序列的语义完整性和连续性。
数据集
数据方面,本文发布了全新的人物 - 场景交互数据集 TRUMANS,精确地复制了 3D 合成场景到物理环境中,兼具数据质量与规模;包括 15 小时的长序列人体动作捕捉,配套 100 个室内场景,类别包含卧室,客厅和办公室等。尽管场景是合成的,作者通过对每个合成场景的细致还原,确保了人与物体之间的交互保持自然且精确。TRUMANS 动作涵盖日常人物行为,包括寻路、抓取,以及与刚性和铰接物体的交互。为了进一步提高数据的可扩展性,本文应用了一种基于现有数据进行数据增强方式,使得数据集中的物体可以在一定范围内改变位置和尺寸,并自动更新人物动作以匹配变化。
图 3. TRUMANS 动作捕捉数据集
图 4. 根据变化的物体尺寸自动调整动作,高效扩展数据规模
实验结果
下面是本文所提出的动作生成方法的应用场景示例。
(1)基于给定的路径关键点,本文方法能够生成多样的场景中行走动作,且人物对场景中的障碍物有自然的反馈。
(2)本文方法适用于手持小物体的抓取和交互动作生成。例如走近并抓取放置于桌子上的水瓶,并做出喝水的动作。完成过程中需要根据场景布局调整动作。
(3)基于给定手部运动轨迹,生成满足该轨迹的全身动作,且不与场景中的物体发生冲突。
图 5. 动作生成的多样性展示
图 6. 给定手部运动轨迹和场景的全身动作生成
图 7. 手持小物体的交互动作生成
为了量化本文方法的性能,作者根据交互物体可动与否构建了两套评价体系。对于静态交互物体,本文评测的动作包含坐,躺,以及在场景中的走动。评测指标主要针对动作是否与场景发生穿模,脚部滑动,以及被试对生成质量的主观评价。而对于动态交互物体,本文关注抓握的过程以及后续的交互动作。评价指标量化了动作是否符合给定的类别,动作的多样性,穿模程度,以及被试主观评价。此外,研究还对比了使用 TRUMANS 以及现有的 PROX 和 GRAB 数据集训练得到的动作生成质量。实验结果证实了本文所提方法的优越性,以及 TRUMANS 数据对人物 - 场景交互生成任务带来的全面质量提升。
表 1-2. 动态与静态物体交互动作生成结果在不同方法和数据集训练结果的比较