Monocular 3D Object Detection for Autonomous Driving 论文总结

《Monocular 3D Object Detection for Autonomous Driving》是在CVPR2016上发表的文章。

文章概览

首先用两段话总结一下这篇文章。

  • 该方法将单目中的3D物体检测问题看作两步完成:
    • 首先该方法提出了一个生成一组类相关的物体推荐候选框的方法。
    • 然后利用一个CNN网络利用这组候选框提取出高质量的3D物体检测框。
  • 在物体推荐框提取的方法中,作者利用物体与地平面接触的约束条件,提出了一种能量值最小的方法提取3D候选物体框。然后作者利用若干手工特征对该物体框进行描述,并用SSVM对其物体框进行初步的打分。最后对较高评分的物体框用CNN进行更精确的回归。

接下来,我们先按照代码的顺序进行工作的阐述(非文章顺序)。

Monocular 3D Object Detection for Autonomous Driving 论文总结_第1张图片

Monocular 3D Object Detection for Autonomous Driving 论文总结_第2张图片

3D物体候选框提取

利用先验信息提出假设

首先作者将三维空间离散化为立体像素边长为0.2m的三维模型,并提出了两个假设

  1. 由于KITTI数据集的单目图像拍摄时相机在汽车上固定位置,因此地平面相对于相机的映射关系是固定的,同时作者假设所有图像的相机Y轴(也就是三维空间中的垂直方向)与地面是垂直的,这是在3D物体框提取的时候的一个假设。
  2. 另外还有一个假设是,所有的物体底部都与地平面相接。另外还有一个假设是,所有的物体底部都与地平面相接。

3D物体框的采样策略

基于以上的这两个假设,作者基于以下的采样策略来对物体候选框(candidates)进行密集的采集。

  1. 限定3D采样框的高度。设相机距离地面的高度 h c a m = 1.65 m h_{cam} = 1.65m hcam=1.65m,同时设其他物体的高度为 h c a m = 1.65 m + δ h_{cam} = 1.65m+\delta hcam=1.65m+δ。其中,不同类别的物体拥有不同的高度范围,对汽车类别的3D物体框来说 δ ∈ { 0 , ± σ } \delta\in\{0,\pm\sigma\} δ{0,±σ},对于行人和非机动车辆来说 δ ∈ { 0 , ± σ ± 2 σ } \delta\in\{0,\pm\sigma\pm2\sigma\} δ{0,±σ±2σ},其中 σ \sigma σ是物体到默认地平面的距离的高斯分布的标准偏差的最大似然估计。行人与非机动车辆较小,因此他们对误差更为敏感,偏差的取值范围更广。
  2. 在进行密集采框之后,作者将内部像素完全是地面的物体框去除掉。同时,作者也会去除具有非常低的3D位置先验概率的框。

以上的采样方法可以保证每张图片中的每个地平面采集到14000左右个候选框,同时以上的去除框的操作会去除掉近28%的物体框。

3D物体框的特征描述

由于作者在三维空间中采集物体框采用的是穷举的方式,因此会采集到大量的物体框,如果使用普通的方法对所有的物体框提取特征,会耗费大量的时间,因此作者认为这样的情况下,必须使用积分图进行特征提取,但是并不是所有的特征都可以使用积分图的形式来计算。

3D物体框的描述

在这一部分中,作者用 y = ( x , y , z , θ , c , t ) \mathbf{y}=(x,y,z,\theta,c,t) y=(x,y,z,θ,c,t)来表示一个3D物体框,前三项 ( x , y , z ) (x,y,z) (x,y,z)表示物体框的中心, θ \theta θ表示物体框的方位角, c ∈ C c\in C cC表示物体框的类别。在该方法中,作者使用的是KITTI数据集,只有三个类别,汽车,行人与非机动车。

特征选择

作者将予以信息,位置先验信息,上下文信息及形状信息融合进行评分。
Monocular 3D Object Detection for Autonomous Driving 论文总结_第3张图片

1. 语义分割特征
Monocular 3D Object Detection for Autonomous Driving 论文总结_第4张图片

作者首先利用几个先前的方法提取出场景的语义分割图。

  • 《Fully connected deep structured networks》- Computer Science
  • 《Conditional random fields as recurrent neural networks》- ICCV2015
  • 《Segnet: A deep convolutional encoder-decoder architecture for image segmentation》- Computer Science

作者利用《Conditional random fields as recurrent neural networks》提出的方法在PASCAL和COCO数据集上预训练模型,对车辆类别进行分割。并利用预训练的SegNet对行人与非机动车辆进行分割。作者没有对这两个模型在KITTI上进行fine-tune,但是利用了KITTI中的道路标注数据集对《Fully connected deep structured networks》的工作进行了fine-tune。

得到了语义分割图后,作者提出了两个语义分割特征,分别如下。
Monocular 3D Object Detection for Autonomous Driving 论文总结_第5张图片 (1)
Monocular 3D Object Detection for Autonomous Driving 论文总结_第6张图片 (2)

(1)式表示的是每个Proposal(物体框)内部多大比例的像素属于类别c。
(2)式表示的是每个Proposal(物体框)内部多大比例的像素属于c以外的其他类别(仅车辆,行人,非机动车辆这三类)。
该特征很容易利用积分图去计算。

2. 形状特征
Monocular 3D Object Detection for Autonomous Driving 论文总结_第7张图片

作者将segmentation的轮廓提取出来,在2D的候选物体包围框中划分了两种栅格,其中,一种栅格图含有一个栅格,另一种栅格图含有 K × K K\times K K×K个栅格,作者统计这些栅格中每个栅格内的轮廓像素数量。因此,一个2D候选框共可以计算得到 1 + K × K 1+K\times K 1+K×K维的形状特征。
同样的,这些特征也可以利用积分图来计算。

3.实例分割特征
Monocular 3D Object Detection for Autonomous Driving 论文总结_第8张图片

作者利用《Instance-level segmen- tation with deep densely connected mrfs》- CVPR2016与《Monoc- ular Object Instance Segmentation and Depth Ordering with CNNs》 - ICCV2015的工作对图像进行了实例分割,并对他们的网络进行了重新训练,并仅用于汽车这一类。

4.上下文特征
Monocular 3D Object Detection for Autonomous Driving 论文总结_第9张图片

由于汽车在道路上,那么汽车下方的区域应该是道路。因此,作者用2D物体包围框的下方的1/3高度的区域作为上下文区域,利用《The role of context for object detection and se- mantic segmentation in the wild》- CVPR2014提出的方法,对该区域提取语义分割特征

5.位置特征
Monocular 3D Object Detection for Autonomous Driving 论文总结_第10张图片

作者使用核密度估计(KDE)学习物体的位置先验信息,其中固定位置偏差为4m,2D图像位置偏差为两个像素。并使用KITTI中提供的3D地面的数据集边界框学习3D先验。

3D包围框的学习

作者在文中用了很少的篇幅对学习的过程进行讲解,只是描述了利用以上计算得到的特征,并利用结构化SVM学习了一个回归模型,回归出3D包围框与Groundtruth之间的IoU。
在代码中,作者将这部分的工作单独独立出来,由于特征计算需要预留200G的空间,因此,我也没有重新运行SSVM训练的过程。

利用CNN对高分Proposal评分

Monocular 3D Object Detection for Autonomous Driving 论文总结_第11张图片

在这一步中,作者对上一步得到的高分的候选框进行再次打分和分类,得到候选框的类别,精确位置以及方向信息。

在网络上,本文作者使用了一个与《3d object proposals for accurate object class detection》- NIPS2015相同的而网络结构,在最后一层卷积层之后,将网络分为两个分支,一个分支用于对Proposal的区域特征进行提取,另一个分支用于对以proposal为中心的上下文区域(以1.5为因子扩大的区域)的特征进行描述。该做法与《SegDeepM: Exploiting segmentation and context in deep neural networks for object detection》- CVPR2015相同。这两个分支都由一个RoI pooling层和两个全连接层组成。其中RoI是由2D包围框在最后一个卷积层的特征图上的Proposal区域以及上下文区域获得的。

最后该网络用多任务loss来联合预测包围框的类别,包围框的偏移,物体的方向。

总结

文章大概的做法如上,内部还牵扯到非常多的细节问题。
看完文章后,并不一定能有很大的收获,因为文章的结构有些难以捉摸。但是,看完了代码以后,可以较为清晰的了解到整体的作者思路。
本文的主要思路就是利用3D包围框与2D包围框之间存在的映射联系,用2D空间中的特征来描述3D包围框,从而达到,利用之前较为成熟的现有方法,完成一项新类型研究的探索。同时,作者的特征提取时间损耗极低,在一张图像中对81万个Proposal同时提取特征的时间损耗仅有不到1.8s。对于小障碍物研究来说具有很高的借鉴意义,但是目前存在的问题在于,由于缺少3D小障碍物的数据集,因此该方法较难直接应用于3D小障碍物检测。

你可能感兴趣的:(经验,学习)