Shixin Gu作者Zhen Gao、Panda参与

如何使用端到端学习训练驾驶汽车的深度神经网络?

英伟达的一篇论文提出了一种基于神经网络自动驾驶系统 PilotNet,并还提出了一种测试该系统的有效性的方法。机器之心技术分析师对该研究进行了解读。

论文地址:https://arxiv.org/abs/1704.07911

对工程师而言,要让汽车学会自动驾驶,给汽车编写在任何环境中驾驶的程序可不是一种实用的做法,因为这可能具有无穷无尽的可能性。实际的做法应该是向汽车展示驾驶的方法,让汽车自己学会驾驶。英伟达已经创造了一个这样的系统 PilotNet,这是通过道路图像与配对的人类控制的转向角度训练得到的。道路测试表明,这种神经网络能取得良好的表现。

但同时也存在问题,即我们不知道 PilotNet 究竟学到了什么以及它是如何决策的。在这篇论文中,研究者提供了一种方法,可帮助确定道路图像中的哪些因素对 PilotNet 的转向决策的影响最大。

引言

在这一部分,研究者首先简要介绍了 PilotNet,这是一个带有训练后的卷积神经网络的学习系统。训练数据来自一辆数据收集车的前向摄像头。这些数据也耦合了人类司机的时间上同步的转向角度。正如之前说的,也存在一些问题,即如果研究者想要进一步提升性能,他们应该了解 PilotNet 是如何决策的。为此,这篇论文的作者开发了一种方法,可用于凸显图像中在决定驾驶角度方面最显著的部分。然后他们在他们的测试汽车中的 NVIDIA DRIVETM PX 2 AI 车载计算机上执行了这一方法。

这种方法能向我们展现 PilotNet 自动驾驶系统的训练数据的细节。训练数据集中的各个图像都来自前向相机,并与对应的转向命令配对在一起。训练完成之后,只需给该系统提供新图像,系统就会提供对应的转向指令。

PilotNet 网络架构

这部分介绍了 PilotNet 网络的架构,如图 1 所示。

图 1:PilotNet 的架构

该架构包含 9 层,即 1 个归一化层、5 个卷积层和 3 个全连接层。第一层用于图像归一化,这是人工编程的,不会在学习过程中调整。卷积层用于特征提取。研究者在前三个卷积层使用了跨步式卷积层,步幅大小为 2×2,卷积核大小为 5×5;后两个卷积层使用了非跨步式层,卷积核大小为 3×3。三个全连接层用作转向的控制器。

寻找显著的目标

研究者在这部分展示了 6 个寻找显著目标的过程,并将它们展示在了高层面的图中:

  1. 研究者求取了每层的特征图的平均。
  2. 通过使用去卷积,最大的平均图会被扩展到下一层中的图的大小。
  3. 下面的层乘上扩展后的图,我们可以得到一个中间掩模。
  4. 再次执行步骤 2.
  5. 再次执行步骤 3 并得到一个新的中间掩模。
  6. 重复步骤 4 和 5,得到最终的可视化掩模。

如图 2 所示。

图 2:确定显著目标的可视化方法的模块图

此外,我们在图 3 中看到创建可视化掩模的过程。显著目标通过高亮原图像中的像素展示。

图 3:左:网络每一层的平均特征图。右:网络每一层的中间可视化掩模。

图 4 展示了一些示例。上图表明汽车的基础框架和道路线比较突出。中图突出了停在路边的汽车。下图则突出了道路与草地的交界线。

图 4:各种图像输入中的显著目标示例

图 5 展示了 PilotNet 监视器。可以看到原始图像和掩模的对比情况。图 6 展示了图 5 中的细节。图 5:测试汽车中的场景

图 6:图 5 中 PilotNet 监视器上的情况分析

为了说明这些凸显出的目标确实有助于方向控制。研究者将输入图像分割为了两类并执行了一系列实验。第一类包含对转向角度有重要影响的部分;第二类包含原始图像中除去第一类中像素的所有其它像素。他们使用了如下方法来测试这些凸显的区域是否有重要影响:研究者对第一类进行了修改并保留了第二类,然后使用新图像作为 PilotNet 的输入,这会造成显著的改变。然后,研究者修改第二类并保留第一类,然后使用这个新图像作为 PilotNet 的输入,这只会给 PilotNet 的输出结果带来细微改变。图 7 说明了这种方法。第一张图是原始图像,第二张图是 PilotNet 以第一张图为输入所得到的结果,第三张图是取出的显著区域,第四张图将取出的显著区域位移一段距离后的测试图像。

图 7:实验中用于展示图像位移对转向角度的影响的图像

图 8 的图表是 PilotNet 的转向角度输出随输入图像中的像素位移的变化情况。我们可以看到,显著目标位移的结果类似于位移整张图像,而位移背景像素的结果则不一样。因此研究者确信他们在寻找图像中的最重要区域上得到了正确的结果。图 8:PilotNet 的转向角度输出随输入图像中的像素位移的变化情况

总结

这篇文章提供了一种可以寻找对转向决策有显著影响的区域的方法。另外还找到了一种测试该方法的方法。我们可以学习该文章提出的寻找区域以及测试方法。这也意味着,研发自动驾驶技术,不仅要尝试使用 AI 技术来让计算机自己学习,还需要构建用以测试学习结果的方法。

技术分析自动驾驶端到端模型深度神经网络
相关数据
自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

图像分割技术

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像索赋予相同的编号。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

推荐文章
暂无评论
暂无评论~