作者:Bowen Wen, Chaitanya Mitash, Baozhang Ren, Kostas E. Bekris
来源:arXiv:2007.13866v1 [cs.CV] 27 Jul 2020
原文:https://arxiv.org/pdf/2007.13866.pdf
代码、数据和视频:https://github.com/wenbowen123/iros20-6d-pose-tracking
系列文章目录:
下一篇:
论文笔记(二):DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion
对机器人的操作来说,追踪视频序列中物体的6D姿态是非常重要的。并且现在这项任务面临着很多挑战:
(i)机器人操作中有很多明显的遮挡物。
(ii)对于6D姿势来说,数据和注释的收集很麻烦,也很困难,这使得机器学习解决方案变得复杂。
(iii) 在长期的跟踪中,增量误差偏移经常会累积到需要重新初始化对象的姿势。
作者提出了一种数据驱动的优化方法,可以用来长期、6D姿势跟踪。它的目的是给定当前的RGB-D观测值和以先前的最佳估计和物体模型为条件的合成图像,确定最佳的相对姿势。作者还提出了一种新型的神经网络架构,它能够适当地拆分特征编码,目的是帮助减少域的偏移,并通过Lie Algebra进行有效的3D方向表示。因此,即使只使用合成数据对网络进行训练,也能在真实图像上有效地工作。(找到一篇不错的李代数学习笔记,大家感兴趣的可以看一下从零开始一起学习SLAM | 为啥需要李群与李代数?)
这项工作提出了一种数据驱动的优化方法,为了能够保持对象姿态的长期跟踪,如图1所示。
图一(一整张截图下来总是上传失败,只能分开上传):Top:根据ADD(Average Distance)和ADD-S(Average Distance is Computed Using the Closest Point Distance)目标的曲线下面积(AUC)指标,评估了YCBVideo数据集的性能与计算时间。能够看出来,所提出的方法能够执行更精确的跟踪,同时比其他方法快很多。Bottom:se(3)-TrackNet预测的姿势,不需要初始化就能够从完全遮挡中找到目标。
下面是作者做出的贡献:
1:一种新型的深度神经网络,可以学习预测当前观测值和合成模型渲染在前一次预测时的相对姿态。一种智能特征编码分解技术可以实现更高效的模拟到真实的转移。
2:三维方向的李代数表示法,允许有效学习给定适当损失函数的残余姿势变换。
3: 一个在合成数据上的训练流水线,在姿势跟踪的背景下采用域随机化。因为是经过渲染合成的数据,自动生成训练数据,大大减少了人工收集和标注视频以跟踪6D姿势的工作量。
4:在多个不同机器人操作任务的背景下,为6D姿势跟踪提供了一个新颖的基准数据集。它收集了各种机器人末端执行器和YCB对象,在视频的每一帧中都提供了6D对象姿势注释。
基于学习的技术在从图像数据直接回归6D物体姿势方面已经显示出了前景。尽管如此,考虑到6D挑战的复杂性,需要大量的有姿势标注的训练数据才能在实践中取得不错的结果。一些数据驱动技术将深度学习与传统方法(如PnP(pespective-n-point))相结合。虽然数据效率更高,但在严重遮挡的情况下可能会出现问题,而且往往需要为PnP步骤精确校准相机参数。(找到一篇不错的PnP学习笔记,大家感兴趣的可以看一下PNP(pespective-n-point)算法学习笔记)
考虑到姿势在每一帧中都会被重新估计,估计技术通常会在速度和精度之间进行权衡。这对于操作来说可能并不可取。
对于有CAD对象模型的设置,一般可分为基于概率的方法和基于优化的方法。
一个高效的粒子滤波框架利用GPU的计算能力,基于颜色、距离和法线计算似然。然而,手工设计的似然函数很难推广到不同的照明条件或具有挑战性的杂乱场景。另一种替代方法明确地模拟了遮挡物,并在鲁棒性方面显示出成功,但对于某些操作任务来说,**姿势精度不够精确。**为了改善这一问题,后续工作应用了高斯滤波,并取得了有希望的姿势精度,但引入了更频繁的跟踪损失。最近的工作提出了一个RaoBlackwell化的粒子滤波器,它将平移和旋转不确定性解耦,在YCB视频基准上实现了最先进的6D姿势跟踪性能。但在严重遮挡的情况下,需要重新初始化姿势估计。 所以面临的问题还是需要重新初始化姿势估计。
一些方法提出了目标函数,它捕捉了当前观测值与先前状态之间的差异。它们根据残差函数的最小值计算相对变换。特别是,方法结合了光学/AR流和点到平面的距离,以最小二乘的方式解决跟踪问题。然而,SIFT特征和光流噪声限制了性能,往往需要大量的超参数调整来适应新的场景。与本文最相关的工作是利用FlowNetSimple网络来完善任何6D物体姿态检测方法的姿态输出,也可以扩展到跟踪。然而,它需要偶尔重新初始化,并且必须至少部分使用真实数据进行训练。(找到一篇不错的FlowNetSimple学习笔记,大家感兴趣的可以看一下【论文学习】神经光流网络——用卷积网络实现光流预测(FlowNet: Learning Optical Flow with Convolutional Networks))
在合成生成的数据集上进行训练,可以实现更快、更可扩展、成本更低的数据收集。然而,合成数据和真实数据之间的差异会导致性能显著下降。梯度反转和利用生成对抗网络(GANs)进行输入空间域对齐等域适应技术有助于弥补这一差距。然而,这些方法往往假设源域已经在一定程度上与目标域相似,这在实践中无法得到一般性的满足。
计算机图形学的进步,已经显示出对任务进行照片逼真渲染的好处。然而,实现这样的照片逼真度,往往会引入另一个人类参与和专家领域知识的来源。领域随机化的工作要求模拟器的渲染设置是随机的,并且已经证明了对现实世界的一定可转移性。本工作继承了领域随机化的思想,但也追求物理上的合理性。再加上特征编码解构,所提出的网络可以完全在合成数据上进行训练,并证明了它可以泛化到现实世界。(找到一篇不错的domain randomization学习笔记,大家感兴趣的可以看一下论文笔记:Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World)
作者的目的是计算一个物体 T t ∈ S E ( 3 ) T_t∈SE(3) Tt∈SE(3)在任何时间 t > 0 t>0 t>0时的6D姿态,给定为的输入:
本工作提出了一种数据驱动的优化技术,以跟踪RGB-D图像序列上的物体姿态。优化的成本函数是由一个新颖的神经网络架构编码和学习的,只用合成生成的数据进行训练。在每一个时间步骤中,所提出的方法,计算出前一帧中物体模型计算出的姿势的残差,如图2所示。
图2. 概述:在任何给定的时间 t t t,当前的观测值 O t O_t Ot和基于之前计算的姿势 ξ t − 1 ξ_{t-1} ξt−1的物体模型渲染 R t − 1 R_{t-1} Rt−1被传递给se(3)-TrackNet。该网络计算出相对姿态 ∆ ξ t ∆ξ_t ∆ξt,然后向前传播计算 ξ t ξ_t ξt 。
在这个领域中,优化操作在为对象姿势 ξ ‾ \overlineξ ξ, ξ ξ ξ定义的成本函数上进行,这些函数可以衡量从图像中提取的特征之间的差异 ε ε ε:
ε = ρ ( ∅ I 1 ( ξ ‾ ) − ∅ I 2 ( ξ ) ) , ε = ρ(∅_{I_1} (\overlineξ)-∅_{I_2} (ξ)), ε=ρ(∅I1(ξ)−∅I2(ξ)),
其中 ρ ρ ρ是一个预定义的鲁棒损失函数, ∅ ( ) ∅() ∅()可以是直接的像素强度值、点对点差异或其变化、预先设计的特征或上述任何一种组合。
给定当前的观测值 O t O_t Ot,以及在之前的时间戳 ξ t − 1 ξ_{t-1} ξt−1中计算出的姿势,目的是找到相对变换 ∆ ξ ∆ξ ∆ξ,将对象从 ξ t − 1 ξ_{t-1} ξt−1带到当前观测值捕获的姿势。这可以是一个优化问题,让 R R R表示对象模型在给定姿势下的渲染所对应的图像。 那么,最优的相对变换是:
∆ ξ ∗ = arg min Δ ξ { ρ ( ∅ I 1 ( ξ t ) − ∅ R ( ξ t − 1 ⊞ ∆ ξ ) ) } ∆ξ^* =\argmin_{\Delta ξ}\{ρ(∅_{I_1}(ξ_t)-∅_R(ξ_{t-1}\boxplus∆ξ))\} ∆ξ∗=Δξargmin{ρ(∅I1(ξt)−∅R(ξt−1⊞∆ξ))}
解决这个问题的一般方法是围绕 ξ ξ ξ进行泰勒展开,将方程改写为 ∅ R ( ξ t − 1 ⊞ ∆ ξ ) = ∅ R ( ξ t − 1 ) + J ( ξ t − 1 ) ∆ ξ ∅_R(ξ_{t-1}\boxplus∆ξ) = ∅_R(ξ_{t-1}) + J(ξ_{t-1})∆ξ ∅R(ξt−1⊞∆ξ)=∅R(ξt−1)+J(ξt−1)∆ξ,其中 J J J是 ∅ R ∅_R ∅R相对于 ξ ξ ξ的雅各布矩阵。
现在 ξ ξ ξ在其切线空间中被局部参数化,尤其是 ξ = ( t , w ) T ∈ s e ( 3 ) ξ = (t,w)^T∈se(3) ξ=(t,w)T∈se(3), 使其指数映射位于李群 ∆ T = e x p ( ∆ ξ ) = [ R t 0 1 ] ∈ S E ( 3 ) ∆T = exp(∆ξ) = \begin{bmatrix}R&\ t \\ 0 &\ 1\end{bmatrix}∈SE(3) ∆T=exp(∆ξ)=[R0 t 1]∈SE(3),其中 R = I 3 ∗ 3 + [ w ] X [ w ] s i n ( ∣ w ∣ ) + [ w ] X 2 [ w ] 2 ( 1 − c o s ( ∣ w ∣ ) ) R = I_{3*3} + \frac{\begin{bmatrix}w\end{bmatrix}_X}{\begin{bmatrix}w\end{bmatrix}}sin(|w|) + \frac{\begin{bmatrix}w\end{bmatrix}_X^2}{\begin{bmatrix}w\end{bmatrix}^2}(1-cos(|w|)) R=I3∗3+[w][w]Xsin(∣w∣)+[w]2[w]X2(1−cos(∣w∣)), [ w ] X \begin{bmatrix}w\end{bmatrix}_X [w]X为斜对称矩阵。(斜对称矩阵:设 A = ( a i j ∈ F n ∗ n ) A = (a_{ij}∈F^{n*n}) A=(aij∈Fn∗n),如果 A = − A T A = - A^T A=−AT,即 a i j = − a i j , i , j = 1 , 2 , . . . , n a_{ij} = -a_{ij},i,j = 1,2,...,n aij=−aij,i,j=1,2,...,n,则称 A A A为斜对称矩阵(也称为反对称矩阵)。斜对称矩阵的主对角线所有元素为零,因为 a i j = − a j i a_{ij} = -a_{ji} aij=−aji ,所以 a i i = 0 a_{ii} = 0 aii=0 。例如: A = [ 0 − 3 7 3 0 9 − 7 − 9 0 ] A = \begin{bmatrix}0&-3&7 \\ 3&0&9\\ -7&-9&0\end{bmatrix} A=⎣⎡03−7−30−9790⎦⎤)
在不失通用性的情况下,L2损失函数:
∆ ξ = ( J T J ) − 1 J T ∣ ∣ ( ∅ I 1 ( ξ t ) − ∅ R ( ξ t − 1 ⊞ ∆ ξ ) ) ∣ ∣ ∆ξ =(J^TJ)^{-1}J^T||(∅_{I_1}(ξ_t) - ∅_R(ξ_{t-1}\boxplus∆ξ))|| ∆ξ=(JTJ)−1JT∣∣(∅I1(ξt)−∅R(ξt−1⊞∆ξ))∣∣
通过显式推导 J a c o b i a Jacobia Jacobia矩阵并迭代更新来解决表达式,往往需要一个形式化的成本函数,或者从观测值中提取的特征是可以对 ξ ξ ξ进行微分的,并适当选择一个稳健的成本函数和手工制作的特征。
另一个问题出现在涉及不同模态时。在这种情况下,必须引入另一个超参数来控制每种模态的重要性(例如,RGB-D),并且可能会对所有不同的情况进行非平凡的调整。
相反,这项工作提出了一种新的神经网络架构,它隐式地学习校准从当前观察中提取的特征和渲染图像之间的残差,条件是之前的姿势估计,以解决切线空间中的相对变换 ∆ ξ ∈ s e ( 3 ) ∆ξ∈se(3) ∆ξ∈se(3)。
提出的神经网络如图3所示。该网络以一对图像作为输入, I t − 1 I^{t-1} It−1 : 从之前的姿势估计中呈现, I t I^t It : 当前的观察结果。图像为4通道RGB-D数据。深度在机器人技术中经常可用。然而,由于合成和真实深度图像之间的额外领域差距,它使学习变得复杂。此外,并不是所有的神经网络架构都非常适合编码RGBD特征,例如FlowNetSimple架构。
图3 提出的se(3)-TrackNet架构:se(3)-TrackNet架构:它将当前观测值对应的RGB-D图像和上一个时间戳的对象模型渲染作为输入,分别输入两个独立的特征编码器 ∅ B ∅_B ∅B和 ∅ A ∅_A ∅A。在训练时,两个输入都是合成的,而在测试时, ∅ B ∅_B ∅B的输入是真实的图像。编码器的输出被连接起来,用于预测两幅图像之间的相对姿势,并进行解耦的平移和旋转。
在训练过程中,两个输入都是合成生成的图像 ∅ ( I s y n , t r a i n t − 1 ; I s y n , t r a i n t ) ∅(I_{syn,train}^{t-1};I_{syn,train}^t) ∅(Isyn,traint−1;Isyn,traint),而对于测试来说,当前的时间戳输入来自真实的传感器, ∅ ( I s y n , t e s t t − 1 ; I r e a l , t e s t t ) ∅(I_{syn,test}^{t-1};I_{real,test}^t) ∅(Isyn,testt−1;Ireal,testt)。se(3)-TrackNet对 I t − 1 I^{t-1} It−1和 I t I^t It使用两个独立的输入分支。特征编码器的权重并不共享,以便将特征编码分离出来。当在真实世界的测试场景 ∅ ( I s y n , t e s t t − 1 ; I r e a l , t e s t t ) ∅(I_{syn,test}^{t-1};I_{real,test}^t) ∅(Isyn,testt−1;Ireal,testt)上进行测试时,隐空间 ∅ ( I s y n , t r a i n t − 1 ; I r e a l , t r a i n t ) ∅(I_{syn,train}^{t-1};I_{real,train}^t) ∅(Isyn,traint−1;Ireal,traint)的属性仍然可以得到部分保留。但是,这种表示方式并不能泛化到完全在合成数据上进行训练。(隐空间:这个概念很好理解,举个例子,在线性可分问题中有两组数据,这些数据“充分混合”在二维空间中,这看起来不可能用一条直线在二维空间中把数据分出两类。这时候的方法就是将这些数据放到三维空间中去分类,这时候的数据就可以被一条直线分成两类,这时候的三维空间就是隐空间。由于三维空间在这个分类问题中是不存在的,所以又被叫做隐空间)
纯合成数据上训练的隐空间特征表示为 ∅ A ( I s y n , t r a i n t − 1 ) ∅_A(I_{syn,train}^{t-1}) ∅A(Isyn,traint−1)和 ∅ B ( I s y n , t r a i n t ) ∅_B(I_{syn,train}^{t}) ∅B(Isyn,traint)。当在真实世界数据上测试时,隐空间特征为 ∅ A ( I s y n , t e s t t − 1 ) ∅_A(I_{syn,test}^{t-1}) ∅A(Isyn,testt−1)和 ∅ B ( I r e a l , t e s t t ) ∅_B(I_{real,test}^{t}) ∅B(Ireal,testt)。通过这种特征编码的解构,域隙减少到 ∅ B ( I s y n , t r a i n t ) ∅_B(I_{syn,train}^{t}) ∅B(Isyn,traint)和 ∅ B ( I r e a l , t e s t t ) ∅_B(I_{real,test}^{t}) ∅B(Ireal,testt)之间,而 ∅ A ( I s y n , t r a i n t − 1 ) ∅_A(I_{syn,train}^{t-1}) ∅A(Isyn,traint−1)和 ∅ A ( I s y n , t e s t t − 1 ) ∅_A(I_{syn,test}^{t-1}) ∅A(Isyn,testt−1)可以在训练和测试阶段毫不费力地对齐,而不需要解决域隙问题。
通过端到端训练,网络可以预测一个相对的变换。该变换用李代数表示为 ∆ ξ = ( t , w ) T ∈ s e ( 3 ) ∆ξ=(t,w)T∈se(3) ∆ξ=(t,w)T∈se(3),其中 w w w和 t t t的预测被分解成不同的分支,并通过 L 2 L2 L2损失进行训练:
L = λ 1 ∣ ∣ w − w ‾ ∣ ∣ 2 + λ 2 ∣ ∣ t − t ‾ ∣ ∣ 2 L = λ_1||w-\overline{w}||_2+λ_2||t-\overline{t}||_2 L=λ1∣∣w−w∣∣2+λ2∣∣t−t∣∣2
其中 λ 1 λ_1 λ1和 λ 2 λ_2 λ2在实验中被简单地设置为1。给定 Δ ξ Δξ Δξ,当前姿势估计计算为 T t = e x p ( Δ ξ ) ∗ T t − 1 T^t = exp(Δξ )*T^{t-1} Tt=exp(Δξ)∗Tt−1。
域随机化的目的是在训练时提供足够的模拟变异性,这样在测试时,模型就能够泛化到真实世界的数据中。之前的工作通过随机改变物体、姿势、纹理、光照等数量来实现领域随机化的思想,其中物体姿势通常直接从一些预定的分布中采样。
虽然在模拟器和真实世界之间调整一些复杂的物理属性,如灯光和摄像机属性是不容易的,但某些物理属性,如重力和碰撞可以毫不费力地保留下来。这使得领域不变的特征更容易被神经网络捕获。
在目前的框架中,当深度形式被额外采用时,这一点尤为重要,而现实世界中从未发生过的不现实的物体穿透会在学习过程中给深度数据分布带来不希望的偏差。
因此,这项工作利用领域随机化和物理一致性模拟的互补属性,进行合成数据生成过程。我们的目标是将这两种思想结合起来,使合成训练数据拥有多样化的分布,使网络能够泛化到不同环境的目标域,同时数据效率更高。
我们将这种思想称为PPDR(Physically Plausible Domain Randomization)。更具体地说,物体姿势被随机初始化,在物体或干扰器之间可能发生碰撞的地方,然后通过一些物理模拟步骤,使物体分离或落到桌子上而不发生碰撞。其他复杂或难以解决的物理属性,如光照、物体数量、 干扰器纹理等都是随机化的。域随机化与PPDR的对比如图4所示。
图4 域随机化(DR)与物理可信域随机化(PPDR)的比较。(a)DR直接使用采样的物体姿态进行渲染。请注意物体之间的穿透力,这会给深度数据带来不希望的偏差。(b) 在PPDR中,随机采样的姿势作为物理模拟的初始化。渲染是在稳定的物体姿态上进行的。域不变、无穿透的特性就可以帮助有效地调整合成域和真实域。
一旦整个场景的合成图像生成,配对数据 I s y n , t r a i n t − 1 I_{syn,train}^{t-1} Isyn,traint−1和 I s y n , t r a i n t I_{syn,train}^t Isyn,traint就被提取出来并作为网络的输入。 I s y n , t r a i n t I_{syn,train}^t Isyn,traint是通过裁剪给定目标物体维度的图像,并在输入网络之前放大到176×176的固定分辨率来获得的。 I s y n , t r a i n t − 1 I_{syn,train}^{t-1} Isyn,traint−1是通过随机采样一个扰动姿势 T t − 1 t T_{t-1}^t Tt−1t来获得的,其中它的平移方向是均匀采样的,它的法线遵循高斯分布 ∣ t ∣ ∼ ∣ N ( 0 , σ t ) ∣ |t| ∼|N(0,σt)| ∣t∣∼∣N(0,σt)∣ 。如上所述,旋转在切线空间 w ∈ s o ( 3 ) w∈so(3) w∈so(3)中进行局部参数化, w w w的方向也是均匀采样的,而它的法线是从高斯分布 ∣ w ∣ ∼ ∣ N ( 0 , σ w ) ∣ , w ∈ R 3 |w| ∼ |N(0,σw)|,w∈R^3 ∣w∣∼∣N(0,σw)∣,w∈R3中采样的类似于 t t t。
在这种情况下,下一步就是通过双向配准来弥补深度数据的领域差距。与RGB的情况类似,在深度数据方面也会出现模拟到真实的差距,特别是对于那些由商业级深度传感器捕获的数据。然而,关于如何以一般的方式解决深度域差距的证据较少,特别是它可能部分依赖于特定的深度传感器。在这项工作中,在训练时间的合成深度数据和测试时间的真实深度数据之间进行双向对齐。
具体来说,在训练时,在分支B处对合成深度数据 D s y n , t r a i n t D^t_ {syn,train} Dsyn,traint进行两个额外的数据增强步骤,首先,对具有有效深度值的像素添加随机高斯噪声,然后进行深度缺失处理,将部分具有有效深度的像素随机变为无效,以类似于商业级深度传感器采集的真实破坏深度图像。而在测试时,对真实的深度图像进行双边滤波,以平滑传感器噪声,填补漏洞,使之与合成域一致。
这个章节对所提出的方法进行评估,并与最先进的6D姿势跟踪方法以及公共基准上的单图像姿势估计方法进行比较。它还介绍了作为这项工作的一部分开发的新基准,它对应于机器人操纵场景。在不同的物体类别和各种机器人操纵场景(移动相机或移动物体)上进行了广泛的实验。
在只使用合成训练数据的情况下,定量和定性的结果都证明了所提出的方法在准确性和速度方面的优势。除训练外,所有实验均在标准台式机上进行,采用英特尔Xeon® [email protected]处理器。神经网络训练和推理分别在NVIDIA RTX 2080 Ti GPU和NVIDIA Tesla K40c GPU上进行。
合成数据生成管道在Blender(https://www.blender.org/)中实现。渲染图像时,摄像机的姿态从一个半径在0.6到1.3米之间的球体中随机取样,然后沿摄像机Z轴进行额外的旋转,取样范围为 0 0 0到 36 0 ◦ 360^◦ 360◦。外部照明光源(灯管)的数量是在0到2范围内采样,姿势不同。环境和灯光的强度和颜色是随机的。物体姿势是随机初始化的,然后是物理模拟,50步后终止,以确保物体已经分离,没有碰撞或掉到桌子上。对于YCB-Video,桌子纹理随机选择。对于YCBInEOAT,表格被删除,背景由在收集数据的同一地点拍摄的图像代替。
对于每对 I s y n , t r a i n t − 1 I^{t-1}_{syn,train} Isyn,traint−1和 I s y n , t r a i n t I^t_{syn,train} Isyn,traint,它们的相对变换 T t − 1 t T^t_{t-1} Tt−1t按照高斯分布进行采样,其中 σ t σt σt和 σ w σw σw分别有经验的设置为2cm和0.262rad( = 1 5 ◦ =15^◦ =15◦)。200k个数据点(图像对)用于训练训练集。用Adam优化器对网络进行300个epochs的训练,batch size是200。学习率从0.001开始,并在100和200个epochs时按0.1缩放。输入的RGB-D图像在发送至网络之前被调整为176×176的大小。包括随机HSV偏移、高斯噪声、高斯模糊在内的数据增强只添加到 I s y n , t r a i n t I^t_{syn,train} Isyn,traint中。额外的深度缺失腐败增强应用于 D s y n , t r a i n t D^t_{syn,train} Dsyn,traint,缺失百分比在0到0.4之间。对于训练和推理, I t − 1 I^{t-1} It−1的渲染都是用C++ OpenGL实现的。
该数据集捕获了21个YCB物体的92个RGB-D视频序列,这些物体排列在桌面上。在每一帧中都标注了物体的地面真实6D姿态。不同物体的各种属性表现出对RGB和深度形式的挑战。
评估严格遵循比较方法中采用的协议,并报告了12个视频测试序列中关键帧的AUC(曲线下面积)结果,评估的指标为执行精确模型匹配的 A D D = 1 m ∑ x ∈ M ∣ ∣ R x + T − ( R ^ x + T ^ ) ∣ ∣ ADD = \frac{1}{m} ∑_{x∈M} ||Rx+T -( \hat{R}x+ \hat{T})|| ADD=m1∑x∈M∣∣Rx+T−(R^x+T^)∣∣,以及为评估对称对象而设计的 A D D − S = 1 m ∑ x 1 ∈ M min x 2 ∈ M ∣ ∣ R x 1 + T − ( R ^ x 2 + T ^ ) ∣ ∣ ADD- S = \frac{1}{m} ∑_{x_1∈M}\min_{x_2∈M} ||R_{x_1}+T -( \hat{R}x_2+ \hat{T})|| ADD−S=m1∑x1∈Mminx2∈M∣∣Rx1+T−(R^x2+T^)∣∣,其中点与点之间的匹配对于某些视图来说可能是模糊的。
虽然这个数据集包含了在现实世界中收集的姿势标注的训练和验证数据,但所提出的方法并没有使用任何这些数据,而只是在上述流水线生成的合成数据上进行训练。
已有一些公开的基准,其中收集视频的方法是将物体静态地放在桌面上,同时移动摄像机,以模仿6D物体姿势跟踪场景。这对于评估6D姿势跟踪可能是有限制的,因为在静态环境中,整个图像可以被利用来解决摄像机的轨迹,从中可以推断出物体的姿势。此外,在这样的场景中,极端的物体旋转,如像外平面翻转,比摄像机前自由移动的物体更不可能发生。因此,在这类数据集上进行排他性的评估不能完全反映6D物体姿态跟踪方法的属性。其他数据集收集了由人的手操纵物体的视频序列。然而,人类的手臂和手的动作可能与机器人的动作有很大的不同。
因此,在这项工作中,在机器人操纵的背景下,开发了一个新的数据集,称为 “YCBInEOAT Dataset”,其中包括各种机器人终端执行器:真空抓取器、Robotiq 2F-85抓取器和Yale T42 Hand。考虑到YCB对象的广泛使用性,操纵序列考虑了5个YCB对象。数据收集设置和对象如图5所示。每个视频序列都是从一个真实的操纵中收集的,用双臂Yaskawa Motoman SDA10f执行。
图5 左:数据集收集设置,在Yaskawa Motoman SDA10f上执行操作任务。右图:不同的终端执行器模式和YCB对象被用于操作。
一般来说,有3种类型的操纵任务执行。(1)单臂取放,(2)手内操纵,(3)双臂之间取放交接。RGB-D图像由静态安装在therobot上的Azure Kinect传感器采集,频率为20~30Hz。与YCBVideo类似,采用ADD和ADD-S指标进行评估。地面真实的6D物体姿态在摄像机的帧中已经被准确地手动注释为每一帧视频。摄像机在机器人帧中的外在参数已通过校准程序获得。该数据集可用于未来的基准测试(https://github.com/wenbowen123/iros20-6d-pose-tracking)。
表I和图1介绍了在YCBVideo数据集上的评价。所提出的方法与其他最新的6D物体姿态检测方法和6D姿态跟踪方法进行了比较,其中公开的源代码https://github.com/bayesian-object-tracking/dbot被用来评估,而其他结果则从各自的出版物中采用。
除了PoseRBPF之外,所有被比较的跟踪方法都是使用地面真实姿势进行初始化。PoseRBPF是唯一一个使用PoseCNN的预测姿势进行初始化的方法。为了公平起见,另外进行了两次使用与PoseRBPF相同的初始姿势的实验,并在表一最右边的两列中列出,一次是没有任何重新初始化,另一次是允许在重度遮挡后由PoseCNN进行两次重新初始化(与PoseRBPF相同)。
表一: 比较se(3)-TrackNet(Gray)与最先进技术在YCB视频上的性能。该方法在ADD度量上明显优于竞争方法,ADD度量在姿势评估过程中考虑了语义信息。此外,无论是在用地面真实姿势初始化的情况下,还是用PoseCNN(最右边两列)的输出初始化的情况下,它都比ADD-S指标获得了最高的成功率。
之前的工作最初是为了完善任何6D姿态估计检测方法的姿态输出而提出的,但也扩展到基于RGB的跟踪。当最后10帧的平均旋转大于10度或平均平移大于1厘米时,必须由PoseCNN重新初始化,据报道,平均每340帧就会发生一次。最初的摆设是来自ground-truth。
在实际应用中,由于6D姿势检测方法的运行速度较慢,重新初始化在机器人应用中是相当昂贵的,这可能会中断并对系统的其他组件(如规划和控制)产生不利影响。它还可能引入新的错误源。相比之下,所提出的网络在只使用合成数据进行训练的情况下,可以执行长期、精确的跟踪,并且不需要频繁甚至不需要重新初始化。此外,所提出的方法可以通用于不同的光照条件和各种不同属性的物体,如剪刀、夹子等,这对其他方法来说是一个挑战。另一个重要的方面是,所提出的方法在ADD指标上能够达到93.05%,以较大的优势超过了所有的对比方法。这可以归功于其隐式学习的残差估计器,它不仅可以捕捉几何体的差异,还可以通过考虑RGB和Depth模态来捕捉语义纹理。
表二显示了在开发的YCBInEOAT数据集上通过ADD和ADD-S的曲线下面积评估的定量结果。
表二:在YCBInEOAT-数据集上对ADD和ADD-S的AUC(曲线下面积)进行评估的结果。
在这个基准上,可以直接评估使用公开的源代码的跟踪方法 姿势在第一帧中用地面真实值初始化,不允许重新初始化。前向运动学不被利用,以便仅仅评估跟踪质量。图6展示了定性结果的例子,其中一个真空抓取器正在执行取放操作任务。
图6. 左图:在YCB视频数据集中追踪 "大夹子 "物体的定性结果。右图:在YCBInEOAT数据集中,"漂白剂清洁器 "被真空夹钳操纵的跟踪结果。
在末端执行器中引入了突然的运动、极端的旋转和滑移,这对6D物体姿态跟踪是一个挑战。然而,所提出的方法具有足够的鲁棒性,可以提供长期可靠的姿态估计,直到操作结束。
消融研究调查所提出的方法的不同模块的重要性。它是针对YCB-Video数据集中的大钳子对象进行的,并在附表中列出。
初始姿势由groud-truth给出,不允许重新初始化。在合成数据生成过程中,没有物理学含义,采用域随机化,没有任何物理学模拟。对于No depth,在训练和推理阶段都去掉深度形式,以研究其重要性。
共享编码器是指 I t I^t It和 I t − 1 I^{t-1} It−1的两个特征编码器共享相同的架构和权重。这与原始设置中用于 I t − 1 I^{t-1} It−1的编码器相对应。四元组通过一个四元组表示法 q = ( x , y , z , w ) q=(x,y,z,w) q=(x,y,z,w)来实现旋转,其中 w = 1 − x 2 − y 2 − z 2 w=\sqrt{1-x^2-y^2-z^2} w=1−x2−y2−z2被强制为非负值,以避免 q q q和 − q -q −q的模糊性。网络是通过对表示的L2损失来训练的。Shape-Match Loss是6D姿态估计任务中流行的损失函数,它不需要指定对称性。然而,在当前的环境中,它很早就失去了对象的踪迹。
这项工作提出了一个高效和稳健的长期6D物体姿态跟踪框架。提出了一种新型的神经网络架构se(3)-TrackNet,允许在合成数据集上进行训练,并可稳健地转移到现实世界的数据中。在姿态跟踪过程中,网络的设计选择和学习残余姿态的李代数表示法相结合,通过大量的实验验证,获得了非常理想的性能。姿势跟踪过程的运行速度约为90.90帧/秒,明显高于替代品。为了解决机器人操纵背景下缺乏对象跟踪基准的问题,提出了一个额外的数据集。se(3)-TrackNet被证明在数据集中引入的大遮挡和突然的重新定向下是稳健的,这对竞争方法提出了挑战。尽管所提出的网络具有这些理想的特性,但一个限制是需要一个对象CAD模型。未来的目标是在类别级6D姿势跟踪方面实现类似的性能。