Disp R-CNN: Stereo 3D Object Detection via Shape Prior Guided Instance Disparity Estimation
摘要(理解)
作者提出一种用于3D目标检测的名为disp R-CNN 的网络。该网络相较于一般的3D目标检测模型,不同点主要在:
- 该网络仅估计感兴趣目标的视差;
- 学习(识别特定的形状先验category-specific shape prior)以获得更精确的视差估计;
- 可以不使用LiDAR提供的点云,而使用statistical shape model生成稠密视差伪真值;
实验结果:在数据集上显示,即使在训练时没有真值,Disp R-CNN 在准确度方面也获得了比state-of-the-art 的方法高20%的结果。
实验结果&结论
图5:上下3行分别显示,(感兴趣)3D边界预测、视差估计结果以及伪视差真值。
图6:对比PSMNet和iDispNet视差估计结果,可以发现iDispNet的估计结果更加细致。
方法
整体步骤:
- 首先检测感兴趣目标mask(2D)
- 仅估计mask内的目标的视差
- 使用3D detector为每个instance的点云预测一个bounding boxes
Stereo Mask R-CNN(得到mask)
拓展了Stereo R-CNN 框架,用于左图的分割mask的预测,Stereo Mask R-CNN分两步:
- Region Proposal Network 的双目变量,左右图像中的object proposals 从同一组anchor生成,以确保左右ROI区域的对应
- 使用RoIAlign从feature map中提取特征,然后produce 2Dbounding boxes,classification scores 和instance segmentation mask。
Instance Disparity Estimation Network(对mask内的目标估计视差)
视差估计模型作用于恢复3D目标,因此视差估计的精度直接影响3D检测的性能。考虑到计算整个图片的视差是冗余的,并且(对于交通工具)来说the Lambertian reflectance assumption for the photometricconsistency constraint used in stereo matching cannot hold。 所以作者提出专门用于3D目标检测的基于学习的目标视差估计网络(instance disparity estimation network iDispNet)。
iDispNet只把RoI区域作为输入,并且只在前景像素上进行监督,所以它能够捕获特定类别的形状(it captures the category-specific shape prior ),因此可以产生更加精确的视差预测。
Formally speaking,对于像素,full-frame disparity 定义为:
其中和分别代表像素在左右图中的水平座标。通过Stereo Mask R-CNN
获得的2D bounding boxes, “我们”能够从整体图像中剪切左右ROI,并且在水平方向使之对其。为了保证ROI具有相同的尺寸,它们的宽度设置为值比较大的一个。ROI对齐之后,左图像上像素的视差从全局视差转变为instance disparity:
其中和分别代表两图中bounding boxes的左边界,详细理解如下图:
“我们”的目标是学习,而非。
将左右图的所有ROI都resize为。对于所有的属于目标的像素(是否属于由上述的instance segmentation mask判定),目标视差的loss function 定义为:
其中是像素的predicted instance disparity, is the instance disparity ground-truth,代表左右图的2D bounding boxes 的宽度,代表属于目标的像素的个数。iDispNet 输出,便可以计算每个像素所属的前景,然后作为接下来3D detector的输入。3D座标的计算方法为:
其中是基线长度,为相机中心的像素位置,分别是水平和垂直焦距。
Pseudo Ground-truth Generation
训练双目匹配网络需要大量的稠密视差,但是多数数据集并不提供。通常是由于LiDAR点云的获取成本过高。得力于iDispNet仅需要前景监督(Benefiting from the design of the ispNet which only requires foreground supervision),“我们”提出一个不需要依赖LiDAR点云的为真实数据生成大量稠密视差伪真值的方法。 生成过程通过类别特定的形状先验模型实现,从该模型可以重建对象形状,然后将其渲染到图像平面,以获得稠密的视差真值。
使用the volumetric Truncated Signed Distance Function (TSDF) 作为形状表示,对于某些形状变化相对较小的刚性对象类别(例如交通工具),TSDF形状空间可以能够近似为一个低维度的子空间,将子空间的基定义为,由训练形状的主成分中提取,mean shape 定义为,从而一个instance的shape 可以表示为:
其中是形状系数,是子空间的维度。
给定3D bounding box 真值和instance的点云,我们能够通过最小化cost function(式6)为一个instance 重建形状系数
其中是由形状系数定义的TSDF volume中的3D点的插值,是instance相关的点云,是点云中点的个数。只有在优化过程中被更新,这个cost function最小化了点云到由TSDF的过零点定义的物体表面的距离,点云可以从现成的视差估计模块或可选的LiDAR点获得。
由于上述的cost function不约束目标形状的3D尺寸,“我们”提出了以下尺寸正则化项,以减少物体溢出三维包围盒的情况:
其中表示体积中超过3D bounding box的所有体素,如图4表示尺寸正则化
为了将形状系数限制在适当的范围内,使用以下正则化项来惩罚优化形状与平均形状之间的偏差:
表示第k个主分量对应的特征值。结合上述各个部分,最终的cost function为:
最后,目标视差伪真值可以根据优化对象进行渲染,如下:
其中表示marching cubes 将TSDF体积转化为三角网格。表示生成像素深度图的网格渲染器,上述图五第三行给出了一些伪视差真值的示例。
Discussion && Implementation Details
这一部分主要讲述了网络的选择和实现的细节
网络的选择
作者考虑了两种网络架构:
- 只使用iDispNet的解码部分作为prediction head,从主干网提取的RoI特征在视差估计中被重新使用,disparity head 与网络的其他部分进行端到端的训练;
- 将ROI图片从原图中分割出来,然后将ROI图片输入iDispNet的编码解码网络。
通过实验证明第二种架构较第一种架构更有优势,所以该文选择使用第二种架构。且作者认为原因在于:目标分割和视差估计的要求不一(We believe the reason behind this result is related to the different requirements between the tasks of instance segmentation and disparity estimation.)视差估计需要更细粒度的特征表示,以使像素级的代价体积处理更加精确,而实例分割则需要对属于对象的每个像素进行相同的类概率预测。通过联合训练端到端版本的网络,主干网必须在这两个不同的任务之间进行平衡,从而导致不理想的结果(机翻).
伪视差真值生成的点云选择:总体来说,在形状优化过程中点云的使用有两种选择,1.可以是数据集中LiDAR获得的稀疏点云;2.通过off-the-shelf disparity estimation network 对其它数据集训练预测得到的。第一种方法能够提供更加精确的点云,但是对于优化如果没有LiDAR点云,第二种方式是唯一的选择。“我们”评估于实现上述两种方法,方法2在没有LiDAR数据表现更优。
实现细节
该部分主要包括三件事情
- iDispNet的结构与实现:使用PSMNet作为iDispNet的结构,ROI图片resize为224*224的大小作为input。在双目匹配中,视差搜索范围为-48到+48(该范围包含了数据集90%以上的视差分布范围)。
- 3D detection network的实现:PointRCNN在这里用作3D object detection。“我们”使用从instance disparity 转换来的instance point cloud作为Point RCNN的输入,而不是将整个场景的点云作为输入。这样点云的size就被缩小到768.
- 伪视差真值的生成:为了提高伪真值的稳定性,只有在3Dbounding boxes中的点才被用于优化(only points that sit inside of the ground-truth 3D bounding box are used for optimization)。对于少于10个点的目标,它的mean shape 可以未经优化而直接使用。我们选择PCA前五个主成分并且将体积设置为604060。训练数据来自Google。通过训练得到参数:。优化使用一个用Ceres实现的Levenberg-Marquardt求解器。
训练策略
We train the Stereo Mask R-CNN for 20 epochs with a weight decay of 0.0005, the iDispNet for 100 epochs with a weight decay of 0.01and the PointRCNN 360 epochs with a weight decay of 0.0005. The learning rate is first warmed up to 0.01and then decreases slowly in all the training processes.
实验
在KITTI数据集上展开实验