ICCV 2023 | DIMOS: 在 3D 室内场景中合成多样化人物运动

2023-10-24 15:40:55 浏览数 (1)

来源:ICCV 2023 论文题目:DIMOS: Synthesizing Diverse Human Motions in 3D Indoor Scenes 论文链接:https://arxiv.org/abs/2305.12411v3 论文作者:Kaifeng Zhao 等人 内容整理: 林宗灏 本文提出了一种名为 DIMOS 的方法,用于在室内场景中合成多样化的人物运动。DIMOS 基于强化学习方法,通过学习运动控制策略,实现了人物在3D场景中的自主导航与真实交互。作者设计了场景感知与交互感知策略,使得人物能够在 3D 场景中避免碰撞,与场景对象交互,并在复杂场景中连续执行一系列的动作。实验结果表明,该方法在运动自然度和多样性方面均优于最先进的人物-场景交互合成方法

引言

图 1:我们提出了一种在真实世界的复杂场景中生成自然的人物-场景交互事件序列的方法。如图所示,人物首先走到凳子旁坐下(黄色到红色),然后走到另一张椅子旁坐下(红色到洋红色),最后走到沙发旁躺下(洋红色到蓝色)。

模拟人类与环境的交互在许多应用中发挥着重要的作用。现有的大多数人物动画的方法侧重于提高人物动作的逼真度与可控性。通过传统的角色动画工作流程,人们可以制作出高质量的动画,但难以生成像真人一样以多种可信的方式与周围环境交互的自然人体动作。以往基于学习的交互合成方法需要同时捕捉人类动作和场景进行监督,但这种数据采集困难且成本高昂,限制了人类与场景交互动作的范围。

为了解决这些问题,我们提出了一种基于强化学习的方法,通过学习运动控制策略,使人物能够在 3D 场景中自主导航并与物体进行真实的交互。运动控制策略采用了隐运动动作空间,该空间对应于真实的运动基元,并通过强大的生成运动模型从大规模运动捕捉数据中学习而来。对于 3D 环境中的导航,我们提出了具有新颖状态和奖励设计的场景感知策略来避免碰撞。结合基于导航网格的路径规划算法生成中间路径点,我们的方法实现了在 3D 室内场景中合成多样的人物运动并避开了障碍物。为了生成细粒度的人物-物体交互,我们使用基于标记的身体表示来设计交互目标引导,并利用基于有向距离场(SDF)的特征来编码人物-场景的接近关系。我们的方法能够在不同的物体形状、方向、初始身体位姿等测试场景中合成逼真多样的人物-场景交互。实验结果表明,我们的方法在运动自然度和多样性方面均优于最先进的人物-场景交互合成方法。本文的主要贡献总结如下:

  • 我们提出了一种基于强化学习的框架,用于在复杂的室内场景中生成逼真多样的人物运动。
  • 我们提出采用身体表面标记作为细粒度人物-场景交互合成的具体交互目标,并利用 COINS 基于交互语义生成连贯的 3D 人体,从而通过交互语义和细粒度的人体姿态实现人物可控。
  • 我们设计了场景交互感知策略,使得人物能够在 3D 场景中避免碰撞,与场景中的对象进行交互,并在复杂场景中连续执行一系列的动作。

方法

基于强化学习的框架

图 2:我们提出的人物-场景交互合成框架示意图。该框架包含学习的运动基元,以及根据场景和交互目标生成动作的移动和交互策略。通过结合基于导航网格的路径规划和静态人物-场景交互生成方法,我们能够为虚拟人物合成具有细粒度控制的逼真运动序列。

我们提出了一个运动合成框架,使得虚拟人物能够在复杂的室内场景中自主导航,并与各种场景物体进行交互。与 GAMMA 框架相比,我们的方法将场景信息纳入状态,从而更好地处理复杂的人物-场景交互。此外,我们还使用身体标记作为目标,为如何驱动人体进行目标交互提供细粒度指导。通过模块化的路径规划方法和静态人物-场景交互生成方法,我们的框架可以在复杂的 3D 场景中合成逼真的人体动作。在我们的工作中,我们使用 COINS 根据给定的“动作-物体”交互语义生成静态人物-场景交互。行走路径可由人工生成,也可由 A* 等自动路径规划算法生成。

我们使用强化学习来处理运动合成任务,在每个时间步下,人物感知其状态

s_t

并从策略模型

pi(a_t|s_t)

采样动作

a_t

,根据运动模型推进运动状态,得到一个新的感知状态

s_{t 1}

,最后计算为不同任务定制的奖励

r_t=r(s_t,a_t,s_{t 1})

运动模型与动作

我们采用基于 CVAE 的生成运动基元作为我们的运动模型,并使用其隐变量作为动作。我们在 SAMP 和 AMASS 动作捕捉数据集上,以过去 1 或 2 帧为条件对模型进行训练,从而学习一个涵盖人物-场景交互运动的隐运动基元空间。该空间中的每个隐变量

z

被视为一个动作,并可解码为一个运动片段。

状态

状态表示为

s_t=(X_s,I,G)quad(1)

其中

X_s in mathbb{R}^{M times 67 times 3}

为表示

M

帧运动历史的身体标记运动种子,

I

G

分别为人物-场景交互特征和目标达成特征。在不同的移动和物体交互任务中,交互特征和目标达成特征各不相同。

奖励

奖励评估了人物执行移动和细粒度物体交互任务的表现,表示为

r=r_{goal} r_{contact} r_{pene}quad(2)

其中,

r_{goal}

r_{contact}

r_{pene}

分别表示对目标达成、脚地接触和穿透避免的奖励。具体而言,接触奖励鼓励脚与地面接触,不鼓励脚部滑行,其定义为:

r_{contact} = exp(-(|min x_z|-0.05)_ ) cdot exp(-(min ||x_{vel}||_2-0.075)_ )quad(3)

其中,

x_z

为标记高度,

x_{vel}

为标记速度,

(cdot)_

表示截断负值。

策略网络与训练

我们使用演员-评论家算法来学习策略,其中策略网络和价值网络同时训练。策略网络生成一个对角高斯分布来表示在给定状态下的随机动作分布,价值网络输出对每个状态的价值估计。与 GAMMA 类似,两个网络通过最小化以下目标进行联合训练:

mathcal{L} = mathcal{L}_{PPO} mathbb{E}[(r_t-V(s_t))^2] alpha rm{KL-div}(pi(z|s)||mathcal{N}(0,I))quad(4)

其中,第一项是 PPO 损失,第二项更新评论家网络的价值估计,第三项 KL 散度项正则化隐空间中的运动。

场景感知移动合成

图 3:场景感知移动策略网络示意图。移动策略状态包括身体标记、从标记到目标的归一化方向向量的目标达成特征和表示局部 1.6m × 1.6m 正方形区域可行走性的二维二值图的交互特征(红色:不可行走区域,蓝色:可行走区域)。移动策略网络采用演员-评论家架构,并共享状态编码器。

在杂乱场景中的导航意味着人物要在避免与场景物体发生碰撞的同时向目标位置移动。我们的主要思想是将周围环境的可行走信息纳入状态,并利用碰撞奖励来训练运动策略,从而避免场景碰撞。具体而言,我们使用二维二值图

mathcal{M} in {0,1}^{16 times 16}

来表示人物周围环境的可行走性。

可行走性图定义在人体坐标系上,覆盖以人体为中心、与身体朝向对齐的

1.6m times 1.6m

区域,由

16 times 16

单元网格组成,每个单元格存储一个二进制值表示该单元格能否行走。该局部可行走性图使得策略能够感知周围的障碍物。

人物-场景交互特征表示为:

I = rm{vec}(mathcal{M})quad(5)

其中,

rm{vec}(cdot)

表示向量化。目标达成特征表示为:

G = (tilde{g}_p - X_s)_nquad(6)

其中,

X_s

tilde{g}_p in mathbb{R}^{M times 67 times 3}

分别为表示

M

帧运动历史的身体标记种子和相对以身体为中心的标准坐标系的目标中心位置。

(tilde{g}_p - X_s)_n

表示从每个标记到目标中心位置的归一化向量。

穿透避免奖励定义为:

r_{pene}=exp(-|mathcal{M}_0 cap mathcal{B}_{xy}(X)|)quad(7)

其中,

mathcal{M}_0

表示不可行走单元格,

B_{xy}(cdot)

表示身体标记

X

的 2D 碰撞箱。目标达成奖励定义为:

r_{goal}=r_{dist} r_{ori}
r_{dist}=1-(||p-g_p||_2-0.05)_ quad(8)
r_{ori} = { < o,g_p-p>}/2

其中,

r_{dist}

鼓励人体中心

p

接近目标中心

g_p

r_{ori}

鼓励人体朝向

o

与当前人体中心

p

到目标中心

g_p

的方向对齐。

细粒度物体交互合成

图 4:物体交互策略网络示意图。交互策略状态包括身体标记、从当前标记到目标标记的距离和方向的目标达成特征和从每个标记到物体表面的有向距离与每个标记位置的有向距离梯度的交互特征。该交互特征编码了人物-物体的接近关系。

为了合成细粒度的人物-物体交互例如坐在椅子上或躺在沙发上,我们使用身体标记目标作为指导,并以紧凑的方式对人体表面与场景物体之间的接近程度进行建模。目标标记集可以通过静态人物-场景交互方法生成。我们使用 COINS 生成静态目标交互人体来实现交互语义的可控性。

除了基于标记的目标引导之外,我们还将人物与物体的接近关系纳入状态之中。具体而言,我们使用从每个标记到场景物体表面的有向距离以及有向距离的梯度方向来表示接近关系。有向距离及其梯度方向均由物体的有向距离场(SDF)

Psi_O

计算得到。

人物-场景交互特征表示为:

I=[Psi_O(X_s),nabla Psi_O(X_s)]quad(9)

其中,

Psi_O in mathbb{R}^{M times 67}

nabla Psi_O in mathbb{R}^{M times 201}

分别为

M

帧中每个标记位置的 SDF 值和梯度。目标达成特征表示为:

G = [(tilde{g}_m - X_s)_n,||tilde{g}_m - X_s||_2]quad(10)

其中,

X_s in mathbb{R}^{M times 67 times 3}

表示身体标记种子,

tilde{g}_m in mathbb{R}^{M times 67 times 3}

表示全局人体标记,

(tilde{g}_m - X_s)_n

表示从每个标记到对应目标标记方向的归一化向量,

||tilde{g}_m - X_s||_2

表示从每个标记到目标标记的距离。

交互策略训练所使用的奖励定义如下:

r_{goal} = 1-(||x-g_m||_2-0.05)_ \ r_{pene} = exp(-frac{1}{|V|}frac{1}{T}sum_{t=1}^Tsum_{i=1}^{|V|}|(Psi_O(v_{ti}))_-|)quad(11)

其中,

|V|

为 SMPL-X 网格顶点数,

T

为每个动作基元的帧数。距离奖励鼓励最终帧人体标记

x

与目标标记

g_m

相接近。穿透避免奖励对运动基元中所有具有负 SDF 值得人体顶点进行惩罚。我们使用人体顶点而不是关节,是因为人物-物体接触发生在人体表面,可以更好地使用顶点检测。

此外,我们还使用“坐/躺下”和“站起”任务混合训练交互策略。这种训练方案使得人物能够学会如何站起来并从物体交互转向移动,从而合成如图 1 所示的交互活动序列。

实验

定量结果

表 1:移动任务评估。上/下箭头表示得分越高/低越好,粗体表示最佳结果。

表 2:交互任务评估。上/下箭头表示得分越高/低越好,粗体表示最佳结果。

表 3:交互序列合成评估。此处,'contact' 表示脚地接触得分,'loco. pene.' 表示可行走区域内人体顶点的百分比,'inter. pene. mean/max' 表示与交互对象平均/最大穿透深度,'perceptual'表示感知研究中被选择的比例。最佳结果以粗体显示。

定性结果

图 5:移动任务示例。GAMMA(左)与障碍物(红色人体)发生了碰撞,我们的场景感知移动策略(右)则避免了碰撞。黄圈表示指定的路径点。

图 6:多样化物体交互示例。每一行展示了对于相同物体从随机初始化位置和方向生成的交互。从黄色到红色表示时间。

图 7:我们的方法能够在与训练场景有显著差异的场景中合成自然的人类动作。我们在一条巴黎街道(左)和一个室内房间(右)展示了合成结果。透明到纯色表示时间。

消融实验

表 4:奖励消融实验结果。'-Contact' 和 '-Penetration' 分别表示在没有接触奖励和穿透避免奖励的情况下训练的策略。

0 人点赞