自动驾驶预测与决策规划(nuplan数据集)

2024-03-05 17:52

本文主要是介绍自动驾驶预测与决策规划(nuplan数据集),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎大家关注我的B站:

偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com)

目录

1.概述

2 数据采集

3.开环与闭环仿真

4.数据注释

5.场景

6.规划框架

6.1Train

6.2Simulation

6.3Metric

6.4Visualization

7.下载


本文参考nuPlan (nuscenes.org)

1.概述

nuPlan是全球首个大规模的自动驾驶规划的benchmark。虽然基于机器学习的运动规划算法越来越多,但由于缺乏成熟的数据集、模拟框架和指标,限制了这一领域的进展。

现有的自动驾驶汽车运动预测基准(Argoverse、Lyft、Waymo)侧重于其他智能体的短期运动预测,而不是自我车辆的长期规划。这导致以前的工作使用开环评估,这不适合公平地评估长期规划。nuPlan提供了一个训练框架来开发一个learning based planner、一个轻量级的closed-loop simulator,、一个运动规划的specific metrics和一个可视化结果的interactive tool

2 数据采集

nuplan提供了一个大型数据集,其中包含来自美国和亚洲 1200 个交通模式差异很大的城市(波士顿、匹兹堡、拉斯维加斯和新加坡)的 4 小时人类驾驶数据。

我们的目标是多样化的驾驶条件,但不包括大雨和夜间数据。所有数据都是通过手动驾驶收集的,以获得适合模仿学习的地面实况。我们的车辆操作员被指示安全、自信和自信地驾驶。为了使这些数据对规划有用,他们以目标为导向。这意味着他们定义一个目标(上下车点、公交车站、停车场),然后直接驶向目标。

我们使用以下传感器:

  • 5 倍激光雷达 (20Hz)
  • 2x Pandar 20P(前/后保险杠)
  • 2x Pandar 40P(左/右 A 柱)
  • 1x Pandar 40PT(车顶)
  • 8 倍摄像头 (10Hz)
  • D3 工程 D3RCM
  • Sony IMX390,2000 x 1200 分辨率,分割像素图像传感器
  • 1 个霍尼韦尔 HG1120 IMU (100Hz)
  • 1 个 Trimble BX992 (20Hz)

所有传感器都根据其外在和内在(仅限相机)进行校准。摄像头和激光雷达相互同步。

3.开环与闭环仿真

支持闭环和开环仿真。闭环意味着自我车辆和其他代理车辆可以偏离原始日志中记录的内容。除了为规划人员提供基线实施外,我们还为传统(智能驾驶员模型,IDM)和基于ML的智能代理提供baseline

  • 为了真实地模拟交通流量,nuplan开发了一种交通信号灯状态推断系统,该系统根据场景中观察到的车辆运动来推断交通信号灯的状态。最后,我们挖掘手工制作的场景(例如变道、行人与汽车的交互),以找到有趣的场景,并评估这些场景中的常见指标和特定场景的指标。

4.数据注释

与 nuScenes 类似,我们提供详细的 2D 高清地图,这些地图由人类使用语义类别进行注释,例如道路、人行道、人行横道、车道、交通信号灯等等。

我们输出以下类。包装盒标签由不同的颜色表示:

  • 车辆(橙色):包括所有四辆或更多轮式车辆以及拖车。
  • 自行车(红色):包括自行车、摩托车和三轮车。
  • 行人(蓝色):所有类型的行人,包括婴儿车和轮椅。
  • 交通锥(黑色):临时放置的控制交通流量的锥。
  • 屏障(黄色):可以是临时或永久的固体屏障。
  • 施工区标志(未显示):指示施工区的临时标志。
  • 通用物体(绿色):动物、碎片、可推/可拉物体、永久杆。

请注意,我们仅输出可行驶路面和人行道上被认为与自动驾驶汽车相关的选定部分的感知轨迹。其他轨道使用语义映射进行过滤。

5.场景

为了公平地评估运动规划模型,考虑基础数据分布至关重要。大多数时候,车辆都是直行的,因此规划是微不足道的。正是在具有挑战性的极端情况下,规划器才能真正展示其性能。为此,我们开发了一个框架,用于在整个数据集中挖掘和注释感兴趣的场景。要了解有关此场景挖掘框架的更多信息,请参阅这篇博文。

下面我们展示了一些具有挑战性的场景示例,正如我们的系统所发现的那样:

无保护的横转弯

Unprotected cross turn

密集的车辆交互

Dense vehicle interactions

前面的乱穿马路者

Jaywalker in front

变道

Lane change

在接送区自我

Ego at pickup/dropoff area

6.规划框架

nuPlan提供了一个开源工具包,用于开发基于ML的规划器。下面我们将介绍此工作流程中的四个步骤,即:训练模型、模拟模型、测量性能和可视化结果。

aria framework steps

6.1Train

我们开发了一个基于 PyTorch 的框架,使用许多输入来训练基于机器学习的规划人员,例如自我信息、其他代理信息、静态/动态地图信息。我们的基线可以很容易地修改和扩展,以纳入新的研究思路。

6.2Simulation

我们框架的核心部分是场景模拟。它被设计为在数据集、观察模型、自我规划器、代理模型、运动控制器、指标和可视化方面完全模块化。虽然我们为这些元素中的每一个都提供了多个选项和基线,但用户可以很容易地插入替换。这将使研究界能够专注于单个框架,而不是像以前那样对每个数据集和规划方法使用不同的代码。

aria planning framework

6.3Metric

在一组方案上评估规划师后,我们计算了许多指标,这些指标分为 5 类:

  • 交通规则违规用于衡量对常见交通规则的遵守情况。我们计算与其他智能体的碰撞率、越野轨迹的发生率、与领先智能体的时间间隔、碰撞时间以及通过智能体时的相对速度作为通过距离的函数。
  • 人类驾驶相似性用于量化与人类相比的机动满意度,例如纵向速度误差、纵向停止位置误差和横向位置误差。此外,将产生的颠簸/加速度与人类水平的颠簸/加速度进行比较。
  • 车辆动力学量化了骑手的舒适度和轨迹的可行性。骑手舒适度是通过颠簸、加速度、转向率和车辆振荡来衡量的。可行性是通过违反相同标准的预定义限制来衡量的。
  • 目标实现使用 L2 距离衡量地图上目标航点的路线进度
  • 特定于方案的指标适用于特定方案。例如,对于变道,测量和评分目标车道上的碰撞时间和前方/后方代理的时间间隔。对于行人和骑自行车者的互动,我们量化了通过的相对速度,同时区分了他们的位置。

6.4Visualization

对于研究人员来说,要快速迭代新的 ML 规划模型,能够仔细分析模型的性能至关重要。为此,我们开发了带有基于散景的交互式模拟查看器的“nuBoard”仪表板,该查看器可以渲染底层语义图、自我车辆、场景中的其他智能体以及交通信号灯。除了场景模拟之外,我们还绘制了有关计划人员绩效的汇总统计量。

aria nuboard

7.下载

这里我们列出了 nuPlan 数据集的不同版本。

免费下载nuPlan数据集用于非商业用途,以便我们更好地跟踪其使用情况。

此数据集也可在 AWS 上的 Registry of Open Data 上获得。

可以在 GitHub 存储库中找到 nuPlan 数据集的 devkit。

这篇关于自动驾驶预测与决策规划(nuplan数据集)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/777331

相关文章

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp