首先本文是专注于自动驾驶领域,在这项任务中,交通参与者沿纵轴的平移距离变化比较大,因此,平移的估计是更具有挑战性的。同时,车辆的平移估计比方向估计更为关键。
传统的方法是将平移估计作为一个独立的过程,而不是使用几何投影法进行目标类的预测和旋转估计。但是,几何投影法方法是有假设的前提条件的。
1、三维物体的中心投影到二维图像的物体的bounding box的中心
2、正确估计预测的对象类别和旋转向量
网路的主要组成部分,2D空间的检测头和6D-VNet在3D space中回归6DoF的旋转和平移向量
整体的网络架构
6D-VNet是建立在如Figure 3所示的标准对象检测网络上的。该系统是一个经过端到端训练的两级网络,用于估计目标的6DoF姿态信息。网络的第一阶段是典型的二维目标检测网络(Mask R-CNN)。该网络的第二阶段是自定义头估计目标6DoF位姿信息。
6DoF姿态估计分支是该模型的新颖之处,分为两部分:第一步是,如果候选类属于车辆类别,则对每个候选框进行RoIAlign,并且执行子类分类和旋转估计。由于对于给定的车辆类别来说,平面旋转是唯一的,所有车辆都共享相同的偏航、俯仰和滚转角的旋转特性。因此,来自于RoIAlign层的固定大小的视觉提示,对于估计候选的子类类别和旋转是充足。
第二部分采用RoIAlign特征和bounding box信息(在Sec. 3.2中描述的世界单位中),通过连接操作来估计三维平移向量。据我们所知,这个新颖的formulation是第一个直接回归平移向量的方法。联合特征组合方案通过拼接操作对对象类和旋转信息进行隐式编码(⊕ 在Fig. 3)。将平移回归头与子类分类和四元数回归的联合损失相结合,可以实现平移回归头的协同作用。我们在实验中证明,我们提出的新的平移回归方法比将平移估计作为后处理步骤的方法有更加准确的位置估计。这种对平移向量的精确估计,对于物体之间的距离至关重要的应用来说尤为重要(e.g. 在自动驾驶场景中)。
1. Network Architecture
其实整体的结构的话,看网络的架构就应该会是比较的清楚的,对于6DoF姿态估计分支来说,整体可以简单的分为两部分。
第一步是判断候选类的类别,如果为车辆类别,则对候选框进行RoIAlign,这个地方不同于Mask RCNN,在Mask RCNN中,产生RoI之后,即进行RoIAlign操作,然后将RoIAlign之后的特征放到后续的网络中。但是在6D-VNet中是先进行相关的操作,然后输出类别和box以及mask,当判断其为车辆类别之后再进行RoIAlign操作(这个地方不是特别的确定,因为这样产生的mask是没有Mask RCNN 准确的,需要看一下它的代码)。注:还有一个关键的问题是,作者在文中好像并没有提及mask是用来做什么的。
第二部分是采用RoIAlign特征和Bounding box的信息,通过连接操作来估计三维平移向量。联合特征组合方案通过拼接操作对对象类和旋转信息进行隐式编码(⊕ 在Fig. 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。 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} λ