论文阅读:Disp R-CNN:Stereo 3D Object Detection via Shape Prior Guided Instance Disparity Estimation

Disp R-CNN: Stereo 3D Object Detection via Shape Prior Guided Instance Disparity Estimation

摘要(理解)

作者提出一种用于3D目标检测的名为disp R-CNN 的网络。该网络相较于一般的3D目标检测模型,不同点主要在:

  1. 该网络仅估计感兴趣目标的视差;
  2. 学习(识别特定的形状先验category-specific shape prior)以获得更精确的视差估计;
  3. 可以不使用LiDAR提供的点云,而使用statistical shape model生成稠密视差伪真值;

实验结果:在KITTIKITTI数据集上显示,即使在训练时没有真值,Disp R-CNN 在准确度方面也获得了比state-of-the-art 的方法高20%的结果

Q:伪真值获取方式\textbf{Q:伪真值获取方式}

实验结果&结论

在这里插入图片描述
图5:上下3行分别显示,(感兴趣)3D边界预测、视差估计结果以及伪视差真值
Q:视差估计与伪视差真值如何获得?\textbf{Q:视差估计与伪视差真值如何获得?}
在这里插入图片描述
图6:对比PSMNet和iDispNet视差估计结果,可以发现iDispNet的估计结果更加细致。

方法

整体步骤

  1. 首先检测感兴趣目标mask(2D)
  2. 仅估计mask内的目标的视差
  3. 使用3D detector为每个instance的点云预测一个bounding boxes

Stereo Mask R-CNN(得到mask)

拓展了Stereo R-CNN 框架,用于左图的分割mask的预测,Stereo Mask R-CNN分两步:

  1. Region Proposal Network 的双目变量,左右图像中的object proposals 从同一组anchor生成,以确保左右ROI区域的对应
  2. 使用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,对于像素pp,full-frame disparity 定义为:
Df(p)=uplupr(1)D_f(p)=u_p^l-u_p^r \tag{1}
其中uplu_p^lupru_p^r分别代表像素pp在左右图中的水平座标。通过Stereo Mask R-CNN
获得的2D bounding boxes, “我们”能够从整体图像中剪切左右ROI,并且在水平方向使之对其。为了保证ROI具有相同的尺寸,它们的宽度(wl,wr)(w^l,w^r)设置为值比较大的一个。ROI对齐之后,左图像上像素pp的视差从全局视差转变为instance disparity:
Di(p)=Df(p)(blbr)(2)D_i(p)=D_f(p)-(b^l-b^r) \tag{2}
其中blb^lbrb^r分别代表两图中bounding boxes的左边界,详细理解如下图:
在这里插入图片描述
“我们”的目标是学习Di(p)D_i(p),而非Df(p)D_f(p)
将左右图的所有ROI都resize为HWH*W。对于所有的属于目标OO的像素pppp是否属于OO由上述的instance segmentation mask判定),目标视差的loss function 定义为:
Lidisp=1OpOL1,smooth(D^i(p)Di(p)),(3)L_{idisp}=\frac{1}{|O|}\sum_{p\in{O}}L_{1,smooth}(\hat{D}_i^{'}(p)-D_i^{'}(p)),\tag{3}
Di(p)=Di(p)max(wl,wr)W,(4)D_i^{'}(p)=\frac{D_i(p)}{max(w^l,w^r)}W,\tag{4}
其中D^i(p)\hat{D}_i^{'}(p)是像素pp的predicted instance disparity,Di(p)D_i^{'}(p) is the instance disparity ground-truth,(wl,wr)(w^l,w^r)代表左右图的2D bounding boxes 的宽度,O|O|代表属于目标OO的像素的个数。iDispNet 输出D^i(p)\hat{D}_i^{'}(p),便可以计算每个像素pp所属的前景,然后作为接下来3D detector的输入。3D座标(X,Y,Z)(X,Y,Z)的计算方法为:
X=(upcu)fuZ,Y=vpcvfvZ,X=\frac{(u_p-c_u)}{f_u}Z,Y=\frac{v_p-c_v}{f_v}Z,
Z=BfuD^i(p)+blbr,Z=\frac{Bf_u}{\hat{D}_i^{'}(p)+b^l-b^r},
其中BB是基线长度,(cu,cv)(c_u,c_v)为相机中心的像素位置,fu,fvf_u,f_v分别是水平和垂直焦距。

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形状空间可以能够近似为一个低维度的子空间,将子空间的基定义为VV,由训练形状的主成分中提取,mean shape 定义为μ\mu,从而一个instance的shape ϕ^\hat{\phi}可以表示为:
ϕ^(z)=Vz+μ,(5)\hat{\phi}(z)=Vz+\mu,\tag{5}
其中zRKz\in\mathbb{R}^K是形状系数,KK是子空间的维度。

给定3D bounding box 真值和instance的点云,我们能够通过最小化cost function(式6)为一个instance 重建形状系数zz
Lpc(z)=1PxPϕ(x,z)2,(6)L_{pc}(z)=\frac{1}{|P|}\sum_{x\in{P}}\phi(x,z)^2,\tag{6}
其中ϕ(x,z)\phi(x,z)是由形状系数zz定义的TSDF volume中的3D点xx的插值,PP是instance相关的点云,P|P|是点云中点的个数。只有zz在优化过程中被更新,这个cost function最小化了点云到由TSDF的过零点定义的物体表面的距离,点云可以从现成的视差估计模块或可选的LiDAR点获得。

由于上述的cost function不约束目标形状的3D尺寸,“我们”提出了以下尺寸正则化项,以减少物体溢出三维包围盒的情况:
Ldim(z)=vVoutmax(ϕ(v,z),0)2,(7)L_{dim}(z)=\sum_{v\in V^{out}} max(-\phi (v,z),0)^2,\tag{7}
其中VoutV_{out}表示体积中超过3D bounding box的所有体素,如图4表示尺寸正则化
在这里插入图片描述

为了将形状系数限制在适当的范围内,使用以下正则化项来惩罚优化形状与平均形状之间的偏差:
Lz(z)=k=1K(zkσk)2,(8)L_z(z)=\sum_{k=1}^{K}(\frac{z_k}{\sigma_k})^2,\tag{8}
σk\sigma_k表示第k个主分量对应的特征值。结合上述各个部分,最终的cost function为
L(z)=w1Lpc(z)+w2Ldim(z)+w3Lz(z).(9)L(z)=w_1L_{pc}(z)+w_2L_{dim}(z)+w_3L_z(z).\tag{9}
最后,目标视差伪真值DiD_i可以根据优化对象进行渲染,如下:
Di=Bfuπ(M(ϕ^(z)))(blbr),(10)D_i=\frac{Bf_u}{\pi(M(\hat{\phi}(z)))}-(b^l-b^r),\tag{10}其中MM表示marching cubes 将TSDF体积转化为三角网格。π\pi表示生成像素深度图的网格渲染器,上述图五第三行给出了一些伪视差真值的示例。

Discussion && Implementation Details

这一部分主要讲述了网络的选择和实现的细节

网络的选择

作者考虑了两种网络架构:

  1. 只使用iDispNet的解码部分作为prediction head,从主干网提取的RoI特征在视差估计中被重新使用,disparity head 与网络的其他部分进行端到端的训练;
  2. 将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 对其它数据集训练预测得到的。第一种方法能够提供更加精确的点云,但是对于优化Lpc(z)L_{pc}(z)如果没有LiDAR点云,第二种方式是唯一的选择。“我们”评估于实现上述两种方法,方法2在没有LiDAR数据表现更优。

实现细节

该部分主要包括三件事情

  1. iDispNet的结构与实现:使用PSMNet作为iDispNet的结构,ROI图片resize为224*224的大小作为input。在双目匹配中,视差搜索范围为-48到+48(该范围包含了数据集90%以上的视差分布范围)。
  2. 3D detection network的实现:PointRCNN在这里用作3D object detection。“我们”使用从instance disparity 转换来的instance point cloud作为Point RCNN的输入,而不是将整个场景的点云作为输入。这样点云的size就被缩小到768.
  3. 伪视差真值的生成:为了提高伪真值的稳定性,只有在3Dbounding boxes中的点才被用于优化(only points that sit inside of the ground-truth 3D bounding box are used for optimization)。对于少于10个点的目标,它的mean shape 可以未经优化而直接使用。我们选择PCA前五个主成分并且将体积设置为604060。训练数据来自Google。通过训练得到参数:w1=10/3,w2=w3=1w_1=10/3,w_2=w_3=1。优化使用一个用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数据集上展开实验

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章