近年来,随着人工智能技术的迅速发展,传统汽车行业与信息技术结合,在汽车自动驾驶技术方面的研究取得了长足进步,业内很多大公司都在此领域投入巨资进行研发,如国外的谷歌、丰田,国内的百度、比亚迪等公司都推出了自动驾驶汽车,且实验结果令人满意:

  • 谷歌的自动驾驶汽车已经安全行驶超过 14 万英里;

  • 丰田则宣布旗下自动驾驶系统将于 2020 正式量产;

  • 百度在 2015 年底宣布,其自动驾驶汽车计划三年商用五年量产,比亚迪已与百度深化合作,共同研发无人驾驶汽车。

可以预见,在不远的将来,随着技术不断发展完善,自动驾驶技术将进入实用阶段,普及到千家万户,人们可以自由出行而无需担心人为驾驶事故,如无证驾驶、超速、疲劳驾驶、酒驾等人为引起的交通事故。因此,自动驾驶技术有着广阔的应用前景。

1 自动驾驶技术

自动驾驶技术分为基于传统特征和基于深度学习驾驶技术。

在现有的基于传统特征的自动驾驶中,目标识别是核心任务之一,其包括道路及道路边沿识别、车道线检测、车辆识别、车辆类型识别、非机动车识别、行人识别、交通标志识别、障碍物识别与避让等等。目标识别系统利用计算机视觉观测交通环境,从实时视频信号中自动识别出目标,为实时自动驾驶,如启动、停止、转向、加速和减速等操作提供判别依据。

由于实际路况极度复杂,基于传统目标检测的辅助驾驶技术性能难以得到大幅提升,现有的自动驾驶技术,一般依赖于先进的雷达系统来弥补,显著增加了系统实施的成本。随着技术的发展,采用卷积神经网(Convolutional Neural Networks,CNN)可以直接学习和感知路面和道路上的车辆,经过一段时间正确驾驶过程,便能学习和感知实际道路情况下的相关驾驶知能,无需再通过感知具体的路况和各种目标,大幅度提升了辅助驾驶算法的性能。

2 基于传统特征的自动驾驶技术

自动驾驶技术中传统的特征指的是人工提取的特征,如 HOG(梯度直方图)特征、SIFF(尺度不变特征变换)特征和 CSS(颜色自相似)等特征。

目前,主流自动驾驶技术都基于视频分析。交通场景下捕捉到的视频序列中包含各种不同视频目标,如行人、汽车、路面、障碍物、背景中的各种物体等,需要在测试图像中标识出感兴趣类别的目标对象,用来提供给车辆控制系统作为决策依据。

特征的检测与表示是关键步骤,涉及到如何编码描述目标图像信息的问题,比较理想的特征表示方法要能适应各种干扰因素的影响,比如尺度、外观、遮挡、复杂背景等情况。

2.1 道路与车道识别

道路与车道识别是自动驾驶技术的基础内容,如 Caltech lane detector中论述。常见的道路的识别算法基于图像特征进行计算,其分析图像中表示车道线或道路边界等的灰度,颜色,纹理等特征,通过神经网络、支持向量机、聚类分析和区域生长等方法便可以分割出路面区域。这类方法对道路曲率的变化有很好的鲁棒性。

最近基于条件随机场的道路检测方法取得了重要的进展。由于道路及边沿的种类繁多,纷杂的车辆以及路边杂物的遮挡,树木以及建筑物的阴影干扰等,使得最基本的道路检测存在需要进一步提升的空间。

2.2 车辆检测技术

车辆检测技术为自动驾驶领域研究的热点之一。前向车辆碰撞预警系统是一种有效降低主动事故发生率的技术,其广泛采用车辆定位的方法实现,可以利用车辆自身的图像特征,如阴影、对称性、边缘等,例如常用的底部阴影以及车辆的两个纵向边缘构成的 U 型特征等,快速定位车辆感兴趣的区域,再利用多目标跟踪算法对检测的车辆进行跟踪。

2.3 行人检测及防碰撞系统

以「行人保护」为目的的行人检测及防碰撞系统也成为自动驾驶领域的研究热点。目前统计学习方法在行人检测中应用最为广泛,特征提取和分类定位是基于统计学习方法的两个关键问题。

基于统计学习的行人检测主要包含基于生成式模型(局部)的检测方法和基于特征分类(整体)的检测算法:

  • 基于生成式模型的检测方法通常采用局部特征或者肢体模型来描述局部属性,结合局部特征的空间结构特性或分布模型进行分类。

  • 基于特征分类的检测方法目的是找到一种能够很好地描述行人特征的方法。通过提取行人的灰度、边缘、纹理、颜色等信息,根据大量的样本构建行人检测分类器,从样本集中学习人体的不同变化,把视频图像中的行人目标从背景中分割出来并精确定位。

2005 年 Dalal 提出梯度直方图(Histogram of Oriented Gradient,HOG)是一个最基本的特征,具有非常强的鲁棒性,其他很多行人检测的算法都是在使用 HOG 的基础上,加上其它特征,如尺度不变特征转换(Scale-invariant Feature Transform,SIFT)、局部二值模式(Local Binary Pattern,LBP)、颜色自相似(Color Self—Similarity,CSS)、多通道等等。

Cheng 等人观察到物体都有闭合边缘,基于 HOG 特征提出了一种二进制归一化梯度特征(BING)来预测显著性窗口的方法,该方法运行速度非常快,可以达到 300 fps。赵勇等在 HOG 的基础上提出了一个具有较好的尺度不变特征 eHOG,将 HOG 中梯度直方图中每个 bin 的特征重构成一个位平面,再计算其 HOG 特征。实验表明,在计算量没有大幅度增加的情况下,正确率比原 HOG 高 3 ~ 6 个百分点。HOG 特征存在一个问题,即整个 HOG 特征被拉长成一个矢量,弱化了原来在二维平面局部空间的梯度特征之间的局部关联特性。

张永军等人提出的 I-HOG采用多尺度的特征提取算法和构建梯度直方图之间的关联,增强了行人边缘信息在二维平面空间的局部关联, I-HOG 特征相较于原 HOG 特征较大幅度的提高了检测率。SIFT 是一种检测局部特征的算法,该算法通过求一幅图中的特征点及其有关尺度和方向的描述得到特征并进行图像特征点匹配,用于检索或者标准图库类别的识别时,其不仅具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角也能够得到非常好的检测效果。

3 基于深度学习的自动驾驶技术

基于视频分析的目标检测与识别技术经历了从传统特征,如:HOG、SIFT、Bag of visual words和 Fisher 核矢量到深度学习的过渡过程。

HOG 得到的描述保持图像的几何和光学转化不变性。Fisher 核矢量能统一各类特征的维度、压缩时精度损失很小等,这些传统直观的特征,在目前阶段取得了很好的使用效果。但由于目标的种类繁多,变化较大,以及视角的变化等等,使得传统基于特征的目标检测遇到了很难超越的瓶颈。

近年来,深度学习的兴起,使得大量多类多状态下目标检测与识别的性能可以大幅度提升到拟人水平,甚至在许多方面超越人类。深度学习特征为从大量训练数据中自动学习到的特征,较传统特征相比,更能刻画目标的本质。

深度学习有多个常用模型框架,如自动编码器、稀疏编码、限制波尔兹曼机、深信度网络、卷积神经网络等。其中基于卷积神经网络(Convolution Neural Network,CNN)的深度学习模型是最常用的模型和研究热点之一。

20 世纪 60 年代,Hubel 和 Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了 CNN。K.Fukushima 在 1980 年提出的新识别机是 CNN 的第一个实现网络。随后,目标检测通过扫描窗来学习并进行检测,大大提高了多类检测目标识别的效率。最具有代表性的是深度学习鼻祖 Hinton 的工作 ,作者训练深度神经网络来对 LSVRC-2010 和 LSVRC-2012 的 120 万张图像进行 1000 种以上的分类,获得当时最高的检测率。这种基于扫描窗的方法主要缺点是:扫描窗的大小和位置组合太多,导致计算量过大而难以实现。

CNN 思路近年来经过不断改进,其精确度和计算效率得到极大提升。2014 年 Girshick 等人提出了 R-CNNL ,其思想为将每个图片分为约 2000 个区域输入 CNN 训练,从预选框中通过 CNN 提取出固定长度的特征,最后通过特定类别的支持向量机(SVM)来分类。由于需将每一个候选区域分别送人到 Alexnet 中进行检测,导致检测速度很慢,因此何觊名等人提出SPPnet 。SPPnet 改变以往使用剪裁一幅图片使其尺寸满足 Alexnet 输入要求,而是使用任意尺寸图片作为输入。

Fast-RCNN在 SPPnet 的基础上,使用显著性检测方法在原始图像上提取出预选区域,并将每一个区域坐标映射到特定图上,在进行目标检测时,使用 ROI 池化层选取映射的坐标区域,部分卷积图像送人分类器,无需对每一个预选区进行卷积运算,大大提高了检测速度。

2015 年 Ren 等提出 Faster-RCNN ,在之前的基础上使用一个 RPN 网络,使用卷积运算一次得到卷积特征图像,Faster-RCNN 是对 Fast-RCNN 的进一步加速。在 2015 年 12 月的 ICCV 国际会议上,邹文斌博士在 R-CNN 的基础上,提出了基于 RCNN 的多层次结构显著性目标检测方法 ,在 MSRA-B ,PASCAL-1500 和 SOD 三个数据集上的实验表明,其检测率达到当时业界最高水平。在该会议上,Kontschieder 旧引等提出了在 CNN 各层输出的特征基础上,采用随机森林,在公开的数据集 MNIST 和Imagenet上,获得了较高的检测率。

CNN 和多通道处理结合的方法在图像识别上也有不错的效果:

  • 2011 年 Pierre Sermanet等人提出多尺度 CNN 算法,将原始图像和其子取样的卷积结果通过线性分类器分类,其 GTSRB 数据集上精确度达到 98.97%。

  • 2012 年 Dan Ciresan等人提出使用多通道深度神经网络的方法识别交通信号。该方法将训练图片同时输入 N 个深度神经网同时训练,进行预测时,计算输入图像的 N 个深度神经网预测结果的平均值作为最终结果,其预测结果准确率达到 99.46%,超过了人工识别精度。

  • 2014 年 Karen Simonyan钊等人将连续视频分为空间流和时间流,使用不同的 CNN 处理同一段视频的物体特征和行为特征,并将二者结合进行行为判别,也极大地提升了识别的精确度。

在辅助驾驶和自动驾驶中,需要识别和估计的目标繁多,包括前方机动车、非机动车、行人、道路标识、道路本身、车道线等等,导致基于目标监测与识别的学习算法变得十分复杂。在自动驾驶与机器人导航中,另一种方法直接从视频图像中学习前进方向的角度来寻找路径和绕开障碍物,以及Yann Lecun 的工作 ,即通过端到端学习,以实现非道路上的障碍物避让,使用 6 层的 CNN 学习人的驾驶行为,可以在穿越视野内区域的同时学习低层和高层特征,消除人工的校准、矫正、参数调整等等,该系统主要的优点是对各种不同环境下的非道路环境有非常好的鲁棒性。

计算机视觉,自动驾驶算法

图 1  深度驾驶算法架构

以上工作均为通过深度学习直接将图像映射到行驶的角度下进行的。在这一思想的影响下,在 ICCV 2015 上,普林斯顿大学提出了深度驾驶算法,其算法架构如图 1 所示,通过深度神经网络直接感知驾驶操控(driving affordance),不仅大大简化了算法的复杂度,而且大大提高了自动驾驶的鲁棒性和智能化水平,是自动驾驶技术上的一个重大突破。

深度驾驶的技术,通过采用 CNN 来直接学习和感知一段时间正确驾驶过程以后,就能学习和感知到实际道路情况下的相关驾驶智能,无需通过感知具体的路况和各种目标,大幅度提升了辅助驾驶算法的性能。

4 总结与展望

自动驾驶技术是未来汽车智能化的研究热点之一。从综述的文章中可以得出,基于传统目标检测最有效 HOG 特征、SIFT 特征、CSS 等特征的自动驾驶技术已经取得了不错成绩。

由于实际路况极度复杂,基于传统目标检测的辅助驾驶技术性能难以得到大幅度提升,现有的自动驾驶技术,一般依赖于先进的雷达系统,显著增加了系统实施的成本。深度驾驶技术能同时感知道路和道路上的各类目标,为自动驾驶系统提供驾驶逻辑支持,是未来自动驾驶技术研究的方向之一。

在具体的辅助驾驶算法中,如果对路况和目标缺乏整体感知,则很难达到实用化和商用化水平。吸取传统自动驾驶技术中的精华,借鉴深度学习研究的最新成果,整合传统特征和深度学习特征,以提供更多信息,不失为一个较好的解决方法。设计自动驾驶技术的新算法,进一步提升深度驾驶的拟人化和实用化水平,是一条值得去继续探索的道路。