Abstract
我们提出了一个概念上简单的6DoF姿态估计网络,尤其是对于自动驾驶场景。在一个单目RGB图像上,我们的方法能够有效的检测交通工具,同时回归它们的三维平移和旋转向量。这个方法叫做6D-VNet,在Mask R-CNN上扩展了一个定制的头网络,以用于检测更好的车辆类比,旋转和平移。与以往的方法相比,本文提出的6D-VNet是端到端训练的。此外,我们表明,在联合损失中包括平移回归对于6DoF姿态估计任务至关重要,在6DoF姿态估计任务中,沿纵轴的对象平移距离会发生很大变化,例如在自动驾驶场景中。 此外,我们通过修改后的non-local模块合并交通工具之间相互的信息。 与原始的non-local块实现相反,所提出的权重修改在抵消极端梯度值的影响的同时考虑了空间邻近信息。 我们的6D-VNet在ApolloScape 3D汽车实例任务的挑战中【21】中排名第一。代码已经开源在了 https://github.com/stevenwudi/6DVNET
1. Introduction
对于自动驾驶,对于检测周边的汽车,行人,骑自行车的人等是重要的。这个系统必须理解视线中交通参与者之间的3D关系。核心的部分之一是在给出的video中检测,估计和重构3D汽车的模型(Fig. 1)。
当前的最先进的RGB-based 6DoF姿态估计系统【32,6,22】是两阶段的:第一阶段是通过训练的网络去估计物体的3D旋转,第二阶段是通过映射的距离估计3D平移。前面提及的两阶段的系统首先关注于工业相关的bin picking任务。代表性的,一个机器人需要抓住所需对象的一个任意实例,e.g.,一个部件,如一个螺栓或螺母,和对他们一起操作。在这些场景中,在Z维上的表面排列。i.e.,摄像轴的光轴,在X和Y方向上的对齐是次要的。这样的工业设置要求旋转的精确估计,而平移误差可以放宽。然而,在自主驾驶中,交通参与者沿纵轴的平移距离变化较大。因此,平移估计更具有挑战性。同时,车辆平移的估计比方向的估计更为关键。
传统的方法是将平移估计作为一个独立的过程,而不是使用几何投影法进行目标类预测和旋转估计。然而,几何投影方法假设:
- 将三维的物体中心投影到二维图像的物体边界盒中心;
- 正确估计预测的对象类别和旋转向量;
因此,利用几何投影作为后处理步骤,将对象类估计和旋转回归的误差合计到后续的投影距离估计中。
为了适应自动驾驶中准确的平移估计需求,我们提出了一个名为6D-VNet的框架,旨在同时回归车辆的旋转和平移(Figure 2)。6D-VNet通过区域建议网络(RPN)【10】的中间输出简化了车辆的6DoF。网络的检测部分是规范的2D对象检测网络(Mask R-CNN)。网络的6DoF估计部分采用检测头的中间输出。学习6DoF汽车位姿的挑战性的方向是设计一个既能学习旋转又能学习平移的损失函数。该模型在平移和方向的监督下学习互补表示。此外,交通参与者相互影响他们的邻居。因此,我们引入了一个加权的非局部块,它是【41】的一个修改版本,用可解释的自我注意图,来捕获交通参与者之间的集体信息。
具体地说,该网络是通过以稳定的几何基础设计的联合损耗进行端到端的训练。实验结果表明,该方法优于现有的两级系统。我们的贡献如下:
- 据我们所知,这是第一个成功地同时回归旋转和平移的基于深度学习的物体6DoF姿态估计的工作。我们还展示了将平移头纳入端到端方法的有效性(Sec. 3.1)。
- 以几何学为基础,我们研究几个协同作用的联合损耗(Sec. 3.2)
- 我们通过引入一个可解释的自我关注图的加权non-local操作来捕获密集的空间依赖关系。
2. Related Work
基于单目视觉的三维物体检测,借助人脸检测【39】的前期工作,推广实现了边界盒物体检测。后来,行人检测【7】,PASCAL VOC【8】,MS-COCO【29】推出了去检测更多样化的,挑战性的任务。Detection【11】基于一系列的工作【27、14、41、12、28、20、31、13、43】,使基于2D物体探测的广泛研究项目成为可能。KITTI的数据集【9】推动了自主驾驶场景下对于交通参与者的研究。但是,KITTI数据集中的三维对象检测任务主要集中在使用来自Velodyne 激光扫描仪的点云数据,这是一个昂贵的设备。实际上,KITTI 3D物体检测任务只有一半的旋转自由度,可以俯瞰车辆的行驶方向。
Camera pose estimation 是一个定位的问题,它是去推断你在哪,这对移动机器人,导航和增强现实是非常重要的。PoseNet【25】训练卷积神经网络,以端到端的方式从单个RGB图像中还原出6DoF的相机姿态,不需要额外的工程或图优化。更基础的理论处理在【24】中,通过探索一些基于几何和场景重投影误差的损失函数被给出。【40】提出了一种统一的架构来同时跟踪自我的定位和相机的姿态。相机的姿态估计是egocentric的,换句话说,一个单一的6维的向量对于定位相机姿态是足够的。
6DoF object detection 是移动机器人工作和增强现实的关键。BOP基准【18】由8个统一格式的数据集组成,涵盖了不同的实际场景,并表明基于点对特征的【38】方法目前的性能优于基于模板匹配【19】,基于学习【2,3,33,23】和3D 局部特征【5】的方法。最近的结果【22,17,42,38,15,32,6,34】十分令人鼓舞。他们在RGB或RGB-D图像上检测3D模型实例,并估计他们的6DoF姿态。在【32】中提出了一个two-staged的6DoF的物体检测基线:首先,一个Single Shot Multibox Detector(SSD)【30】被应用去提供物体的bounding box和识别。然后用域随机策略(Domain Randomisation【35】Strategy)来使用一个Augmented Autoencoder(AAE)去估计物体的旋转。但是,上述方法关注的是与行业相关的物体,它们既没有显著的纹理,也没有区别的颜色或反射特性。此外,感兴趣的对象都位于一个统一的地平面上(e.g. in T-LESS dataset【17】,目标距离的范围在650mm-940mm之间)。因此,旋转的容忍度需要保持较低,而平移可以放宽。
3. Model
6D-VNet在概念上是直观的,在结构上是继承性的:Faster R-CNN对每个候选对象有两个输出,一个类标签和一个bounding box偏移量,Mask RCNN添加了第三个分支来输出对象mask。类似地,6D-VNet通过区域建议网络(RPN)的中间输出简化了目标6DoF预测。然而,为了不破坏预先学习过的网络功能,必须为端到端培训定制精心的设计选择。接下来,我们将Sec 3.1 中介绍总体架构。特别地,引入了端到端训练模式的平移估计,在平移估计精度方面大大优于其他两阶段的框架。Sec 3.2中,提出了联合损失函数的设计选择。最后,Sec 3.2中,我们证明了交通参与者之间的空间关系可以通过一个修正的加权非局部块来合并。
3.1. Network Architecture
6D-VNet是建立在如Figure 3所示的标准对象检测网络上的。该系统是一个经过端到端训练的两级网络,用于估计目标的6DoF姿态信息。网络的第一阶段是典型的二维目标检测网络(Mask R-CNN)。该网络的第二阶段是自定义头估计目标6DoF位姿信息。
6DoF姿态估计分支是该模型的新颖之处,分为两部分:第一步是,如果候选类属于车辆类别,则对每个候选框【14】进行RoIAlign,并且执行子类分类和旋转估计。由于对于给定的车辆类别来说,平面旋转是唯一的,所有车辆都共享相似的偏航、俯仰和滚转角的旋转特性。因此,来自于RoIAlign层的固定大小的视觉提示,对于估计候选的子类类别和旋转是充足。
第二部分采用RoIAlign特征和bounding box信息(在Sec. 3.2中描述的世界单位中),通过连接操作来估计三维平移向量。据我们所知,这个新颖的formulation是第一个直接回归平移向量的方法。联合特征组合方案通过拼接操作对对象类和旋转信息进行隐式编码(⊕ 在Fig. 3)。将平移回归头与子类分类和四元数回归的联合损失相结合,可以实现平移回归头的协同作用。我们在实验中证明,我们提出的新的平移回归方法比将平移估计作为后处理步骤的方法有更加准确的位置估计。这种对平移向量的精确估计,对于物体之间的距离至关重要的应用来说尤为重要(e.g. 在自动驾驶场景中)。
3.2. Joint Losses
我们以端到端的方式来训练我们的网络,以最小化下面的损失 L \mathcal{L} L: L \mathcal{L} L= L d e t \mathcal{L}_{det} Ldet+ L i n s t \mathcal{L}_{inst} Linst,其中 L d e t \mathcal{L}_{det} Ldet代表标准检测网络中的多任务损失函数: L d e t \mathcal{L}_{det} Ldet= L c l s \mathcal{L}_{cls} Lcls+ L b o x \mathcal{L}_{box} Lbox+ L m a s k \mathcal{L}_{mask} Lmask。分类损失 L c l s \mathcal{L}_{cls} Lcls,2D bounding box 损失 L b o x \mathcal{L}_{box} Lbox和2D mask损失 L m a s k \mathcal{L}_{mask} Lmask与【14】中的定义相同。为了加快网络训练的速度,保持预训练多任务模块的功能(e.g. 用于分割的mask head),我们能够冻结这些头和他们对应的孩子节点,i.e.,卷积的backbone 和在反向传播阶段设置 L d e t \mathcal{L}_{det} Ldet为0。 L i n s t \mathcal{L}_{inst} Linst代表6DoF估计的子类分类的单个实例损失。特别地,它代表三元损失 L i n s t \mathcal{L}_{inst} Linst= λ s u b _ c l s L s u b _ c l s \lambda_{sub\_cls}\mathcal{L}_{sub\_cls} λsub_clsLsub_cls+ λ r o t L r o t \lambda_{rot}\mathcal{L}_{rot} λrotLrot+ λ t r a n s L t r a n s \lambda_{trans}\mathcal{L}_{trans} λtransLtrans,其中 λ s u b _ c l s \lambda_{sub\_cls} λsub_cls, λ r o t \lambda_{rot} λ