简介
主页:https://dannydriess.github.io/compnerfdyn/
论文提出了一种基于隐式对象编码器、神经辐射场(nerf)和图神经网络从图像观测中学习合成多目标动力学模型的方法
论文提出一个合成的、以对象为中心的自编码器框架,该框架的潜在向量用于学习合成的前向动态(composition forward dynamics)模型,该模型是基于图神经网络(GNN)的学习潜在空间,其学习了一个隐式对象编码器,它将场景的图像观察从多个视图映射到一组潜在向量,每个向量分别代表场景中的一个对象,潜在的对象编码然后为每个对象参数化单独的nerf,然后应用合成渲染技术从多个视点合成图像,这迫使以对象为中心的NeRF函数和相应的潜在向量学习组成对象的精确3D配置。
编码器和合成NeRF解码器中的这种3D感应偏差(inductive bias)使我们能够通过估计的邻接矩阵将模型自身对物体相互作用的预测的先验纳入到学习GNN动力学模型中,使长期动力学预测比几个 baselines 更稳定。这种长期的稳定性使我们可以利用一种基于潜在空间中RRTs的规划方法。
仿真和真实世界的实验表明,该方法可以建模和学习包括刚性和可变形物体在内的合成场景的动力学
非合成自编码器框架和非合成动力学模型难以处理包含多个对象的任务,而论文的框架在不同数量的对象上的泛化效果较好,与训练期间相比,能够生成清晰和稳定的长期预测
这些模型除了(隐式地)学习惯性和接触参数外,还学习未知物体的几何形状
贡献点
- 一个合成场景编码框架,对每个对象使用隐式对象编码器和NeRF解码器,迫使视图不变的潜在表示以可合成的方式了解问题的3D结构。
- 潜空间中的可分解动态模型作为图神经网络(GNN),利用场景表示的组成性质和从模型本身估计的自适应邻接矩阵来产生稳定的长期预测。
背景
从预测场景未来状态的观察中学习模型是使 agent 能够推理行动以实现预期目标的基本概念,其一个主要挑战是原始观察,如图像通常是高维的,因此,一种常用的方法是通过自动编码器结构将观察空间映射到场景的低维潜在表示,基于这些潜在向量,可以学习预测下一个潜在状态的动态模型,该模型以 agent 采取的行动为条件。直观来说,如果一个潜在向量足以重建观察结果,那么它就包含了足够的关于场景的信息,可以在此基础上学习动态模型。
与潜在动力学模型相结合的自动编码器结构是一种适用于各种任务的通用方法,但它也带来了多种挑战。
- 世界中的场景是由多个物体组成的。由于固定大小的潜在向量的容量有限,以及训练分布缺乏多样性,固定大小的潜在向量在场景中对不同的和不断变化的物体数量的泛化比训练时困难
- 图像观测是二维的,但世界的三维结构对于许多任务来说是必不可少的,因为它们可以推断出控制模型应该预测的动态的潜在物理过程。处理2D视图中的遮挡、物体持久性和歧义性是2D图像表示的挑战,重要的是,许多 视觉观测空间的前向预测模型(forward predictive models in visual observation spaces) 在进行长期预测时存在不稳定性,通常表现为图像预测模糊
解决上述问题的一种方法是在模型架构中加入归纳偏差(inductive biases)和结构先验(structural priors)
nerf 展示了关于3D世界的强大结构先验,导致了比2D baselines 更高的性能,但是,将整个场景表示为一个单独的潜在向量,这对于由多个不同数量的对象组成的场景来说是不够的,无论是在表示方面还是在动态预测方面
实现流程
动态学习框架(图1)由三个部分组成
- 一个目标编码器 Ω,将观测结果转换为一组潜在向量 z 1 : m z_{1:m} z1:m
- 一个基于 compositional nerf 的解码器DNeRF,将潜在向量渲染回场景图像
- 一个图神经网络动态模型FGNN,预测场景在潜在空间的演变
假设 RGB图像 I i ∈ R 3 × h I × w I I^i∈R^{3×h_I×w_I} Ii∈R3×hI×wI 观察一个场景,i = 1,…, V,来自 V 个摄像机视图,且场景包含 m 个物体 j = 1,…, m。
假设对视图 i 中每个物体 j 的摄像机投影矩阵 K i ∈ R 3 × 4 K^i∈R^{3×4} Ki∈R3×4 和 二进制掩码 M j i ∈ { 0 , 1 } h I × w I M^i_j∈\{0,1\}^{h_I ×w_I} Mji∈{0,1}hI×wI
给定这些摆出的图像和掩码,目标是学习编码器Ω,它通过在单个掩码 m j 1 : v m^{1: v}_j mj1:v 上查询 Ω,将从多个视图中观察到的物体的信息融合到一组潜在向量 z 1 : M z_{1: M} z1:M 中,分别表示对象 j。
Ω 经过端到端训练,使用NeRF解码器DNeRF重构
对于由摄像机矩阵K从潜在物体表示集 z 1 : m z_{1: m} z1:m 中指定的任意视图。对场景的初始观测用 Ω 编码成初始潜向量 z 1 : m 0 z^0_{1:m} z1:m0,然后,GNN动力学模型 生成未来潜在状态 z 1 : m t + 1 = F G N N ( Z 1 : m t ) z^{t+1}_{1:m} = F_{GNN}(Z^t_{1:m}) z1:mt+1=FGNN(Z1:mt) 的 长期预测,也可以用DNeRF解码,从任意视图产生可视化预测
隐式对象编码器(Implicit Object Encoder)
隐式对象编码器并不是(1)中定义的Ω(从图像、摄像机矩阵和掩模到潜在向量的直接映射)
首先以 image observations 为条件,将场景中的每个对象编码为三维空间上的特征值函数,这允许我们以一种几何一致的方式合并物体的多个视图,并对物体应用3D仿射变换,这对动力学模型非常重要。通过在 workspace set 上计算该函数,再通过三维卷积网络将其转化为潜在向量
所有的物体特征函数都基于同一个特征编码器 E ( I i , K i ( x ) ) ∈ R n o E(I^i, K^i(x))∈R^{n_o} E(Ii,Ki(x))∈Rno ,该编码器在任意三维世界坐标 x ∈ R 3 x∈R^3 x∈R3上, 从视图 i 的 图像 I i I^i Ii 输出一个 n 0 − d i m e n s i o n a l n_0-dimensional n0−dimensional 特征向量。
通过将 x 投影到摄像机坐标 K i ( x ) = ( u i ( x ) , v i ( x ) , d i ( x ) ) T ∈ R 3 K^i(x) = (u^i(x), v^i(x), d^i(x))^T∈R^3 Ki(x)=(ui(x),vi(x),di(x))T∈R3 ,其中 u i ( x ) , v i ( x ) u^i(x), v^i(x) ui(x),vi(x) 是像平面上的像素坐标, d i ( x ) ∈ R d^i(x)∈R di(x)∈R 是 x 到摄像机原点的深度。E 只是摄像机坐标的函数,而不是绝对世界坐标的函数。
通过双线性插值确定 图像 I i I^i Ii 在 ( u i ( x ) , v i ( x ) ) (u^i(x), v^i(x)) (ui(x),vi(x)) 处的RGB值,并通过密集神经网络(MLP)进行传递。与此同时,计算 K i ( x ) K^i(x) Ki(x) 的密集MLP编码。
两个 mlp 的串联输出定义了编码特征向量 E ( I i , K i ( x ) ) E(I^i, K^i(x)) E(Ii,Ki(x))
直观地说, E ( I i , K i ( x ) ) E(I^i, K^i(x)) E(Ii,Ki(x)) 是一个特征向量,根据从视点 i 在 图像 I i I^i Ii 中的 x 处可以看到的世界计算,考虑到它相对于视图 i 的相机原点的位置,这很重要,不仅使模型能够推理3D几何形状,而且使我们能够获得特定 对象j 的功能表示。
即通过对 单个视图 i 求和 来定义 对象 j 的特征函数
对于特定的 x,这个和只考虑了对象 j 可以被看到的那些视图 i,即,其中相机坐标
K
i
(
x
)
K^i(x)
Ki(x) 的 x 在物体的掩模
M
j
i
M^i_j
Mji 内。如果 p(x) = 0,则定义
y
j
(
x
)
=
0
∈
R
n
o
y_j(x) = 0∈R^{n_o}
yj(x)=0∈Rno,这意味着如果一个对象在 x 处没有从任何视角观察到,则对应的特征向量为零。这种表述的一个优点是,它自然地处理不同视角下的遮挡,并一致地融合了来自不同视角的观测结果。
给定 对象 j 的隐式对象描述子函数(implicit object descriptor function) y j ( ⋅ ) y_j(·) yj(⋅),将其转化为表示 对象 j 的潜向量 z j ∈ R k z_j∈R^k zj∈Rk,其三维卷积网络为 Φ。
形式上, z j = Φ ( y j ) z_j = Φ(y_j) zj=Φ(yj) 是 object函数的函数,可以通过神经网络在 workspace set 上计算 y j y_j yj 来学习函数的函数。
假设场景中的交互发生在
workspace set
X
⊂
R
3
X⊂R^3
X⊂R3中(这个workspace被离散为体素网格
X
h
∈
R
d
×
h
×
w
X_h∈R^{d×h×w}
Xh∈Rd×h×w),它足够大,可以容纳所有对象,然后在
X
h
X_h
Xh 上评估目标描述符函数,该函数产生一个目标特征体素网格,用3D卷积神经网络处理该网格,得到潜在向量
z
j
∈
R
k
z_j∈R^k
zj∈Rk
所有对象都使用相同的工作空间集
X
h
X_h
Xh
综上所述,对象编码器 z 1 : m = Ω ( I 1 : V , K 1 : V , m 1 : m 1 : v , X h ) z_{1:m} = Ω (I^{1:V}, K^{1:V}, m^{1: v}_{1:m}, X_h) z1:m=Ω(I1:V,K1:V,m1:m1:v,Xh) 将来自多个视图的图像、对象掩码和 workspace set X h X_h Xh 映射到 潜在向量。
Decoder as Compositional, Conditional NeRF Model
每个单独对象 j 训练一个NeRF
输入潜在向量
z
j
z_j
zj j =1,…,m, 输出 对象 j 的预测密度
σ
j
σ_j
σj、颜色
c
j
c_j
cj
为了将 f 1 : m f_{1:m} f1:m 转化为一个全局的NeRF模型,将单个预测物体密度 σ(x) = ∑ j = 1 m σ j ( x ) ∑^m_{j=1}σj(x) ∑j=1mσj(x) 求和,得到其密度加权组合 c ( x ) = 1 σ ( x ) ∑ j = 1 m σ j ( x ) c j ( x ) c(x) =\frac{1}{σ(x)}∑^m_{j=1} σ_j(x)c_j(x) c(x)=σ(x)1∑j=1mσj(x)cj(x)。这种组合迫使单独的nerf单独学习每个对象的3D配置,因此确保每个 f j f_j fj 只预测对象在3D空间中的位置。
总结:Conditional nerf 解码器 D N e R F D_{NeRF} DNeRF 对对象 j = 1取潜在向量 z 1 : m z_{1:m} z1:m 集,j=1…, m和摄像机矩阵K作为渲染 I = D N e R F ( z 1 : m , K ) I = D_{NeRF}(z_{1:m}, K) I=DNeRF(z1:m,K) 的输入。由于只将对象而不是背景表示为NeRF,渲染合成的NeRF将产生一个背景被减去的图像。
Training
自编码器框架在 视图 i 的 L2图像重建损失上进行端到端的训练
由于单独的对象被表示为nerf而不是背景,计算单个对象的掩码的联合
M
t
o
t
i
=
V
j
=
1
m
M
j
i
M^i_{tot} = V^m_{j=1} M^i_j
Mtoti=Vj=1mMji ,并定义目标图像为
I
i
◦
M
^
t
o
t
i
I^i◦\hat{M}^i_{tot}
Ii◦M^toti,
M
^
t
o
t
i
\hat{M}^i_{tot}
M^toti 是一个稍微放大的联合掩码
Latent Dynamics Model with Graph Neural Networks
在训练了自编码器框架之后,学习了一个图神经网络动力学模型
其中 A t ∈ 0 , 1 m × m A^t∈{0,1}^{m×m} At∈0,1m×m 是 t 时刻的邻接矩阵。使用多步消息传递来处理多个对象在一个预测步骤内相互作用的情况。
学习模型中的邻接矩阵。
GNN动力学模型中的邻接矩阵A在指示哪些对象相互作用方面起着重要作用。虽然密集邻接矩阵(即每个对象与所有其他对象相互作用的图)原则上可以工作,因为GNN可以从潜在向量中找出哪些对象相互作用,但实验发现,如果A在反映哪些对象实际相互作用方面更具选择性,则长视界预测性能将大大提高。
在训练和规划过程中,提出利用NeRF解码器对每个目标的密度预测 σ j σ_j σj,根据模型自身的预测确定邻接矩阵。为此,基于碰撞积分(collision integral)定义对象 i 和 j 之间邻接矩阵的条目
对于阈值 κ≥0 的已知NeRF模型的密度预测。以这种方式估计A考虑到场景中对象的实际3D几何形状,从而通知GNN动态模型,从而获得更稳定的预测。
动作流程
将一个动作解释为对潜在向量的干预,并训练GNN预测在此修改的结果下一个时间步潜在向量。这使得我们不需要明确区分受控和不受控/被动对象。
为了实现这些干预,从而纳入行动,利用对象编码器是由隐式表示构建的事实。假设一个动作是应用在物体 j 上的刚性变换 q ∈ R 7 q∈R^7 q∈R7,可以将物体的 潜在向量 z j t z^t_j zjt 修改为变换后的 z j t = z j t + 1 = T ( q ) [ z j ] z^t_ j = z^{t+1}_j = T (q)[z_j] zjt=zjt+1=T(q)[zj],表示刚性变换后的物体 j,然后,模型 F G N N F_{GNN} FGNN 预测场景中的其他对象如何对铰接对象的这种刚性转换做出反应。
对于包含2、4和8个对象(加上推动者)的场景的测试数据集,从预测潜在向量到未来时间步数的重建图像与地面真实图像观测之间的图像预测误差比较。2和8个对象是对对象数量的泛化,4是训练期间的泛化。每一步对应2厘米的移动,即50步推器移动了1米。
Discusion & Limitations
计算效率。论文的框架在推理期间比2D CNN解码器基线的计算要求更高,主要是由于NeRF评估。框架可以从提速NeRF中改进。
Object Masks。合成场景编码框架需要对象掩码来实现合成。许多成熟的实例分割方法已经被开发出来,因此相信拥有掩码是一个合理的假设。但是,可以向隐式编码器添加输出,提供对象标签或使用类似于slot attention的机制
Latent Representations。已经展示了合成潜在表示的巨大好处,因为它不仅提供了场景中不同数量的对象的泛化,而且与非合成基线相比,还导致了更高的重建和动态预测性能。此外,潜在表示压缩观测,使高效的动态预测成为可能。然而,由于场景中的每个物体仍然被表示为一个有限大小的潜在向量,潜在模型能够主要表示形状与训练分布相似的物体。为了解决这个问题,组合性不仅可以引入到场景级别,还可以通过以可组合的方式表示对象本身。
长期预测的稳定性。与基线相比,动力学模型框架具有明显更好的长期预测稳定性。实验表明,这是由于(成分)nerf导致的结构偏差。这种稳定性允许使用模型来规划需要长期视野的场景,这是任何基线方法都无法支持的。但是,在预测稳定性方面仍有提高的空间。特别是对于可变形的物体,观察到在经过许多预测步骤后,场景中的物体会被预测穿透或穿过对方,这在未来的工作中可以得到改进。
Conclusion
视觉动力学模型是计算机视觉和机器人社区非常感兴趣的,因为它们避免了明确的形状模型假设和暗示端到端感知。然而,为了支持操作计划和推理,需要对对象进行强泛化并提供稳定的长期预测的模型。在论文中,提出了一个系统,该系统引入了不同层次的三维结构和组成先验,即组成nerf,三维隐式目标编码器和自适应邻接矩阵的gnn动态。总的来说,与没有这些先验或没有组合性的多个基线相比,系统表现出明显更强的长期预测性能,并支持使用潜在空间RRT规划器。已经展示了在不同数量的对象上的泛化,值得注意的是,最多比训练期间多两倍。
Details
Encoder
从 M 个对象的 V 个视图
(
I
,
K
)
1
:
V
(I, K)^{1:V}
(I,K)1:V,包括它们的 对象掩模
M
1
:
M
1
:
v
M^{1: v}_{1: M}
M1:M1:v 以及 workplace set
X
h
X_h
Xh 映射到描述场景中对象的潜在向量集合
z
1
:
M
z_{1: M}
z1:M。所有对象都使用相同的对象编码器Ω和workplace set
X
h
X_h
Xh。特别是,
X
h
X_h
Xh 不是一个单独对象的3D边界框,而是覆盖了整个场景的工作空间。
在内部,Ω 由一个特征编码器E 组成,它从视图 i 的图像
I
i
I_i
Ii 在任意三维世界坐标
x
∈
R
3
x∈R^3
x∈R3 上输出一个无维特征向量
从世界坐标计算此类像素特征的类似架构已经被提出,例如,针对单一对象的情况。然而,与这些作品相比,论文使用的 E 不同,因为是从具有3D卷积的像素对齐特征计算潜在向量。
对象特征函数 y j y_j yj 通过考虑每个视图中 对象 j 的掩码来聚合来自各个视图的特征。
E 和 y 的结构如下图所示。
图像条件隐式目标编码器 视图 i 的特征编码器 E。E 首先通过
K
i
K_i
Ki 将查询点
x
∈
R
3
x∈R^3
x∈R3 投影到摄像机坐标系中。一方面,这个投影坐标通过MLP被编码到一个特征中。另一方面,利用像素坐标
(
u
i
(
x
)
,
v
i
(
x
)
)
(u_i(x), v_i(x))
(ui(x),vi(x)) 通过双线性插值得到投影 x 处的RGB值。将坐标特征与插值后的RGB值拼接,再用另一个MLP进行处理,得到最终输出
E
(
I
i
,
K
i
(
x
)
)
∈
R
n
o
E (I_i, K_i(x))∈R^{n_o}
E(Ii,Ki(x))∈Rno。
下图显示了 对象 j 的对象特征函数
y
j
(
⋅
)
y_j(·)
yj(⋅) 是如何由 Φ 通过在 workspace set
X
h
X_h
Xh 上查询和 三维卷积网络将其转化为其对应的潜在向量
z
j
z_j
zj 的。
隐式目标特征函数
y
j
y_j
yj。在查询
y
j
y_j
yj 的世界坐标中,点
x
∈
R
3
x∈R^3
x∈R3 被投影到每个视图
I
i
I_i
Ii 的摄像机坐标系中,其中(共享)特征编码器 E 在投影 x 处生成对象 j 的一个特征。掩码
M
j
i
M^i_j
Mji 决定计算出的特征是否与将来自不同视图的特征聚合为对象 j 的最终特征相关。
体积对象编码器 Φ。在离散化 workspace set
X
h
X_h
Xh 上计算对象 j 的对象特征函数
y
j
y_j
yj,该 workspace set
X
h
X_h
Xh 生成对象特征体素网格
y
j
(
X
h
)
y_j (X_h)
yj(Xh),通过三维卷积网络将其转化为潜在向量
z
j
∈
R
k
z_j∈R^k
zj∈Rk。
Background on Neural Radiance Fields
在大多数NeRF公式中,f 将视图方向作为额外的输入,这有利于重建反射和其他照明效果。在此工作中考虑的场景,发现合并视图方向是没有必要的,因此省略了它们
Training
自动编码器框架在 L2 图像重建损失上进行端到端训练。因为,如前所述,只有 对象 被表示为 nerfs,而不是背景,计算单个对象的掩码的联合
和 目标图像 在视图定义为
I
i
◦
M
t
o
t
i
I^i◦M^i_{tot}
Ii◦Mtoti ◦ 指示 element-wise product
NeRF的一个已知问题是它的计算效率,因为对于每个像素,所有的 f j f_j fj 都必须在沿着相机射线的许多点上进行查询。为此,做了两个简单但重要的改进来减少计算需求。
首先,为每条相机射线分别确定远近界 α n , α f α_n, α_f αn,αf,以便只考虑 workspace set 中 X 中沿着射线的那些点。这是一个合理的假设,因为首先假设对象在workspace set 中。这样,通过减少需要查询函数 f j f_j fj 的点的数量,计算效率已经大大提高了。
此外,由于在实验中考虑的场景是由多个较小的物体组成的,当遮蔽背景时,每个视图中的大多数像素是黑色的,因此不包含关于场景的信息,尽管模型是在这些区域上进行评估的。为了进一步减少需要查询nerf的点的数量,只考虑那些通过视图中至少一个对象掩码的视图的射线。然而,事实证明,只对经过
M
t
o
t
M_{tot}
Mtot 的光线进行训练会导致模糊的重建,因为没有损失表明物体应该在遮罩之外结束。为了解决这个问题,用卷积操作将视图的组合掩模
M
t
o
t
i
M^i_{tot}
Mtoti 放大几个像素。把这个放大的掩模用
M
^
t
o
t
i
\hat{M}^i_{tot}
M^toti 表示。这些技术一起确保模型学习清晰的对象边界,同时显著减少考虑射线的数量和所需的NeRF评估。
D
N
e
R
F
D_{NeRF}
DNeRF 和 Ω 的训练损失
训练扩大掩模的另一个副作用是提高了模型的训练稳定性和重建质量。事实上,当在整个图像上训练模型时,根据网络的权重初始化,模型有时会非常迅速地收敛到只预测黑色图像的状态,因为大多数像素实际上是黑色的,因此可以实现低损失。在放大的掩码上训练可以可靠地防止这种情况。
刚性变换和新场景生成
模型的合成公式使得从场景中添加和删除对象变得非常简单。
由于所提出的对象表示 y j y_j yj 是3D坐标的函数,可以通过应用刚性变换对 workspace set 中的对象进行刚性变换。
设 R ( q ) ∈ R 3 × 3 , s ( q ) ∈ R 3 R(q)∈R^{3×3}, s(q)∈R^3 R(q)∈R3×3,s(q)∈R3 分别是 旋转矩阵 和 平移向量,是 q ∈ R 7 q∈R^7 q∈R7 (平移+四元数)的函数。然后, y j ( R ( q ) T ( ⋅ − s ( q ) ) ) y_j (R(q)^T( · −s(q))) yj(R(q)T(⋅−s(q))) 是 q 变换后的物体特征函数。因此,用(4)中的 Φ 对 X h X_h Xh 上变换后的 y j y_j yj 求值,得到一个新的潜在向量,它表示被 q 变换后的物体 j
术语 R ( q ) T ( X h − s ( q ) ) R(q)^T (X_h - s(q)) R(q)T(Xh−s(q)) 必须被理解为在 X h X_h Xh 中的每个条目。
通过对其 x 输入应用刚性变换来转换NeRF只会导致渲染视觉空间的变化,即它对对象的潜在向量没有影响。
我们希望潜在向量不仅表示单个对象的外观,而且表示场景中对象相对于其他对象的几何信息,因此仅仅转换NeRF模型是不够的。因此,通过(15)经过 q 的刚性变换得到新潜在向量,这对下游动态预测任务至关重要。
图神经网络潜在动力学模型\
Propagation Networks
由于我们考虑的场景的组成性质,需要一个动态模型来维护自动编码器的能力,以概括不断变化的对象数量,对于这种情况,图神经网络(gnn)是一个自然的选择
使用 GNNs 学习动态模型背后的一般思想是将场景中的每个对象与图中的一个节点关联起来,在这里,这意味着图中的每个节点是一个潜在向量 z j z_j zj。节点之间的边表示物体是否相互作用,例如通过交换因接触而产生的力。
将一个简单的GNN应用于动态预测问题是有问题的,因为在一个节点上引起的相互作用不仅会影响相邻节点,而且会影响高阶邻居。例如,如果三个物体接触,在第一个物体上施加一个力的效果必须传播。在实验中考虑的场景包含多个对象,这样两个以上的对象可以在一个时间步长内相互作用。为了考虑到这一点,使用消息传递体系结构。
设 z i z_i zi 和 z j z_j zj 为对象 i 和 j 的潜在向量,一个边缘编码器网络 F e F_e Fe 决定了一个特征
描述 对象i, j 之间的相互作用。如果 对象 i 受 对象j 的影响,邻接矩阵
A
∈
{
0
,
1
}
m
×
m
A∈\{0,1\}^{m×m}
A∈{0,1}m×m 的项
A
i
j
=
1
A_{ij} = 1
Aij=1。假设在时间 t 时所有潜在向量
z
1
:
m
t
z^t_{1:m}
z1:mt 的状态已知。对节点传播器网络
F
z
F_z
Fz 递归查询 L 多次,将状态
z
1
:
j
t
z^t_{1:j}
z1:jt 传播到下一个时间步 t + 1:
当
0
z
i
t
+
1
=
z
i
t
,
l
e
i
j
T
=
F
e
(
l
z
i
t
+
1
,
l
z
j
t
+
1
)
,在
l
=
0
,
.
.
.
,
L
−
1
^0z_i^{t+1} = z^t_i,^le^T_{ij} = F_e ( ^lz_i^{t+1} , ^lz_j^{t+1}),在l=0,...,L-1
0zit+1=zit,leijT=Fe(lzit+1,lzjt+1),在l=0,...,L−1,最终新的预测态
z
i
t
+
1
=
L
z
i
t
+
1
z^{t+1}_i = ^Lz^{t+1}_i
zit+1=Lzit+1
Adjacency Matrix from Learned Model
GNN动力学模型(17)中的邻接矩阵A在指示哪些对象相互作用方面起着重要作用。
虽然密集邻接矩阵,即每个节点连接到每个节点的图,意味着每个对象与场景中的所有其他对象交互,原则上网络可以从潜在表示本身找出哪些对象交互,但我们发现,如果A在反映哪些对象实际交互时更具选择性,则长视界预测性能将大大提高
这尤其适用于作品中所考虑的合成场景,其中有许多物体,但它们通常在每个时间步中都不相互作用
一个核心问题是如何从场景的观察中获得邻接矩阵,而不需要手动指定它。
由于我们的模型具有较强的3D先验,我们可以利用(5)中定义的对每个对象的密度预测 σ j σ_j σj,在训练和规划过程中根据模型自己的预测确定邻接矩阵。
为了做到这一点,当阈值κ≥0时,碰撞积分
超过学习到的NeRF模型对对象i和j的密度预测表明两个对象是否重叠。基于这个积分,我们定义对象 i 和 j 之间邻接矩阵的条目为
这意味着只有那些正在或接近接触的物体才有可能相互作用。
用这种方法估算A会考虑场景中物体的实际几何形状
对于节点传播网络(17),这意味着传播的第l步的邻接矩阵成为节点编码本身的函数,即。
然而,对于训练GNN,在预测过程中改变邻接矩阵是不可微的
因此,我们根据模型计算邻接矩阵,使它们在一个时间步内保持恒定,如下所示。我们首先计算一个占用网格
在离散化 workspace set
X
h
X_h
Xh上对每个 对象j 进行卷积运算,然后在
S
j
S_j
Sj 上使用一个只包含一个的核来扩展占用网格
。
一个时间步 t 项内的现在常数
l
A
i
j
t
=
A
i
j
t
^lA^t_{ij} = A_{ij}^t
lAijt=Aijt 对于所有 l = 0…, L−1,然后通过检查是否存在一个体素单元,其中放大的
S
i
和
S
j
S_i和S_j
Si和Sj的值都为1。
卷积核的大小要选得足够大,这样邻接矩阵不会在一个时间步内发生变化。
这允许在A的足够稀疏性之间进行权衡,同时确保所有可能交互的对象在A中都有相应的条目。
Actions
图神经网络动力学模型的方法不包含动作的概念,相反,我们将一个动作解释为对图中节点的修改,并训练GNN预测节点在此修改的结果下一个时间步的状态。这允许我们不显式地区分受控和非受控/被动对象.
为了实现对节点的修改,从而在第一个位置合并操作,我们利用了对象编码器是3D世界坐标的隐式函数这一事实。假设 物体j 由已知的刚性变换 q ∈ R 7 q∈R^7 q∈R7 连接,这是动作.
通过(15)我们可以将对象的潜在向量 z j t z^t_j zjt 转换为转换后的 z ˉ j t = z j t + 1 = T ( q ) [ z j ] \bar{z}^t_j = z^{t+1}_ j = T (q)[z_j] zˉjt=zjt+1=T(q)[zj],在(17)的传播步骤中保持不变,即控制节点被排除在动态预测之外,因为它们的演化通过 z ˉ j t \bar{z}^t_j zˉjt知道。
Quasi-Static Dynamics
如果我们假设准静态动力学,这意味着下一个系统状态只依赖于当前的潜在状态 $z_{1:m},没有历史和立即的行动,我们可以通过利用学习模型估计的邻接矩阵进一步增加长期稳定性。
当一个对象不涉及任何与其他对象的相互作用时,那么,在准静态假设下,它在时间步之间不发生变化,即它的潜在向量保持不变,这意味着我们可以设置
条件
∀
j
≠
i
:
A
i
j
=
0
∀j \neq i: A_{ij} = 0
∀j=i:Aij=0 表示图中与
z
i
z_i
zi 相关的节点没有入边,这可以极大地提高长期开环模型预测的稳定性,因为它将防止不参与任何与其他对象相互作用的对象漂移。
Training
我们首先在训练数据上训练合成NeRF自动编码器框架,它给我们一个潜在向量轨迹的数据集。然后,使用ADAM优化器对这些轨迹样本的 z 1 : m t + 1 和 z 1 : m t z^{t+1}_{1:m}和z^t_{1:m} z1:mt+1和z1:mt 之间的一步均方误差进行训练。
重要的是,训练动态模型不需要包含动作的数据集。有视频序列和知道哪个对象是铰接对象就足够了。在推断时,还可以根据刚变换选择不同的对象来应用动作
Forward Prediction Algorithm
算法1总结了正向预测过程。算法下图所示。算法1从V多个视图的图像 I 1 : V I^{1:V} I1:V 和 M 多个对象的掩模 M 1 : M 1 : v M^{1: v}_{1: M} M1:M1:v的场景初始观测出发,对于场景中的所有对象,预测了 t = 1,…,T 时的潜在向量 z 1 : M t z^t_{1: M} z1:Mt,给定一个期望的动作序列 q 1 : T q_{1:T} q1:T 的刚性变换应用于对象 a。在每一个时间点T,场景可以从预测的 z 1 : m t z^t_{1:m} z1:mt 的任意视点进行渲染。
注意,只有在初始观测时才需要对象的掩码,无需执行掩码预测。
在第2行中,计算来自场景观察的初始对象编码。第5行将该动作应用到索引为a的对象上。第6-10行通过消息传递的方式对潜空间中的GNN进行预测步骤。关键的是,在第7行中,邻接矩阵是根据消息传递期间的当前预测估计的(第C.2节)。注意,这里在网格Xh上计算的原始碰撞积分(18)可以在不扩大中间占用网格的情况下使用,因为,如果在消息传递步骤对象之前没有交互,那么它将被捕获,因为在消息传递部分的每个步骤中都估计了A。这将进一步增加预测的稳定性,正如我们将在实验中展示的那样。最后,在第12行中,如邻接矩阵所预测的那样没有与其他对象相互作用的对象保持在它们之前的潜在状态
正向预测算法的可视化将初始场景观测编码为潜向量
z
1
:
m
0
z^0_{ 1:m}
z1:m0 后,利用GNN动态模型,仅从初始观测开始,向前预测动作
q
t
q_t
qt 时潜向量的演化。这些动作对铰接对象(在实验中为推器)进行了严格的变换,导致了在GNN中输入
z
ˉ
1
:
m
t
\bar{z}^t_{1:m}
zˉ1:mt,产生
z
1
:
m
t
+
1
z^{t+1}_{1:m}
z1:mt+1。GNN动力学模型的邻接矩阵是根据每个时间步中预测
z
j
z_j
zj 的所有对象的密度预测
σ
(
⋅
,
z
j
)
σ(·,z_j)
σ(⋅,zj) 来估计的。预测的潜向量
z
1
:
m
t
z^t_{1:m}
z1:mt 在 t 时刻可用于从任意视图渲染图像或重建场景。
Planning with Latent space RRT
提出了一种利用场景编码和动态模型框架来操纵对象以实现预期目标的规划算法。注意,计划和控制不是这项工作的主要焦点,然而,算法仍然包含重要的见解。
规划算法的主要部分是潜空间的RRT。这里的一个核心问题是如何在潜在空间中有效采样,因为潜在空间中的均匀随机样本不一定是原始空间中的有效(和/或均匀)样本。我们可以利用模型的性质直接在潜在空间中生成有效的样本。
在较高的层面上,我们的模型迭代地感知场景的多视图图像,使用基于模型在较长地平线上的正向预测的潜在空间RRT (LS-RRT)找到一个计划,然后使用模型预测控制(MPC)[88]在较短的地平线上执行找到的计划。
Planning
算法2总结了LS-RRT算法。我们在潜在空间中生长一棵树,从潜在向量 z 0 = z 1 : m 0 z^0 = z^0_{1:m} z0=z1:m0开始,该向量表示环境的当前状态,由隐式对象编码器Ω根据当前场景的视觉观察编码。在标准的RRTs中,目标在配置空间中被均匀采样,以引导树的生长朝着Voronoi偏差。为了引入特定的目标导向抽样偏差,并且由于我们没有反向模型或导向函数,我们将标准方法修改如下:
在潜空间RRT中,在潜空间中均匀采样既不能保证样本来自潜空间流形,也不能保证它们探测原始空间。因此,我们不直接在潜空间中对随机目标
g
G
s
a
m
p
l
e
r
g ~ G_{sampler}
g Gsampler采样,而是只在所有物体的质心配置空间中采样,在实验中(物体和推子)质心配置空间为2m。通过这种方式,我们可以设计一个偏向于目标配置的采样分布
G
s
a
m
p
l
e
r
G_{sampler}
Gsampler,该目标配置成本较低,即目标区域内的对象较多,或者目标中连接的对象(实验中的推子)靠近其中一个对象,从而产生交互的偏差。这种抽样分布和成本评估
C
g
C_g
Cg 是可能的,因为我们可以通过对象编码器作为隐式函数对对象应用刚性转换,因为对于采样的随机目标,我们必须将对象移动到该目标,以检查转换配置的成本。此外,选择展开节点的度量d是g和从z计算的质心之间的完全构型的l2范数。使用NeRF模型的预测,我们可以估计(均质密度假设下)潜在矢量为
z
j
z_j
zj的物体的质心
即
d
(
z
,
g
)
=
‖
x
1
:
m
c
o
m
(
z
)
−
g
‖
2
d(z, g) =‖x^{com}_{1:m}(z)−g‖_2
d(z,g)=‖x1:mcom(z)−g‖2。注意,抽样分布、成本函数评估和度量计算都是完全基于模型的预测进行的。在任何一点上,模型都不能访问到地面真相的质心信息。
最后,由于我们没有反向动力学模型或其他类型的转向函数,我们使用一个随机动作q扩展树,类似于控制树。然而,我们针对目标的节点选择确保了树的有效扩展。
Cost-Functions
由于我们的解码器是基于nerf的,我们的方法能够在定义成本函数时提供很大的灵活性。在动态模型所预测的任意时间点向前的情况下,我们可以从任意视图渲染图像或对物体进行三维重构。例如,这样就可以使用以下选项来定义计划的成本函数:
- 从任意视图(已知相机矩阵)渲染的图像损失。
- NeRF重建的密度预测损失。
- 由 σ j σ_j σj(含各点颜色信息)重构的点云损失。
- 由(23)模型预测的质心损失。
所有这些选项都可以针对特定对象、整个场景或介于两者之间的内容进行定义。
Model-based Control
虽然我们的模型在很长一段时间内取得了令人印象深刻的性能,但累积的预测误差仍然可能导致在执行计划开环时失败。因此,我们应用MPC方案,在每个周期将当前的视觉观察输入模型,在学习到的动力学模型预测的短期范围内,采样并选择与计划(在质量中心度量方面)匹配的动作。如果计划与当前的观测结果有明显的不匹配,则再次使用LS-RRT从当前的观测结果开始寻找新的长期计划。