多视图3D目标检测学习笔记

参加滴滴无人驾驶算法大赛,在多方面参考了几篇目标检测和多视角检测融合等文献,最终团队确定了一下两篇论文作为比赛的参考:

A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection

Multi-View 3D Object Detection Network for Autonomous Driving 

多尺度CNN在R-CNN中一直是研究的重点,这也是目前在不考虑运行时间的情况下准确率较高的改进模型。这次比赛由于不考虑实时性,所以在模型上主要以准确率为主,在两者中进行均衡的网络并不会作为基础模型,其中的tips可以作为后续的优化方案。

在Multi-View的研究上,本人是最近因为比赛才从2D目标检测转到3D目标检测上,所以内容以3D目标检测为主作为介绍。

这篇论文主要针对自主驾驶场景中的高精度三维目标检测。文章提出了多视图三维网络(mv3d),一个以激光点云与RGB图像作为输入去预测定向的三维bounding box的融合框架。论文编码稀疏的三维点云数据用紧凑的多视图表示。网络是由两个子网络组成:一个是三维目标区域提名网络,另一个用于多视图特征融合。区域提名网络从鸟瞰视图中生成有效地3D点云数据表示的3D侯选框。文章设计了一个深度融合方案,结合多视角的区域特征,并能够作用于不同路径的中间层之间。采用KITTI基准作为实验测试,测试表明,这个方法在三维定位任务、三维检测任务上优于目前最先进记录大约25%和30%的准确率。此外,对于2D检测,在激光雷达为基础的难例数据上,该方法比目前最领先的方法获得14.9%更高的准确率。

在文章中,提出了一个以多模态数据作为输入的多视图三维物体检测网络(mv3d),预测物体在三维空间中的全3D的程度。利用多模态信息的主要思想是完成区域特征融合。首先,文章提出了一个多视图的编码方案,以获得对稀疏3D点云更有效和紧凑的表达。如图1所示,多视图三维检测网络由两部分组成:三维区域提名网络和基于区域提名的融合网络。3D区域提名网络利用鸟瞰视角的点云表示去产生高度精确的3D候选框。3D物体区域提名的好处是,它可以在3D空间中被投影到任何视图中。多视图融合网络从多视角中通过投影3D区域来提取域特征到特征图上。我们设计了一个深度融合的方法能够作用于不同视角的中间层。结合下降路径训练[ 13 ]和辅助损失,该方法相比于早期/晚期融合方案表现出优异的成绩。根据多视图特征表示,在三维空间中,网络执行定向的3D框回归来预测物体准确的三维位置,大小和方向。

多视图3D目标检测学习笔记_第1张图片

mv3d网络以多视图中的三维点云以及图像作为输入。它首先从鸟瞰图和经过区域表达的深度的多视图融合特征中生成3D候选区域。融合的特征用于分类和定向的三维bounding box回归。

鸟瞰图表示:

鸟瞰表达被编码成高度,强度和密度信息。我们离散投影的点云到分辨率为0.1米的二维网格中。对每一个单元格,高度特征被计算为该单元格的最大高度点。要编码更详细的高度信息,点云平分成M片(这里的切片应该是将整个二维网格进行高度划分)。每个切片都进行高度图计算,因此,我们得到M个高度图。强度特征是每个单元格中有最大高度的点的映射值。点云密度表示每个单元格中的点的数目。为了归一化特征,它被计算为MIN(1,log(N+ 1)/log(64));其中N是在单元格中的点的数目。注意,强度和密度特征计算的是整个点云,而高度特征计算的是M切片,所以,总的鸟瞰图被编码为(M + 2)个通道的特征。

前视图表示:

前视图表示对鸟瞰图表示提供了互补的信息。由于激光雷达点云是非常稀疏的,投影到图像平面会导致在一个稀疏的二维点地图。相反,我们把它投射到一个圆柱体平面上,以产生一个密集的前视图地图,在[ 14 ]。给定一个三维点P =(x,y,z),其坐标Pfv=(r,c)在前视图中可以通过下式计算得出:


 其中,∆θ和 ∆φ分别是激光束的水平和垂直分辨率。我们编码前视图使用三个通道的特征,就是高度,距离和强度,如下图所示。

多视图3D目标检测学习笔记_第2张图片

目前2D目标检测中,区域提名网络已经成为最高水平网络的关键,文章设计了一个网络产生3D候选区域。我们使用鸟瞰图作为输入。在3D物体检测中,鸟瞰图相比于前视图/图像平面有几个优点。首先,物体投射到鸟瞰图时,保持了物体的物理尺寸,从而具有较小的尺寸方差,这在前视图/图像平面的情况下不具备的。第二,在鸟瞰图中,物体占据不同的空间,从而避免遮挡问题。第三、在道路场景中,由于目标通常位于地面平面上,并在垂直位置的方差较小,鸟瞰图定位在获得准确的3Dbounding box是很重要的。因此,使用鸟瞰图作为输入,可以确保3D位置预测更可行。

给出一个鸟瞰图,网络生成3D候选框。每个3D框的参数有(X,Y,Z,L,W,H),表示在激光雷达坐标系中3D侯选框的中心和尺寸(米)。对于每个3D前置框,相应的鸟瞰锚(Xbv,Ybv、Lbv、Wbv)可以通过离散的(X,Y,L,W)获取。我们设计N个3D前置框通过在训练集的地面真实目标大小聚类获得。在机动车检测的情况下,前置框(L,W)的值分别为{(3.9,1.6),(1.0,0.6)},和高度h是固定值1.56米。通过旋转鸟瞰锚90度(围着锚x,y的坐标中心),可以得到n = 4个前置框。(x,y)为鸟视图特征图中的坐标,Z可以根据摄像机高度和物体高度来计算。在区域产生中不做方向回归,而把它留给下一个预测阶段。3D框的方向限制在{ 0◦,90◦},这是接近实际的取向大部分道路场景中的物体。这种简化使回归训练更容易。

采用0.1米的离散分辨率,目标框在鸟瞰中仅占5∼40个像素点(最大约相当于0.015米)。检测这些非常小的物体仍然是一个困难的问题。一种可能的解决方案是使用更高的分辨率的输入,然而,将需要更多的计算。我们选择特征图上进行上采样操作。我们用2倍的双线性上采样操作在网络的最后一个卷积层后。前端卷积层中只进行3次池化运算,即8倍的下采样。因此,结合2倍的反卷积操作,特征图被送到区域提名网络时只有相对于鸟瞰图输入的4倍下采样后的图。

我们做3D框回归通过回归到t = (∆x,∆y,∆z,∆l,∆w,∆h)中,类似于2D目标检测中的RPN网络。(∆x,∆y,∆z) 是锚中心归一化的偏移量,(∆l,∆w,∆h) 由∆s = log(Sgt/Sanchor),s ∈ {l,w,h}.计算得出。我们使用多任务损失函数做物体分类/背景分类和3D框回归。我们采用分类熵做物体分类损失和光滑L1做3D框回归损失。背景锚可以忽略。当锚与真实目标边框重叠超过0.7时,我们认为是正样本,低于0.5认为是负样本,中间的我们忽略不计。

由于激光雷达点云稀疏,会导致许多空锚,我们在训练和测试中删除所有的空锚,以减少计算。可以通过计算点占用图上的积分图像来实现

对于每个非空锚在每个位置的最后一个卷积特征图,网络生成一个3D框。为了减少冗余,我们应用非最大抑制(NMS)的鸟瞰框,论文没有使用3D非极大值抑制。使用交并比阈值为0.7在非极大值抑制中。前2000框保存在训练期间,而在测试中,我们只使用300框。

文章设计了一个基于区域的融合网络,有效地结合从多个视图的特征,共同做候选区域分类和做定向3D框回归。

由于从不同的视图/方式的特征图通常有不同的分辨率,我们采用ROI池化为每个视图以获得相同长度的特征向量。给定生成的3D候选区域,我们可以将它们投射到三维空间中的任何视图中,论文映射到3个视图中,鸟瞰图(BV),前视图(FV),和图像平面(RGB)。给出一个3D区域,我们可以获取ROI通过:


其中,T3D→v表示从激光雷达坐标系到鸟瞰图、前视图,和图像平面的转换函数,给定一个输入特征图x从每个视图的前端网络,我们获得固定长度的特征通过ROI池化:


深度融合,要结合信息从不同的特征图,我们采用了深度融合的方法,融合不同层的多视图特征。我们的深融合网络和早期/晚期融合网络的体系结构的比较如下图所示:
多视图3D目标检测学习笔记_第3张图片
我们设计了以下深融合过程:
多视图3D目标检测学习笔记_第4张图片
多视图网络融合特征后,我们在3D区域中回归3D框的方向。特别是,回归的目标是3D框的8个角:T =(∆x0,···,∆x7,∆Y0,···∆Y7,∆Z0,···,∆Z7)。该参数被编码为由候选框的对角线长度归一化后的偏移量。尽管这样的24-D向量表示三维框是冗余的,但是我们发现这种编码方法优于中心和大小的编码方法。请注意,我们的3D框回归不同于回归轴对齐的3D框。在我们的模型中,物体的方向可以从预测的3D框角进行计算。我们使用多任务损失共同预测物体类别和3D框方向。在区域网络中,类别损失使用交叉熵和3D框损失使用平滑L1。除了上述正负样本设定和非极大值抑制阈值的设定,我们还使用交并比阈值0.05去除多余的盒子,确保鸟瞰中的物体不会占据同一空间。

我们采用两种方法去规范基于区域的融合网络:下降路径训练[ 13 ]和辅助损失。对于每次迭代,我们随机选择做全局下降路径或局部下降路径的概率为50%。如果选择全局下降路径,我们从三视图中相同概率中选择一个视图。如果选择局部下降路径,每个连接节点的路径输入随机丢弃的概率为50%。我们确保每个连接节点至少保留一个输入路径。为了进一步加强每个视图的表示能力,我们在网络中添加辅助路径和损失。如下图所示,辅助路径与主网络的层数相同。辅助路径中的每一层与主网络中的相应层共享权重。我们使用相同的多任务损失,即分类损失加3D框回归损失,反向传播每个辅助路径。计算所有损失中包括辅助损失。推理过程中删除辅助路径。

多视图3D目标检测学习笔记_第5张图片

在我们的多视图网络中,每个视图具有相同的网络结构。基础网络是建立在VGG16下进行修改的:
•渠道减少到原来的网络的一半。
•为了处理特别小的物体,我们使用特征粗略估计以获得高分辨率的特征图。特别是,我们插入一个2倍双线性上采样层在最后一层卷积特征图输入到三维区域网络之前。同样,我们插入4倍/4倍 /2倍上采样层在BV / Fv/RGB分支的ROI池化层之前。
•我们删除原VGG网络中第四个池化操作,因此我们的网络卷积部分进行8倍的下采样。
•在多视角融合网络中,我们添加一个额外的全连接层FC8在原有的FC6、FC7层基础上。
初始化参数由通过imagenet训练的vgg16网络。尽管我们的网络有三个分支,但是参数的个数是75%的vgg16网络。一个图像网络的运行时间是在泰坦X上0.7s。





你可能感兴趣的:(多视图3D目标检测学习笔记)