卷积神经网络(CNN)在无人驾驶中应用的3D感知与物体检测
扫描二维码
随时随地手机看文章
无人驾驶的感知部分作为计算机视觉的领域范围,也不可避免地成为CNN发挥作用的舞台。本文是无人驾驶技术系列的第八篇,深入介绍CNN(卷积神经网络)在无人驾驶3D感知与物体检测中的应用。
CNN简介卷积神经网络(ConvoluTIonal Neural Network,CNN)是一种适合使用在连续值输入信号上的深度神经网络,比如声音、图像和视频。它的历史可以回溯到1968年,Hubel和Wiesel在动物视觉皮层细胞中发现的对输入图案的方向选择性和平移不变性,这个工作为他们赢得了诺贝尔奖。时间推进到上世纪80年代,随着神经网络研究的深入,研究人员发现对图片输入做卷积操作和生物视觉中的神经元接受局部recepTIve field内的输入有相似性,那么在神经网络中加上卷积操作也就成了自然的事情。当前的CNN相比通常的深度神经网络(DNN),特点主要包括:
一个高层的神经元只接受某些低层神经元的输入,这些低层神经元处于二维空间中的一个邻域,通常是一个矩形。这个特点受到生物神经网络中recepTIve field的概念启发。
同一层中不同神经元的输入权重共享,这个特点可以认为是利用了视觉输入中的平移不变性,不光大幅度减少了CNN模型的参数数量,还加快了训练速度。
由于CNN在神经网络的结构上针对视觉输入本身特点做的特定设计,所以它是计算机视觉领域使用深度神经网络的不二选择。在2012年,CNN一举打破了ImageNet这个图像识别竞赛的世界纪录之后,计算机视觉领域发生了天翻地覆的变化,各种视觉任务都放弃了传统方法,启用了CNN来构建新的模型。无人驾驶的感知部分作为计算机视觉的领域范围,也不可避免地成为CNN发挥作用的舞台。
无人驾驶双目3D感知在无人车感知中,对周围环境的3D建模是重中之重。激光雷达能提供高精度的3D点云,但密集的3D信息就需要摄像头的帮助了。人类用两只眼睛获得立体的视觉感受,同样的道理能让双目摄像头提供3D信息。假设两个摄像头间距为B,空间中一点P到两个摄像头所成图像上的偏移(disparity)为d,摄像头的焦距为f,那么我们可以计算P点到摄像头的距离为:
所以为了感知3D环境得到z,需要通过双目摄像头的两张图像I_l和I_r得到d,通常的做法都是基于局部的图片匹配:
由于单个像素的值可能不稳定,所以需要利用周围的像素和平滑性假设d(x,y)≈d(x+α,y+β)(假设α和β都较小),所以求解d变成了一个最小化问题:
这和opTIcal flow任务想要解决的是非常类似的问题,不过是(Il,Ir)变成了(It ,It+1),所以下面将要介绍的算法,两者都适用。
MC-CNN现在来看看Matching-Cost CNN算法,这个算法使用了一个CNN来计算上式的右侧matchingcost,MC-CNN的网络结构见图1。
图1 MC-CNN的网络结构
这个网络的输入是两个图片的一小块,输出是这两块不匹配的概率,相当于一个cost函数,当两者匹配时为0,不匹配时最大可能为1。通过对一个给定的图片位置搜索可能的d取值,找到最小的CNN输出,就得到了这一点局部的偏移估算。MC-CNN算法接下来做了如下后期处理:
Cross-based cost aggregation:基本思想是对邻近的像素值相似的点的偏移求平均,提高估计的稳定性和精度。
Semi-global matching:基本思想是邻近的点的平移应该相似,加入平滑约束并求偏移的最优值。
插值和图片边界修正:提高精度,填补空白。
最终算法效果如下:
图2 MC-CNN的算法效果
MC-CNN虽然使用了CNN,但仅限于计算匹配程度,后期的平滑约束和优化都是必不可少的,那有没有可能使用CNN一步到位呢?FlowNet就是这样做的。