自动驾驶三维车道线检测系列—OpenLane数据集介绍
文章目录
- 1. 背景介绍
- 2. OpenLane数据集详细描述
- 2.1 数据集特点
- 2.2 坐标系定义
- 3. 使用方法
- 4. 结论
1. 背景介绍
自动驾驶技术的发展日新月异,而3D车道感知是其核心之一。本文将深入介绍OpenLane数据集——迄今为止规模最大、最接近真实世界的3D车道数据集。我们将一起探索其背景、详细内容、坐标系定义以及如何有效利用这一宝贵资源,以推动自动驾驶技术的研究与发展。
自动驾驶技术正逐渐从梦想走向现实,而精确的车道识别是实现安全自动驾驶的关键。传统的2D车道数据集虽然在学术界和工业界得到了广泛应用,但它们往往无法满足3D车道感知的需求。为了填补这一空白,OpenLane数据集应运而生,为研究者提供了一个全新的平台。
参考paper:PersFormer: 3D Lane Detection via Perspective Transformer and the OpenLane Benchmark
2. OpenLane数据集详细描述
OpenLane数据集以其真实性和规模著称。它收集了来自公共感知数据集的宝贵内容,涵盖了1000个路段的车道和最近路径对象(CIPO)注释。总体上,OpenLane包含了200K帧图像和超过880K条精心标注的车道信息。
2.1 数据集特点
- 真实世界场景:所有数据均来源于真实世界的驾驶场景,包括城市道路、高速公路等多样环境。
- 大规模覆盖:数据集规模空前,为研究者提供了丰富的样本进行模型训练和测试。
- 高精度标注:每一条车道都经过了细致的人工标注,确保了数据的准确性和可靠性。
- 多维度信息:除了车道线,还提供了CIPO等关键信息,为3D感知提供了更多维度的数据支持。
2.2 坐标系定义
OpenLane数据集采用相机坐标系(Camera Coordinate System)来定义车道的位置。所有标注均以精确的坐标点和相应的属性信息呈现,便于研究者进行空间分析和算法开发。坐标系参考:Three camera coord sys in eval code
详细解释如下:
Waymo(OpenLane)的相机坐标系定义为:X轴向前,Y轴向左,Z轴向上。
这与广泛使用的常规(标准)相机坐标系不同,在常规坐标系中:X轴向右,Y轴向下,Z轴向前。
3. 使用方法
OpenLane数据集的使用方法灵活多样,适用于不同类型的研究和应用开发:
- 数据预处理:根据研究需求对原始数据进行清洗和格式化,以适配特定的算法框架。
- 模型训练:使用标注的车道数据训练深度学习模型,进行车道检测和预测。
- 算法测试:在数据集上测试车道感知算法的性能,评估算法的准确性和鲁棒性。
- 可视化分析:利用数据可视化工具展示车道线和CIPO的分布,加深对场景的理解。
数据集下载参考:Download
数据集目录组织格式如下:
├── images
| ├── training
| | ├── segment-xxx
| | | ├── xxx.jpg
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.jpg
| | | └── ...
| | └── ...
| └── validation
| ├── segment-xxx
| | ├── xxx.jpg
| | └── ...
| ├── segment-xxx
| | ├── xxx.jpg
| | └── ...
| └── ...
├── cipo
| ├── training
| | ├── segment-xxx
| | | ├── xxx.jpg.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.jpg.json
| | | └── ...
| | └── ...
| └── validation
| ├── segment-xxx
| | ├── xxx.jpg.json
| | └── ...
| ├── segment-xxx
| | ├── xxx.jpg.json
| | └── ...
| └── ...
├── lane3d_300
| ├── training
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── validation
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| └── test
| ├── curve_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── extreme_weather_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── intersection_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── merge_split_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── night_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── up_down_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── curve.txt
| ├── extreme_weather.txt
| ├── intersection.txt
| ├── merge_split.txt
| ├── night.txt
| └── up_down.txt
├── lane3d_1000
| ├── training
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── validation
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| └── test
| ├── curve_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── extreme_weather_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── intersection_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── merge_split_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── night_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── up_down_case
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | ├── segment-xxx
| | | ├── xxx.json
| | | └── ...
| | └── ...
| ├── 1000_curve.txt
| ├── 1000_extreme_weather.txt
| ├── 1000_intersection.txt
| ├── 1000_merge_split.txt
| ├── 1000_night.txt
| └── 1000_up_down.txt
└── scene└── SCENE└── scene.json
通用规则说明:我们使用XXX来泛指图像、CIPO(最近路径对象)、lane3d_300和lane3d_1000。我们在XXX/training/和XXX/validation/下提供训练/验证数据集分割,这与Waymo原始的训练/验证分割保持一致。XXX/training/segment-xxx表示后续文件属于一个完整路段。
文件夹结构详解:
- images/: 此文件夹包含Waymo开放数据集中的所有前视原始图像文件。我们从原始的tfrecord格式中提取了它们。总共包含1000个路段,其中798个用于训练,202个用于验证。
- cipo/: 此文件夹包含所有CIPO注释。有关真实值JSON文件的详细信息,请参考CIPO注释文档。
- lane3d_1000/: 此文件夹包含所有2D/3D车道注释。除了训练/验证分割外,我们在lane3d_1000/test/下提供了几种场景案例。每个案例包含从验证集中选取的特定主题的路段。我们在lane3d_1000/test/1000_XXX.txt中提供了相应的图像名称。有关真实值JSON文件的详细信息,请参考车道注释文档。
- lane3d_300/: 此文件夹从lane3d_1000/中包含了一个小型数据集。我们为那些计算资源有限的用户提供此数据集。总共包含300个序列,其中240个用于训练,60个用于验证。
- scene/: 此文件夹包含所有场景注释。它只有一个JSON文件。有关JSON文件的详细信息,请参考CIPO注释文档。
更好的理解:
- 图像文件夹:存放了Waymo开放数据集中的1000个路段的前视图原始图像,分为798个训练路段和202个验证路段。
- CIPO注释:提供了CIPO(最近路径对象)的详细注释信息,具体细节见CIPO注释文档。
- 3D车道1000:提供了2D和3D车道的详细注释,包括训练/验证分割和特定场景测试案例,场景案例的细节和图像名称列表见对应文本文件。
- 3D车道300:为计算资源受限用户提供的小型数据集,包含240个训练序列和60个验证序列。
- 场景注释:包含场景的总体注释,详情见单一的JSON文件。
4. 结论
OpenLane数据集的发布,为自动驾驶领域的研究者提供了一个前所未有的研究资源。它不仅推动了3D车道感知技术的发展,也为整个自动驾驶技术的进步贡献了重要力量。我们期待研究社区能够利用这一数据集,开发出更加智能和安全的自动驾驶系统。
相关文章:

自动驾驶三维车道线检测系列—OpenLane数据集介绍
文章目录 1. 背景介绍2. OpenLane数据集详细描述2.1 数据集特点2.2 坐标系定义 3. 使用方法4. 结论 1. 背景介绍 自动驾驶技术的发展日新月异,而3D车道感知是其核心之一。本文将深入介绍OpenLane数据集——迄今为止规模最大、最接近真实世界的3D车道数据集。我们将…...

CMakeList学习笔记
设置项目:project project(planning VERSION 1.0.0 LANGUAGES CXX) # 项目的名字 版本 1.1.0 编程语言 CXX 设置包含目录:include_directories、targer_include_directories 设置编译类型:add_executable、add_library add_executable(demo d…...
将git默认的编辑器设置为vin
git默认编辑器现状 如下,很多linux发行版,未加修改的情况下,git的默认编辑器使用起来不太方便 Signed-off-by: root <rootxxx.COM># Please enter the commit message for your changes. Lines starting # with # will be ignored, a…...

ros2_control 6 自由度机械臂
系列文章目录 前言 ros2_control 是一个实时控制框架,专为普通机器人应用而设计。标准的 c 接口用于与硬件交互和查询用户定义的控制器命令。这些接口增强了代码的模块化和与机器人无关的设计。具体的应用细节,例如使用什么控制器、机器人有多少个关节以…...
Python 在自动化中的实际应用:用 Python 简化繁琐任务
文章目录 1、概述2、自动化文件和目录管理3.数据处理与分析4.网页爬虫5. 系统管理6。定时任务7.结语 1、概述 这篇文章将深入探讨Python在自动化中的实际应用,帮助您用Python简化繁琐任务。 我们将从多个方面入手,展示如何利用Python进行文件管理、数据…...
解释 Spring 框架的核心模块(如 IoC 容器、AOP )及其工作原理。描述如何使用 Spring Boot 快速搭建一个 RESTful Web服务?
Spring框架是一个广泛使用的Java企业级应用程序开发框架,它提供了一系列的模块来帮助开发者构建健壮、可测试、可维护的应用程序。 其中,最核心的模块包括IoC容器和AOP(Aspect Oriented Programming,面向切面编程)。 …...
数据分析详解
一、数据分析教程 1. 入门教程 在线课程:如Coursera、Udemy、网易云课堂等平台提供了大量数据分析的入门课程,涵盖统计学基础、Python/R语言编程、数据可视化等内容。书籍推荐:《Python数据分析实战》、《R语言实战》等书籍是数据分析入门的…...

SpringCloud之@FeignClient()注解的使用方式
FeignClient介绍 FeignClient 是 Spring Cloud 中用于声明一个 Feign 客户端的注解。由于SpringCloud采用分布式微服务架构,难免在各个子模块下存在模块方法互相调用的情况。比如订单服务要调用库存服务的方法,FeignClient()注解就是为了解决这个问题的…...

20.rabbitmq插件实现延迟队列
问题 前面谈到基于死信的延迟队列,存在的问题:如果第一个消息延时时间很长,而第二个消息延时时间很短,第二个消息并不会优先得到执行。 下载插件 地址:https://github.com/rabbitmq/rabbitmq-delayed-message-excha…...
TS如何处理js模块的类型?
现在很多插件都直接用ts开发了,本身包含了类型定义常见的第三方插件,都有’types/xxx’包,安装即可使用其他的,可通过declare module定义类型 比如: // someModule.js export function greet(name) {return Hello, $…...

GPS定位系统(VUE框架)
源码下载:小宅博客网 博主之前写的《GPS定位系统(MVC框架)》版本,并没有做到前后端分离,不太适合多人协作开发,这边博主分享一个基于asp.net web api vue3的GPS定位系统框架,本框架继承了MVC框…...

分布式光伏并网AM5SE-IS防孤岛保护装置介绍——安科瑞 叶西平
产品简介 功能: AM5SE-IS防孤岛保护装置主要适用于35kV、10kV及低压380V光伏发电、燃气发电等新能源并网供电系统。当发生孤岛现象时,可以快速切除并网点,使本站与电网侧快速脱离,保证整个电站和相关维护人员的生命安全。 应用…...

神奇的方法解决Navicat闪退
原因 打开Navicat操作上面的工具等就会闪退,原因竟然是屏幕划词!!! 解决方法 看别人提到有道词典的划词功能的原因 我没有安装有道词典,但我安装豆包,它也有划词翻译的功能,关闭即可...

openmv学习笔记(24电赛笔记)
感光元件 openmv采用小孔摄像模式,将图像映射到感光原件上面,来传递图片,通过图片快速的刷新行成视频,在IDE中通过对感光原件的编辑可以控制视频的效果。 重置感光元件到默认状态 import sensor #导入感光元件这个库sensor.res…...

Linux shell编程学习笔记67: tracepath命令 追踪数据包的路由信息
0 前言 网络信息是电脑网络信息安全检查中的一块重要内容,Linux和基于Linux的操作系统,提供了很多的网络命令,今天我们研究tracepath命令。 Tracepath 在大多数 Linux 发行版中都是可用的。如果在你的系统中没有预装,请根据你的…...

生鲜云订单零售系统小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,商品分类管理,商品信息管理,订单评价管理,订单管理,系统管理 微信端账号功能包括:系统首页,商品信息&#…...

BLE自适应跳频算法详解
前言 (1)自适应跳频算法是相当的简单,小学生都能够看懂,而且网上已经有相当多的关于自适应跳频算法的介绍。既然如此,为什么我还要写这样一篇博客呢? (2)原因很简单,我发…...

[Meachines] [Easy] Beep Elastix-CMS-LFI
信息收集 IP AddressOpening Ports10.10.10.7TCP:22, 25, 80, 110, 111, 143, 443, 993, 995, 3306 $ nmap -p- 10.10.10.7 --min-rate 1000 -sC -sV Nmap scan report for 10.10.10.7 (10.10.10.7) Host is up (0.53s latency). Not shown: 65486 filtered tcp ports (no-…...

甘肃麻花:酥脆香甜的陇原美味
在甘肃的美食画卷中,甘肃麻花以其独特的魅力占据着重要的一席之地。甘肃食家巷麻花,那金黄酥脆的外形,宛如一件件精美的艺术品。每一根麻花的纹理都清晰可见,缠绕交织,散发着诱人的光泽。 制作甘肃麻花是一门传统的手艺…...

C语言刷题小记2
前言 本篇博客还是为大家分享一些C语言的OJ题目,如果你感兴趣,希望大佬一键三连。多多支持。下面进入正文部分。 题目1竞选社长 分析:本题要求我们输入一串字符,并且统计个数的多少,那么我们可以通过getchar函数来获…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...