卷积神经网络在无人驾驶中的应用

    无人驾驶的感知部分作为计算机视觉的领域范围,也不可避免地成为CNN发挥作用的舞台。本文将深入介绍CNN(卷积神经网络)在无人驾驶3D感知与物体检测中的应用。

1 无人驾驶双目3D感知

    在无人车感知中,对周围环境的3D建模是重中之重。激光雷达能提供高精度的3D点云,但密集的3D信息就需要摄像头的帮助了。人类用两只眼睛获得立体的视觉感受,同样的道理能让双目摄像头提供3D信息。假设两个摄像头间距为 B ,空间中一点P到两个摄像头所成图像上的偏移(disparity)为 d ,摄像头的焦距为 f ,那么我们可以计算P点到摄像头的距离 z 为: z = B d f
这里写图片描述
这里写图片描述
    所以为了感知3D环境得到z,需要通过双目摄像头的两张图像 I l I r 得到 d ,通常的做法都是基于局部的图片匹配: I l ( p ) I r ( p + d )
    由于单个像素的值可能不稳定,所以需要利用周围的像素和平滑性假设 d ( x , y ) d ( x + α , y + β ) (假设 α β 都较小),所以求解 d 变成了一个最小化问题:
m i n d D ( q , d ) = m i n d q N ( p ) | | I t ( q ) I r ( q + d ) | |
    这和optical flow任务想要解决的是非常类似的问题,不过是 ( I l , I r ) 变成了 ( I t , I t + 1 ) ,所以下面将要介绍的算法,两者都适用。

1.1 MC-CNN

    现在来看看Matching-Cost CNN算法,这个算法使用了一个CNN来计算上式的右侧matchingcost,MC-CNN的网络结构见图1。
这里写图片描述
    这个网络的输入是两个图片的一小块,输出是这两块不匹配的概率,相当于一个cost函数,当两者匹配时为0,不匹配时最大可能为1。通过对一个给定的图片位置搜索可能的d取值,找到最小的CNN输出,就得到了这一点局部的偏移估算。MC-CNN算法接下来做了如下后期处理:
- Cross-based cost aggregation:基本思想是对邻近的像素值相似的点的偏移求平均,提高估计的稳定性和精度。
- Semi-global matching:基本思想是邻近的点的平移应该相似,加入平滑约束并求偏移的最优值。
- 插值和图片边界修正:提高精度,填补空白。
最终算法效果如下:
这里写图片描述
    MC-CNN虽然使用了CNN,但仅限于计算匹配程度,后期的平滑约束和优化都是必不可少的,那有没有可能使用CNN一步到位呢?FlowNet就是这样做的。

1.2 FlowNet

    为了实现端到端的模型结构,需要用CNN实现特征提取,匹配打分和全局优化等功能。FlowNet采取了encoder-decoder框架,把一个CNN分成了收缩和扩张两个部分。
这里写图片描述
    在收缩部分FlowNet提出了两种可能的模型结构:
- FlowNetSimple:把两幅图片叠起来输入到一个“线性”的CNN中,输出是每个像素的偏移量。这个模型的弱点是计算量大,而且无法考虑全局的优化手段,因为每个像素的输出是独立的。
- FlowNetCorr:先对两幅图片分别进行特征的提取,然后通过一个相关层把两个分支合并起来并继续下面的卷积层运算。这个相关层的计算和卷积层类似,只是没有了学习到的特征权重,而是由两个分支得到的隐层输出相乘求和。
这里写图片描述
    FlowNet网络收缩部分不仅减少了CNN的计算量,同时起到了在图像平面上聚合信息的作用,这也导致分辨率下降。于是在FlowNet网络扩张部分使用 “up convolution”来提高分辨率,注意这里不仅使用了上一层的低分辨率输出,还使用了网络收缩部分相同尺度的隐层输出。
这里写图片描述
    FlowNet算法在常见的公开数据集上都获得了不错的效果,值得一提的是它的速度很快。

2 无人驾驶物体检测

    物体检测技术是无人驾驶感知必不可少的部分。自从2012年CNN在图片分类问题上的突破,物体检测自然是CNN应用的下一个目标,CNN的物体检测算法层出不穷,我们挑选比较有代表性的几个算法做介绍。
    CNN在物体识别领域大行其道之前,通常做法类似于DPM(Deformable Parts Model)这样的解决方案:在图像上抽取局部特征的组合作为模板,比如基于图像的空间梯度的HOG特征;为了能够处理形变,遮挡等变化,我们建立一个“弹性”的结构,把这些“刚性”的部分组合起来;最后加上一个分类器判断物体是否出现。这样的算法一般复杂度较高,需要大量经验,而且改进和优化难度较大。CNN的到来改变了一切。
    R-CNN系列算法是一个两段式的算法,它把物体识别这个问题分为:
- 物体可能所在区域的选择:输入一张图片,由于物体在其中的位置大小有太多可能性,我们需要一个高效的方法找出它们,这里的重点是在区域个数的一定上限下,尽可能找到所有的物体,关键指标是召回率。
- 候选区域的识别:给定了图片中的一块矩形区域,识别其中的物体并修正区域大小和长宽比,输出物体类别和更“紧”的矩形框。这里重点在识别的精度。
    在了解算法的大致架构后,来看看算法的具体实现,这里主要描述R-CNN这一系列算法的最新版:Faster R-CNN,它对应上面两步分为RPN(Region Proposal Network)和Fast R-CNN,接下来分别介绍。

2.1 Faster RCNN

2.1.1 RPN

    我们称物体可能所在区域为候选,RPN(Region Proposal Network)的功能是最高效地产生一个候选列表。如图,RPN选择以CNN为基础,图片通过多个(比如4个)卷积层进行特征提取,在最后一个卷积层输出的特征图上使用一个3x3的滚动窗口连接到一个256或者512维的全连接隐层,最后再分支到两个全连接层,一个输出物体类别,一个输出物体的位置大小。为了能够使用不同的物体大小和长宽比,在每一个位置上考虑三个尺度(128x128, 256x256, 512x512)和三个长宽比(1:1, 1:2, 2:1)一共9种组合。这样一个1000x600的图片上考虑了(1000/16) × (600/16) × 9 ≈ 20,000种位置、大小和长宽比的组合,由于使用CNN计算,这一步耗时不多。最后根据空间重叠程度去掉冗余的候选区域,一张图片大约获得2000个左右的物体可能区域。
这里写图片描述

2.1.2 Fast RCNN

    在候选区域分类阶段,我们使用的是基于全连接的神经网络,如图的右侧部分:
    而左侧的特征提取部分可以重用RPN中的CNN计算结果,大大节约了计算时间,能达到5-17帧每秒的速度。
这里写图片描述

2.2 MS-CNN

    虽然Faster R-CNN算法大名鼎鼎,但在物体尺度变化很大的场景,比如无人驾驶,它还有提升的空间,Multi-scale CNN(MS-CNN)正是针对这个问题的尝试。CNN的层级结构由于pooling层的存在自然形成了和不同尺度的一个对应关系。那为什么不把对物体的检测放到CNN的不同层里去呢?这正是MS-CNN的想法。
    在选择物体候选区域阶段,MS-CNN使用了下图的网络结构,我们看到如果把CNN网络里的卷积层看成一个大树的“主干”,那么在conv3、conv4和conv5这三个卷积层之后,这个网络都长出了“分支”,每个“分支”都连接了一个检测层,负责一定的尺度范围,这样多个“分支”一起,就能覆盖比较宽的物体尺度范围,达到我们的目的。
    在候选区域识别阶段,我们让上一阶段多个检测层的输出特征图分别输入到一个子网络里,这里有几个值得注意的细节。
这里写图片描述
- 第一层是“Deconvolution”,目的是为了提高特征图的分辨率,保证物体检测的准确率,特别是对尺度偏小的物体。
- Deconvolution之后,在抽取物体特征时(绿色框),同时还抽取了物体周边的信息(蓝色的框),这些“上下文”信息对识别准确率的提高有明显帮助。
    总的来说,MS-CNN和Faster R-CNN相比,优势是识别的准确度有很大提高,尤其在物体尺度变化的情况下,比如KITTI数据集里面的行人和自行车。但是Faster R-CNN还是有速度的优势。
这里写图片描述

2.3 SSD

    虽然Faster R-CNN的速度比之前的R-CNN已有很大提高,但还达不到实时的要求。Single Shot Detector(SSD)就是一个能够实时运行,有更佳准确度的算法,最近人气很高。SSD沿用了滑动窗口的思想,通过离散化物体的位置,大小和长宽比,使用CNN高效计算了各种可能的物体情况,从而达到了高速检测物体的目的。
这里写图片描述
    如图所示,SSD使用了VGG-16网络来做底层的图片特征提取,通过取消生成候选区域,缩放图片缩放和特征图采样的步骤,一步到位判断物体位置和分类,得到了高速的物体检测算法。
    在VGG网络的基础上,SSD加入了逐步变小的卷积层,这些不同尺度的卷积层分别使用3x3大小的卷积核进行物体位置偏移和分类的判断,使SSD能够检测到不同大小的物体。

3 结论

    无人驾驶的感知部分作为计算机视觉的领域范围,也不可避免地成为CNN发挥作用的舞台。CNN在无人驾驶中的应用主要包括3D感知与物体检测。在3D感知中使用到的网络包括MC-CNN与FlowNet, 在物体检测中使用到的网络包括Faster R-CNN、 MSCNN与 SSD。本文详细介绍了各种网络的优缺点,希望对各位在选择网络时有帮助。

猜你喜欢

转载自blog.csdn.net/weixin_37904412/article/details/80752414