自动驾驶合集9

#自动驾驶数据集全面调研

自动驾驶技术在硬件和深度学习方法的最新进展中迅速发展,并展现出令人期待的性能。高质量的数据集对于开发可靠的自动驾驶算法至关重要。先前的数据集调研试图回顾这些数据集,但要么集中在有限数量的数据集上,要么缺乏对数据集特征的详细调查。为此,这里从多个角度对超过200个自动驾驶数据集进行了详尽的研究,包括传感器模态、数据大小、任务和上下文条件。引入了一种新的评估每个数据集影响的度量标准,该标准还可以成为建立新数据集的指南。进一步分析了数据集的标注过程和质量。此外,对几个重要数据集的数据分布进行了深入分析。最后,讨论未来自动驾驶数据集的发展趋势。

当前行业的概述

自动驾驶(AD)旨在通过创建能够准确感知环境、做出智能决策并在没有人类干预的情况下安全行驶的车辆,彻底改变交通系统。由于令人激动的技术发展,各种自动驾驶产品已在多个领域实施,例如无人出租车。这些对自动驾驶的快速进展在很大程度上依赖于大量的数据集,这些数据集帮助自动驾驶系统在复杂的驾驶环境中变得稳健可靠。

近年来,自动驾驶数据集的质量和种类显著增加。数据集开发的第一个显著现象是各种不同的数据收集策略,包括通过仿真器生成的合成数据集和从真实世界记录的数据集等。其次,数据集在组成方面也各种各样,包括但不限于多种感知数据(如相机图像和LiDAR点云)以及用于自动驾驶各个任务的不同标注类型。下图1以俯视图的方式显示了六个真实世界数据集(Argoverse 2 、KITTI 、nuScenes 、ONCE 、Waymo 和ZOD )的3D目标边界框分布的统计数据,展示了每个数据集的独特标注特性。

根据传感器的设备位置,数据集的多样性还体现在感知领域中,包括车载、V2X、无人机等。此外,几何多样性和天气条件的改变提高了自动驾驶数据集的泛化能力。

为什么研究?动机是什么?

下图2中展示了每年发布的感知数据集数量,以从一个角度反映自动驾驶数据集的趋势。由于存在大量且不断增加的公开发布的数据集,对自动驾驶数据集进行全面调查对推动学术和工业研究非常有价值。在先前的工作中,Yin等人总结了27个在公共道路上收集的数据的公开可用数据集。[35]除了描述现有数据集,讨论了合成数据和真实数据之间的域适应以及自动标注方法。[36]总结了现有数据集,并对下一代数据集的特征进行了详尽的分析。然而,这些调查仅总结了少量数据集,导致范围不够广泛。AD-Dataset 收集了大量数据集,但缺乏对这些数据集属性的详细分析。与对所有类型的数据集进行研究相比,一些研究人员对特定类型的自动驾驶数据集进行了调查,例如异常检测、合成数据集、3D语义分割和决策。

因此,本文的目标是提出一项全面而系统的研究,涵盖自动驾驶中的大量数据集,从感知到控制的所有任务,考虑真实世界和合成数据,并深入了解若干关键数据集的数据模态和质量。在下表I中对比了其他数据集调查和作者的调查。

主要贡献

本文的主要贡献可总结如下:

  • 对自动驾驶数据集进行了全面调查。尽可能全面地考虑公开可用数据集,记录它们的基本特征,如发布年份、数据大小、传感器模态、感知领域、几何和环境条件以及支持任务。据我们所知,本工作提供了迄今为止记录的最广泛的自动驾驶数据集概述。

  • 系统地说明了收集自动驾驶数据的传感器和感知领域。此外,描述了自动驾驶的主要任务,包括任务目标、所需数据模态和评估指标。

  • 根据感知领域和支持任务对数据集进行了总结和划分,以帮助研究人员高效选择和收集目标数据集的信息。从而促进更有针对性和有效的研究和开发工作。

  • 此外,引入了一个影响分数度量标准,评估了在社区中发布的感知数据集的影响力。这个指标也可以作为未来数据集开发的指导。深入分析了具有最高分数的数据集,突出它们的优势和效用。

  • 调查了数据集的标注质量以及各种自动驾驶任务的现有标注程序。

  • 进行了详细的数据统计,展示了不同角度的各种数据集的数据分布,展示了它们固有的限制和适用情况。

  • 分析了最近的技术趋势,并展示了下一代数据集的发展方向。还展望了大语言模型进一步推动未来自动驾驶的潜在影响。

范围与局限性

本文的目标是对现有的自动驾驶数据集进行详尽调查,以提供对该领域未来算法和数据集的开发提供帮助和指导。收集了侧重于四个基本自动驾驶任务的数据集:感知、预测、规划和控制。由于有几个多功能数据集支持多个任务,作者只在它们主要支持的主要范围中解释它们,以避免重复介绍。此外,收集了大量数据集,并以它们的主要特征展示在表格中。然而,对所有收集到的数据集进行详细解释可能无法突显最受欢迎的数据集,可能会妨碍研究人员通过这项调查找到有价值的数据集。因此,只详细描述了最有影响力的数据集。

文章结构

本文的其余部分结构如下:第二节介绍了用于获取公共数据集以及数据集的评估指标的方法。第三节展示了自动驾驶中使用的主要传感器及其模态。第四节讨论了自动驾驶任务、相关挑战和所需数据。在第五节进一步讨论了几个重要的数据集。在第六节展示了标注过程和影响标注质量的因素。此外,在第七节对几个数据集的数据分布进行了统计。在第八节中,调查了自动驾驶数据集的发展趋势和未来工作。最后,在第九节总结。此调查的分类结构如下图3所示。

方法论介绍

本节包括1) 如何收集和筛选数据集(II-A),以及2) 如何评估数据集对自动驾驶领域的影响(II-B)。

数据集收集

作者遵循[42]的方法进行系统性的回顾,以详尽收集已发布的自动驾驶数据集。为确保来源的多样性,作者利用了知名的搜索引擎,如Google、Google Scholar和Baidu来搜索数据集。为了确保从各个国家和地区全面收集数据集,使用英语、中文和德语进行搜索,使用关键词如“autonomous driving datasets”、“intelligent vehicle datasets”以及与目标检测、分类、跟踪、分割、预测、规划和控制相关的术语。

此外,在IEEE Xplore和自动驾驶及智能交通系统领域的相关会议中搜索,以收集来自期刊和会议论文集的数据集。通过关键词搜索和手动标题审查验证了这些来源的数据集。

最后,为了确保包括专业或较少知名的数据集,作者通过Github仓库和Paperwithcodes进行了搜索。类似于数据库,对数据集进行了手动和基于关键词的搜索。

数据集评估指标

作者引入了一个新的度量标准,即影响分数(impact score),用于评估已发布数据集的重要性,这也可以作为准备新数据集的指南。在本节中,详细解释了计算自动驾驶数据集影响分数的方法。

为了进行公平和可比较的比较,作者仅考虑与感知领域相关的数据集,因为感知领域占据了自动驾驶数据集的很大一部分。此外,为了确保评分系统的客观性和可理解性,考虑了各种因素,包括引用次数、数据维度和环境多样性。所有的值都是从官方论文或开源数据集网站收集而来。

环境多样性评分。根据以下因素评估数据集的环境多样性:

  1. 天气条件,例如雨雪。

  2. 白天或黄昏等数据收集时间。

  3. 驾驶场景的类型,例如城市或乡村。

  4. 几何范围指的是数据记录的国家或城市数量。

数据源和自动驾驶中的协同感知

本节介绍主要用于自动驾驶的传感器及其模态。此外,分析了数据采集和通信领域,如车载、无人机和V2X的协同感知。

数据的传感器和模态

高效而准确地从周围环境中收集数据是自动驾驶可靠感知系统的关键。为了实现这一目标,在自动驾驶车辆和基础设施上使用了各种类型的传感器。传感器的示例如下图 4 所示。最常用的传感器是相机、LiDAR 和Radar。事件型和热成像相机也安装在车辆或道路旁边,以进一步提高感知能力。

RGB 图像。RGB 图像通常由单目、双目或鱼眼相机记录。单目相机提供不带深度的 2D 视图;双目相机通过其双镜头提供深度感知;鱼眼相机使用广角镜头捕捉广阔的视野。所有这些相机通过透镜将光传导到图像传感器(例如 CMOS),将这些光转换为表示图像的电子信号。如下图 5 (a) 所示,2D 图像捕捉环境的颜色信息、丰富的纹理、模式和视觉细节。由于这些特性,RGB 图像主要用于检测车辆和行人,并识别道路标志。然而,RGB 图像容易受到低照明、雨、雾或耀斑等条件的影响 。

LiDAR 点云。LiDAR 使用激光束测量传感器与目标之间的距离,从而创建 3D 环境表示 。LiDAR 点云(如下图 5 (b) 所示)提供高分辨率的精确空间信息,可以检测长距离内的目标。然而,这些点的密度会随着距离的增加而减小,导致远处目标的表示更为稀疏。天气条件,如雾,也会限制 LiDAR 的性能。总体而言,LiDAR 适用于需要 3D 简要信息的情况。

Radar点云。Radar通过发射射频波并分析其反射来检测目标、距离和相对速度。此外,Radar在各种天气条件下都具有很强的鲁棒性 。然而,Radar点云通常比 LiDAR 数据更粗糙,缺乏目标的详细形状或纹理信息。因此,Radar通常用于辅助其他传感器。下图 5 (c) 展示了Radar点云。

事件相机。事件型相机异步捕捉数据,仅在像素检测到亮度变化时才激活。捕捉到的数据称为事件(如图 5 (d) 所示)。由于采用了特定的数据生成方法,记录的数据具有极高的时间分辨率,并且可以捕捉快速运动而不模糊 。

热成像相机的红外图像。热成像相机(见下图 5 (e))通过捕捉红外辐射来检测热特征 。由于基于温差生成图像,热成像相机可以在完全黑暗中工作,并且不受雾或烟影响。然而,热成像相机无法分辨颜色或详细的视觉图案。此外,与光学相机相比,红外图像的分辨率较低。

惯性测量单元(IMU)。IMU 是一种电子设备,用于测量并报告目标的特定力、角速度,有时还有目标周围的磁场 。在自动驾驶中,它用于跟踪车辆的运动和方向。虽然 IMU 不包含周围环境的视觉信息,但通过将 IMU 的数据与其他传感器的数据融合,感知系统可以更准确、更鲁棒地跟踪车辆的运动和方向。

作者从收集的数据集中分析传感器的分布,如下图 6 所示。超过一半的传感器是单目相机(53.85%),这是因为它们价格低廉且性能可靠。此外,93 个数据集包含 LiDAR 数据,由于其高分辨率和精确的空间信息而受到重视。然而,由于高昂的成本,限制了 LiDAR 的广泛使用。除 LiDAR 点云外,29 个数据集利用双目相机捕捉深度信息。此外,分别包含Radar、热像相机和鱼眼相机的数据集比例分别为5.41%、3.42%和1.71%。考虑到以事件为基础的相机捕捉动态场景的时间效率,有三个数据集生成基于事件的相机数据。

传感域和协同感知系统

自动驾驶系统中,自车与周围环境中其他实体之间的感知数据和通信起着至关重要的作用,确保了自动驾驶系统的安全性、效率性和整体功能性。因此,传感器的位置决定了可以收集的数据的质量、角度和范围,因此非常关键。总体而言,在自动驾驶环境中,传感器可以分为以下几个领域:自车、车联网(V2X)、无人机和其他。

自车:自车传感器直接安装在自动驾驶车辆上,通常包括相机、LiDAR、Radar和惯性测量单元(IMU)。这些传感器提供了车辆视角的直接视图,即时反馈车辆周围的情况。然而,由于车辆检测范围的限制,自车传感器可能在提供盲点内障碍物的预警或检测急弯附近的危险方面存在局限性。

车联网(V2X):车联网包括车辆与交通系统中的任何其他组件之间的通信,包括车辆对车辆(V2V)、车辆对基础设施(V2I)和车辆对网络(V2N)(如下图7所示)。除了直接的感知输入外,协同系统确保多个实体协同工作。

  1. 车到车(V2V) V2V使附近的车辆能够共享数据,包括它们的位置、速度和传感器数据,如相机图像或LiDAR扫描,有助于更全面地了解驾驶场景。

  2. 车到基础设施(V2I) V2I促进了自动驾驶车辆与基础设施组件之间的通信,例如交通灯、标志或路边传感器。嵌入在道路基础设施中的传感器,包括相机、LiDAR、Radar或基于事件的相机,协同工作以扩展感知范围并提高自动驾驶车辆的情境感知。在这项调查中,作者将通过基础设施或V2I进行的感知都归类为V2I。

  3. 车到网络(V2N) V2N指的是在车辆和更广泛的网络基础设施之间交换信息,通常利用蜂窝网络为车辆提供对云数据的访问。V2N通过共享跨区域数据或提供有关交通拥堵或道路封闭的实时更新,帮助V2V和V2I的合作感知。

无人机(Drone):无人机提供了一种空中视角,提供了轨迹预测和路径规划所需的数据。例如,来自无人机的实时数据可以集成到交通管理系统中,以优化交通流并提醒自动驾驶车辆前方的事故。

其他  未由前三种类型收集的数据被定义为其他,例如安装在非车辆目标上或多个领域的其他设备。

自动驾驶中的任务

这一部分深入介绍了自动驾驶中的关键任务,如感知和定位、预测以及规划和控制。自动驾驶流程的概览如下图8所示。详细说明它们的目标、它们所依赖的数据的性质以及固有的挑战。图9展示了自动驾驶中若干主要任务的示例。

感知和定位

感知侧重于根据感知数据理解环境,而定位确定自动驾驶车辆在该环境中的位置。

2D/3D 目标检测

2D或3D目标检测旨在识别和分类驾驶环境中的其他实体。而2D目标检测在图像空间中识别目标,3D目标检测进一步整合由LiDAR提供的精确深度信息。尽管检测技术取得了显著进展,但仍存在一些挑战,如目标遮挡、光照变化和多样的目标外观。

通常情况下,使用AP度量来评估目标检测性能。根据[1],AP度量可表述为:

2D/3D 语义分割

语义分割涉及将图像的每个像素或点云的每个点分类到其语义类别。从数据集的角度来看,保持细粒度的目标边界并管理大量标签要求对这个任务来说是一个重要的挑战。

正如中提到的,用于分割的主要度量标准包括平均像素准确率(mPA):

目标跟踪

目标跟踪监控单个或多个目标随时间的轨迹。这项任务需要时间序列的RGB数据、LiDAR或Radar序列。通常,目标跟踪包括单目标跟踪或多目标跟踪(MOT)。

多目标跟踪准确度(MOTA)是用于多目标跟踪的广泛使用的度量,它结合了假反例、假正例和不匹配率(参见方程9):

此外,与其考虑单一阈值不同,Average MOTA(AMOTA)是基于所有目标置信阈值计算的。

高精度地图

高精度地图的目标是构建详细、高度准确的表示,其中包括有关道路结构、交通标志和地标的信息。一个数据集应该提供LiDAR数据以获取精确的空间信息,以及相机数据以获取视觉细节,以确保建立的地图准确性。

根据,高精度地图自动化和高精度地图变更检测越来越受到关注。通常,高精度地图的质量是通过准确度度量来估算的。

SLAM

同时定位与建图(SLAM)涉及构建周围环境的同时建图,并在该地图中定位车辆。因此,来自相机、用于位置跟踪的IMUs以及实时LiDAR点云的数据是至关重要的。引入了两个评估指标,相对位姿误差(RPE)和绝对轨迹误差(ATE),用于评估从输入RGB-D图像估计的轨迹的质量。

预测

预测是指对周围agents的未来状态或行为进行预测。这种能力确保在动态环境中更安全地导航。预测使用了一些评估指标,例如均方根误差(RMSE):

轨迹预测

利用来自相机和LiDAR等传感器的时间序列数据,轨迹预测涉及预测其他实体(如行人、骑车人或其他车辆)未来的路径或移动模式。

行为预测

行为预测预测其他道路使用者的潜在动作,例如车辆是否会变道。训练行为预测模型依赖于具有广泛标注的数据,因为在不同情境中实体可能采取各种潜在动作。

意图预测

意图预测侧重于推断目标行为背后的意图的高级目标,涉及对人类目标的物理或心理活动进行更深层次的语义理解。由于任务的复杂性,它不仅需要来自感知相机等传感器的数据,还需要其他信息,如交通信号和手势,以推断其他agents的意图。

规划与控制

  1. 规划: 规划代表对感知环境和预测做出反应的决策过程。经典的三级分层规划框架包括路径规划、行为规划和运动规划。

    1. 路径规划: 路径规划,也称为路线规划,涉及设定长期目标。这是一个高层次的过程,确定到达目的地的最佳路径。

    2. 行为规划: 行为规划位于框架的中层,与决策制定相关,包括变道、超车、合并和十字路口穿越等。这个过程依赖于对其他agents行为的正确理解和交互。

    3. 运动规划: 运动规划处理车辆实时应该遵循的实际轨迹,考虑到障碍物、道路状况和其他道路agents的预测行为。与路径规划相反,运动规划生成实现局部目标的适当路径。

  2. 控制: 自动驾驶中的控制机制管理自动驾驶汽车如何执行来自运动规划系统的决定的路径或行为,并纠正跟踪误差。它将高级命令转换为可执行的油门、刹车和转向命令。

端到端自动驾驶

端到端自动驾驶是指单个深度学习模型处理从感知到控制的所有任务,绕过传统的模块化流程。这样的模型通常更具适应性,因为它们通过学习来调整整个模型。它们的固有优势在于简单性和效率,通过减少手工制作组件的需求。然而,实施端到端模型面临着关键限制,如大量的训练数据需求、低解释性和不灵活的模块调整。

对端到端自动驾驶进行大规模基准测试可以分为闭环和开环评估。闭环评估基于仿真环境,而开环评估涉及根据来自真实世界数据集的专业驾驶行为评估系统的性能。

高影响力数据集

本节描述了在感知、预测、规划和控制领域中的具有里程碑意义的自动驾驶数据集。还展示了端到端自动驾驶的数据集。

感知数据集

感知数据集对于开发和优化自动驾驶系统至关重要。它们通过提供丰富的多模态感知数据,确保对周围环境进行有效感知和理解,从而增强车辆的可靠性和稳健性。

作者利用提出的数据集评估指标计算收集的感知数据集的影响分数,随后根据这些分数选择前50个数据集,以创建一个按时间顺序排列的概述,如下图10所示。同时,如前章节中所述,将数据集分为车载、V2X、无人机和其他,从每个类别中选择一个子集,编制一个包含50个数据集的综合表格(下表II)。值得注意的是,表中的数据集是按照其各自类别内的影响分数进行排序的,不代表总体的前50。在以下部分,作者选择了每个感知来源中影响分数最高的几个数据集,并考虑它们的发布年份。

车载

  • KITTI: KITTI  自2012年发布以来,深刻影响了自动驾驶领域。KITTI包含通过各种传感器记录的各种真实驾驶场景,包括相机、LiDAR和GPS/IMU。其丰富的标注和高分辨率的传感器数据促进了在各种自动驾驶任务(如目标检测、跟踪、光流、深度估计和视觉里程计)方面的算法开发和基准测试。

  • Cityscapes: Cityscapes  包括在复杂城市环境中明确捕获的大量图像。通过精心标注,Cityscapes为30个不同的目标类别提供像素级分割,其中包括各种车辆类型、行人、道路和交通标志信息。由于其复杂性和丰富性,Cityscapes已成为诸如城市场景中语义分割等任务的标准基准。

  • SYNTHIA: SYNTHIA  是自动驾驶领域的合成数据集。该数据集包含13,400张图像,具有语义分割的逐像素标注。SYNTHIA的一个显著特点是它能够弥合现实世界和合成数据之间的差距,促进了在不同领域之间开发稳健且可转移的方法。

  • Virtual KITTI: Virtual KITTI  通过虚拟环境密切模仿了原始KITTI数据集,通过提供包含各种交通情况和环境条件的高分辨率视频序列而脱颖而出。类似于,Virtual KITTI支持关键的自动驾驶任务,包括目标检测、语义分割和目标跟踪。

  • VIPER: VIPER  是从现实虚拟世界的驾驶、骑行和步行视角收集的合成数据集,解决了数据稀缺和标注现实世界数据的高成本挑战。VIPER包含超过25万帧视频,为低级和高级视觉任务提供了真值数据,同时涵盖各种天气条件、光照场景和复杂的城市风景。总体而言,VIPER为研究人员提供了一个宝贵且经济高效的工具,以加速可靠且安全的自动驾驶的发展。

  • Apolloscapes:Apolloscapes 提供了超过140,000个高分辨率帧,具有准确的边界框和像素级语义标签,对于训练和验证自动车辆的感知和导航系统至关重要。Apolloscapes支持图像和点云的语义分割,2D/3D目标检测,多目标跟踪和车道线分割,从而实现先进且安全的自动驾驶系统的创建和评估。

  • SemanticKITTI:SemanticKITTI 是KITTI家族的一个显著扩展,专注于自动驾驶领域的语义分割。SemanticKITTI包含超过43,000个LiDAR点云帧,使其成为户外环境中3D语义分割最大的数据集之一。SemanticKITTI为28个类别提供精确的标签,如汽车、道路、建筑等,为评估点云语义分割方法的性能提供了强有力的基准,支撑了相关领域的许多研究和创新。

  • nuScenes:nuScenes 是自动驾驶领域的重要贡献,提供了一个丰富的数据库,满足感知系统的多样化需求。nuScenes利用LiDAR、Radar和相机记录来自波士顿和新加坡不同城市场景的数据。值得一提的是,其六个相机提供了对周围环境的全面视角,在多视角目标检测任务中得到广泛应用。总体而言,nuScenes数据集是发展自动驾驶技术的基石,支持多任务和应用,并在该领域设立了新的基准。

  • Waymo:Waymo Open Dataset ,于2019年推出,通过提供大量的多模态感知数据和高质量标注,显著影响了自动驾驶研究和进展。Waymo数据集的关键贡献包括其对驾驶条件和地理位置的全面覆盖,这对于不同任务(如检测、跟踪和分割)的鲁棒性和通用性至关重要。

  • BDD100K:BDD100K 数据集,由伯克利DeepDrive中心于2018年发布,是一个规模庞大且多样化的驾驶数据集,以其规模和多样性而闻名。它包括100,000个大约40秒的视频。同时,它为目标检测、跟踪、语义分割和车道线检测提供了各种标注标签。这个庞大的数据集推动了自动驾驶社区的进展,成为研究人员和工程师提出和改进算法的具有挑战性和多功能的平台。

  • RADIATE:RADIATE 是第一个公开的Radar数据集,包含44,140帧在不同恶劣天气条件下收集的带标注的图像,如雨天、雾天、阴天和雪天。它还整合了LiDAR和相机数据,使驾驶环境的全面感知和理解成为可能。

  • Argoverse 2:Argoverse 2 作为Argoverse 1 的续集,引入了更多样化和复杂的驾驶场景,展示了迄今为止最大的自动驾驶分类法。它捕捉了六个城市和不同条件下的各种实际驾驶场景。Argoverse 2支持多个重要任务,包括但不限于3D目标检测、语义分割和跟踪。总之,Argoverse 2数据集提供了大量真实驾驶场景的多模态数据,促进了算法的创新和进步,并展示了其在自动驾驶中作为重要资源的实质潜力。

V2X

  • V2VNet:V2VNet 引入的数据集专注于利用V2V通信,允许自动车辆从多个视点共享信息,这对于检测被遮挡目标和预测其他交通参与者的行为至关重要。该数据集使用名为Lidarsim 的高保真LiDAR仿真器创建,该仿真器利用真实世界数据生成各种交通场景的逼真LiDAR点云。总的来说,这项工作引起了对V2V作为提高自动车辆能力的有前途的途径的关注。

  • DAIR-V2X:DAIR-V2X 是在车辆基础设施协同自动驾驶领域的开创性资源,提供大规模、多模态、多视图的真实世界数据。该数据集旨在解决车辆和基础设施传感器之间的时间不同步以及此类协作系统中涉及的数据传输成本等挑战。DAIR-V2X数据集对自动驾驶的影响很大,因为它为车辆基础设施合作的复杂性设立了一个基准,多亏了其来自真实世界的多种场景。

  • Rope3D:Rope3D 是感知系统的重要贡献,通过利用从路边相机收集的数据,填补了自动驾驶中的关键差距。Rope3D包括50,000张图像,处于不同的环境条件,包括不同的照明(白天、夜晚、黄昏)和天气情况(雨天、晴天、多云)。总体而言,Rope3D数据集是推动路边感知在自动驾驶中取得进展的先导工作,同时也是研究人员和工程师开发更健壮、智能的自动驾驶系统的重要工具。

  • V2V4Real:V2V4Real 是第一个大规模的真实世界数据集,用于处理V2V合作感知。该数据集从两辆配备有多模态传感器(如LiDAR和相机)的车辆中收集。V2V4Real关注一系列感知任务,如合作3D目标检测、合作3D目标跟踪和Sim2Real域适应。这种多功能性使其成为开发和基准测试自动驾驶算法的宝贵资源。

无人机

  • UAVDT:UAVDT 数据集包含80,000个准确标注的帧,其中包括14种属性,如天气条件、飞行姿态、相机视图、车辆类别和遮挡级别。该数据集专注于在城市环境中基于UAV的目标检测和跟踪。此外,UAVDT基准测试包括密集场景、小型目标和显著的相机运动,这对于当前最先进的方法来说都是具有挑战性的。

  • DroneVehicle:DroneVehicle 提出了一个大规模的基于无人机的数据集,提供28,439个RGB-红外图像对,用于解决低照明条件下的目标检测问题。此外,它涵盖了各种场景,如城市道路、住宅区和停车场。由于其在广泛条件下的独特无人机视角,这个数据集是发展自动驾驶技术的重要一步。

其它

  • Pascal3D+:Pascal3D+ 是PASCAL VOC 2022 的扩展,通过为图像提供更丰富和多样化的标注来克服以前数据集的局限性。Pascal3D+通过为12个刚性目标类别(如汽车、公共汽车、自行车)提供3D姿势标注,并从ImageNet 添加更多图像,实现了高度的可变性。

  • TT 100K:清华大学-腾讯100K 解决了在现实驾驶条件下检测和分类交通标志的挑战。它提供了100,000张图像,包括30,000个交通标志实例。除了大规模的数据大小外,高分辨率的图像涵盖了各种照明和天气条件,使其对于交通标志识别的训练和验证具有鲁棒性。

  • Mapillary Vistas :由于2017年提出,主要旨在对街景进行语义分割。该数据集包含25,000张图像,标有66个目标类别,并包括37个类别的实例特定标注。它包含来自不同天气、时间和几何位置的图像,有助于减轻对特定区域或条件的偏见。

预测、规划和控制数据集

预测、规划和控制数据集是促进训练和评估驾驶系统的基础,用于预测交通动态、行人移动和其他影响驾驶决策的重要因素。通过仿真各种驾驶场景,它们使自动驾驶车辆能够做出明智的决策,穿越复杂的环境,并在道路上保持安全和高效。因此,作者根据数据大小、模态和引用数量详细展示与这些任务相关的几个高影响力的数据集。将预测、规划和控制数据集总结为任务特定和多任务两组。

任务特定数据集:

  • highD。基于无人机的highD 数据集提供了德国高速公路上自然车辆轨迹的大规模收集,包含110,000辆汽车和卡车的后处理轨迹。该数据集旨在克服现有基于场景的安全验证测量方法的局限性,这些方法通常无法捕捉道路用户的自然行为或包含具有足够质量的所有相关数据。

  • PIE。由提出的行人意图估计(PIE)数据集在理解城市环境中的行人行为方面取得了重大进展。它包含在多伦多市中心记录的超过6小时的行车录像,涵盖了各种光照条件。PIE数据集提供了对感知和视觉推理的丰富标注,包括带有遮挡标志的边界框、过街意图置信度以及行人行为的文本标签。长时间的连续序列和标注有助于多个任务,如轨迹预测和行人意图预测。

  • USyd。USyd 在没有交通信号灯的城市交叉口背景下推动了驾驶员意图预测的进展,这在城市设置中很常见,由于缺乏明确的道路规则和信号,构成了一项挑战。该数据集包括超过23,000辆车穿越五个不同的交叉口的数据,使用车载LiDAR跟踪系统收集。数据模态包括详尽无遗的提供了横向和纵向坐标、航向和速度的车辆轨迹。这些信息对于预测驾驶行为至关重要,考虑到人类驾驶模式中固有的不确定性。

  • Argoverse。Argoverse 是3D目标跟踪和运动预测中的一个关键数据集。Argoverse提供了来自7个相机、前视双目图像和LiDAR点云的360°图像。记录的数据涵盖了来自290km映射车道线的300,000多条车辆轨迹。借助丰富的传感器数据和语义地图,Argoverse对于推动预测系统的研究和开发至关重要。

  • inD。inD 的重要性在于它大规模、高质量且多样化的轨迹数据,对于道路用户预测模型和城市交叉口环境中自动车辆的基于场景的安全验证至关重要。它涵盖了大约11,500条不同的道路用户轨迹,例如车辆、自行车和行人。这些轨迹的定位误差小于0.1米,对于数据的可靠性至关重要。

  • PePscenes。PePscenes 解决了在动态驾驶环境中理解和预测行人动作的需求。该数据集通过添加每帧2D/3D边界框和行为标注,重点关注行人过马路行为,增强了nuScenes 数据集。的一个关键属性是结合各种数据类型,包括语义地图、场景图像、轨迹和自车状态,这对于创建能够理解复杂交通场景的强大模型至关重要。

  • openDD。openDD 数据集专注于分析和预测环状交叉口周围的交通场景,这些场景复杂且不受交通信号灯约束。它是在使用高分辨率(4K)的无人机捕获的图像的基础上创建的,跨足了来自501次单独飞行的62小时轨迹数据。该数据集不仅包含轨迹,还包括描述道路拓扑结构的shapefiles和可扩展标注语言(XML)文件,以及每个底层交叉口的参考图像。

  • nuPlan。nuPlan 是自动驾驶中世界上第一个闭环机器学习规划基准。这个多模态数据集包括来自美国和亚洲四个城市的约1,500小时的人类驾驶数据,展示了不同的交通模式,如合并、变道、与骑自行车和行人的互动以及在施工区驾驶。nuPlan数据集的这些特征考虑了实际驾驶的动态和互动性质,使其更适合进行更真实的评估。

  • exiD。 exiD 轨迹数据集是2022年提出的,对高度交互的高速公路场景具有重要意义。它利用无人机记录交通情况,减少对交通的影响,并确保高数据质量和效率。这个基于无人机的数据集在捕捉各种交互中的多样性方面超过了先前的数据集,特别是涉及高速入口和出口的车道线变更。

  • MONA。Munich Motion Dataset of Natural Driving (MONA) 是一个庞大的数据集,包含来自130小时视频的702,000条轨迹,覆盖了具有多个车道线的城市道路、市区高速公路以及它们的过渡。这个数据集展示了0.51米的平均整体位置精度,展示了使用高度精确的定位和LiDAR传感器收集数据的质量。

多任务数据集:

  • INTERACTION。 INTERACTION 数据集涵盖了多样、复杂和关键的驾驶场景,结合了全面的语义地图,使其成为一个多功能平台,可用于多种任务,如运动预测、模仿学习以及决策和规划的验证。它包括不同国家的数据,进一步提高了对不同文化驾驶行为进行分析的鲁棒性,这对全球自动驾驶的发展至关重要。

  • BLVD。 BLVD 基准有助于动态4D(3D+时间)跟踪、5D(4D+交互)交互事件识别和意图预测等任务,这些对于更深入理解交通场景至关重要。BLVD提供了来自不同交通场景的约120,000帧,包括目标密度(低和高)和照明条件(白天和夜晚)。这些帧被完全标注,包括大量的3D标签,涵盖了车辆、行人和骑手。

  • rounD。由提出的rounD数据集对于场景分类、道路用户行为预测和驾驶员建模至关重要,因为它收集了在环状交叉口的大量道路用户轨迹。该数据集利用装备有4K分辨率相机的无人机收集了超过六小时的视频,记录了超过13,000名道路用户。广泛记录的交通情况和高质量的录像使rounD成为自动驾驶中不可或缺的数据集,促进了对公共交通中自然驾驶行为的研究。

  • Lyft Level 5。Lyft Level 5 是迄今为止最大规模的用于运动预测的自动驾驶数据集之一,拥有超过1,000小时的数据。它包括17,000个25秒长的场景,一个具有超过15,000个人工标注的高清语义地图,8,500个车道线段和该区域的高分辨率航拍图像。它支持多个任务,如运动预测、运动规划和仿真。详细标注的众多多模态数据使Lyft Level 5数据集成为预测和规划的重要基准。

  • LOKI。LOKI 代表着长期和关键意图(Long Term and Key Intentions),是多agents轨迹预测和意图预测中的一个重要数据集。LOKI通过提供大规模、多样化的数据,包括行人和车辆在内,弥补了智能和安全关键系统的一个关键空白。该数据集通过利用带有相应LiDAR点云的相机图像,提供了交通场景的多维视图,使其成为社区中非常灵活的资源。

  • SceNDD。SceNDD 引入了真实驾驶场景,展示了多样的轨迹和驾驶行为,可用于开发高效的运动规划和路径跟踪算法。它还适用于自动驾驶汽车不同配置,并包含可以分解为时间戳进行详细分析的预测时间视角。总的来说,SceNDD数据集是自动驾驶预测和规划研究的重要补充。

  • DeepAccident。 合成数据集DeepAccident 是第一个为自动驾驶汽车提供直接且可解释的安全评估指标的工作。这个包含57,000个带标注帧和285,000个带标注样本的大规模数据集支持端到端的运动和事故预测,对于提高自动驾驶系统在避免碰撞和确保安全方面的预测能力至关重要。此外,这个多模态数据集对于各种基于V2X的感知任务,如3D目标检测、跟踪和鸟瞰(BEV)语义分割,都是多才多艺的。

  • Talk2BEV。创新的数据集Talk2BEV 推动了从传统的自动驾驶任务转向在自动驾驶背景下将大型视觉语言模型与BEV地图相结合的趋势。Talk2BEV利用了视觉语言模型的最新进展,允许对道路场景进行更灵活、全面的理解。该数据集包含超过20,000个多样的问题类别,全部由人工标注,并源自。所提出的Talk2BEV-Bench基准可用于多项任务,包括决策制定、视觉和空间推理以及意图预测。

  • V2X-Seq(预测)。轨迹预测数据集是现实世界数据集V2X-Seq 的重要组成部分,包含约80,000个基础设施视图和80,000个车辆视图场景,以及额外的50,000个协同视图场景。这种感知领域的多样性为研究和分析车辆基础设施协同(VIC)轨迹预测提供了更全面的视角。

端到端数据集

端到端已经成为自动驾驶中的一个趋势,作为模块化架构的替代。一些多功能数据集(如nuScenes 和Waymo )或仿真器(如CARLA )提供了开发端到端自动驾驶的机会。同时,一些工作提出了专门用于端到端驾驶的数据集。

  • DDD17。 DDD17 数据集因其使用事件型相机而显著,该相机提供标准主动像素传感器(APS)图像和动态视觉传感器(DVS)时间对比事件的同时流,提供了视觉数据的独特组合。此外,DDD17捕捉了包括高速公路和城市驾驶在内的各种驾驶场景,以及不同的天气条件,为训练和测试端到端自动驾驶算法提供详尽而现实的数据。

在本调查中总结的其他数据集显示在表IV、表V、表VI中。

标注过程

自动驾驶算法的成功和可靠性不仅依赖于大量的数据,还依赖于高质量的标注。本节首先解释了标注数据的方法。此外分析了确保标注质量的最重要方面。   whaosoft aiot http://143ai.com

标注是如何创建的

不同的自动驾驶任务需要特定类型的标注。例如,目标检测需要实例的边界框标签,分割基于像素或点级别的标注,对于轨迹预测来说,标注连续的轨迹至关重要。另一方面,如下图11所示,标注流程可以分为三种类型:手动标注、半自动标注和全自动标注。在本节详细说明了不同类型标注的标注方法。

标注分割数据。标注分割数据的目标是为图像中的每个像素或LiDAR帧中的每个点分配一个标签,以指示它属于哪个目标或区域。在标注之后,属于同一目标的所有像素都用相同的类别进行标注。对于手动标注过程,标注者首先在目标周围画出边界,然后填充区域或直接涂抹像素。然而,以这种方式生成像素/点级别标注是昂贵且低效的。

许多研究提出了全自动或半自动的标注方法以提高标注效率。提出了一种基于弱监督学习的完全自动标注方法,用于分割图像中提出的可行驶路径。[265]是一种半自动标注方法,利用目标先验生成分割mask。之后,[266]提出了一种考虑20个类别的半自动方法。Polygon-RNN++ 提出了一种交互式分割标注工具,遵循[268]的思路。[269]不使用图像信息生成像素级标签,而是将3D信息转移到2D图像领域生成语义分割标注。对于标注3D数据,[270]提出了一个图像辅助标注流程。[271]利用主动学习选择少量点并形成最小训练集,以避免标注整个点云场景。[272]引入了一种使用半/弱监督学习进行标注的高效标注框架,以标注室外点云。

标注2D/3D边界框。边界框标注的质量直接影响了自动驾驶车辆感知系统(如目标检测)在现实场景中的有效性和鲁棒性。标注过程通常涉及使用矩形框标注图像或使用长方体标注点云,以精确包围感兴趣的目标。

Labelme 是一种专注于为目标检测标注图像的工具。然而,由专业标注者生成边界框面临与手动分割标注相同的问题。Wang等人 提出了一种基于开源视频标注系统VATIC的半自动视频标注工具。[275]是另一种用于自动驾驶场景的视频标注工具。与白天标注相比,处理夜间的边界框标注更具挑战性。[276]介绍了一种利用轨迹的半自动方法来解决这个问题。

与2D标注相比,3D边界框包含了更丰富的空间信息,如准确的位置、目标的宽度、长度、高度以及空间中的方向。因此,标注高质量的3D标注需要一个更复杂的框架。Meng等人 应用了一个两阶段的弱监督学习框架,使用人为循环来标注LiDAR点云。ViT-WSS3D 通过对LiDAR点和相应弱标签之间的全局交互建模来生成伪边界框。Apolloscape 采用了类似于的标注流程,包括3D标注和2D标注两个分支,分别处理静态背景/目标和移动目标。3D BAT 开发了一个标注工具箱,以辅助在半自动标注中获取2D和3D标签。

标注轨迹。轨迹本质上是一系列点,映射了目标随时间的路径,反映了空间和时间信息。为自动驾驶标注轨迹数据的过程涉及对驾驶环境中各种实体的路径或运动模式进行标注,如车辆、行人和骑车者。通常,标注过程依赖于目标检测和跟踪的结果。

在轨迹标注的先前工作中,[280]在线生成了用于演习的动作,并被标注到轨迹中。[281]包括一个众包步骤,后跟一个专家集成的精确过程。[282]开发了一个主动学习框架来标注驾驶轨迹。精确地预测行人的运动模式对于驾驶安全至关重要。Styles等人 引入了一种可扩展的机器标注方案,用于无需人工努力的行人轨迹标注。

在合成数据上进行标注。由于在真实世界数据上进行手动标注的费时昂贵,通过计算机图形和仿真器生成的合成数据提供了解决这个问题的替代方法。由于数据生成过程是可控的,场景中每个目标的属性(如位置、大小和运动)都是已知的,因此可以自动且准确地标注合成数据。

生成的合成场景被设计成模仿真实世界的条件,包括多个目标、各种地貌、天气条件和光照变化。为了实现这个目标,一些研究人员利用了《侠盗猎车手5》(GTA5)游戏引擎构建了数据集 。[284]基于多个游戏构建了一个实时系统,用于生成各种自动驾驶任务的标注。SHIFT 、CAOS 和V2XSet 是基于CARLA 仿真器创建的,而不是应用游戏视频。与[11]相比,V2X-Sim 研究了使用多个仿真器 ,为V2X感知任务生成数据集。CODD 进一步利用生成用于合作驾驶的3D LiDAR点云。其他工作利用Unity开发平台 生成合成数据集。

标注的质量

现有基于监督学习的自动驾驶算法依赖于大量的标注数据。然而,在质量低的标注上进行训练可能会对自动驾驶车辆的安全性和可靠性产生负面影响。因此,确保标注的质量对于提高在复杂的现实环境中行驶时的准确性是至关重要的。根据研究,标注质量受到多个因素的影响,例如一致性、正确性、精度和验证。一致性是评估标注质量的首要标准。它涉及在整个数据集上保持一致性,对于避免在训练在这些数据上的模型时产生混淆至关重要。例如,如果特定类型的车辆被标注为汽车,那么在所有其他情况下,它应该被一致地进行相同的标注。标注精度是另一个重要的指标,它指的是标签是否与目标或场景的实际状态相匹配。相比之下,正确性强调标注的数据是否适用于数据集的目的和标注准则。在标注之后,验证标注数据的准确性和完整性是至关重要的。这个过程可以通过专家或算法的手动审查来完成。验证有助于在问题影响自动驾驶车辆性能之前有效地防止数据集中的问题,从而减少潜在的安全风险。[288]提出了一种面向数据的验证方法,适用于专家标注的数据集。

KITTI 的一个标注失败案例如下图12所示。在相应的图像和LiDAR点云中说明了真值边界框(蓝色)。在图像的左侧,汽车的标注(用红色圈出)不准确,因为它未包含整个汽车目标。此外,尽管相机和LiDAR清晰捕捉到两辆汽车(绿色长方体突出显示),但它们未被标注。

数据分析

这一部分将详细系统地从不同角度分析数据集,例如全球数据的分布,时间趋势,以及数据分布。

全球分布

在图13中展示了191个自动驾驶数据集的全球分布概况。该图表显示美国处于领先地位,拥有40个数据集(占比21%),突显了其在自动驾驶领域的领导地位。德国拥有24个数据集,反映了其强大的汽车工业和对自动驾驶技术推动的影响。中国紧随其后,拥有16个数据集,表明中国在这一领域的兴趣和投资。另一个值得注意的点是,全球范围内有11个数据集,欧洲地区(不包括德国)有24个数据集。这种多样化的区域分布增强了收集到的数据的稳健性,并突显了研究界和工业界的国际合作和努力。

另一方面,尽管较小的部分代表了包括加拿大、韩国、英国、日本和新加坡在内的其他国家,这些国家都是拥有坚实技术背景和积累的发达国家——这一统计数据反映了极端的地区偏见。美国、西欧和东亚的主导地位导致了自动驾驶系统在这些地区典型的环境条件下过度拟合的偏见。这种偏见可能导致自动驾驶车辆在各种或未知的地区和情况下无法正常运行。因此,引入来自更广泛国家和地区的数据,如非洲,可以促进自动驾驶车辆的全面发展。

此外,由CARLA 等仿真器生成的35个合成数据集占18.32%。由于实际驾驶环境录制的局限性,这些合成数据集克服了这些缺点,对于开发更强大和可靠的驾驶系统至关重要。

感知数据集的时间趋势

在图10中,作者介绍了从2007年到2023年(截至本文撰写时)具有前50影响分数的感知数据集的时间趋势概览。这些数据集根据它们的数据来源领域进行了颜色编码,并且合成数据集用红色外框标注,清晰地展示了朝着多样化数据收集策略的进展。一个明显的趋势显示了多年来数据集的数量和种类的增加,表明随着自动驾驶领域的不断发展,需要高质量数据集。

总体而言,由于自动驾驶汽车有效而准确地感知周围环境的能力的重要性,大多数数据集提供了来自装备在自车上的传感器的感知视角(车载)。另一方面,由于实际世界数据成本高昂,一些研究人员提出了高影响力的合成数据集,如VirtualKITTI (2016年),以减轻对实际数据的依赖。在仿真器的有效性的推动下,近年来发布了许多新颖的合成数据集。在时间线上,像DAIR-V2X (2021年)这样的V2X数据集也呈现出向合作驾驶系统的趋势。此外,由于无人机提供的非遮挡视角,基于无人机的数据集,如2018年发布的UAVDT ,在推动感知系统方面发挥着关键作用。

数据分布

在图14中介绍了这些数据集每帧目标数量的情况。值得注意的是,Waymo  展示了大量帧数少于50个目标的情况,同时在图表中占据了广泛的位置,说明了它在每帧中从低到高的目标密度涵盖了各种场景。相反,KITTI  展示了一个更为受限的分布和有限的数据规模。Argoverse 2  具有大量帧数的高目标计数,其峰值约为70,这表明了它在一般情况下复杂的环境表示。对于 ONCE ,其目标密度均匀地分布在支持的感知范围内。像 nuScenes  和 ZOD  这样的数据集展示了类似的曲线,快速上升然后缓慢下降,暗示了环境复杂性的适度水平,每帧中目标数量具有相当的可变性。

除了场景中目标数量之外,基于与自车的距离的目标分布是揭示数据集的多样性和显著差异的另一个重要点,如下图15所示。Waymo 数据集展示了大量标注目标在近场到中场场景中。相反,Argoverse 2 和 ZOD 展示了更宽的检测范围,有些帧甚至包括超过200米的边界框。nuScenes 的曲线意味着它在较短范围内的目标非常丰富,这在城市驾驶场景中是典型的。然而,随着距离的增加,nuScenes 数据集的目标数量迅速减少。ONCE 数据集覆盖了目标在不同距离上更均匀的分布,而KITTI 数据集更注重近距离检测。

讨论与未来工作

本文主要关注分析现有数据集,这些数据集通常包含丰富的视觉数据,并旨在完成模块化pipeline中的任务。然而,随着技术的迅速发展,尤其是大语言模型的出色性能,下一代自动驾驶数据集出现了许多新的趋势,提出了新的挑战和需求。

端到端驾驶数据集。与模块化设计的自动驾驶pipeline相比,端到端架构简化了整体设计过程并减少了集成复杂性。UniAD  的成功验证了端到端模型的潜在能力。然而,端到端自动驾驶的数据集数量有限 。因此,引入专注于端到端驾驶的数据集对推动自动驾驶车辆的发展至关重要。另一方面,在数据引擎中实施自动标注pipeline可以显著促进端到端驾驶框架和数据的开发 。

自动驾驶数据集中引入语言。视觉语言模型(VLMs)最近在许多领域取得了令人印象深刻的进展。其在为视觉任务提供语言信息方面的固有优势使得自动驾驶系统更具解释性和可靠性。强调了多模式大语言模型在各种自动驾驶任务中的重要作用,例如感知 ,运动规划 和控制 。下面表 VII 中展示了包含语言标签的自动驾驶数据集。总体而言,将语言纳入自动驾驶数据集是未来数据集发展的趋势。

通过VLMs生成数据。正如所提到的,VLMs的强大能力可以用于生成自动驾驶数据。例如,DriveGAN  通过在没有监督的情况下解开不同组件来生成高质量的自动驾驶数据。此外,由于世界模型理解驾驶环境的能力,一些工作探索了使用世界模型生成高质量驾驶视频。DriveDreamer  作为从真实场景中派生的先驱性工作,解决了游戏环境或仿真设置的局限性。

域自适应。域自适应是开发自动驾驶车辆时面临的关键挑战 ,它指的是在一个数据集(源域)上训练的模型在另一个数据集(目标域)上能够稳定执行的能力。这个挑战表现在多个方面,如环境条件的多样性 、传感器设置  或从合成到真实的转换 。

结论

本文对200多个现有的自动驾驶数据集进行了详尽而系统的回顾和分析。从传感器类型和模态、感知领域以及与自动驾驶数据集相关的任务开始。引入了一个称为"影响分数"的新型评估指标,以验证感知数据集的影响力和重要性。随后,展示了几个高影响力数据集,涉及感知、预测、规划、控制和端到端自动驾驶。此外,解释了自动驾驶数据集的标注方法,并调查了影响标注质量的因素。

此外,描述了收集到的数据集的年代和地理分布,为理解当前自动驾驶数据集的发展提供了全面的视角。同时,研究了几个数据集的数据分布,为理解不同数据集之间的差异提供了一个具体的观点。最后,讨论了下一代自动驾驶数据集的发展和趋势。

#关于BEV落地的点点滴滴

1: 21年的大争论

现在回看21年底组内决定做BEV障碍物的时候,应该来说是一个幸运,或者说有一点运气在里面。最开始面临的当时是大家每个人都熟悉的拍板的事情,到底是按照业界成熟的2D检测方案,或者说单目3D的的检测方案来做。还是说按照21 在自动驾驶届最火的那个Tesla Ai Day 的方案来做。争论,和彷徨应该持续了有一个月左右的时间。很幸运的是,最终我们老大直接拍板了,决定做BEV 障碍物。现在回看为什么说幸运:一个是在21年后学术届有很多优秀的BEV论文出来,一个是行车感知这块一直没有作为一个正式项目立项,给了我们足够的时间去试错,(最开始只有2-3个人来做这件事情)。如果缺少这一些因素,也许最后是做不出来的。这样可能往往一件成功的事情都伴随着一些幸运在里面吧。

2:BEV 如何做方案

在21年10份的时候,能够找到的BEV 障碍物检测的资料还是比较少的,看的最多的就是21 年Tesla AI day 上面的BEV pipeline。我记得很清楚组内对21年的Tesla AI day 的pipeline 方案(感知部分)进行了拆解分析,最后的难点卡在了2D image Feature 到 BEV Feature 的转换上面。其实那个时候还真不知道如何和Tranformer 结合来做这个。在这里不得不感慨CV 领域的开源文化,有一天看到了 Patrick Langechuan Liu. (在这里很感谢刘兰个川持续关于自动驾驶经典论文的输出Paper notes,不过近期看到刘兰个川从自动驾驶行业跳去做机器人和大模型去了。)写的一篇文章,里面有一个图,感觉对2Dto BEV 的转换清楚了很多。如图1

图1 来自

https://towardsdatascience.com/monocular-bev-perception-with-transformers-in-autonomous-driving-c41e4a893944

然后我们就开始按图索骥,开始设计我们的网络,后面Detr3D DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queri 开源,结合Detr3D 我们的BEV 障碍物网络在nuscenes 数据集上开始收敛还不错。在验证集上跑出一个视频效果,大家都比较兴奋。那个时候我们只有2张40G的A100, 现在回想哈哈,我们真是无知者无畏。

3: 痛苦开始的22年

到22年的时候,我们面临的两个问题一个是自己车型的BEV训练数据如何构建,一个是如何把BEV 网络部署到车上。先说数据,这面临两个问题,一个是采集,一个是标注,还有一个是标定。采集我们搞了一台真值采集车,但是因为没有搞硬同步,导致7v(前视2V,后视1V,周视4V) 摄像头 和lidar 时间同步有问题,然后我们就搞了一套所谓的软同步的方案,只能说凑合着够用。然后说到标注,其实在22年标注行业里面,或者说我们选到标注供应商他们是没有标注过BEV 障碍物的, 然后我们就从零开始写标注文档(这个过程是真痛苦), 第一版的标注文档,加上供应商提供的标注工具,最后标注出来的数据,一个字是真贵呀, 每标一帧都在滴血。经过1-2个月双方痛苦的磨合和优化过程,最终价格在一个合理的范围内了,不过现在回看,我们在22年标注的数据量还是有点多了。标定,最开始标定我们是求助外力来搞的,但是效果是真不行。最终只能自己动手风衣足食,磕磕绊绊搞了一个lidar 和7v 的联合标注。经过这一系列的操作,在这里感谢商汤开源的标定工具,https://github.com/pjlab-adg/sensorscalibration。我们终于搞到了质量还算可以的数据(现在回看,我们应该提早为时序模型的数据进行布局)。然后就是部署了,我记得很清楚上海刚好有疫情,然后我们居家了3个月左右。我们差不多痛苦了1个多月,在部署的时候,有一些算子不支持(也主要是2D-to-3D 的算子),后面是转出来模型性能差,然后优化。然后是Pytroch 的模型和转出来在工程上部署的模型掉点很严重,我们曾一度想搞一个Fcos3D(https://arxiv.org/abs/2104.10956) 的网络先搞到板子上。组内的同学很给力的,我们差不多就3-4个人力左右的情况下,最后我们的模型能跑到10hz, 然后在大家的努力下我们差不多在22年7,8月份的时候,我们的视觉 BEV 障碍物就能跑上车了。看到BEV 障碍物在车上实时跑起来的时候,还是感觉到很兴奋的。(跨相机的case 是真稳,整个后处理pipeline 是真的很简洁的)。整个22年对我们来说收获还很大的,BEV 障碍物跑的不错。但22年我们也面临了来自项目的压力我们曾面临着人力资源紧缺,只有一个人力在投入在BEV 上面,还好大家坚持了下。

4:收获的23年

在前面差不多1年多的积累下,也随着组内的资源越来越多,23年我们做出来BEV 车道线,还有前融合的BEV多任务模型,端到端的红绿灯(一介书生:城市自动驾驶红绿灯方案何去何从?)目前都已经落地,在项目中开始测试,交付中。目前我们在探索时序的BEV,以及大模型相关的(一介书生:2024年自动驾驶标注行业是否会被世界模型所颠覆?) 现在来看在21年投入去积累BEV技术,是一个很恰当的时机,当然抛开技术本身,我们老大也顶下来很大的压力和质疑,因为有人的地方就有江湖的。

#自动驾驶岗位

算法工程师

  1. 激光SLAM算法工程师

  2. 视觉SLAM算法工程师

  3. 多传感器融合算法工程师

  4. 机器学习算法工程师

  5. 计算机视觉算法工程师

  6. 自然语言处理算法工程师

  7. 决策算法工程师

  8. 规划算法工程师

  9. 控制算法工程师

非算法类工程师

  1. 软件平台开发工程师

  2. 系统工程师

  3. 功能安全工程师

  4. 标定工程师

  5. 仿真环境工程师

  6. 测试工程师

  7. 数据工程师

  8. UI开发工程师

  • 下面详细介绍每个岗位的工作职责和需要学习的内容

2.算法工程师

2.1.激光SLAM算法工程师

岗位介绍:

  • 采集激光传感器数据,根据点云数据对自动驾驶车辆的周围环境进行地图构建。

  • 负责实现基于激光传感器的SLAM算法设计和开发,能够覆盖各种复杂场景的高精度地图更新和制作。

技能要求:

  • 使用c、c++编程;

  • 需要有滤波算法知识:ESKF、EKF、UKF等;

  • 同时需要学习G2O、ceres等用来优化非线性误差函数的c++框架。

  • 熟悉开源SLAM框架,如GLoam、kimera、VINS等优先;

2.2.视觉SLAM算法工程师

岗位介绍:

  • 以VSLAM为基础,研发机器人自主导航定位算法,包括基于激光雷达、陀螺仪、里程计、视觉等多信息融合,构建机器人运动模型

技能要求:

  • 学习常用的VSLAM算法,如ORB-SLAM、SVO、DSO、MonoSLAM,VINS以及RGB-D等;

  • ROS机器人操作系统;

  • 需要有滤波算法知识:ESKF、EKF、UKF等;

  • 同时需要学习G2O、ceres等用来优化非线性误差函数的c++框架。

2.3.多传感器融合算法工程师

岗位介绍:

  • 将相机、激光雷达、毫米波雷达等多传感器的信息处理和融合,提高自 主驾驶车的环境感知能力;

  • 负责基于多源信息融合的目标检测、跟踪、识别与定位;

  • 负责基于多源信息融合的环境特征抽取,为地图构建提供支持;为基于基于多源信息融合的导航定位提供支持。

技能要求:

  • 掌握camera、毫米波雷达、激光雷达、惯性导航等相关数据解析融合算法;

  • 计算机信息科学、电子工程或数学相关专业本科及以上学历,具备扎实的计算机理论基础

  • 精度相机模型、多视觉几何、Bundle Adjustment 原理,有SfM、几何测距等项目经验

  • 精通C/C++,熟悉Matlab,良好的面向对象编程思想和编码习惯

  • 熟悉IMU、GPS、DR等惯导定位算法框架

  • 熟悉IMU、GPS、车身系统原理、硬件特性、标定算法

2.4.机器学习算法工程师

岗位介绍:

  • 该方向主要负责车辆行驶过程中产生的数据在工程上的应用,偏向于数据分析方向,如车辆行驶里程的影响分析、大数据分析建模等等。

技能要求:

  • Python,C/C++

  • 学习机器学习的基础理论算法,如 LR、GBDT、SVM、DNN等等;

  • 学习scikit-learn 等传统机器学习框架的模型训练;

  • 熟悉 PyTorch、TensorFlow等深度学习框架(偏神经网络部分)等等。

2.5.计算机视觉算法工程师

岗位介绍:

  • 该方向主要基于摄像头传感器,主要包括:车道线检测、车辆等障碍物检测、可行驶区域检测、红绿灯等交通信息检测等等。

技能要求:

  • C/C++,Python,OpenCV;

  • 需要机器学习的基本算法 ( 降维、分类、回归等 );

  • 需要学习深度学习,深度学习框架;

  • 学习计算机视觉和图像处理的常用方法 ( 物体检测、跟踪、分割、分类识别等 ) 。

2.6.自然语言处理算法工程师

岗位介绍:

  • 该方向主要负责车载场景下的语音识别,语音交互设计等等

技能要求:

  • 学习机器学习算法、深度学习算法(RNN);

  • 自然语言处理基本任务(分词、词性标注、句法分析、关键字抽取)

  • 需要使用机器学习方法聚类、分类、回归、排序等模型解决文本业务问题;

  • 熟悉 PyTorch、TensorFlow等深度学习框架(偏RNN部分)等等。

2.7.决策算法工程师

岗位介绍:

  • 自动驾驶的决策是将感知模块传递的信息,转化成车辆的行为,达到驾驶的目标。例如,汽车加速、减速、左转、右转、换道、超车都是决策模块的输出。决策需要考虑到汽车的安全性和舒适性,保证乘客的安全的情况下,尽快到达目标地点。

技能要求:

  • c/c++/python,熟悉ROS系统;

  • 学习常用的决策算法,如决策状态机、决策树、马尔可夫决策过程,POMDP等;

  • 如果往深里学的话,需要熟悉机器学习算法(RNN、LSTM、RL),掌握至少一种深度学习框架(比如gym或者universe等深度强化学习平台);

  • 熟悉车辆运动学和动力学模型。

2.8.规划算法工程师

岗位介绍:

  • 规划包括路径规划和速度规划

  • 规划算法中,自动驾驶车辆首先通过路径规划确定车辆可行驶的路径,然后选择该路径确定可行驶的速度。

技能要求:

  • c/c++/python,ROS机器人操作系统;(有些公司是用Matlab/simulink开发的)

  • 学习常见路径规划算法,例如A、D、RRT等;

  • 学习一些曲线的表示方法,如:五次曲线、回旋线、三次样条曲线、B样条曲线等;

  • 如果往深里学的话;学习轨迹预测算法,如MDP、POMDP、Came Theory等;

  • 学习深度学习和强化学习技术也是加分项,例如RNN、LSTM、Deep Q-Learning等;

  • 有数学理论基础和背景,熟悉车辆运动学和动力学模型。

2.9.控制算法工程师

岗位介绍:

  • 一般是对车辆横纵向动力学建模,然后开发控制算法,实现车辆运动控制等;

  • 这个岗位跟车辆打交道较多,对于传统车厂转型到自动驾驶领域的伙伴来说,是个很好的切入机会。

技能要求:

  • C/C++、Matlab/Simulink

  • 学习自动控制理论基础,学习现代控制理论;

  • 学习PID、LQR、MPC算法;

  • 学习车辆运动学、动力学模型,对汽车的底盘有一定了解;

  • 学习CarSim等仿真软件;

  • 学习ACC、AEB、APA、LKA、LCC等辅助驾驶功能开发的是加分项;

  • 拥有实车调试经验也是加分项。

3.非算法类工程师

3.1.软件平台开发工程师

岗位介绍:

  • 设计和实现自动驾驶软件平台,包括内核修改/扩展、驱动程序实现/增强、中间件实现/增强、系统集成、性能/功耗优化、压力/稳定性/符合性测试;

  • 负责搭建系统架构、编写底层驱动程序;

  • 负责视觉相关算法在嵌入式处理器(GPU、DSP、ARM等平台)上的代码实现及性能优化、测试和维护;

  • 协助算法工程师完成算法在嵌入平台上的移植、集成、测试和优化。

技能要求:

  • C/C++编程技巧、Python;

  • 具有嵌入式操作系统和实时操作系统的内核或驱动开发经验,熟悉QNX、ROS;

  • 熟悉软件调试和debug工具;

  • 了解车辆ADAS ECU和传感器,如雷达、摄像头、超声波和激光雷达;

  • 熟悉通用诊断服务(UDS)、控制器局域网(CAN);

  • 熟悉通信协议(CAN、UDS、DoIP、SOME/IP、DDS、MQTT、REST等)是加分项。

3.2.系统工程师

岗位介绍:

  • 负责客户需求对接,以及与内部开发人员的需求释放;

  • 负责无人驾驶软件系统框架构建 ;

  • 负责模块化、可验证的系统软件架构设计和实时性能优化;

  • 与硬件、算法和测试团队合作,集成并优化自动驾驶系统。

技能要求:

  • 拥有扎实的计算机基础理论知识(如:自动控制、模式识别、机器学习、计算机视觉、点云处理);

  • 具有嵌入式操作系统和实时操作系统的内核或驱动开发经验;

  • 具备很好的沟通表达能力和团队合作意识

3.3.功能安全工程师

岗位介绍:

  • 在产品全生命周期内对产品的功能安全进行支持

  • 负责无人/自动驾驶系统产品的功能安全系统设计,并对现有流程提出改进意见;

  • 负责无人/自动驾驶系统的危险分析(HARA, FMEAs, FMEDA, FTA);

  • 负责无人/自动驾驶系统的安全目标定义;

  • 负责无人/自动驾驶系统的安全需求定义;

技能要求:

  • 精通ISO26262并有自动驾驶或者ADAS系统功能安全项目实施经验;(在传统车厂做功能安全想要转行的也可以考虑);

  • 了解FMEA,FMEDA,FMEA-MSR,FTA等相应的方法;

3.4标定工程师

岗位介绍:

  • 负责自动驾驶多传感器标定,包括GPS、IMU、LiDAR、Camera、Radar 和 USS 等;

  • 设计实现传感器内参外参标定算法,搭建多传感器标定系统;

  • 负责对标定参数进行相关车辆测试,给出测试报告。

技能要求:

  • C++编程, 熟悉 Linux及ROS系统;

  • 有传感器标定工作经历,熟悉视觉或激光 SLAM 算法;

3.5仿真环境工程师

岗位介绍:

  • 该方向需要参与自动驾驶相关仿真系统的搭建,包括车辆动力学相关仿真,各类虚拟传感器模型和虚拟场景的建模与仿真,根据测试案例搭建测试场景,执行自动驾驶算法仿真测试等等;

  • 负责搭建无人驾驶模拟系统,对汽车、传感器、环境进行软件模拟。模拟结果将与真实数据一同用于预测汽车在真实场景中的行为;

  • 配合驾驶决策、路径规划、仿真算法等模块,实现自动驾驶闭环仿真,并可视化相关调试信息。

技能要求:

  • MATLAB/simulink、Python/C++

  • 熟练操作一种常用车辆动力学或无人车相关仿真软件,比如Perscan、Carsim、Carmaker等;

  • 熟悉机器人操作系统ROS等;

  • 有的仿真岗位纯属于做仿真,但有的岗位需要做仿真环境的开发,这样的岗位对编程要求会更高一些。

3.6测试工程师

岗位介绍:

  • 该方向主要负责自动驾驶车辆的相关测试工作,测试自动驾驶系统功能各项指标的性能,评估其边界条件和失效模式;

  • 负责自动化测试(SIL、HIL)的设计实现及智能驾驶产品的相关验证;

  • 负责根据系统或产品的功能需求制定测试用例和测试计划;

  • 负责制定完整的系统或产品的测试计划并实施,最后撰写测试报告;

  • 收集和测试系统的边界样例,对智能驾驶系统的安全性进行评估,对技术提出合理的反馈。

技能要求:

  • 熟悉Ubuntu/Linux操作系统,会写python脚本

  • 熟悉CAN总线;

  • 熟悉测试用例的编写方法和技巧;

  • 熟悉图像识别算法,熟悉深度学习,掌握spark等大数据相关工具者加分;

  • 熟悉激光雷达,毫米波雷达,超声波探头和摄像头的应用是加分项。

3.7大数据开发工程师

岗位介绍:

  • 数据包括后台数据架构和前台呈现。一辆自动驾驶车每天都要生成1个T的数据量。数据该怎样快速清洗、提炼、总结,比如怎样迅速找出一次路测中最重要的几次介入(disengagements)。从而更高效的帮助工程师测试。

  • 负责自动驾驶大数据平台系统的设计、开发和优化;

  • 负责自动驾驶数据标注与处理流程的可视化工具开发,自动化标注平台的设计与研发。

技能要求:

  • 具备扎实的数据结构及算法功底;

  • 精通Java/Python/C++等至少一门高级编程语言;

  • 熟悉Linux开发环境;

  • 有基于SQL或No-SQL数据库的应用程序的设计、开发经验;

  • 熟悉REST服务及Web标准,熟悉一种主流前端开发框架,如React/AngularJS,能独立构建前端应用者加分;

  • 熟悉自动驾驶及相关的Lidar、Camera等传感器数据者加分。

3.8.UI开发工程师

岗位介绍:

  • 每个公司都需要搭建内部工具,用于验证整车开发。也需要给远程控制中心做各种交互页面,通过一个UI远程控制自动驾驶车。同时也包括车厢内为乘客准备的UI。喜欢设计或者擅长前端的朋友可以考虑。

技能要求:

  • 具有优秀的审美和丰富的视觉表现力;

  • 精通色彩、图形、信息和GUI设计原则及方法。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值