论文笔记(五十六)VIPose: Real-time Visual-Inertial 6D Object Pose Tracking
VIPose: Real-time Visual-Inertial 6D Object Pose Tracking
- 文章概括
- 摘要
- I. INTRODACTION
- II. 相关工作
- III. APPROACH
- A. 姿态跟踪工作流程
- B. VIPose网络
文章概括
引用:
@inproceedings{ge2021vipose,
title={Vipose: Real-time visual-inertial 6d object pose tracking},
author={Ge, Rundong and Loianno, Giuseppe},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
pages={4597--4603},
year={2021},
organization={IEEE}
}
Ge, R. and Loianno, G., 2021, September. Vipose: Real-time visual-inertial 6d object pose tracking. In 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 4597-4603). IEEE.
原文:https://ieeexplore.ieee.org/abstract/document/9636283
代码、数据和视频:https
系列文章:
请在
《
《
《文章
》
》
》 专栏中查找
摘要
估计物体的6D姿态对于运输、自动导航、操纵等机器人任务非常有益,同时在虚拟现实和增强现实等超越传统机器人的场景中也同样重要。相对于单张图片的姿态估计,姿态跟踪考虑了跨多个帧的时间信息,以克服可能的检测不一致并提高姿态估计的效率。在这项工作中,我们介绍了一种名为VIPose的新型深度神经网络(DNN),该网络结合惯性和摄像机数据来实时解决物体姿态跟踪问题。主要贡献是设计了一种新型的DNN架构,该架构融合视觉和惯性特征来预测连续图像帧之间物体的相对6D姿态。然后通过连续组合相对姿态来估计总体的6D姿态。我们的方法在处理由现有最先进解决方案难以处理的严重遮挡的物体时显示出了显著的姿态估计结果。所提出方法的有效性在一个新的数据集VIYCB上得到了验证,该数据集包括RGB图像、IMU数据和通过自动化标记技术创建的准确的6D姿态注释。这种方法展示了与最先进技术相当的准确性表现,但额外的好处是实时性。
I. INTRODACTION
从RGB图像序列跟踪物体的6D姿态(即,估计每一帧中物体相对于相机的3D平移和旋转),是各种机器人应用中的重要任务。这可以提高机器人在各种室外和室内环境中的导航性能,以解决复杂任务,如检查、制图和搜索救援。它还可以用于物体操纵任务的规划和抓取、空中电影摄影以跟踪移动目标,以及在虚拟现实(VR)和增强现实(AR)等超出机器人学的场景中使用。从单张RGB图像估计物体的6D姿态已经被广泛研究。传统方法通过图像和3D物体模型匹配物体的关键点[1]-[3]。最近基于深度学习的方法显著提高了姿态估计的准确性和鲁棒性[4]-[11]。一些单图像姿态估计方法是实时的(30 Hz),但准确性有限[5],[11]。此外,这些方法忽略了连续图像帧之间的时空信息,严格专注于单视图姿态估计。这可能导致连续帧之间的姿态估计不一致。
最近基于RGB的6D物体姿态跟踪方法取得了良好的跟踪性能[9],[12]。然而,这些方法对于严重遮挡不够鲁棒,这种情况需要每次重新初始化姿态跟踪过程。重新初始化通常由一个精确的6D姿态估计方法执行,这在计算上是昂贵的。因此,这些方法的速度相当有限,阻碍了它们在实时场景中的应用。为了克服上述缺点,我们提出了一种新的DNN架构,它结合了惯性测量单元(IMU)数据和相机图像。IMU在机器人领域已广泛用于定位和导航。最近的研究[13],[14]表明,可以通过训练有素的DNN处理IMU数据来预测速度,这可以用来解决相机定位问题。因此,IMU传感器可以提供关于相机运动的有用信息。在我们的案例中,我们利用这些信息实现在严重遮挡下也能准确的物体姿态跟踪。此外,对图像和IMU数据的联合学习过程导致了一种高效的表征,使得鲁棒的实时姿态跟踪成为可能。这项工作呈现了多个贡献。首先,我们提出了第一个融合相机和IMU数据的物体姿态跟踪方法,以应对复杂场景中包括物体遮挡的姿态跟踪挑战。其次,我们的方法通过利用IMU数据并通过传播和结合连续帧的相对姿态估计来加速姿态跟踪问题。最后,我们在收集的包括RGB图像和IMU数据的数据集上实验验证了我们的方法,这些数据通常在现有数据集中不可用。为了克服生成6D姿态注释的众所周知的困难任务,还引入了一种自动化标记技术来收集足够的训练和测试数据,从而显著减少了手工标记的努力。实验结果表明,提出的方法与现有最先进的解决方案相比取得了可比的结果,同时运行速度显著更快,达到了实时性能(即50.2 Hz)。论文的结构如下。第II部分,我们回顾了6D姿态估计和跟踪的相关工作,以及基于IMU数据的定位学习技术。第III部分介绍了提出的跟踪管道和VIPose网络。第IV部分展示了在我们的VIYCB数据集上的广泛实验结果。第V部分总结了工作并提出了未来的方向。
图1:视觉-惯性6D物体姿态跟踪(顶部)。在我们的VIYCB数据集上进行速度-准确性基准测试,与现有最先进解决方案进行比较(底部)。
II. 相关工作
6D姿态估计: 传统上,单张图像中物体的6D姿态是通过模板匹配方法估计的,该方法将图像中的特征点与相应的3D模型特征点匹配。然后,可以通过使用PnP算法[1]解决这些局部特征的2D-3D对应关系来估计6D物体姿态。最近,基于深度学习的方法日益流行。SSD-6D[4]扩展了SSD物体检测器到6D姿态估计,增加了一个视点分类分支。[5]采用YOLO网络来检测图像中物体的3D包围框角点,并通过再次解决PnP问题来恢复6D姿态。PoseCNN[8]提出了一个端到端的框架,用于执行语义分割并预测3D旋转和平移。相反,DeepIM[9]采用FlowNetSimple网络[15]来通过迭代预测从渲染的前一姿态到当前图像观察的相对姿态,直到迭代姿态增量足够小。一般来说,将6D姿态估计方法应用于视频的每一帧来估计6D姿态,忽略了可能有用的时间信息,这些信息可以提高姿态估计过程的速度和准确性,而无需在每一帧都进行估计。
6D姿态跟踪: 我们的工作与最近在基于RGB的6D物体姿态跟踪方面的进展密切相关。PWP3D[16]提出通过优化物体3D模型的投影轮廓来跟踪物体姿态。[17]进一步改进了[16],采用一种新颖的优化方案和GPU并行化。然后[18]提出使用时间局部颜色直方图来改进姿态跟踪。最近,[19]采用深度神经网络预测连续帧之间的姿态差异。PoseRBPF[12]提出了一个Rao-Blackwellized粒子滤波方法来跟踪6D姿态,该方法将3D旋转和3D平移解耦,并考虑不确定性和物体对称性,达到了YCB视频数据集上的最佳性能。DeepIM[9]也可以扩展到通过预测连续两帧之间的相对变换来执行姿态跟踪。然而,这些方法对严重遮挡仍然不够鲁棒,丢失跟踪时需要重新初始化。[20]提出了一种新的网络,用于RGB-D数据上的6D姿态跟踪。它解耦了特征编码,以减少仿真和现实之间的领域差距,并且仅使用合成数据进行训练。这种方法在RGB-D数据上表现良好,而在我们的工作中,我们专注于更具挑战性的情况,即只有RGB图像可用,没有深度信息。
数据驱动的IMU定位: 传统上,IMU数据可以通过一些基于滤波的方法来进行定位。近年来,深度学习方法已经被应用于直接从IMU数据回归定位信息。VINet[21]提出了第一个端到端的视觉-惯性测距系统,它采用一个LSTM[22]网络来处理跨图像帧的IMU输入,以及一个FlowNet网络来处理图像对。视觉-惯性融合是通过连接IMU和视觉特征向量实现的。IONet[23]提出了一个LSTM网络来预测2D中的相对位移,并将预测结果连接起来,仅依赖于IMU输入来推断位置。RoNIN[13]将IMU数据旋转到与重力对齐的框架中,并使用1D ResNet网络预测一系列IMU数据的平均2D速度。TLIO[14]同样采用1D ResNet网络,但用于回归3D位移及其对应的不确定性,并采用紧耦合的扩展卡尔曼滤波框架进行状态估计。我们的工作与上述关于使用1D ResNet处理IMU数据的工作密切相关,但我们专注于物体姿态和跟踪问题,而不是相机定位。
III. APPROACH
姿态跟踪问题的目标是估计给定时刻 t t t, t ∈ { 1 , 2 , … , N } t \in \{1, 2, \dots, N\} t∈{1,2,…,N}相对于相机框架的物体的6D姿态 ξ t ∈ SE ( 3 ) \xi_t \in \text{SE}(3) ξt∈SE(3),给定:
- 物体的3D CAD模型
- 物体的初始姿态 ξ 0 ∈ SE ( 3 ) \xi_0 \in \text{SE}(3) ξ0∈SE(3),可以通过任何6D姿态估计方法获得
- 一系列RGB图像 I j I_j Ij, j ∈ { 0 , 1 , … , N } j \in \{0, 1, \dots, N\} j∈{0,1,…,N}
- 一系列IMU数据 G k G_k Gk, k ∈ { 0 , 1 , … , M } k \in \{0, 1, \dots, M\} k∈{0,1,…,M},其中 G k G_k Gk是一个包含在IMU框架的三个笛卡尔轴上的加速度和角速度测量的6维向量
在本节中,我们首先提供姿态跟踪工作流的概述,包括在使用VIPose DNN之前对原始图像和IMU输入进行预处理的阶段。随后我们描述我们的新型VIPose DNN,它通过结合两个连续的图像和一系列IMU数据来推断连续帧之间的相对姿态。然后通过组合连续帧之间的相对变换来获得最终的物体姿态。
A. 姿态跟踪工作流程
我们流水线在时间 t t t的姿态工作流程如图2所示。相机提供图像观察 I t I_t It,IMU提供加速度和角速度。图像预处理包括三个主要步骤:渲染、裁剪和调整大小,随后是IMU的预处理步骤。
图2:姿态跟踪工作流程。在时间 t t t,相机提供图像观察 I t I_t It。使用物体的3D模型和上一次的姿态估计 ξ t − 1 \xi_{t-1} ξt−1来渲染 I t − 1 R I^R_{t-1} It−1R。 I t I_t It和 I t − 1 R I^R_{t-1} It−1R都通过一个放大的边界框(如图3所示)进行裁剪,并调整为原始分辨率的一半大小。IMU缓冲区提供最近的 K K K个IMU测量数据。预处理后的图像对和IMU序列被送入VIPose网络,以预测相对姿态 Δ ξ t \Delta\xi_t Δξt,该相对姿态与 ξ t − 1 \xi_{t-1} ξt−1结合,得到该帧的物体姿态估计 ξ t \xi_t ξt。
1)渲染:首先,我们使用物体的3D模型和上一帧的估计6D姿态 ξ t − 1 \xi_{t-1} ξt−1来渲染RGB图像 I t − 1 R I^R_{t-1} It−1R作为最后一帧的参考图像,以提供要跟踪的目标物体。渲染过程从杂乱的场景中提取物体信息。这是通过将物体的3D模型放置在带有黑色背景的场景中心,并在由姿态 ξ t − 1 \xi_{t-1} ξt−1定义的视点处投射RGB图像来执行的,如图3所示。
2)裁剪:由于原始图像中物体大小较小,提取用于跨帧匹配的有用特征可能很困难。受[9]启发,我们通过使用一个放大的边界框(白框),如图3所示,来裁剪渲染图像
I
t
−
1
R
I^R_{t-1}
It−1R和图像观察
I
t
I_t
It来解决这个问题。为了获得这样的边界框,我们首先使用相应3D物体模型的8个角点的2D投影
p
i
p_i
pi,
i
∈
{
1
,
2
,
…
,
8
}
i \in \{1, 2, \dots, 8\}
i∈{1,2,…,8}(如图3中的黄色点所示)来估计渲染图像中物体的大小,
x
size
=
max
i
(
p
i
x
)
−
min
i
(
p
i
x
)
{x}_\text{size} = \max_i(p_{i_x}) - \min_i(p_{i_x})
xsize=imax(pix)−imin(pix)
y
size
=
max
i
(
p
i
y
)
−
min
i
(
p
i
y
)
{y}_\text{size} = \max_i(p_{i_y}) - \min_i(p_{i_y})
ysize=imax(piy)−imin(piy)
放大的边界框以3D模型中心的2D投影为中心(在图3中用绿点表示),并保持输入图像的相同宽高比。放大边界框的高度
h
h
h和宽度
w
w
w按照以下公式获得:
h
=
λ
⋅
max
(
x
size
r
y
size
)
,
h = \lambda \cdot \max\left(\frac{{x}_\text{size}}{r}{y}_\text{size}\right),
h=λ⋅max(rxsizeysize),
w
=
λ
⋅
max
(
x
size
,
y
size
⋅
r
)
w = \lambda \cdot \max({x}_\text{size}, {y}_\text{size}\cdot r)
w=λ⋅max(xsize,ysize⋅r)
其中
r
r
r是原始图像的宽高比,
λ
\lambda
λ表示扩展比例,以确保边界框在渲染图像和新图像中都包含物体。
图3:渲染和裁剪的可视化。物体使用3D模型和估计的6D姿态进行渲染。3D模型中心和8个角点的2D投影分别用绿点和黄点表示。红框定义了渲染物体的尺寸 x size {x}_\text{size} xsize和 y size {y}_\text{size} ysize。白框代表放大的边界框,以绿点为中心,宽度为 w w w,高度为 h h h。
3)调整大小:随后,我们调整裁剪后的图像对的大小以获取更多细节。裁剪后的图像对被调整为固定分辨率,这是原始图像大小的一半,以减少网络中的计算量。在训练阶段,这允许使用更大的批次大小以加快训练过程的收敛。在测试阶段,这显著减少了系统的运行时间,而不影响准确性。调整大小后的图像对被用作网络的视觉输入。
4)IMU预处理:在图像对预处理之后,我们还预处理IMU数据作为网络的惯性输入。设计了一个IMU缓冲区,作为一个队列,存储最近的 K K K个IMU测量数据。 K K K的选择可以根据IMU输入的频率和不同应用中相机的速度而变化。当新的图像观察到达时,IMU缓冲区中的全部数据被用作网络的输入,并以 K × 6 K \times 6 K×6的张量表示。根据类似[13]的方法,IMU序列从IMU框架旋转到一个朝向不明的坐标框架,使用来自设备的真实方向。朝向不明的坐标框架被定义为一个其Z轴与重力对齐并在整个序列中保持一致的坐标框架。
预处理后的图像对和IMU序列被输入VIPose网络,以预测图像 I t − 1 R I^R_{t-1} It−1R和 I t I_t It之间的相对物体姿态 Δ ξ t ∈ SE ( 3 ) \Delta \xi_t \in \text{SE}(3) Δξt∈SE(3)。然后,当前图像中的物体的6D姿态 ξ t \xi_t ξt可以通过 ξ t = Δ ξ t ⊗ ξ t − 1 \xi_t = \Delta \xi_t \otimes \xi_{t-1} ξt=Δξt⊗ξt−1得到,其中 ⊗ \otimes ⊗表示矩阵乘法操作。跟踪过程持续进行,直到获得最后一张图像的6D姿态。
一般来说,在时间 t t t,使用渲染图像 I t − 1 R I^R_{t-1} It−1R而不是图像观察 I t − 1 I_{t-1} It−1作为上一帧的参考图像进行姿态跟踪是有帮助的。为了进一步阐明这一点,如果估计的物体姿态 ξ t − 1 \xi_{t-1} ξt−1不准确,那么物体姿态 ξ t − 1 \xi_{t-1} ξt−1与图像 I t − 1 I_{t-1} It−1中的相应物体观察之间会有不匹配,因为姿态 ξ t − 1 \xi_{t-1} ξt−1受到估计漂移的影响。相反,渲染图像 I t − 1 R I^R_{t-1} It−1R是使用估计的物体姿态 ξ t − 1 \xi_{t-1} ξt−1生成的全新图像,它不受上述观察问题的影响。因此,估计 I t − 1 R I^R_{t-1} It−1R和 I t I_t It之间的相对姿态对姿态漂移不敏感,有助于减少全局物体姿态估计的漂移。
B. VIPose网络
所提出的网络架构如图4所示。该网络由一个视觉分支组成,输入处理后的图像对 I t − 1 R I^R_{t-1} It−1R和 I t I_t It,一个惯性分支从IMU序列中提取特征,以及一个输出分支预测相对姿态 Δ ξ t \Delta \xi_t Δξt。
图4:VIPose网络架构。蓝色块代表基于FlowNetC的视觉分支,用于产生视觉特征。绿色块代表基于1D ResNet的惯性分支,用于产生惯性特征。视觉和惯性特征通过连接两个特征向量融合,为相对姿态估计提供多模态特征。橙色块代表输出分支,直接回归两个连续帧之间的相对姿态。
视觉分支(图4中的蓝色块),基于FlowNet-C网络[15]从输入图像对中提取视觉特征,并且我们只采用原始FlowNet-C网络的卷积层。该网络预训练以预测一对图像之间的光流。光流的表示被认为对相对姿态估计有用,这在[9]中得到了证明。前三个卷积层分别从两个输入图像中提取低级特征,并为负责计算块间相似性的相关层生成两个特征图,因此找到图像对之间的对应关系。然后,最后六个卷积层提取高级特征并减小特征图的大小。最后一个卷积层的特征图输出被平展为视觉特征向量,以便后续特征融合。
惯性分支(图4中的绿色块)采用标准ResNet-18网络[24]的1D版本,并以IMU序列为输入,即先前指定的来自IMU缓冲区的 K × 6 K \times 6 K×6张量。受[13]的启发,我们采用了一个预训练的1D ResNet,用于预测给定IMU输入序列的平均2D速度。与其他网络架构(包括LSTM [22]和时间卷积网络[25])相比,这种方法表现出更好的性能。惯性分支使用[13]中的预训练权重初始化。同样,最后一个1D卷积层的输出被平展为惯性特征向量。
视觉特征和惯性特征通过连接两个特征向量融合,提供了一个多模态特征用于回归相对变换。当目标物体的视觉信息有限,如在严重遮挡情况下,惯性特征提供了有关相机运动的有用信息,用于推断相对姿态。
输出分支(图4中的橙色块)是一个多层感知机,它以融合的特征向量为输入,并输出两帧之间的相对姿态。它包含两个具有256维的全连接层,后面跟着两个分别用于预测旋转和平移的单独全连接层。相对姿态的表示对网络的性能至关重要。我们采用[20]中的 s e ( 3 ) se(3) se(3)表示,其中 v = [ t , w ] T ∈ s e ( 3 ) \text{v} = [\text{t}, \text{w}]^\text{T} \in se(3) v=[t,w]T∈se(3),使得其伪指数映射位于 S E ( 3 ) SE(3) SE(3)中,
Δ
ξ
=
pseudo-exp
(
v
)
=
[
R
t
0
T
1
]
∈
S
E
(
3
)
,
(1)
\Delta \xi = \text{pseudo-exp}(v) = \begin{bmatrix} \text{R} & \text{t} \\ 0^\text{T} & 1 \end{bmatrix} \in SE(3), \tag{1}
Δξ=pseudo-exp(v)=[R0Tt1]∈SE(3),(1)
其中
R
=
I
3
×
3
+
[
w
]
×
∣
w
∣
sin
(
∣
w
∣
)
+
[
w
]
×
2
∣
w
∣
2
(
1
−
cos
(
∣
w
∣
)
)
,
\text{R} = \text{I}_{3 \times 3} + \frac{[\text{w}]_\times}{|\text{w}|} \sin(|\text{w}|) + \frac{[\text{w}]_\times^2}{|\text{w}|^2} (1 - \cos(|\text{w}|)),
R=I3×3+∣w∣[w]×sin(∣w∣)+∣w∣2[w]×2(1−cos(∣w∣)),
并且 [ w ] × [\text{w}]_\times [w]×是斜对称矩阵。最后两个输出层用于直接回归 w \text{w} w和 t \text{t} t,然后使用该预测来计算相对姿态 Δ ξ \Delta \xi Δξ。网络采用端到端训练,考虑以下 L 2 L_2 L2损失
L = λ 1 ⋅ ∣ ∣ w − w g t ∣ ∣ 2 + λ 2 ⋅ ∣ ∣ t − t g t ∣ ∣ 2 , (2) \mathcal{L} = \lambda_1 \cdot ||\text{w} - \text{w}_{gt}||_2 + \lambda_2 \cdot ||\text{t} - \text{t}_{gt}||_2, \tag{2} L=λ1⋅∣∣w−wgt∣∣2+λ2⋅∣∣t−tgt∣∣2,(2)
其中 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2是旋转和平移的损失权重, w g t , t g t w_{gt}, t_{gt} wgt,tgt表示真实的相对姿态。