【基于激光雷达的路沿检测用于自动驾驶的真值标注】
文章目录
- 概要
- 主要贡献
- 内容概述
- 实验
- 小结
概要
论文地址:https://arxiv.org/pdf/2312.00534.pdf
路沿检测在自动驾驶中扮演着重要的角色,因为它能够帮助车辆感知道可行驶区域和不可行驶区域。为了开发和验证自动驾驶功能,标注的数据是必不可少的。然而,目前公共数据集中带有标注的点云路沿的数量非常有限。
本文提出了一种从激光雷达传感器捕获的一系列点云中检测3D路沿的方法,主要包括两个步骤。首先,我们使用分割深度神经网络在每个扫描中检测路沿。然后,我们通过车辆的里程数据对重建的点云进行序列级处理,以估计3D路沿。
通过对这些路沿的3D点云进行处理,我们按照ASAM OpenLABEL标准获取结构化的折线信息。这些检测结果可以用作标记流水线中的预标注,从而有效生成与路沿相关的地面实况数据。
我们通过实验证明了这种方法的有效性。实验中,我们让不同的人工标注员对一组基于LiDAR的序列数据进行标注,其中一部分数据带有我们自动生成的预标注,另一部分数据没有。结果显示,由于我们的检测方法,手动标注时间减少了50.99%,同时保持了数据质量水平。
主要贡献
在自动驾驶技术中,路沿检测对于全面了解车辆周围环境至关重要。路沿是道路边界的一部分,它将可行驶区域和不可行驶区域分隔开来,在自动驾驶任务(比如自动停车或路径规划)中扮演着重要的角色。
路沿的检测对于验证许多先进驾驶功能也非常重要,因为它们确定了潜在的感兴趣区域(比如停车位和人行道)。然而,带有路沿标注的数据虽然必不可少,但却非常有限。
为了减轻手动标注的任务,我们提出了一种方法,即提供3D路沿的预标注,可以融入到像[3]这样的标注工具中,实现半自动标注。
我们的方法包括两个阶段:首先,我们使用深度神经网络(DNN)对每个扫描进行粗略的路沿检测。然后,通过一个后处理步骤,对扫描级别的检测进行优化,并为整个输入序列提供路沿的预标注,这可以作为标注工具的输入,并表示为符合ASAM OpenLabel标准的折线。
因此,本文的主要贡献包括:
提供一种方法,以规范化的输出格式提供LiDAR点云序列的3D路沿检测,可用于标注工具。
开发适用于从LiDAR点云获得的2D俯视图(BEV)图像的扫描级路沿检测器。
提出一个后处理方法,将扫描级别的路沿检测转换为序列级别的三维折线。
验证所提方法,将人工标注员获取路沿地面实况数据所需的标注时间减少了50.99%。
内容概述
我们的方法包括三个主要阶段,如图1所示。首先处理点云以获得序列不同扫描的BEV(俯视图)点云表示。其次使用深度神经网络(DNN)推断每个扫描的路沿。第三步应用序列级处理步骤来获得3D路沿估计。这个最后的处理包括:
1)获取与每个扫描的2D路沿检测相对应的3D点;
2)从序列的扫描、2D路沿检测和车辆航迹的信息中重建检测到的3D路沿点;
3)对3D路沿进行聚类、骨架化和简化,以生成符合标准化标注文件的最终折线。
3.1 点云到BEV
为了检测路沿,可以使用两种类型的输入表示:LiDAR点云的3D表示或BEV(俯视图)投影。3D选项更准确且包含更多信息,但更为复杂且计算代价更高。因此,我们选择BEV选项作为更紧凑的表示方法。
点云是空间中的一组3D点,被分为M个切片,对应于不同的高度间隔,并投影到具有特定单元大小的2D网格图上。每个投影通过对每个网格单元中最高点的高度进行编码,产生一个单独的高度图。因此,BEV被编码为一组M通道的特征。
3.2 扫描帧路沿分割
我们提出了一个语义分割DNN来估计2D路沿。该网络采用M通道BEV地图,并推断逐像素的2D掩码,其中每个像素被分配一个类别标签,本例中为“路沿”和“非路沿”。我们使用逐像素的交叉熵损失来训练网络,这是语义分割任务中最常用的损失函数。损失函数对输入张量的所有像素求和,如下所示:DNN模型使我们能够获得对路沿的初始近似,以生成相应的地面实况。然后,我们执行一系列后处理步骤,以考虑整个序列,获得更健壮和一致的结果。
3.3 3D路沿优化
2D到3D转换。在此阶段,第一步是将DNN输出的每个扫描的2D推断转换为3D路沿点。为此,如图1所示,我们使用LiDAR输入扫描,从中提取必要的信息,以为先前推断为路沿的点分配高度。由于从点云到BEV的转换步骤会导致由网格分辨率和M切片数量产生的信息丢失,这个转换对于获得检测到的路沿点高度的良好近似至关重要(见图2)。
重建。在此步骤中,考虑到每个扫描的所有路沿3D点,以及输入点云,应用车辆航迹信息,进行所有这些点的累积重建,以获得整个序列的路沿点云。
标注生成。在这一点上,我们首先将不同的路沿检测分组,以便在后续阶段可以分开操作,例如,在标注工具中有效地加载它们或删除那些对应于虚假检测的部分。为了进行这种分离,我们使用DBSCAN算法执行聚类阶段。这个算法适用于数据中具有相似密度的簇,因此在其应用之前,我们执行了体素子采样过程,平衡了簇的密度,这也有助于后续的插值步骤。为了获得最终的折线路沿表示,我们使用骨架化算法。通过应用这个专为从LiDAR获得的点云进行骨架化而设计的算法,我们获得了线性迹线,我们期望表示路沿。最后的后处理步骤是简化。在此步骤中,通过Ramer-Douglas-Peucker算法减少了检测到的路沿骨架的点数。该算法使用给定的距离容差确定要消除或保留的线上的点。重建和随后的后处理步骤的表示(直到获得简化的点云)可见于图3。
标注文件。在这一步中,路沿以符合ASAM OpenLabel标准的文件中的折线形式存储。
实验
实验部分介绍了使用BEV表示来呈现DNN进行扫描级检测的结果,另一部分专门用于使用我们估算的3D路沿生成地面真值。
单帧扫描路沿估计:表格I展示了分割网络在两个不同容差下的结果,考虑到1像素对应0.1m,即空间分辨率为0.1m/像素。在3个像素的容差下获得的F分数显示,大多数情况下都能检测到路沿,证明了DNN用于初步路沿估计的适用性。当容差更为严格时,指标略有下降,这促使我们在流程中进行第二阶段的精炼。
3D路沿标注:我们进行了一系列测试以评估由我们的方法获得的路沿估计对于地面真值生成的实用性。这些测试涉及对有和没有使用我们方法获得的预标注的路沿进行标注。测试是在从一辆原型车上安装的LiDAR传感器收集的四个序列上进行的,这些序列包含不同的路沿特征,如直线段、曲线、被植被遮挡、停放的车辆等(见图4)。
图5中显示了使用标记的路沿的标注工具的示例。由于LiDAR点云的稀疏和低分辨率特性,手动标注的过程通常是一项复杂而繁琐的任务,尤其是路沿的标注,需要标注者具备一定的技能。为了简化标注过程,标注者被要求使用着色了z轴梯度的俯视图,以突出路沿高度上的不连续性。
我们使用精心制作的手动地面真值来评估标注者所做的标注。在标注过程中,标注者被要求测量每个地图的标注时间,包括从头开始标注和使用预标注的地图。
所采用的评估指标有召回率、精确度和F分数,该方法将3D多段线集转换为3D点集,并使用特定的度量步长对多段线进行采样。随后,它通过使用3D欧几里得距离比较这些3D多段线。
需要注意的是,距离测量的最大误差受到离散化步长的一半的限制。我们考虑了在实施细节中提到的0.1m/像素的分辨率。在表II中,显示了在每个地图的标注中获得的指标的平均值,以及总体平均值和通过使用预标注获得的改进。
基于BEV分辨率,使用10cm的容差来计数标注为正确。虽然在没有预标注和有预标注的情况下获得的值之间没有主要差异,主要是因为最终是人类标注者做所有标注,但我们确实注意到在使用我们的方法生成的预标注时,标注的质量略有提高。
此外,在表III中,我们展示了通过我们的方法提供的预标注将标注时间减少了50.99%。
小结
AD任务中对地面实况数据的需求需要大量的数据,这些数据需要手动标记。半自动标注算法可以帮助减少人工标注时间,从而在标注过程中节省成本。
在本文中提出了一种从激光雷达点云序列中以ASAM OpenLABEL标准化输出格式生成3D路沿预标注的方法。我们的方法在扫描级别检测路沿,并在第二序列级别的后处理阶段对其进行细化。
最终检测结果存储为多段线。通过使用从测试车辆中配备的激光雷达传感器获得的真实数据进行手动标注活动,我们验证了我们的方法的适用性。我们提出的路沿石检测管道将手动标注时间减少了50%,同时在标注中保持类似的准确性。
未来的工作包括用更大的数据集训练DNN,并探索替代架构来增强预标注。我们还计划扩展该方法,将RGB相机的数据纳入其中,以增强最困难场景中检测的可靠性。
相关文章:
【基于激光雷达的路沿检测用于自动驾驶的真值标注】
文章目录 概要主要贡献内容概述实验小结 概要 论文地址:https://arxiv.org/pdf/2312.00534.pdf 路沿检测在自动驾驶中扮演着重要的角色,因为它能够帮助车辆感知道可行驶区域和不可行驶区域。为了开发和验证自动驾驶功能,标注的数据是必不可…...
【Spring实战】配置多数据源
文章目录 1. 配置数据源信息2. 创建第一个数据源3. 创建第二个数据源4. 创建启动类及查询方法5. 启动服务6. 创建表及做数据7. 查询验证8. 详细代码总结 通过上一节的介绍,我们已经知道了如何使用 Spring 进行数据源的配置以及应用。在一些复杂的应用中,…...
DevOps系列文章 : 使用dpkg命令打deb包
创建一个打包的目录,类似rpmbuild,这里创建了目录deb_build mkdir deb_build目标 我有一个hello的二进制文件hello和源码hello.c, 准备安装到/opt/helloworld目录中 步骤 在deb_build目录创建一个文件夹用于存放我的安装文件 mkdir helloworld在he…...
linux sed命令操作大全
经常使用,但有些总记不全,有时候经常查找,这次全部捋清楚做备忘,有需要的小伙伴欢迎收藏起来哦! 查、增、改、删一应俱全,非常详细! 目录 一、查看 查看第2行 查看第2行到第3行 查看第1行、…...
Vue2+Vue3组件间通信方式汇总(3)------$bus
组件间通信方式是前端必不可少的知识点,前端开发经常会遇到组件间通信的情况,而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第三弹------$bus,并讲讲分别在Vue2、Vue3中的表现。 Vue2Vue3组件间通信方式汇总(1)…...
前端基础location的使用
概念 获取当前页面的地址信息,还可以修改某些属性,实现页面跳转和刷新等。 样例展示 window.location 含义.originURL 基础地址,包括协议名、域名和端口号.protocol协议 (http: 或 https:).host域名端口号.hostname域名.port端口号.pathname路…...
Android JNI入门到基础
一、JNI项目创建 AS创建项目时选择NativeC 会创建一个基本的JNI项目 MainActivity中写java层的native方法 具体实现在cpp文件中 native-lib.cpp #include <jni.h> #include <string>extern "C" JNIEXPORT jstring JNICALL Java_com_cn_techvision_j…...
60.乐理基础-打拍子-V字打拍法
前置内容: 文字版 https://note.youdao.com/s/6FSSvGBf (顺序参考:下方的视频版里面目录顺序) 视频版 【四川音乐学院作曲硕士】教你零基础自学乐理保姆级教学-学习视频教程-腾讯课堂 文字版还有下图红框中三个专栏里的内容&a…...
列表对象的时间进行中文格式化处理
在黑马的项目学习中,如何将前端页面时间显示成2023年12月21日 06:23:23中文形式。 如果你想使用中文格式化日期,你可以将 en-US 更改为 zh-CN,以使用中文语言环境。以下是修改后的代码: result.data.items.forEach(item > {//…...
vi和vim的区别
目录 一、前言 二、vi/vim 的介绍 三、Vi/Vim 常见指令 四、vi和vim的区别 一、前言 写这篇文章的目的,是为了告诉大家我们如果要在终端下对文本进行编辑和修改可以使用vim编辑器。 Ubuntu 自带了 VI 编辑器,但是 VI 编辑器对于习惯了 Windows 下进…...
【昆明*线上同步】最新ChatGPT/GPT4科研实践应用与AI绘图技术及论文高效写作
详情点击查看福利:【昆明*线上同步】最新ChatGPT/GPT4科研实践应用与AI绘图技术及论文高效写作 目标: 1、熟练掌握ChatGPT提示词技巧及各种应用方法,并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告,提供…...
【解决Typora图片不是显示问题】PicGo+Github+Typora+ onedrive/坚果云 实现笔记同步
【解决Typora图片不是显示问题】PicGo、Github、Typora实现笔记同步 写在前面: typora笔记软件使用记录typora图片上传问题:原因分析:解决方案:PicGoGithubTypora 坚果云/onedrive 实现笔记同步第一步. 设置上传模式:u…...
使用Guava轻松创建和管理不可变集合
第1章:引言 大家好,我是小黑。今天,我们来聊聊一个在Java编程里超有用的话题:使用Guava创建和管理不可变集合。首先,咱们得明白,什么是不可变集合。简单来说,不可变集合就是一旦创建就不能被修…...
深入了解 Android 中的应用程序签名
深入了解 Android 中的应用程序签名 一、应用程序签名介绍1.1 应用程序签名1.2 应用程序签名的意义1.3 应用程序签名的流程1.4 应用程序签名的方案1.5 签名的重要性和应用场景 二、AOSP 的应用签名2.1 AOSP的应用签名文件路径2.2 应用程序指定签名文件 三、Android Studio 的应…...
说说 style gan 中的感知路径长度(Perceptual Path Length)
我在之前的博库中介绍了 style gan 的基本原理,原文中有提出感知路径长度(Perceptual Path Length)的概念。这是一种评价生成器质量的方式。 PPL基本思想:给出两个随机噪声 z 1 , z 2 ,为求得两点的感知路径长度PPL…...
基于JAVA的厦门旅游电子商务预订系统 开源项目
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 景点类型模块2.2 景点档案模块2.3 酒店管理模块2.4 美食管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学生表3.2.2 学生表3.2.3 学生表3.2.4 学生表 四、系统展示五、核心代码5.1 新增景点类型5.2 查询推荐的…...
uniapp中使用封装步骤条组件
针对步骤条封装完终于清清楚楚啦 先看效果: 附上代码:使用可直接复用:数据是写在了当前组件中,如有必须,可以使用其中的props传值stepInfos传递相应的数据,根据steps步数就可以控制走到哪一步啦 <temp…...
【MySQL】sum 函数和 count 函数的相同作用
力扣题 1、题目地址 1174. 即时食物配送 II 2、模拟表 配送表:Delivery Column NameTypedelivery_idintcustomer_idintorder_datedatecustomer_pref_delivery_datedate delivery_id 是该表中具有唯一值的列。该表保存着顾客的食物配送信息,顾客在某…...
在QT Creator下用CMake编译GEOS库
最近,想要在C下编一个可用GDAL模块的地图管理系统,找来找去,找到了GEOS。GEOS(Geometry Engine-Open Source)开源几何引擎 是一个用于计算几何的JTS库的 C/C实现,专注于地理信息系统 (GIS&#…...
【Qt之Quick模块】4. QML语法格式及命名规范
概述 QML(Qt Meta-Object Language)是一种声明式语言,用于设计用户界面。它是由Qt框架提供的一种描述界面组件的语言,可以与C代码结合使用,用于创建跨平台的应用程序。 QML具有以下特点: 声明式ÿ…...
Python内置类属性__class__属性的使用教程
概要 Python作为一种高级编程语言,提供了丰富的功能和灵活性,使得开发人员能够更加方便地处理各种任务。其中一个强大的功能是内置类属性__class__属性。本文将详细介绍__class__属性的用法,帮助读者更好地理解和利用这一功能。 第一部分&am…...
【后台报错】插入时sql报错,varchar撑爆
后台的一个报错。按照正常的需要复现,或者查一下日志。但是凭借多年经验和大胆猜测,以及对自己代码要自信 引用一下文章 目测7*15 105项。每个id有9个数字加上分隔符刚好十个。大概就是超过了定义的一千的varchar长度。直接改数据库就好了。 简单粗暴…...
OpenSergo使用详解
简介 OpenSergo是一个基于微服务治理的标准和生态,覆盖了服务元信息、流量治理、服务容错、数据库/缓存治理、服务注册发现、配置治理等十几个关键领域,覆盖了完整的微服务生命周期(从开发态到测试态,到发布态,再到运…...
Vanilla Pro for Mac 一款隐藏菜单栏图标工具
Vanilla Pro Vanilla Pro是一款简单易于使用的Mac应用程序,可让您隐藏菜单栏图标。只需下载Vanilla,启动应用程序,然后按照提示即可开始。 资源获取 Vanilla Pro for Mac 功能特性 键盘快捷键:设置自定义键盘快捷键来切换菜单…...
freemarkEngine文件ftl的可视化编辑
在做导出word文件功能时,需要准备ftl模板,设置一些通配符,之后通过相关编码,即可以实现业务数据渲染后导出word的功能。但是ftl文件一般我们看不太懂,所以可视化创建和修改就非常合适。 1、安装office2016版本&#x…...
2023 英特尔On技术创新大会直播 | 边云协同加速 AI 解决方案商业化落地
目录 前言边云协同时代背景边缘人工智能边缘挑战英特尔边云协同的创新成果最后 前言 最近观看了英特尔On技术创新大会直播,学到了挺多知识,其中对英特尔高级首席 AI 工程张宇博士讲解的边云协同加速 AI 解决方案商业化落地特别感兴趣。张宇博士讲解了英…...
Q-star计划的更多细节
继续探讨点Q*相关的话题,这个应该是目前X和Reddit上比较火的话题了,其实就是关于Q*的方法是不是让LLM变得会产生意识,会产生自己的好恶和对人类的偏见,关于Q-star的一些介绍可以看我上一篇的扫盲帖 RLAIF方法与传说中的函数Q,揭露OpenAI那不为人知的Qstar计划 (qq.com) 我…...
python3 数据分析项目案例,用python做数据分析案例
本篇文章给大家谈谈python3 数据分析项目案例,以及用python做数据分析案例,希望对各位有所帮助,不要忘了收藏本站喔。 目录 一丶可视化绘图案例 1.曲线图 2.柱形图 3.点线图 4.3D散点图 5. 绘制漏斗图 6. 绘制词云图 二丶包/模块使用示例 (1)…...
Android 12 (InputMethodManagerService) 替换默认输入法为Pinyin输入法
1.问题场景 由于系统自带的Latin输入法不支持遥控器操作,需要替换为RK的拼音输入法。 2. 替换步骤 1)将LatinIME从mk中删除,让系统编译的时候不编译该apk --- a/Android/build/make/target/product/handheld_product.mkb/Android/build/m…...
【模式识别】探秘判别奥秘:Fisher线性判别算法的解密与实战
🌈个人主页:Sarapines Programmer🔥 系列专栏:《模式之谜 | 数据奇迹解码》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 🌌1 初识模式识…...
酒店网站html模板/网络销售靠谱吗
1.创建文件myrule 2.编写myrule内容 package com.myrule;Configuration public class MySelfRule {Beanpublic IRule myRule(){return new RandomRule(); //随机的方法} }3.在主启动类中加入这个注解 CLOUD-PAYMENT-SERVICE为服务名称 configuration为刚才我们写的类 Ribbon…...
wordpress中文视频教程/站长工具seo综合查询论坛
text-shadow文本阴影 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/topic/huangjuhua 基础用法 在 CSS3 中,text-shadow 属性向文本添加一个或多个阴影。该属性是逗号分隔的阴影列表,每个…...
飞沐网站设计/营销推广方案
我有一个网络,我正在使用vis.js构建,但它在宽度方面太大,无法放入页面的容器中.网络从左到右运行,包含有关特定进程的步骤.当一个人完成任务时,服务器会提供新的JSON记录来更新颜色.由于布局,我无法更改容器大小.当网络加载时,它会导致字体非常小且不可读.有没有办法可以将缩放…...
企业为什么需要手机网站/2022今日最新军事新闻
简介 概述:哨兵模式是主从的升级版,因为主从的出现故障后,不会自动恢复,需要人为干预,这就很麻烦。在主从的基础上,实现哨兵模式就是为了监控主从的运行状况,对主从的健壮进行监控,就…...
淄博网站制作设计定制/企业推广公司
JavaFX教程 - JavaFX按钮当用户单击按钮时,JavaFX Button类可以触发事件。Button类扩展标记的类,它可以显示文本,图像,或两者兼而有之。以下代码显示了如何向Button添加单击操作侦听器。import javafx.application.Application;im…...
网页升级访问新区域/许昌正规网站优化公司
Zotero安装过程 Zotero官方下载链接:https://www.zotero.org/,目前应该是可以直接访问下载的。另外别忘了一起把浏览器的插件也安装好。 顺便注册一个同步账号,方便在其他移动端访问。注册好后,在Zotero中点击左上角“编辑”-“首…...