原文:End-to-End Deep Learning for Self-Driving Cars
翻译:KK4SBB
责编:周建丁(zhoujd@csdn.net)
在最近的一款汽车应用产品中,我们用卷积神经网络(CNNs)将车前部摄像头捕捉到的原始像素图映射为汽车的方向操控命令。这种强大的端到端技术意味着,只需要人们提供少量的训练数据,系统就能自动学会驾驶技术,无论有没有车道标志线,无论是在普通公路还是高速公路。这套系统还可以工作在视线不清晰的区域,比如停车场或者崎岖的道路上。
图1:行驶中的NVIDIA自动驾驶汽车
我们设计的这套端到端学习系统使用了NVIDIA DevBox,用Torch 7进行训练。一台 NVIDIA DRIVE PX 自动驾驶汽车计算机用于判断汽车行驶的方向,工作时它每秒需要处理30帧的数据,同样使用Torch 7处理。这套系统经过训练,自动学会了方向操纵指令的表达,比如检测有效道路的特征,输入的训练信号仅仅只是人工操控方向盘的角度。我们并没有直接训练这个系统来识别道路边界等特征。相反的,不同于直接人工将问题拆解,比如拆解成车道标记检测、线路规划、车辆控制等子任务,我们的端到端系统同时能优化所有的操纵过程。
我们相信应用端到端的学习方法能取得更好的效果,系统也将变得更小巧。效果更好是因为内部组件自动地对系统全局性能做了优化,而不只是优化人们选择的条件标准,比如车道检查。这类可解释的标准虽然易于人的理解,但并不能保证系统处于全局最优状态。更小巧的系统是因为整个系统学习用最少的处理步骤来解决问题。
这篇文章是基于NVIDIA的论文《End to End Learning for Self-Driving Cars》。具体细节可以参考论文原文。
卷积神经网络处理视觉数据
卷积神经网络模型[1]颠覆了计算机模式识别领域[2]。在CNNs被广泛应用前,大多数的识别任务都是先经过人工特征提取步骤,然后用分类器判断。CNNs的重大突破在于它能自动地从训练样本中学习特征。由于卷积运算能够捕捉图像的二维属性,CNN方法在图像识别任务上尤其显得强大。用卷积核扫描整张图片之后,需要学习的参数比原来大大减少。
尽管CNNs模型已经被商业化使用了二十多年[3],但直到近些年才被大规模地应用,这主要是因为两项重要的突破。首先,大规模的人工标注数据集很容易获取,比如ImageNet大规模视觉识别挑战(ILSVRC)[4],这些数据可以作为训练集和验证集。其次,CNN学习算法现在能够在大规模并行图形处理单元(GPUs)上运行,极大地提高了学习效率和预测能力。
我们这里所讲述的CNNs模型不局限于基本的模式识别。我们开发了一套系统,可以学习自动驾驶汽车的整个工作流程。这个项目的基础工作十年前在国防高级研究项目机构(Defense Advanced Research Projects Ag