对于多数人来说,学会驾驶是长大成人的标志。起初,你战战兢兢,如履薄冰,随着行驶里程的增加,你也驾驶得越来越好。你不断了解各种细枝末节、各个要素如何影响你的行车轨迹以及如何作出相应调整。
那么,如果我们可以将同样的概念应用于自动驾驶汽车,会怎样呢?
NVIDIA 的新泽西州办事处所在地既是贝尔实验室办公室的前身,同时又恰巧是当前席卷技术行业的深度学习革命的发源地,来自此办事处的工程师团队决定使用深度学习技术教自动驾驶汽车学习驾驶。他们使用卷积神经网络 (CNN) 来了解控制汽车所需的整个处理通道。
DAVE2 项目是 NVIDIA 于 9 个月前启动的一项工作的组成部分,目的是在 DAVE(DARPA 自动驾驶汽车)项目研究的基础上,打造可在公路上行驶的稳健系统。开展这项工作的最初动机是绕过特定道路特征(例如车道标线、护栏或其他汽车)得进行硬编码检测的需要,避免创建无数的“if、then、else”语句,因为尝试通过编写代码应对道路上所发生的各种随机事件是不切实际的。
实验于今年 2 月开始,训练数据通过在各种道路上及各种照明和天气条件下驾驶收集得到。多数路况数据是在新泽西州中部以及包括两车道道路(带有和不带有车道标线)、有停泊车辆的住宅区街道、隧道甚至未铺柏油的小路在内的各种道路上收集而来的。其他数据在晴天、多云、雾天、雪天和雨天昼夜收集得到。
在行驶约 3000 英里、72 小时之后,汽车可以绕过交通锥行驶,沿着铺设和未铺设柏油的道路行驶,还可以在各种天气条件下行驶。
我们的测试汽车是如何做到自动驾驶的呢?
我们使用 NVIDIA DevBox 和 Torch 7(机器学习库)进行训练,使用 NVIDIADRIVE PX 自动驾驶汽车用计算机来处理所有数据,NVIDIA 团队会给来自摄像头的视频、人类驾驶员实施的转向角度和不断馈送到 CNN 的数据一起加上时间标记。
然后,在实际上路测试经过训练的 CNN 之前,他们会在模拟环境中评估网络的性能。模拟器使用之前录制好的关于人类驾驶汽车时收集的数据的视频,并生成 CNN 在控制汽车的情况下会作出何种反应的近似图片。
经过训练的 CNN 一旦在模拟器中有稳定的表现,就会被加载到 DRIVE PX 中,并进行上路测试。通过不断的迭代和调整,CNN 自身开始学习检测有用的道路特征。
汽车很快就可以在各种道路上自动驾驶,甚至可以在花园州收费高速公路上完美地自动巡航。更有趣的是,工程团队从未专门训练 CNN 来检测道路轮廓线,但它将人类转向角度与道路作为指导,并开始了解车辆和道路之间的互动规则。
有关详情,请参阅 NVIDIA 研究论文“自动驾驶汽车的端到端学习”。