我们训练了一个卷积神经网络(CNN),将单个前视摄像头捕捉到的原始像素直接映射到转向指令。这种端到端的方法表现出出乎意料的强大效果。即使只使用了少量人类驾驶数据进行训练,该系统也能在有或没有车道标记的本地道路和高速公路上行驶。此外,它还能在视觉引导不清晰的区域(如停车场和未铺砌的道路)中运行。翻译而来供参考,亦可加入知识星球阅读英文原版、中文译本(见文末)。
图1:数据采集系统的高层视图
该系统能够自动学习必要处理步骤的内部表示,例如,仅通过人类的转向角作为训练信号,就能检测出有用的道路特征。我们从未显式地训练它去检测,例如道路的轮廓。
与将问题显式地分解为车道标记检测、路径规划和控制等步骤的方法相比,我们的端到端系统可以同时优化所有的处理步骤。我们认为,这最终会带来更好的性能和更简化的系统。更好的性能是因为内部组件自我优化,以最大化整体系统性能,而不是去优化人类选择的中间标准,例如车道检测。这些标准通常是为了方便人类理解而选择的,但并不能自动保证系统的最佳性能。更简化的网络是可能的,因为系统学习到以最少的处理步骤来解决问题。
我们使用了NVIDIA DevBox和Torch 7进行训练,并使用同样运行Torch 7的NVIDIA DRIVE™ PX自动驾驶汽车计算机来决定行驶方向。该系统以每秒30帧(FPS)的速度运行。
1 引言
卷积神经网络(CNNs)【1】彻底改变了模式识别【2】。在CNNs被广泛采用之前,大多数模式识别任务是通过手工设计的特征提取阶段,再结合一个分类器来完成的。CNNs的突破在于它能够从训练样本中自动学习特征。尤其在图像识别任务中,CNN方法表现尤为强大,因为卷积操作能够捕捉图像的二维特性。此外,通过使用卷积核扫描整个图像,与需要执行的操作总数相比,CNN只需要学习相对较少的参数。
虽然具有学习特征能力的CNN已经在商业应用中使用了二十多年【3】,但近年来它的应用出现了爆炸性增长,主要是由于两个最新的发展。首先,像大型视觉识别挑战(ILSVRC)【4】这样的庞大标注数据集可用于训练和验证。其次,CNN学习算法被实现于高度并行的图形处理单元(GPU)上,极大地加速了学习和推理过程。
本文描述了一种超越模式识别的CNN。它学习了驾驶汽车所需的整个处理流程。这个项目的基础工作可以追溯到十多年前的一项由国防高级研究计划局(DARPA)资助的项目,称为DARPA自动驾驶车辆(DAVE)【5】,该项目中一辆比例较小的遥控车在一个充满障碍物的小巷中行驶。DAVE在类似但不完全相同的环境下,通过数小时的人类驾驶数据进行训练。这些训练数据包括来自两个摄像头的视频,以及人类驾驶员提供的左右转向指令。
在许多方面,DAVE-2受到了Pomerleau的开创性工作的启发【6】。Pomerleau在1989年开发了名为ALVINN(Autonomous Land Vehicle in a Neural Network)的系统,该系统展示了端到端训练的神经网络确实可以在公共道路上驾驶汽车。我们的工作不同之处在于,25年的技术进步让我们能够应用更多的数据和计算能力。此外,我们在CNNs方面的经验也使我们能够利用这种强大的技术。(ALVINN使用的是一个与今天标准相比非常小的全连接网络。)
虽然DAVE展示了端到端学习的潜力,甚至被用来支持启动DARPA地面机器人学习应用(LAGR)计划【7】,但DAVE的性能不足以作为模块化方法的完全替代方案用于越野驾驶。DAVE在复杂环境中平均行驶距离约为20米就会发生碰撞。
九个月前,NVIDIA启动了一项新计划,旨在基于DAVE的研究成果,创建一个能够在公共道路上可靠行驶的系统。该工作的主要动机是避免对特定的人类设计的特征(如车道标记、护栏或其他车辆)的识别需求,并避免基于这些特征编写大量的“if, then, else”规则。本文描述了该新计划的初步结果。
2 DAVE-2系统概述
图1展示了DAVE-2系统用于训练数据的采集系统的简化框图。数据采集车辆的挡风玻璃后安装了三个摄像头。这些摄像头捕捉的时间戳视频与人类驾驶员的转向角度同时被记录下来。转向指令通过访问车辆的控制器局域网络(CAN)总线获得。为了使我们的系统不依赖于车辆的几何形状,我们将转向指令表示为1/r,其中r是以米为单位的转弯半径。我们使用1/r而不是r是为了避免在直线行驶时出现奇点(直线行驶时的转弯半径为无穷大)。1/r能够在左转(负值)到右转(正值)之间平滑过渡。
训练数据包含从视频中采样的单帧图像,并与相应的转向指令(1/r)配对。仅使用人类驾驶员的数据进行训练是不足够的。网络必须学习如何从错误中恢复,否则车辆会逐渐偏离道路。因此,训练数据需要通过额外的图像进行增强,这些图像展示了车辆在不同的车道偏移和与道路方向的不同旋转状态下的情况。
来自左侧和右侧摄像头的图像可以用于模拟特定的偏离中心的情况。通过对来自最接近摄像头的图像进行视点转换,还可以模拟摄像头之间的额外偏移和所有旋转。精确的视点转换需要3D场景信息,而我们并不具备这些信息。因此,我们通过假设地平线以下的所有点都在平坦的地面上,而地平线以上的所有点都无限远的方式来近似这种转换。该方法在平坦地形上效果很好,但对于那些超出地面的物体(如车辆、电线杆、树木和建筑物)会引入一些失真。幸运的是,这些失真对网络训练并不会造成太大的问题。对于转换后的图像,其转向标签会被调整为在两秒内将车辆引导回目标位置和方向的值。
图2:神经网络的训练
图2展示了我们的训练系统的框图。图像被输入到一个卷积神经网络(CNN)中,网络随后计算出一个建议的转向指令。该建议指令与该图像的期望指令进行比较,并通过调整CNN的权重,使得网络输出更接近于期望的输出。权重的调整通过Torch 7机器学习包中实现的反向传播算法完成。
图3:训练好的网络用于从单个前视中心摄像头生成转向指令
3 数据收集
训练数据通过在各种道路以及不同的光照和天气条件下进行驾驶来收集。大部分道路数据是在新泽西州中部收集的,但高速公路的数据也来自伊利诺伊州、密歇根州、宾夕法尼亚州和纽约州。其他道路类型包括双车道道路(有车道标记和无车道标记)、有停车车辆的住宅区道路、隧道和未铺砌的道路。数据在晴天、多云、雾天、雪天和雨天的条件下采集,既包括白天也包括夜晚。在某些情况下,太阳接近地平线,导致道路表面和挡风玻璃出现眩光。
数据采集使用了我们的线控测试车辆(2016款林肯MKZ),或2013款福特福克斯,摄像头位置与林肯车上的相似。系统并不依赖于特定的车辆品牌或型号。驾驶员被鼓励保持全神贯注,但除此之外可按照日常驾驶习惯驾驶。截至2016年3月28日,共收集了约72小时的驾驶数据。
4 网络架构
我们训练网络的权重,以最小化网络输出的转向指令与人类驾驶员的指令之间的均方误差,或对于偏离中心和旋转图像的调整后转向指令(见第5.2节)。我们的网络架构如图4所示。该网络由9层组成,包括一个归一化层、5个卷积层和3个全连接层。输入图像被分成YUV平面并传递给网络。
网络的第一层执行图像归一化。归一化器是硬编码的,在学习过程中不会调整。在网络中执行归一化允许归一化方案随着网络架构的变化而调整,并通过GPU处理进行加速。
卷积层的设计用于特征提取,是通过一系列实验在不同的层配置中选择出来的。我们在前3个卷积层中使用步幅为2×2、卷积核大小为5×5的步幅卷积,并在最后2个卷积层中使用卷积核大小为3×3的无步幅卷积。
在5个卷积层之后,我们使用3个全连接层,最终输出控制值,即转向半径的倒数。全连接层的设计是为了作为转向控制器,但需要注意的是,由于系统是端到端训练的,因此无法明确区分网络中哪些部分主要起特征提取作用,哪些部分起控制器作用。
5 训练细节
5.1 数据选择
训练神经网络的第一步是选择用于训练的帧。我们收集的数据标注了道路类型、天气条件以及驾驶员的活动(如保持在车道内、变道、转弯等)。为了训练卷积神经网络(CNN)进行车道保持,我们只选择驾驶员保持在车道内的数据,并丢弃其他数据。然后,我们以10帧每秒(FPS)的速率从视频中采样。更高的采样率会导致包含高度相似的图像,从而无法提供更多有用的信息。
图4:CNN架构。该网络大约有2700万个连接和25万个参数
为了消除对直线驾驶的偏向,训练数据中包括了更高比例的代表道路弯曲部分的帧。
5.2 数据增强
在选择最终的帧集合后,我们通过添加人工的平移和旋转来增强数据,以教会网络如何从不良的位置或方向中恢复。这些扰动的幅度是从正态分布中随机选择的。该分布的均值为零,标准差为我们测量的人类驾驶员标准差的两倍。通过人工增强数据会随着扰动幅度的增加而引入一些不理想的伪影(参见第2节)。
6 模拟
在将训练好的CNN进行道路测试之前,我们首先在模拟环境中评估网络的性能。模拟系统的简化框图如图5所示。
模拟器使用预先录制的视频,这些视频是由数据采集车辆上的前视摄像头拍摄的,车辆由人类驾驶。模拟器生成图像,模拟如果由CNN来控制车辆时的视觉效果。这些测试视频与人类驾驶员生成的转向指令进行了时间同步。
由于人类驾驶员不一定总是在车道中心驾驶,我们需要手动校准用于模拟的视频中每一帧的车道中心位置。我们将这一位置称为“地面真实值”(ground truth)。
模拟器通过对原始图像进行转换,来反映车辆偏离地面真实值的情况。需要注意的是,这种转换也包括人类驾驶路径与地面真实值之间的任何差异。转换过程与第2节中描述的方法相同。
图5:驾驶模拟器的框图
模拟器访问记录的测试视频以及视频捕捉时同步的转向指令。模拟器将调整过的测试视频的第一帧(考虑到与地面真实值的偏差)发送到训练好的CNN的输入。CNN然后返回该帧的转向指令。CNN的转向指令以及记录的人类驾驶员指令一起被输入到车辆的动态模型【8】中,用于更新模拟车辆的位置和方向。
接下来,模拟器对测试视频的下一帧进行修改,使得图像看起来仿佛车辆处于遵循CNN转向指令后的位置。这张新的图像再次输入到CNN中,重复这个过程。
模拟器记录车辆的偏离中心距离(车辆到车道中心的距离)、偏航角以及虚拟车辆的行驶距离。当偏离中心的距离超过一米时,会触发虚拟人类干预,并将虚拟车辆的位置和方向重置为原始测试视频中对应帧的地面真实值。
7 评估
对我们网络的评估分为两个步骤:首先在模拟环境中进行评估,然后在道路上进行测试。
在模拟中,我们让网络在模拟器中为一组预先录制的测试路线提供转向指令。这些测试路线涵盖了大约3小时和100英里的驾驶路程,地点位于新泽西州的Monmouth County。测试数据涵盖了不同的光照和天气条件,包括高速公路、本地道路和住宅街道。
7.1 模拟测试
我们估算了网络在模拟中能够自主驾驶的时间百分比(即自主性)。这一指标通过计算模拟中的人为干预次数来确定(参见第6节)。当模拟车辆偏离车道中心线超过一米时,就会发生干预。我们假设在现实生活中,每次实际干预需要6秒钟:这包括人类重新接管车辆控制、重新回到车道中心,并重新启动自动驾驶模式所需的时间。
我们通过以下方法计算自主百分比:计算干预次数,将其乘以6秒,再除以模拟测试的总用时,最后用1减去结果。计算公式如下:
图6:交互模式下模拟器的截图。性能指标的解释见第7.1节。左侧的绿色区域由于视角转换而未知。地平线下方突出显示的宽矩形区域是发送到CNN的区域。
如果在600秒的模拟测试中发生了10次干预,那么自主性百分比的计算为:
7.2 道路测试
当训练好的网络在模拟器中表现出良好性能后,我们将网络加载到测试车辆中的DRIVE™ PX系统上,并进行实际道路测试。在这些测试中,我们通过测量车辆进行自动转向的时间比例来评估其性能。这个时间不包括变道和从一条道路转到另一条道路的时间。在新泽西州Monmouth County的典型驾驶测试中,从我们在Holmdel的办公室到Atlantic Highlands的行程中,车辆大约98%的时间能够实现自动驾驶。我们还在Garden State Parkway(一条带有进出口的多车道分隔高速公路)上行驶了10英里,期间没有任何干预。
关于我们的测试车在各种条件下驾驶的视频,可以在【9】中看到。
7.3 CNN内部状态的可视化
图7和图8展示了两个不同示例输入的前两个特征图层的激活状态,一个是未铺砌的道路,另一个是森林。在未铺砌道路的情况下,特征图激活状态清晰地显示了道路的轮廓;而在森林的情况下,特征图大多呈现噪声,即CNN在该图像中没有找到有用的信息。
这表明,CNN自主学会了检测有用的道路特征,即仅通过人类驾驶员的转向角作为训练信号。我们从未显式地训练它去检测道路的轮廓,例如。
图7:CNN“看到”未铺砌道路的方式。上图:发送到CNN的摄像头图像的子集。左下图:第一层特征图的激活状态。右下图:第二层特征图的激活状态。这表明CNN通过自身学习到如何检测有用的道路特征,即仅使用人类转向角作为训练信号。我们从未显式地训练它去检测道路的轮廓。
图8:无道路的示例图像。前两层特征图的激活状态主要表现为噪声,即CNN在该图像中未识别出任何有用的特征。
8 结论
我们通过实验证明,卷积神经网络(CNN)能够学习完整的车道和道路跟随任务,而不需要手动将任务分解为道路或车道标记检测、语义抽象、路径规划和控制。少于一百小时的驾驶训练数据就足以使汽车在多种环境条件下运行,包括在晴天、多云和雨天的高速公路、本地道路和住宅道路上。CNN能够从非常稀疏的训练信号(仅包括转向信息)中学习到有意义的道路特征。
例如,系统能够在没有显式标签的情况下学习检测道路的轮廓。
未来的工作需要进一步提升网络的鲁棒性,探索验证鲁棒性的方法,并改进网络内部处理步骤的可视化。
参考文献
[1] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, 和 L. D. Jackel. 反向传播在手写邮政编码识别中的应用。神经计算,1(4):541–551,1989年冬季。URL: http://yann.lecun.org/exdb/publis/pdf/lecun-89e.pdf。
[2] Alex Krizhevsky, Ilya Sutskever, 和 Geoffrey E. Hinton. 使用深度卷积神经网络进行Imagenet分类。在F. Pereira, C. J. C. Burges, L. Bottou, 和 K. Q. Weinberger编辑的《神经信息处理系统进展》25卷,第1097–1105页,Curran Associates, Inc.,2012年。URL: http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf。
[3] L. D. Jackel, D. Sharman, Stenard C. E., Strom B. I., 和 D. Zuckert. 用于自助银行的光学字符识别。AT&T技术期刊,74(1):16–24,1995年。
[4] 大规模视觉识别挑战赛(ILSVRC)。URL: http://www.image-net.org/challenges/LSVRC/。
[5] Net-Scale Technologies, Inc. 使用端到端学习的自主越野车辆控制,2004年7月。最终技术报告。URL: http://net-scale.com/doc/net-scale-dave-report.pdf。
[6] Dean A. Pomerleau. ALVINN,一个神经网络中的自主陆地车辆。技术报告,卡内基梅隆大学,1989年。URL: http://repository.cmu.edu/cgi/viewcontent.cgi?article=2874&context=compsci。
[7] Wikipedia.org. DARPA LAGR 计划。URL: http://en.wikipedia.org/wiki/DARPA_LAGR_Program。
[8] Danwei Wang 和 Feng Qi. 四轮转向车辆的轨迹规划。2001年IEEE国际机器人与自动化会议论文集,2001年5月21-26日。URL: http://www.ntu.edu.sg/home/edwwang/confpapers/wdwicar01.pdf。
[9] DAVE 2驾驶林肯车的视频。URL: https://drive.google.com/open?id=0B9raQzOpizn1TkRIa241ZnBEcjQ。
篇幅所限,以上仅摘录部分内容,
如需获取英文原版、中文译文,请加入知识星球,
并搜索编号“A229”获取详细资料。
另在知识星球新增了一篇非公开资料,
《高精度无人直升机在电力巡检中的应用研究S135)》