#汇聚感知、定位、规划控制的自动驾驶系统
自动驾驶技术在应用到车辆上之后可以通过提高吞吐量来缓解道路拥堵,通过消除人为错误来提高道路安全性,并减轻驾驶员的驾驶负担,从而提高工作效率和休息时间等诸多好处。在过去的30年间,随着传感器和技术的进步使得必要硬件的规模和价格不断减小,在工业界和学术界对于自动驾驶汽车技术的研究力度稳步加大,目前已经取得了诸多的实质性进步。

因此,本文旨在概述自动驾驶汽车软件系统领域的最新发展。本文回顾了自动驾驶汽车软件的基本组成部分,并讨论了各个领域的最新发展。自动驾驶汽车软件系统的核心能力大致可分为三类,即感知、规划和控制,这些能力与车辆与环境的交互如下图所示。此外,可以利用车对车 (V2V) 通信,通过车辆协作进一步改善感知以及规划领域。

自动驾驶汽车软件和硬件的基本组成部分

通过上图可以看出,自动驾驶汽车的软件主要包括感知,规划和控制三个大方向。

  • 感知:感知是指自主系统从环境中收集信息和提取相关知识的能力。环境感知是指发展对环境的情境理解,例如障碍物的位置、道路标志以及标记的检测以及根据语义对数据进行分类。定位是指自动驾驶汽车确定其相对于环境的位置的能力。
  • 规划:规划是指为了实现自动驾驶汽车更高阶的目标而做出有目的的决策的过程,通常是将车辆从起始位置带到目标位置,同时避开障碍物并优化设计的启发式方法。
  • 控制:控制能力是指自动驾驶汽车执行由更高级别流程生成的计划动作的能力。

文章链接: https://www.mdpi.com/2075-1702/5/1/6

感知部分

环境感知

环境感知是自动驾驶汽车的一项基本功能,它为汽车提供有关驾驶环境的重要信息,包括可自由驾驶区域和周围障碍物的位置、速度,甚至未来状态的预测。一般而言自动驾驶汽车上都会配置激光雷达、摄像头、毫米波雷达、超声波雷达等信息采集传感器来实现更高效、准确的周围环境感知。无论采用哪种传感器,感知任务的两个关键要素是路面提取和道路物体检测。

激光雷达传感器

激光雷达是一种光检测和测距设备,它以精心设计的模式每秒发送数百万个光脉冲。借助其旋转轴,它能够创建环境的动态三维地图。激光雷达是大多数现有自动驾驶汽车物体检测的核心。下图显示了3D激光雷达的理想检测结果,所有移动物体均被识别。

3D激光雷达检测到所有移动物体的理想检测结果

在真实场景中,激光雷达返回的点从来都不是完美的。处理激光雷达点的困难在于扫描点稀疏、缺失点和无组织的模式。周围环境也给感知带来了更多挑战,因为表面可能是任意和不稳定的。有时甚至很难从扫描点的可视化中感知到有用的信息。激光雷达的输出是从物体反射回来的稀疏3D点,每个点代表物体相对于激光雷达的3D位置。点的三种主要表示形式通常包括点云、特征和网格。因此,很多学术界的算法都在研究如何实现对于点云特征的更准确表达。

为了要感知3D点云信息,通常涉及两个步骤:分割和分类。有些可能包括第三步,即在时间维度上的积分,以提高准确性和一致性。点云的分割是将点进行聚类的过程,而分类是识别分割的点群的类别,例如自行车、汽车、行人、路面等。3D点云分割算法可分为五类:基于边缘、基于区域、基于属性、基于模型和基于图的各类算法。但随着如今技术的快速发展和迭代,又出现了基于深度学习算法的类别。

在进行点云的分割之后,每个点云簇需要分类为不同的对象类别。每个点云簇中嵌入的信息主要来自空间关系和点的激光雷达强度,这在对象识别中的用途非常有限。因此,大多数算法将通过一些融合机制来实现视觉检测问题。

视觉

自动驾驶汽车环境感知中的视觉系统通常涉及道路检测和道路物体检测。道路检测也包括两类:车道线标记检测和路面检测。

  • 车道线标记检测:车道线标记检测是识别道路上的车道线标记并估计车辆相对于检测到车道线的姿态。这条信息可以作为车辆位置反馈给车辆控制系统。近年来,人们在这个领域进行了大量的研究工作,并取得了较为不错的成绩。
  • 路面检测:路面检测可告知自动驾驶汽车可在不发生碰撞的情况下行驶的自由空间位置。这是任何在线路径规划和控制操作的先决条件。一般来说,方法可分为三类:基于特征、线索的检测、基于特征、线索的学习和深度学习。

对这部分感兴趣的读者可以在论文原文的第2.1.2小节中找到相关的学术论文和研究成果。

传感器融合

不同的传感器各有优缺点。需要传感器融合技术才能充分利用每个传感器的优势。在自动驾驶汽车环境感知方面,激光雷达能够进行3D 测量,并且不受环境照明的影响,但它提供的物体外观信息很少;相反,摄像头能够提供丰富的外观数据,其中包含有关物体的更多细节,但其性能在不同照明条件下并不一致;此外,摄像头不会隐式提供3D信息。考虑到上述的问题,目前基于工业界和学术界对于各类传感器融合算法开展了大量的研究并且取得了诸多出色的研究进展。相关的学术论文及研究成果可以详见论文原文的第2.1.3小节。

定位

定位是确定自车姿态并测量其自身运动的问题。这是实现自动驾驶的基本能力之一。然而,确定车辆的准确姿态(位置和方向)通常很困难,因此定位问题通常被表述为姿态估计问题。估计自车姿态的问题通常可以分为两个子问题,即姿态固定问题和航位推算问题。在姿态固定问题中,测量值与姿态通过代数或者超越方程相关联。姿态固定需要能够根据姿态(例如地图)预测测量值。在航位推算问题中,状态与观察值通过一组微分方程相关联,并且必须将这些方程积分才能导航。在这种情况下,传感器测量值不一定可以从给定的姿态推断出来。从这个意义上讲,姿态固定和航位推算相辅相成。

在定位问题上目前也有诸多的解决方案,定位车辆的最流行方法之一是卫星导航系统和惯性导航系统的融合。卫星导航系统,如GPS可以定期定位车辆的全球位置。它们的精度可以从几十米到几毫米不等,具体取决于信号强度和所用设备的质量。惯性导航系统使用加速度计、陀螺仪和信号处理技术来估计车辆的姿态,不需要外部基础设施。然而,如果不添加其他传感器,惯性导航系统的启动可能会很困难,并且误差会随着时间的推移而无限增长。有关于其它相关的定位解决方案可以阅读论文中第2.2节相关的技术细节。

规划部分

早期的自动驾驶汽车通常只是半自动驾驶,因为它们的设计功能通常仅限于执行车道跟踪、自适应巡航控制和一些其他基本功能。随着自动驾驶规划技术的快速发展,更全面的规划框架可以使自动驾驶汽车处理各种复杂的城市驾驶场景。任务规划(或路线规划)考虑的是高级的目标,例如接送任务的分配以及应走哪条路来完成任务。行为规划做出临时决策,以便与其他交通智能体正确交互并遵守规则限制,从而生成局部目标,例如,变道、超车或通过交叉路口。运动规划(或局部规划)生成适当的路径或者动作集以实现局部目标,最典型的目标是到达目标区域同时避免与障碍物碰撞。接下来,我们对此分别进行介绍。

任务规划

任务规划通常通过对反映道路或者路径网络连通性的有向图网络进行图形搜索来执行。Dijkstra算法或者A*算法等算法都是任务规划中的经典算法,感兴趣的读者也可以看下针对路线规划为主的综述性论文。

行为规划

行为规划器负责做出决策,以确保车辆遵守任何规定的道路规则,并以常规、安全的方式与其他交通智能体进行交互,同时沿着任务规划器规定的路线逐步前进。这可以通过结合本地目标设定、虚拟障碍物放置、可驾驶区域边界调整或者区域启发式成本调整来实现。

运动规划

运动规划是一个非常广泛的研究领域,应用于移动机器人和操纵臂,应用范围广泛,包括制造、医疗、应急响应、安全监视、农业和运输。在自动驾驶汽车这一研究领域,运动规划是指决定一系列动作以达到指定目标的过程,通常同时避免与障碍物发生碰撞。运动规划器通常根据其计算效率和完整性进行比较和评估。计算效率是指过程运行时间以及它如何根据配置空间的维数进行扩展。如果算法在有限的时间内终止,当存在解决方案时始终返回解决方案,否则指示不存在解决方案,则认为该算法是完整的。

运动规划的核心思想是通过将连续空间模型转换为离散模型,目前常用的一般是如下两类转换方法:

  • 组合规划方法:组合规划器旨在通过构建一个离散表示来找到完整的解决方案,该方法准确地表示原始问题,但其特点是对于特殊情况求解器具有方便的属性。
  • 基于采样的方法:基于采样的方法依赖于连续空间的随机采样,以及可行轨迹图(也称为树或路线图)的生成,其中通过检查节点和连接这些节点的边的碰撞来验证可行性。理想情况下,生成的路线图应提供所有无障碍空间的良好覆盖和连通性。然后使用路线图上的路径来构建原始运动规划问题的解决方案。

但是,在日常的自动驾驶汽车行驶过程中,许多操作环境并非静态的,因此无法预先知道。在城市环境中,行人以及周围的汽车会移动,道路会因施工或事故清理而绕行和封闭,视野也会经常受阻。自动驾驶汽车必须不断感知环境中的新变化,并能够在考虑多种不确定性的同时做出反应。不确定性来自感知传感器的精度、定位精度、环境变化和控制策略的执行,因此在实际的应用过程中,如何实现准确、舒适和高效的规划依旧是非常重要的挑战。

控制

自主系统的执行能力(通常也称为运动控制)是将意图转化为行动的过程;其主要目的是通过向硬件级别提供必要的输入来执行计划的意图,从而产生所需的运动。控制器从力和能量的角度映射现实世界中的交互,而自主系统中的认知导航和规划算法通常与车辆相对于其环境的速度和位置有关。控制系统内部的测量可用于确定系统运行情况,因此控制器可以做出反应以消除干扰并将系统的动态改变为所需状态。系统模型可用于更详细地描述所需的运动,这对于令人满意的运动执行至关重要。

反馈控制是许多应用中最常见的控制器结构。反馈控制使用测量的系统响应并主动补偿与期望行为的任何偏差。反馈控制可以减少参数变化、建模错误以及不必要的干扰的负面影响。反馈控制还可以修改系统的瞬态行为以及测量噪声的影响。然而,在控制器中仅使用反馈项可能会受到一些限制。仅反馈控制器的第一个重要限制是它对错误的响应延迟,因为它只在错误发生时才做出响应。纯反馈控制器还存在耦合响应的问题,因为对干扰、建模误差和测量噪声的响应都是由同一机制计算的。有关于控制相关的更多研究和解决方案可以参考论文中的第四节内容。

结论

近年来,随着自动驾驶技术的快速发展和迭代,各个自动驾驶系统的子模块也取得了日新月异的发展,本文就针对自动驾驶系统中的感知、规划和控制等软件系统进行了较为详细的总结和归纳,以帮助自动驾驶领域的从业者进行更好的学习。



#单目深度估计的扩散模型

原标题:Diffusion Models for Monocular Depth Estimation: Overcoming Challenging Conditions

论文链接:https://arxiv.org/pdf/2407.16698

代码链接:https://github.com/fabiotosi92/Diffusion4RobustDepth

作者单位:博洛尼亚大学

论文思路:

本文提出了一种新颖的方法,旨在解决单张图像深度估计任务中由挑战性、分布外数据带来的复杂性。首先,从那些由于没有不利因素而便于深度预测的图像开始,本文系统地生成包含全面挑战和相关深度信息的用户定义场景。这是通过利用具有深度感知控制的最前沿文本到图像扩散模型实现的,这些模型以生成高质量图像内容而著称,同时保持生成图像与源图像之间的3D结构一致性。随后,通过一种自蒸馏协议对任何单目深度网络进行微调,该协议考虑到使用本文策略生成的图像及其在简单、无挑战场景中的深度预测。针对本文的目的设计的基准测试实验展示了本文提案的有效性和多功能性。

主要贡献:

  • 本文率先使用扩散模型作为一种新颖的解决方案,解决单张图像深度估计中的挑战,特别是涉及恶劣天气条件和非朗伯面(non-Lambertian surfaces)场景的情况。
  • 通过蒸馏扩散模型的知识,本文的方法提高了现有单目深度估计模型的鲁棒性,尤其是在具有挑战性的分布外环境中。
  • 本文的方法同时应对恶劣天气和非朗伯面挑战,展示了在实现与依赖额外训练信息的专门解决方案(如[18, 27])相媲美的结果的同时,解决多个挑战性场景的潜力。
论文设计:

单目深度估计作为计算机视觉中的关键任务,由于深度学习技术的最新突破而取得了显著进展。这在多个领域有着广泛的应用,从增强机器人技术和增强现实到提高自动驾驶的安全性和精确度,特别是在由于资源或空间限制而无法依赖多张图像进行深度估计的情况下。然而,尽管单目深度估计在实际应用中具有优势,但它面临着从单张图像推断深度的挑战,这一问题被公认为具有不良设定和严重欠约束的特性。通常,解决这一挑战的方法包括通过监督方法[9, 15, 46, 61, 93, 98, 101]训练单目深度网络,使用主动传感器的标注数据,或利用在训练时使用立体图像对[29]或单目视频序列[112]的自监督技术。

最先进的模型,如DPT [69]和较新的Depth Anything [96],结合了大量数据集的见解,每个数据集的深度标注使用不同的技术提取。这种广泛的训练协议使这些模型能够在广泛的现实场景中表现出色。然而,必须强调的是,即使这些模型在许多设置中表现优异,当处理远离训练期间观察到的分布的数据时,仍面临显著挑战,例如恶劣条件(如雨天和夜间)或具有非朗伯表面的物体。这些挑战主要源于缺乏用于鲁棒模型训练的高质量标注数据,以及现有基于视觉的深度提取技术和主动传感器(如LiDAR、ToF、Kinect等)的局限性,这些技术在复杂环境中(如雨、雪或具有特定反射特性的材料)表现不佳。因此,在这些情况下的深度估计往往不可靠,对依赖准确3D信息的后续应用产生严重影响。通常,当前的方法倾向于独立解决这些挑战。有些方法专注于解决光照不足和恶劣天气的问题 [26, 27, 91],而另一些则处理非朗伯表面的问题 [18]。这些分散的方法突显了需要一种统一的方法——一个能够同时处理所有不利场景的单一框架,提供更鲁棒和通用的解决方案。

在这项工作中,本文引入了最初为图像合成设计的扩散模型[20, 44],作为一种开创性的策略,以应对那些位于通常用于训练深度估计模型的数据分布长尾部分的图像所带来的严峻挑战。

基于具有多模态控制的文本到图像扩散模型的原理[56, 106],本文旨在创建一个多样化的高度逼真的场景集合,这些场景准确复制特定参考环境的3D结构,但有意地加入了各种不利因素。重要的是,这些条件完全是任意的,可以根据特定应用的需求通过用户定义的文本提示进行定制。

更具体地说,本文的方法首先选择那些最初描绘没有与不利条件相关的复杂性的场景图像。这些样本可以从现有的现实世界数据集[17, 28, 57]中获取,通过自定义集合收集,甚至可以使用生成模型[2, 59]生成。对于预选的图像,本文采用任何现成的单目深度估计网络来提供场景的初始3D表示。重要的是,这样的模型可以在不同的大规模数据集上进行预训练,或者根据应用需求定制到特定领域。

随后,本文应用文本到图像扩散模型,将最初简单的图像转化为更复杂的图像,同时保持相同的基础3D场景结构(即深度)。在结合复杂和简单图像后,用于3D数据生成的预训练深度网络进入微调阶段。在此阶段,本文将模型暴露于组合数据集,提供具有挑战性的训练图像及其在初始步骤中获得的相应深度图。这一微调过程提升了单目网络推断深度的能力,使其能够更好地处理不利环境,如图1所示。

图1:框架结果。从上到下分别为:源图像、原始Depth Anything [96]的深度预测,以及本文微调版本的结果。

本节概述了本文的框架,如图2所示,旨在改善在不利环境下的单目深度估计。假设在一个领域中不存在同时描绘简单和复杂条件的图像,本文的方法使用具有深度感知控制的扩散模型将简单样本转换为复杂样本。随后,本文通过自蒸馏和使用生成数据的尺度和偏移不变损失来微调预训练的单目深度网络。

图2:方法概述。左侧:图像生成和自蒸馏。扩散蒸馏数据(上):简单图像()和文本提示()输入到条件扩散模型中生成不利场景()。深度标签蒸馏(下):预训练网络从简单图像()估计深度()。使用()对 进行微调,采用尺度和偏移不变损失。右侧:微调后的网络在测试中处理从简单到复杂场景的多样化输入。

图3:生成图像——天气条件。(a-b):来自KITTI 2015 [54]的RGB图像和深度图。(c-f):由扩散模型[56]生成的图像,这些图像由(b)中的深度图和每个子图中指示的文本提示条件生成。

图4:生成图像——ToM对象。从上到下分别为:来自Stable Diffusion [2]的简单场景,来自Depth Anything [96]的深度图,使用[56]生成的转换场景。

实验结果:

图5:定性结果。从上到下分别为:RGB图像、原始模型预测的深度图以及使用本文方法微调版本预测的深度图。开发板商城 天皓智联 TB上有视觉设备哦 支持AI相关~ 大模型相关也可用 whaosoft aiot自动驾驶也可以哦

总结:

本文引入了一种开创性的单目深度估计训练范式,该范式利用扩散模型来应对分布外场景。通过将简单样本转换为复杂样本,本文生成了捕捉现实世界挑战的多样化数据。本文的微调协议增强了现有深度网络的鲁棒性和泛化能力,使其能够在不需要特定域数据的情况下处理恶劣天气和非朗伯表面。跨多个数据集和最先进架构的广泛实验表明了本文方法的有效性和多功能性。