自动驾驶汽车如何使用卷积神经网络(CNN)技术

小时候,我喜欢看动画片中自动驾驶的汽车。我想知道这样的车是否真实存在,是否有微型机器人在里面神奇地驾驶它们。

随着我们长大,自动驾驶汽车变得真实!我对它们非常着迷。它们能理解停在停车标志和红绿灯前吗?它们能看到路上行走的动物和人吗?当外面一片漆黑或下雨下雪时,它们又如何驾驶呢?

让我们来谈谈自动驾驶汽车!这些汽车可以在没有人类驾驶员的情况下自行驾驶。特斯拉和waymo等公司使用智能计算技术,如深度学习,使这些汽车变得超级智能。深度学习帮助汽车做一些很酷的事情,比如理解道路标志,在天气恶劣的情况下安全驾驶。这一切都是关于利用先进技术来塑造我们未来的出行方式!

历史

自动驾驶汽车的历史就像一次漫长而令人兴奋的冒险。想象一下1920年代,自动驾驶汽车对人们来说仍然只是一个梦想。一个富有创造力的思维,弗朗西斯·侯丁纳(francis houdina),通过创建一辆可以沿着路上的线行驶的汽车脱颖而出。然而,它需要在路面下隐藏的特殊电线来引导它。

来源:theatlantic.com

进入20世纪80年代和90年代,卡内基梅隆大学的聪明人们正在追求一项伟大的事业。他们开发出能够使用摄像机“看见”周围情况的汽车,帮助它们在繁忙的城市街道上导航。这些汽车就像学习探险家,通过四处张望来发现如何驾驶。

然后,2004年出现了一个重要时刻,背景是一场沙漠挑战。自动驾驶汽车进入舞台,尝试进行一场艰难的比赛-虽然它们没有赢得比赛,但这是一个开始。可以将其视为它们变得更好的司机的训练场地。

然而,真正的突破发生在2000年代和2010年代,当特斯拉、优步和谷歌(现在的waymo)等主要公司进入汽车行业时。谷歌从2009年开始测试自动驾驶汽车。快进到2015年,特斯拉的汽车推出了一项功能,可以在某些道路上部分自动驾驶。它们可以处理转向和保持在道路上行驶而不需要持续人工控制。

随着更多公司加入竞争,创造完全自动驾驶汽车的竞争加剧。想象一下发明者团队正在竞相制造可以在没有人类驾驶的情况下行驶的汽车。

但故事还在继续。我们仍在致力于制造可以自行驾驶的汽车,这将改变我们的出行方式。这个冒险还在继续,这意味着由于这些高级自动驾驶汽车变得越来越好,我们可能会有更安全、更轻松的旅行。

自动驾驶汽车是如何工作的?

自动驾驶汽车就像超级聪明的决策者!它们使用摄像头,激光雷达,雷达,gps和惯性传感器来收集有关周围环境的数据。然后,被称为深度学习算法的特殊算法处理这些数据,以理解周围发生的事情。基于这种理解,它们做出重要决策以安全、平稳地行驶。

来源:arxiv.org

如果我们想弄清自动驾驶汽车是如何工作的,让我们仔细看一下上图中显示的这四个部分。这就像解谜一样——了解每个部分将帮助我们看到这些惊人汽车运行的整体图景:

  • 感知
  • 定位
  • 预测
  • 决策
    • 高级路径规划
    • 行为仲裁
    • 运动控制器

    感知

    #1. 相机

    相机就像自动驾驶汽车的眼睛——它们非常重要!它们帮助汽车知道周围发生的事情。这些相机承担着不同的任务,比如弄清楚事物是什么,分离不同的部分,找到汽车所在的位置。

    为了确保汽车不会漏掉任何事情,它的相机分布在各个位置——前方、后方、左侧和右侧。这些相机共同工作,为汽车周围的一切提供一个大的画面。就像汽车自己的特殊360度视角!

    这些相机不仅仅是为了好看。它们很聪明。有些相机可以远视到200米,所以汽车知道前方会发生什么。其他相机专注于附近的东西,这样汽车就可以密切关注细节。这个相机团队帮助汽车看到和理解一切,就像一位朋友引导着它,让它能够安全驾驶并做出正确的选择。

    有时,相机非常有帮助,比如在停车时,因为它们显示出广阔的视野,并帮助做出小心驾驶的正确选择。

    但是,仅仅使用相机来观察有问题,特别是在雾天、大雨和夜晚这样的恶劣天气。在这些情况下,相机拍摄的图片可能看起来奇怪而凌乱,这可能非常不安全。

    为了处理这些具有挑战性的情况,我们需要特殊的传感器,可以在非常黑暗甚至完全黑夜的情况下工作。它们还应该能够测量物体的距离,而不需要我们能够看见的光线。当我们将这些传感器放在车辆的眼睛(感知系统)中时,车辆在恶劣天气或视线不良时的驾驶能力变得更好。因此,汽车可以更安全地行驶,这对于所有在道路上行驶的人都是很好的。

    #2. 激光雷达(lidar)

    激光雷达(lidar)是一种使用激光来测量物体距离的高级技术。激光雷达发射激光束,并测量它们从物体返回所需的时间。

    当激光雷达和相机一起工作时,它们可以帮助汽车更清楚地理解周围的事物。它会制作一张汽车周围的3d地图。智能计算机程序可以查看这些特殊信息,并帮助汽车猜测其他车辆可能会做什么。这在道路复杂的地方很有用,比如繁忙的十字路口,因为汽车可以观察其他车辆并安全驾驶。

    然而,激光雷达(lidar)存在一些问题。虽然在夜间和黑暗环境中运行良好,但在雨雾干扰的条件下可能会遇到困难,导致感知不准确。为了解决这些问题,我们同时使用激光雷达和雷达传感器。这些传感器提供额外的信息,帮助汽车更清晰地理解事物。汽车可以以更安全、更好的方式自动驾驶。

    #3. 雷达

    雷达(radar)是指无线电探测和测距,长期以来被广泛应用于日常物品和军事领域。最初由军方用于检测物体,雷达通过无线电波信号计算距离。如今,雷达在许多汽车中至关重要,尤其是自动驾驶汽车。

    雷达很棒,因为它可以在任何天气和光线条件下工作。它使用无线电波而不是激光,使其具有灵活性和超强的实用性。然而,雷达被认为是一种嘈杂的传感器,这意味着它可以在相机看不到障碍物时检测到障碍物。

    自动驾驶汽车的智能系统可能会因来自雷达的额外信号(我们称之为“噪声”)而感到困惑。为了解决这个问题,汽车需要清理雷达信息,以便做出正确的选择。

    清理数据意味着使用特殊技巧区分强信号和弱信号,就像将重要的事物与不那么重要的事物分开一样。汽车使用一种聪明的技巧称为快速傅里叶变换(fft)来更好地理解信息。

    雷达和激光雷达提供关于单个点的信息,就像纸上的点。为了更好地理解这些点,汽车使用类似分组的方法。就像你将相似的事物放在一起一样。汽车使用聪明的统计方法,如欧几里得聚类或k均值聚类,将相似的点组合起来并理解它们。这使得汽车能够更智能、更安全地驾驶。

    定位

    在自动驾驶汽车中,定位算法在确定车辆位置和方向方面起着至关重要的作用,称为视觉里程计(vo)。vo通过识别和匹配连续视频帧中的关键点来实现。

    汽车会查看信息中的特殊点,就像地图上的标记一样。然后,汽车使用称为slam的统计方法来找出事物的位置和移动方式。这有助于汽车了解周围的事物,如道路和行人。

    为了更好地做到这一点,汽车使用了一种称为深度学习的方法。就像超级智能计算机一样。

    这些技巧使得汽车在理解事物方面非常出色。神经网络如posenet和vlocnet++利用点数据估计物体的三维位置和方向。这些估计的三维位置和方向可以用来推导场景语义,如下图所示。当汽车使用数学和聪明的计算机技巧时,它知道自己在哪里,周围有什么。这有助于汽车自主安全、平稳地行驶。

    预测

    理解人类驾驶员确实是一项复杂的任务,因为它涉及情感和反应,而不是直接的逻辑。因为我们不知道其他驾驶员会做什么,所以对于自动驾驶汽车来说,对他们的行为做出良好的猜测非常重要。这有助于确保道路安全。

    想象一下,自动驾驶汽车有像360度视野一样的眼睛。这让它们能够看到发生的一切。它们使用这些信息进行深度学习。汽车使用聪明的技术来预测其他驾驶员可能会做什么。这类似于玩一个计划未来行动的游戏。

    使用深度学习进行预测

    自动驾驶汽车中的特殊传感器就像它们的眼睛。它们帮助汽车识别图片中的物体,寻找周围的东西,了解自己的位置,并看到事物的终点。这有助于汽车确定附近的事物并做出明智的选择。

    在训练过程中,深度学习算法从来自激光雷达和雷达的图像和云数据点中建模复杂的信息。在实际驾驶中(推理过程),同样的模型帮助汽车准备可能的动作,包括制动、停车、减速、变道等等。

    深度学习就像汽车的智能助手。它使汽车能够理解不确定的事物、确定自己的位置并驾驶得更好。这使得驾驶更安全、更顺畅。

    但是,棘手的部分是在几个选择中决定最佳的动作。选择正确的动作需要仔细思考,以便汽车能够驾驶得好并保持安全。

    决策

    在棘手的情况下,自动驾驶汽车必须做出重要的选择,但这并不容易。这是因为传感器可能不总是正确的,路上的人可能会做出意外的动作。汽车必须猜测其他人会做什么并采取措施避免碰撞。

    为了做出选择,汽车需要大量的信息。汽车使用传感器收集这些信息,然后使用深度学习算法了解事物的位置并预测可能发生的情况。定位帮助汽车确定初始位置,而预测则根据环境生成多种可能的动作。

    然而,问题仍然存在:汽车如何在众多预测动作中选择最佳动作?

    来源:semanticscholar.org

    深度强化学习(drl)是一种用于做出决策的技术,它使用一种名为马尔可夫决策过程(mdp)的算法。mdp有助于猜测未来的道路上的人们可能会采取的行动。当有更多的事物在周围移动时,情况变得更加复杂。这意味着自动驾驶汽车必须考虑更多可能的动作。

    为了解决为汽车找到最佳动作的挑战,使用贝叶斯优化来优化深度学习模型。在某些情况下,还可以使用结合了隐藏马尔可夫模型和贝叶斯优化的框架进行决策,使自动驾驶汽车能够在各种复杂情景中有效安全地导航。

    来源:arxiv.org

    自动驾驶汽车的决策过程包括四个关键组成部分:

    路径规划:在旅程开始时,汽车确定从当前位置到目标位置的最佳路线。目标是在各种可能的路线中找到最优解。

    行为调节:车辆在规划路径后必须通过它进行转向。车辆能感知到静态物体,如道路和十字路口,但无法预料其他驾驶员的具体行动。为了处理这种不确定性,我们使用智能方法,如马尔可夫决策过程(mdps)进行规划。

    顶级状态机的场景决策

    运动规划:在规划路径和行为层确定如何导航的情况下,运动规划系统协调车辆的运动。这意味着确保车辆以对乘车人来说既安全又舒适的方式移动。它会考虑诸如车速、变道和周围环境等因素。

    车辆控制:最后一步是车辆控制,执行运动规划系统生成的参考路径,确保车辆平稳且安全地遵循预定轨迹。

    通过将决策分解为这些不同的部分,自动驾驶汽车可以在复杂的地方行驶得很好且安全。这确保乘客有一次平稳而舒适的乘车体验。

    卷积神经网络

    卷积神经网络(cnn)在自动驾驶汽车中被广泛使用,因为它们能够模拟空间信息,特别是图像。cnn在从图像中提取特征方面表现出色,这对于解决许多不同的问题很有帮助。

    在cnn中,随着网络深度的增加,不同的层捕获不同的模式。早期的层次可以检测简单的特征,如边缘,而更深的层次可以识别更复杂的特征,例如物体形状(如树上的叶子或车辆上的轮胎)。这种适应性是cnn成为自动驾驶汽车中的核心算法的原因。

    cnn的核心组件是卷积层,它利用卷积核(过滤矩阵)来处理输入图像的局部区域。

    卷积核在训练过程中更新以获得有意义的权重。cnn的一个基本属性是权重共享,即相同的权重参数用于表示不同的变换,节省处理空间并实现多样化的特征表示。

    卷积层的输出通常经过非线性激活函数,如sigmoid、tanh或relu。relu比其他函数更受青睐,因为它的收敛速度更快。此外,结果通常经过最大池化层。这会保留图片中的重要细节,如背景和纹理。

    cnn的三个基本属性使其在自动驾驶汽车中具有多功能性和基础性:

    • 局部感知场
    • 权重共享
    • 空间采样

    这些属性降低了过拟合,并存储了对于图像分类、分割、定位等至关重要的表示和特征。

    以下是一些在自动驾驶汽车上使用的cnn网络:

    • tesla的hydranet
    • 谷歌waymo的chauffeurnet

    了解更多关于卷积神经网络的信息。

    #1. 特斯拉的hydranet

    hydranet是ravi等人在2018年提出的一种动态架构,主要用于自动驾驶汽车的语义分割。其主要目标是提高推理过程中的计算效率。

    hydranet的概念包括将不同的cnn网络(称为分支)分配给特定任务。每个分支接收各种输入,网络可以选择在推理过程中运行哪些分支,最终汇集不同分支的输出以做出最终决策。

    特斯拉的hydranet

    在自动驾驶汽车的背景下,输入可以表示环境的不同方面,例如静态物体(树木和道路栏杆)、道路和车道、交通信号灯等。这些输入在单独的分支中进行训练。在推理过程中,门机制决定激活哪些分支,组合器收集它们的输出以做出最终决策。

    速度、车道和运动检测

    特斯拉已经改进了hydranet架构,引入了共享的骨干网以解决推理过程中为各个任务隔离数据的挑战。共享的骨干网通常是修改后的resnet-50块,它允许网络在所有物体的数据上进行训练。基于语义分割架构(如u-net)的任务特定头部使模型能够预测每个任务特定的输出。

    特斯拉的hydranet通过能够投影鸟瞰图来脱颖而出,从任何角度创建环境的三维表示。这种增强的维度有助于汽车更好地导航。值得注意的是,特斯拉在不使用lidar传感器的情况下实现了这一点。相反,它仅依赖于两个传感器:摄像头和雷达。特斯拉的hydranet的高效性使其能够处理来自八个摄像头的信息并生成深度感知,展示了令人印象深刻的能力,而无需额外的lidar技术。

    #2. 谷歌waymo的chauffeurnet

    chauffeurnet是谷歌waymo使用模仿学习训练自动驾驶汽车的基于rnn的神经网络。虽然它主要依赖rnn生成驾驶轨迹,但它还包含了一个称为featurenet的cnn组件。

    这个卷积特征网络提取其他网络共享的上下文特征表示,并用于从感知系统中提取特征。

    来源:researchgate

    chauffeurnet的概念是通过模仿学习训练自动驾驶汽车,模仿专家驾驶员。为了克服现实世界训练数据不足的局限性,论文“chauffeurnet: learning to drive by imitating the best and synthesizing the worst”的作者引入了合成数据。

    这项合成数据引入了各种偏差,例如扰动轨迹路径、添加障碍物和创建不自然的场景。使用合成数据训练车辆比仅使用真实数据更有效。

    在chauffeurnet中,感知系统不是端到端过程的一部分,而是作为中间级系统。这使网络能够从感知系统获得各种输入变化。网络从传感器中观察到场景的中级表示,并利用这些输入以及合成数据来模仿专家驾驶行为。

    通过剥离感知任务并创建环境的高级鸟瞰图,chauffeurnet实现了更容易的迁移学习,使网络能够基于真实和模拟数据做出更好的决策。网络通过迭代预测驾驶路径中的连续点来生成驾驶轨迹,这种方法在训练自动驾驶汽车方面显示出了更高的效果,为更安全、更可靠的自动驾驶系统提供了一条道路。

    #3. 用于自动驾驶汽车的部分可观测马尔可夫决策过程

    部分可观测马尔可夫决策过程(pomdp)是一种数学框架,用于处理自动驾驶汽车在不确定性情况下做出决策。在现实世界的场景中,由于传感器噪声、遮挡或不完美的感知系统,自动驾驶汽车通常对其环境的信息有限。pomdp旨在处理这种部分可观测性,并通过考虑不确定性和可用观察结果做出最佳决策。

    在pomdp中,决策制定代理在一个具有部分可观测状态的环境中运作。代理采取行动,环境以概率转移到新的状态。然而,代理只收到关于环境真实状态的部分观测或噪声信息。目标是找到一种策略,在考虑环境和代理观察的不确定性的同时,最大化随时间累积奖励的期望。

    来源:researchgate 

    在自动驾驶汽车的背景下,pomdp对于动作规划、轨迹预测和与其他道路使用者的交互等任务特别有用。自动驾驶汽车可以使用pomdp来决定车道变更、速度调整以及与行人和其他车辆的交互,考虑周围环境的不确定性。

    pomdp具有六个组成部分,并可以表示为pomdp

    m:= (i, s, a, r, p, γ)

    其中:

    i:观察

    s:有限状态集

    a:有限动作集

    r:奖励函数

    p:转移概率函数

    γ:未来奖励的折扣因子。

    由于需要考虑多个可能的状态和观察,pomdp可能具有计算上的挑战。然而,通常会采用先进的算法,如置信空间规划和蒙特卡洛方法,以有效近似最优策略,并实现自动驾驶汽车的实时决策。

    自动驾驶汽车能够将pomdp纳入其决策算法中,考虑传感器读数的不确定性,并做出明智的决策以实现其预期目标,从而更有效、更安全地在复杂和不确定的环境中导航。

    自动驾驶汽车作为一个代理机构,通过与环境的交互来学习,使用一种称为“强化学习”的机器学习方法。状态、动作和奖励是“深度强化学习(drl)”核心的三个重要变量。

    状态:描述自动驾驶汽车在给定时间内的当前情况,如其在道路上的位置。

    动作:表示汽车可以采取的所有可能动作,包括车道变更或速度调整等决策。

    奖励:在汽车采取特定动作时向其提供反馈。奖励可以是正面或负面的,drl的目标是最大化累积奖励。

    与监督学习不同,监督学习明确给出正确的动作,drl通过探索环境并根据其动作获得奖励来学习。自动驾驶汽车的神经网络是在感知数据上进行训练的,其中包括由卷积神经网络(cnn)提取的特征。

    然后,drl算法在这些表示上进行训练,这些表示是输入的低维变换,在推理过程中决策更加高效。

    在真实场景中训练自动驾驶汽车是危险且不切实际的。相反,它们在模拟器中进行训练,这样可以保证人类安全。

    一些开源模拟器包括:

    – carla
    – summit
    – airsim
    – deepdrive
    – flow

    通过将感知数据与强化学习相结合,自动驾驶汽车可以学习在复杂环境中导航,做出安全和最优的决策,并在处理真实驾驶场景时变得更加娴熟。

    常见问题解答:

    什么是自动驾驶汽车?
    自动驾驶汽车通常被称为无人驾驶汽车,它们是配备先进传感器和人工智能的汽车,能够自主导航和驾驶。这些车辆使用摄像头、激光雷达、雷达和复杂的算法来评估环境并作出驾驶判断。

    自动驾驶汽车安全吗?
    在自动驾驶汽车的开发中,安全是首要考虑因素。为确保它们遵守高安全标准,这些车辆需要经过严格的测试和模拟。尽管在测试过程中发生过事故,但最终目标是使自动驾驶汽车比人驾驶的车辆更安全。

    自动驾驶汽车可以在任何天气下使用吗?
    恶劣天气,如大雨或大雪,可能会对自动驾驶汽车造成问题。不利的天气可能会降低传感器的准确性并影响驾驶能力。工程师们不断努力让这项技术在恶劣天气条件下更好地运行。

    自动驾驶汽车-它们被允许吗?

    自动驾驶车辆的合法性因国家和地点而异。许多司法管辖区正在修订其法律和法规以适应自动驾驶车辆。在某些地区,已经允许进行自动驾驶汽车测试和有限部署。

    自动驾驶车辆是否需要人类干预?

    目前大多数可用的自动驾驶汽车处于2级或3级自动化阶段,可能需要有时需要人类援助。然而,该行业力求达到更高级别的自动化,例如4级或5级,人类干预变得最小或不必要。

    结论

    总之,自动驾驶汽车有能力通过提高道路效率和安全性来改变汽车行业。我们研究了支持这些自动驾驶车辆的所有关键组件,包括lidar、radar、摄像头和先进算法。

    虽然进展是令人鼓舞的,但仍然有重要的挑战需要解决。目前,自动驾驶汽车处于5级进阶中的2级,某些情况下需要人类干预。然而,通过持续的奉献和创新,我们正在逐渐接近实现完全自主。

    主要收获

    算法进一步优化:进一步优化算法对于提高道路感知尤其是在道路标记和标志缺失的复杂条件下至关重要。

    传感器模态优化:提高传感器模态在绘图和定位方面的准确性和效率将对实现更高级别的自主至关重要。

    车辆对车辆通信:通过推进车辆对车辆通信,可以创建一个相互连接和智能的道路生态系统。

    人机交互:鼓励公众接受自动驾驶技术将需要研究和解决与人机交互相关的问题。

    未来前景:尽管存在困难,但到目前为止取得的成就是显着的,并且通过持续的合作和研究,自动驾驶汽车为每个人提供了提供更安全和更有效的交通环境的潜力。

    我们都在朝着完全自主的自动驾驶汽车的旅程上前进。随着我们解决挑战和推动创新,我们离车辆顺利管理道路、提高安全性、改善环境和便利性的时代越来越近。

    现在您可以了解关于空间计算及其在自动驾驶汽车开发中的应用。

类似文章