自动驾驶感知与路径规划简明教程
自动驾驶汽车的世界正在迅速发展。更先进的新型运动规划、路径规划和控制技术不断涌现,该领域中各种方法与途径的多样性充分证明了其无限的可能性。
AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
自动驾驶汽车的世界正在迅速发展。更先进的新型运动规划、路径规划和控制技术不断涌现,该领域中各种方法与途径的多样性充分证明了其无限的可能性。这里有植根于计算机科学的经典算法、基于机器学习的策略、基于规则的系统,以及基于神经网络的决策系统。
让我们深入了解这些技术,理解它们的目的,并直观地理解它们的工作原理。
1、概述、市场增长以及竞赛
自动驾驶汽车本质上是一辆传统汽车,但它配备了一套传感器套件、车载计算机和软件系统,使其能够在各种常规、非常规和动态的道路及交通情况下自主驾驶。它利用各种定位和路径规划算法来生成合适的轨迹,然后使用控制算法来引导自身沿着这些轨迹行驶。
随着 AI 的进步,自动驾驶汽车中几乎每个软件系统现在都使用了人工智能。从智能控制系统、利用深度学习的增强型目标检测软件,自动驾驶汽车使用最先进的算法来清晰理解其环境、开发 SLAM 地图,并做出比以往更安全的决策——关于遵循哪条路径/轨迹、何时加速、何时刹车,以及预测周围车辆的轨迹。
开发/测试自动驾驶汽车的公司包括:Audi、BMW、Ford、Google、General Motors、Tesla、Volkswagen、Waymo、Cruise 和 Volvo。谷歌的测试涉及一支自动驾驶车队——包括 Toyota Prii 和 Audi TT——在加利福尼亚的街道和高速公路上行驶超过 14 万英里。

技术、道路基础设施和产业参与方面的这些改进正推动自动驾驶汽车产量的扩大,正如下面描述北美市场状况的图表所清晰展示的那样。

从全球来看,2021 年全球自动驾驶汽车市场需求估计为 5.16 万辆,预计 2022 年至 2030 年将以 53.6% 的复合年增长率(CAGR)增长。
旨在改进无人驾驶技术的最著名全球竞赛之一是 DARPA 大挑战赛。这项赛事首次于 2004 年举行,由国防高级研究计划局资助,旨在促进旨在开发第一辆完全自主地面车辆的技术发展。

还有indy 自动驾驶挑战赛,它最近作为 DARPA 大挑战赛的继承者出现。这项挑战旨在为自动驾驶汽车的发展提供一个具有挑战性的环境,因为团队必须为赛道高度动态和危险的环境中的自动驾驶开发软件。

总而言之,自动驾驶技术具有颠覆性,将在未来几年彻底改变交通方式,通过研究,我们正接近开发出完全自主且可部署的 L5 级汽车。
2、感知系统
现在我们已经对自动驾驶汽车有了概述,让我们看看构成其支柱的感知系统,因为通过感知系统,AV 内的所有软件系统接收数据并产生有意义的输出。

感知系统可能因汽车及其行驶环境而异。摄像头、LiDAR、雷达等传感器将数据点、图像和云图输入软件,然后软件创建详细的周围地图(通过 V-SLAM 等技术)。通过这些地图,自动驾驶汽车在三维空间中分析周围环境,帮助其理解周围位置和物体,如高速公路、屏障、交通信号、行人和其他地标。
自动驾驶汽车感知堆栈中的不同传感器各具优缺点,因此来自这些不同传感器的信号融合将有助于实现更高的检测质量,这是另一个可探讨的主题,称为传感器融合。

自动驾驶汽车感知系统的一个重要组成部分是软件系统(传感器融合系统本身就是这样一个例子),它接收传感器收集的数据,并用其来确定合适的轨迹和控制命令。自动驾驶汽车的感知软件系统可以进一步细分为子类别,其本身就是一个不同的研究领域,但让我们关注利用计算机视觉的感知软件系统。
该系统可以接收来自车载摄像头传感器的图像和视频以及 LiDAR 的点云数据,使这些数据流经一系列步骤,最终产生可执行的操作——从生成有用的轨迹到在紧急情况下需要采取的行动。该系统可以大致分为检测部分、分类部分、跟踪部分和分割部分。每个部分都有其独特的作用,下文将进一步描述。

2.1 检测
如果从计算机视觉的角度来看检测,一个非常常见的术语——目标检测——就出现了。目标检测可以通过传统的图像处理技术或现代深度学习网络来执行。在基于深度学习网络的方法中,卷积神经网络(CNN)被应用于目标检测。
通过研究,已经开发出用于目标检测的高级 CNN 结构变体。被广泛使用的此类结构的示例包括 Mask-R-CNN、YOLOv7 和 RetinaNet。
目标检测技术可用于检测静态和动态物体(跨帧移动的物体)。这个想法可以进一步扩展到区分场景中跨多个连续帧静止和动态的代理(行人/车辆),以便能够预测它们的轨迹。

就静态物体而言,一个常见且基本的例子是检测交通灯。在这里,CNN 架构可以在一个包含交通灯的大型图像数据集上进行训练,通过考虑注释和真实数据,最终会逐渐学会在图像中定位交通灯。这里是一个研究这个问题的教程,也提供了代码。
2.2 分类
同样,分类也可以从计算机视觉和目标检测的角度来讨论。在检测到图像或视频中的不同物体之后,接下来的任务就是根据它们的类型、大小以及与 AV 的距离将其分类到不同类别中。通过深度学习的分类需要经过彻底注释的数据集,这些数据集应该多样化且能代表模型将遇到的真实场景。

自动驾驶汽车的行为受分类系统输出的影响。这些输出有助于开发 AV 周围环境的实时地图(V-SLAM),为制定驾驶决策和规划安全轨迹提供关键信息。制定驾驶决策和规划安全轨迹可以通过预测分析来实现,通过预测分析,可以预测与 AV 处于同一场景中的各种代理(车辆/行人)的轨迹。这些预测轨迹因此帮助 AV 进行决策过程。
因此,开发分类算法的另一个重要方面是其对物体进行分类的精度。物体应该被赋予正确的标签,以便它们被分配到正确的预测模型。
2.3 跟踪
在自动驾驶汽车场景中,物体跟踪成为一项关键任务。在计算机视觉中,物体跟踪涉及在图像序列或视频帧中定位和跟踪感兴趣的物体。它使自动驾驶汽车能够跟踪其场景中的不同代理,从而使车辆能够做出关于速度、车道变换和刹车的明智决策。
物体跟踪不同于预测分析,因为通过跟踪可以考虑代理的实时位置,这与生成关于其轨迹的预测不同,尽管这两项任务各有其重要性。
通过物体跟踪,自动驾驶中的一个主要挑战得以解决,即遮挡事件。当感兴趣的物体变得模糊(部分或全部)或被其他物体遮挡时,就会发生这种情况。在自动驾驶汽车场景中,当车辆在密集和不确定的环境中行驶时,遮挡事件必然会发生。

物体跟踪有助于解决遮挡事件的一种方式是:物体跟踪算法具有维持时间一致性的能力。它们可以在视频或图像序列的帧间维持物体身份的连续性。当一个物体被遮挡然后重新出现时,跟踪算法可以帮助根据运动、外观或其他特征将遮挡的物体与其先前的状态关联起来。
这就导致了被遮挡后重新出现的物体可以被再次跟踪的场景。
2.4 分割
分割是指将图像中的每个像素分类到一个类别的任务。同样在计算机视觉中,CNN、深度学习和机器学习技术被用来开发能够执行此任务的算法。使用分割的一个例子是区分可驾驶和不可驾驶的表面。这些差异可以进一步用于决策算法中。

分割有助于在最细节的层面上理解环境,因为每个像素都被标记。通过分割,可以识别场景的不同部分及其关系。这有助于计算机视觉系统建立对环境的更丰富理解。
分割之后的一步是语义分割。语义分割更进一步,为每个分割区域分配语义标签。例如,它可以区分街道场景中的道路、车辆、行人和建筑物。这种语义理解对于自动驾驶汽车等应用至关重要,因为系统需要根据周围物体的类型做出决策。
(注意,还存在感知系统的算法部分,例如定位算法或进一步用于定位的 V-SLAM。)
3、将感知系统的输出与路径规划器联系起来
一旦通过 V-SLAM 等算法实现了感知和场景理解以及地图创建和定位,从广义上看,下一步就是路径规划。其理念是以合适的数据格式来表示对场景的理解。这种表示通常包括车辆的位置和方向(位姿)、场景中物体的位置和特征,以及关于道路网络和交通规则的信息。

场景表示以及车辆的当前位姿被提供给一个高级路径规划模块。路径规划算法将场景表示和车辆当前状态作为输入,并为车辆生成合适的轨迹或路径。
这些算法旨在确定车辆应如何导航通过环境以实现其目标,同时避开障碍物、遵守交通规则并优化安全性和效率。一旦生成了高级轨迹或路径,它会被细化为可以由车辆控制系统执行的低级轨迹。
控制系统将规划好的轨迹转化为具体动作,如转向、加速和刹车,以遵循规划的路径,同时考虑车辆动力学和执行器限制。这与一个反馈系统相结合,因为汽车持续感知其实时环境,并为控制系统提供反馈,然后控制系统可能根据实时威胁调整轨迹或施加刹车。
3.1 路径规划
现在我们已经了解了感知系统如何通过生成有用的地图和定位来帮助路径规划器,让我们更深入地探讨自动驾驶汽车的路径规划。可以探索基于网格的规划器。

如果我们从一个非常简单的角度来看问题,即一个由自由路径和障碍物组成的网格世界,基于网格的规划器将根据自由路径和障碍物的位置生成最优轨迹。如果再做另一个假设,即感知系统生成的密集地图可以以某种方式简化为网格世界,那么基于网格的规划器将表现非常好。
基于网格的运动规划器的一些示例包括 A*(A-star)、Dijkstra 算法或 D*(Dynamic A*)等变体。其思路是将感知系统生成的地图离散化为规划器可以探索的网格。然而,一个挑战是处理不断增加维度的问题。
随着障碍物增多和路径变长,网格中的搜索空间会增长,这可能导致规划时间变长。可以使用高级数据结构、启发式方法或并行处理来解决这个问题。这里的思路是:更大的网格空间需要被考虑,规划时间要保持在较低水平,而计算速度要保持最优,因此一切都成了权衡。
3.2 路径规划中的挑战
进行路径规划存在若干挑战。可能存在感知系统生成的地图由于其高度复杂性而无法转换为基于网格的世界的情况。在这种情况下,可以采用一些技术和流程。
生成的地图可以保持其原始状态而不进行离散化。相反,感知系统可以识别环境的关键特征,这些关键特征可以用一种捕获其几何形状和关系的结构化格式来表示,从而使路径规划器能够推理环境。这被称为基于特征的世界表示。
还存在基于图的规划器,如 PRM(概率路线图)或 RRT(快速探索随机树)。这些规划器根据感知到的特征及其之间的连接,创建环境的图表示。然后,规划器可以探索这个图,以找到连接起点和目标位置同时避开障碍物的路径。

在这种情况下,语义分割也可以用于在传感器数据(例如摄像头图像)中识别感兴趣的物体和区域。通过这种方式,生成环境的语义丰富表示,包括关于车道、车辆、行人和其他物体的信息。语义分割输出随后可以通过指定可以避开或可以通过的区域来指导运动规划器。也可以使用深度 Q 学习等算法从这些地图中学习。
3.3 概率路线图(PRM)
如上所述,在某些情况下,生成的地图无法在网格中离散化。在这种情况下,会采用概率路线图等算法。
概率路线图在给定地图中生成一个由可能路径组成的网络图。该网络图基于地图中障碍物的位置生成。
概率路线图算法包括两个阶段:构建阶段和查询阶段。第一阶段包括构建环境的图表示。在此阶段,使用基于采样的路径规划方法。
这一阶段首先在机器人(在我们的案例中是自动驾驶汽车)的配置空间中生成随机配置。配置空间是机器人可以采取的所有位置和方向的集合。随机生成的配置代表机器人的潜在位置和方向。采样的配置会检查是否可能与障碍物碰撞,如果配置是无碰撞的,则会作为节点添加到路线图图中。

然后通过添加边来连接节点。边基于邻近性标准创建;靠近的节点被连接起来,这些连接代表配置之间的可行路径。

这个过程产生一个路线图图,其中节点代表无碰撞配置,边代表它们之间的可行路径。PRM 产生一个覆盖配置空间的连通性结构。现在就可以进入第二阶段,即查询阶段。每当收到规划请求(例如,从起始配置到目标配置找一条路径)时,PRM 使用图搜索算法在路线图中找到路径。
Dijkstra 算法或 A* 是 PRM 常用的搜索算法。现在可以使用搜索算法来探索路线图,以找到从起始节点(初始配置)到目标节点(期望配置)的路径。在图中发现的路径代表一条无碰撞的轨迹,机器人可以沿着该轨迹从起点移动到终点,同时避开障碍物。
注意,该算法没有基于 AV 感知系统生成的真实世界地图开发任何网格地图。这项技术可以进一步与计算机视觉结合,以检测和跟踪可以作为障碍物的动态物体,这些物体可以进一步添加到生成的图中以进行更好的规划。
原文链接: On Path planning for self-driving cars and its ties with the perception system
汇智网翻译整理,转载请标明出处