赞
踩
• 我们提出了一种新颖的实时框架,以全局到本地 (G2L) 的方式从 RGB-D 数据估计 6D 对象姿态。由于高效的特征提取,该框架在 GTX 1080 Ti GPU 上以超过 20fps 的速度运行,这对于许多应用程序来说已经足够快了。
• 我们提出了基于方向的逐点嵌入向量特征(EVF),它比传统的全局点特征更好地利用视点信息。
• 我们提出了一种旋转残差估计器来估计预测的旋转和地面实况之间的残差,这进一步提高了旋转预测的准确性。
(a) 对于 RGB 图像,我们使用 2D 检测器来检测目标对象的边界框 (bbox) 和对象标签,该对象标签用作以下网络的 one-hot 特征。此外,我们还选择类概率图 (cpm) 中的最大概率位置作为球心(我们将这个 2D 位置转换为 3D,具有已知的相机参数和相应的深度值),用于进一步缩小 3D 搜索空间。
(b) 给定目标球体中的点云,我们使用翻译定位网络来执行 3D 分割和翻译残差预测。然后我们使用 3D 分割掩码和预测的平移将对象点云转换为局部规范坐标。
© 在旋转定位网络中,我们首先使用逐点嵌入向量特征提取器来提取嵌入向量特征。然后我们将此特征输入到两点云解码器中:顶部解码器直接输出输入点云的旋转,底部解码器输出顶部真实值之间的输出残差。 k 是输出向量的维度。“+” 表示特征连接。
G2L-Net 通过三个步骤估计 6D 对象姿态:全局定位、平移定位和旋转定位。
在全局定位步骤中,我们使用 3D 球体在 3D 空间中快速定位对象位置。
在平移定位步骤中,我们训练一个 PointNet 来执行 3D 分割并估计对象平移。
在旋转定位步骤中,我们使用提出的逐点嵌入向量特征和旋转残差估计器来估计旋转。注意,这个旋转残差估计器不同于之前方法$^ [42, 15] $中的后细化组件,它与初始旋转同步输出旋转残差。
为了在整个场景中快速定位目标对象的全局位置,我们训练了一个 2D CNN 检测器 YOLO V3[34]来检测 RGB 图像中的对象边界框,并输出对象标签作为 one-hot类向量,用于更好的点云实例分割、平移和旋转估计。在 [29] 中,他们使用 2D 边界框来生成仅减少两个轴 (x,y) 的 3D 搜索空间的平截头体提议。不同的是,我们建议使用 3D 球体来进一步减少第三轴 (z) 上的 3D 搜索空间,而不是仅使用 2D 边界框(详见图 3)。 3D 球体的中心从 2D 位置转移,该位置在具有已知相机参数和相应深度值的类概率图中具有最大值。这个 3D 球体的半径是被检测物体的直径。我们只在这个紧凑的 3D 球体中选择点,这使得后续步骤的学习任务更容易。
虽然提取的点云很紧凑,但仍然存在两个问题:
1)这个 3D 空间中的点云同时包含对象点和非对象点
2)对象点无法转移到本地规范坐标由于未知翻译。
为了解决这些问题,类似于[29],我们训练了两个 PointNets [30] 来执行 3D 分割并输出分割点的平均值
T
‾
\overline{T}
T 与 物体平移T之间的剩余距离
∣
∣
T
−
T
‾
∣
∣
2
||T − \overline{T}||_2
∣∣T−T∣∣2。这个残差可以用来计算物体的平移。
从前两个步骤开始,我们将对象的点云转移到视点信息更明显的局部规范空间。从理论上讲,我们需要至少四个不同的视点来覆盖 3D 空间中对象的所有点(见图 4)。
对于位姿估计任务,我们通常在训练期间对一个对象有数百种不同的视点。那么我们的目标是充分利用视点信息。在
[
29
]
^{[29]}
[29]中,他们使用 PointNets
[
30
,
31
]
^{[30, 31]}
[30,31]从整个点云中提取全局特征。然而,在我们的实验中,我们发现在相似视点下从点云中提取的全局点特征高度相关,这限制了泛化性能(参见实验部分的图9)。
为了克服全局点特征的限制,我们提出了逐点嵌入向量特征。具体来说,我们设计了如图 5 所示的旋转定位网络架构来预测指向关键点的逐点单位向量(如图 6 所示)。关键点是基于每个 3D 对象模型的一些预定义的 3D 点。关键点需要确定两个方面:数量和位置。一种简单的方法是使用对象模型的 3D 边界框的 8 个角作为关键点,如图 7 (a) 所示。这个定义被许多基于 CNN 的方法在 2D 案例中广泛使用 [ 32 , 33 , 27 , 38 ] ^{[32, 33, 27, 38]} [32,33,27,38]。另一种方法是,如 [28] 中提出的,使用最远点采样 (FPS) 算法对每个对象模型中的关键点进行采样。 在 4.4 节中,我们展示了关键点的数量和位置如何影响姿态估计结果。
旋转定位网络的架构。在训练阶段,旋转定位网络中有三个块。我们训练块 A 来预测指向关键点的单位向量,该块的损失函数是预测的方向向量和ground truth方向向量之间的均方误差。通过训练这个块,网络可以学习如何从输入点云中提取逐点嵌入向量特征。请注意,块 A 未部署在推理阶段。然后我们使用块 B 集成逐点嵌入向量特征来预测对象旋转。该块的损失函数是预测旋转和ground truth之间的均方误差。对于旋转残差估计块 C,我们使用预测的 3D 关键点位置(块 B 的输出)与ground truth之间的欧几里德距离作为ground truth。 k是输出旋转向量的维度,v是输出方向向量的维度。 “+” 表示特征连接。
在这里,我们显示指向一个关键点的逐点向量,该关键点以绿色显示,其他关键点以黑色显示。我们训练我们的网络来预测这样的方向向量
与
[
4
]
^{[4]}
[4]类似,我们提出的旋转定位网络采用局部规范空间中的对象点云,并输出指向关键点的逐点单位向量。损失函数定义如下:
l
(
θ
)
=
min
θ
1
K
∣
χ
∣
∑
k
=
1
K
∑
i
∣
∣
v
~
k
(
χ
i
;
θ
)
−
v
k
(
χ
i
)
∣
∣
2
2
l(\theta) =\min_{\theta}\frac{1}{K|\chi|}\sum^{K}_{k=1}\sum_{i}||\widetilde{v}_{k}(\chi_{i};\theta) - v_{k}(\chi_{i})||^{2}_{2}
l(θ)=θminK∣χ∣1k=1∑Ki∑∣∣v
k(χi;θ)−vk(χi)∣∣22
其中 K 是关键点的数量。 θ 是网络参数。
v
~
k
(
χ
i
;
θ
)
\widetilde{v}_{k}(\chi_{i};\theta)
v
k(χi;θ)和
v
k
(
χ
i
)
v_{k}(\chi_{i})
vk(χi) 分别是预测向量和 ground truth 向量。
χ
\chi
χ ∈
R
N
×
3
\mathbb{R}^{N\times3}
RN×3 表示局部坐标空间中的对象点。
χ
\chi
χ是对象点的数量。
与其他最先进的方法 [ 28 , 42 , 4 ] ^{[28, 42, 4]} [28,42,4]不同,我们采用多层感知器 (MLP),将逐点嵌入向量特征作为输入并输出对象的旋转,如图 5 所示。请注意,在推理过程中,我们使用旋转矩阵来表示旋转,该旋转是使用 Kabsch 算法从关键点位置计算得出的。在训练过程中,根据逐点向量的定义,我们只使用关键点位置来表示旋转。在实验中,我们发现我们提出的方法可以比方法 [28,42,4]做出更快、更准确的预测。
旋转残差估计器:为了更好地利用逐点嵌入向量特征中的视点信息,我们添加了一个额外的网络分支(图 5 中的块 C)来估计旋转(图 5 中的块 B)和ground truth的残差。然而,我们没有这个残差估计器的ground truth。为了解决这个问题,我们以在线方式训练这个估计器。假设旋转定位网络的块 B 的残差估计器是 P,块 B 的输出是 Pe,那么我们的旋转残差估计器的目标是
∣
∣
P
−
P
~
∣
∣
2
||P -\widetilde{P}||_2
∣∣P−P
∣∣2. 随着旋转网络的收敛,学习残差变得更加困难。如果旋转定位网络能够充分利用嵌入向量特征,则可以忽略旋转残差估计器的作用。然而,当旋转网络不能充分利用嵌入向量特征时,旋转残差估计器将对最终结果产生很大影响,我们在图 9(b)中展示了旋转残差估计器的这一特性。请注意,我们提出的旋转残差估计器与之前最先进的方法
[
42
、
40
、
20
]
^{[42、40、20]}
[42、40、20]中的后细化模块不同。我们提出的旋转残差估计器将旋转残差与估计的旋转同步输出,从而节省了运行时间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。