论文阅读: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生成稠密视差伪真值;

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

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

实验结果&结论

在这里插入图片描述
图5:上下3行分别显示,(感兴趣)3D边界预测、视差估计结果以及伪视差真值
Q:视差估计与伪视差真值如何获得? \textbf{Q:视差估计与伪视差真值如何获得?} 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,对于像素 p p p,full-frame disparity 定义为:
D f ( p ) = u p l − u p r (1) D_f(p)=u_p^l-u_p^r \tag{1} Df(p)=uplupr(1)
其中 u p l u_p^l upl u p r u_p^r upr分别代表像素 p p p在左右图中的水平坐标。通过Stereo Mask R-CNN
获得的2D bounding boxes, “我们”能够从整体图像中剪切左右ROI,并且在水平方向使之对其。为了保证ROI具有相同的尺寸,它们的宽度 ( w l , w r ) (w^l,w^r) (wl,wr)设置为值比较大的一个。ROI对齐之后,左图像上像素 p p p的视差从全局视差转变为instance disparity:
D i ( p ) = D f ( p ) − ( b l − b r ) (2) D_i(p)=D_f(p)-(b^l-b^r) \tag{2} Di(p)=Df(p)(blbr)(2)
其中 b l b^l bl b r b^r br分别代表两图中bounding boxes的左边界,详细理解如下图:
在这里插入图片描述
“我们”的目标是学习 D i ( p ) D_i(p) Di(p),而非 D f ( p ) D_f(p) Df(p)
将左右图的所有ROI都resize为 H ∗ W H*W HW。对于所有的属于目标 O O O的像素 p p p p p p是否属于 O O O由上述的instance segmentation mask判定),目标视差的loss function 定义为:
L i d i s p = 1 ∣ O ∣ ∑ p ∈ O L 1 , s m o o t h ( D ^ i ′ ( p ) − D i ′ ( p ) ) , (3) L_{idisp}=\frac{1}{|O|}\sum_{p\in{O}}L_{1,smooth}(\hat{D}_i^{'}(p)-D_i^{'}(p)),\tag{3} Lidisp=O1pOL1,smooth(D^i(p)Di(p)),(3)
D i ′ ( p ) = D i ( p ) m a x ( w l , w r ) W , (4) D_i^{'}(p)=\frac{D_i(p)}{max(w^l,w^r)}W,\tag{4} Di(p)=max(wl,wr)Di(p)W,(4)
其中 D ^ i ′ ( p ) \hat{D}_i^{'}(p) D^i(p)是像素 p p p的predicted instance disparity, D i ′ ( p ) D_i^{'}(p) Di(p) is the instance disparity ground-truth, ( w l , w r ) (w^l,w^r) (wl,wr)代表左右图的2D bounding boxes 的宽度, ∣ O ∣ |O| O代表属于目标 O O O的像素的个数。iDispNet 输出 D ^ i ′ ( p ) \hat{D}_i^{'}(p) D^i(p),便可以计算每个像素 p p p所属的前景,然后作为接下来3D detector的输入。3D坐标 ( X , Y , Z ) (X,Y,Z) (X,Y,Z)的计算方法为:
X = ( u p − c u ) f u Z , Y = v p − c v f v Z , X=\frac{(u_p-c_u)}{f_u}Z,Y=\frac{v_p-c_v}{f_v}Z, X=fu(upcu)Z,Y=fvvpcvZ,
Z = B f u D ^ i ′ ( p ) + b l − b r , Z=\frac{Bf_u}{\hat{D}_i^{'}(p)+b^l-b^r}, Z=D^i(p)+blbrBfu,
其中 B B B是基线长度, ( c u , c v ) (c_u,c_v) (cu,cv)为相机中心的像素位置, f u , f v f_u,f_v fu,fv分别是水平和垂直焦距。

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

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

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

为了将形状系数限制在适当的范围内,使用以下正则化项来惩罚优化形状与平均形状之间的偏差:
L z ( z ) = ∑ k = 1 K ( z k σ k ) 2 , (8) L_z(z)=\sum_{k=1}^{K}(\frac{z_k}{\sigma_k})^2,\tag{8} Lz(z)=k=1K(σkzk)2,(8)
σ k \sigma_k σk表示第k个主分量对应的特征值。结合上述各个部分,最终的cost function为
L ( z ) = w 1 L p c ( z ) + w 2 L d i m ( z ) + w 3 L z ( z ) . (9) L(z)=w_1L_{pc}(z)+w_2L_{dim}(z)+w_3L_z(z).\tag{9} L(z)=w1Lpc(z)+w2Ldim(z)+w3Lz(z).(9)
最后,目标视差伪真值 D i D_i Di可以根据优化对象进行渲染,如下:
D i = B f u π ( M ( ϕ ^ ( z ) ) ) − ( b l − b r ) , (10) D_i=\frac{Bf_u}{\pi(M(\hat{\phi}(z)))}-(b^l-b^r),\tag{10} Di=π(M(ϕ^(z)))Bfu(blbr),(10)其中 M M M表示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 对其它数据集训练预测得到的。第一种方法能够提供更加精确的点云,但是对于优化 L p c ( z ) L_{pc}(z) Lpc(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。通过训练得到参数: w 1 = 10 / 3 , w 2 = w 3 = 1 w_1=10/3,w_2=w_3=1 w1=10/3,w2=w3=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数据集上展开实验

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值