自动驾驶SLAM又一开源巅峰之作!深挖时间一致性,精准构建超清地图

论文标题:

DTCLMapper: Dual Temporal Consistent Learning for Vectorized HD Map Construction

论文作者:

Siyu Li, Jiacheng Lin, Hao Shi, Jiaming Zhang, Song Wang, You Yao, Zhiyong Li, Kailun Yang

导读:

本文介绍了一种用于自动驾驶高精地图构建的新方法,该方法利用了鸟瞰视角(BEV)场景理解中的时间一致性学习,在保证建图质量的同时,避免了传统时间融合方法中的特征冗余问题。©️【深蓝AI】编译

1. 背景简介

高清地图(HD Map)是自动驾驶技术不可或缺的基石,它赋予系统对周围静态环境的精确认知,从而确保导航的准确性和安全性。目前,主要有两种类型的高清地图:语义地图和矢量地图。语义地图通常采用网格形式,在二维平面上展示道路信息,而矢量地图则利用几何点和线条来精确描述道路的轮廓。尽管两种地图各有其应用场景,但矢量地图在存储效率和精确度方面均展现出了明显的优势,这对于自动驾驶系统中的实时感知任务至关重要。

近年来的研究表明,实时的鸟瞰图(BEV)融合技术能够有效应对视觉信息的稀疏性问题。然而,现有的时间融合策略似乎并未显著提升矢量化高清地图的质量。融合后的BEV特征与地图实例的特征匹配度不高,导致矢量点难以精确地定位到其原始位置,进而影响了检测的准确性。经过深入分析,作者认为,这些方法主要依赖于简单的时间特征融合,而未能充分利用对象间的差异性和相似性。

在这里插入图片描述
▲图1|当前时序融合与提出的一致性学习解决方案的区别©️【深蓝AI】编译

2. 方案提出

为了应对上述挑战,作者提出了DTCLMapper框架,该框架包含两个协同工作的一致性学习组件:实例一致学习(ICL)和地图一致学习(MCL)。这两个组件相互补充,共同推动框架的性能提升。ICL组件由矢量点预选模块(VPPSM)和聚合实例特征一致学习(AIFCL)组成。

VPPSM负责为实例中的一致性学习提供精确的实例特征,而AIFCL则致力于通过增强稀疏实例的一致性来提升整体性能。MCL组件则通过利用实例之间的一致性几何位置信息来增强模型的一致性和泛化能力。

框架采用了矢量化地图的栅格化方法来实现一致性,同时引入了地图占用损失作为评估机制。这种机制不仅确保了空间关系的保持,还有助于改进模型的一致性和泛化能力,从而在自动驾驶领域中实现更精准的感知和决策。

在这里插入图片描述
▲图2|不同时序融合方法的结果©️【深蓝AI】编译

3. 方法详析

■3.1. 框架

DTCLMapper框架集成了图像骨干网络、多视图变换器、BEV解码器和多任务头:

●多视图图像由预训练的骨干网络编码,生成深度特征,这些特征通过视图变换器聚合成BEV嵌入;

●变换器模块采用BEVFormer和LSS等经典方法;

●BEV解码器利用Deformable DETR技术。解码器输入包括BEV嵌入、实例查询、初始参考点和点查询;

●任务头通过线性层和激活函数预测实例的标签和边框。

在这里插入图片描述
▲图3|提出的DTCLMapper架构概览©️【深蓝AI】编译

■3.2. 实例一致性学习(ICL)

ICL模块由两部分组成:矢量点预选模块(VPPSM)和聚合实例特征一致性学习(AIFCL)。

●VPPSM致力于提供精确的实例特征,以增强实例的一致性学习;

●AIFCL则通过对比学习聚合的实例特征,提升稀疏实例的一致性表达。

其中,用于对比学习的正样本是指来自不同时间帧但属于同一实例的特征,而负样本则是来自不同实例或错误匹配的特征。这种方法有助于提高同一实例在不同时间帧上的特征一致性,从而增强模型在处理稀疏视觉信息时的鲁棒性和准确性。

◆矢量点预选择模块(VPPSM)

VPPSM模块的设计旨在提高每个实例矢量点的回归精度。该模块通过以下几个步骤实现:

●输入特征处理:从BEV嵌入特征中提取与实例相关的特征。这些特征代表了场景中每个实例的几何和语义信息。

●预选矢量点:对每个实例的初始矢量点进行筛选,选择最能代表实例形状和位置的矢量点。

●精细调整:使用已筛选的矢量点作为基础,通过进一步的特征处理和调整,优化每个矢量点的位置,以提高矢量点的回归精度。

VPPSM通过这一系列步骤,确保了矢量点的选择和调整过程更加精确,从而为后续的一致性学习提供了可靠的基础。

在这里插入图片描述
▲图4|矢量点预选模块(VPPSM)示意图©️【深蓝AI】编译

◆聚合实例特征一致性学习(AIFCL)

AIFCL模块通过对比学习(Contrastive Learning)来增强实例的一致性。具体流程如下:

●特征聚合:将来自不同时间帧的同一实例特征聚合在一起,形成一个综合特征表示。

●对比学习:通过选择正样本和负样本进行对比学习。正样本是指来自不同时间帧的同一实例特征,而负样本则是不同实例或错误匹配的特征。

●一致性增强:通过对比学习的过程,增强同一实例在不同时间帧中的特征一致性,减少特征漂移,提高实例表示的稳定性。

AIFCL模块通过这种方式,确保实例特征在时间上的一致性,从而提高了矢量化高精地图构建的准确性和稳定性。

■3.3. 地图一致性学习(MCL)

MCL模块通过利用「实例间的一致性几何位置信息」来提升模型性能,借助于「矢量化地图的栅格化网格地图」来实施一致性约束。MCL采用地图占用损失作为评估工具,以确保空间关系的准确性,从而增强模型的一致性和泛化能力。

◆设计思路

MCL模块旨在通过全局几何和状态的一致性约束,进一步增强地图的整体一致性和泛化能力。其设计思路包括:

●全局几何一致性:利用实例间的几何关系,确保各实例在全局地图中的位置和形状保持一致。

●状态一致性:通过评估实例的占用状态,确保地图中实例的空间排列和占用关系准确反映实际情况。

◆实现方法

●网格地图栅格化:将矢量化地图转换为网格地图,以便于全局一致性的计算和评估。网格地图提供了一种便捷的表示方式,使得几何和状态的一致性检查更为直观,且更易于实现。

●地图占用损失:定义一种损失函数,评估实例在网格地图中的占用状态。该损失函数衡量实例间的空间关系,确保全局几何一致性。

●自监督学习:利用自监督学习方法,强化模型的全局一致性。自监督学习无需额外标注,通过对输入数据自身的结构和分布进行学习,提高模型的泛化能力。

MCL模块通过这些方法,确保地图中各实例的全局几何和状态一致性,从而提高矢量化高清地图的整体质量和泛化能力。

4. 实验结果

在公共数据集nuScenes和Argoverse上的广泛实验结果表明,作者提出的方法在高清地图构建方面取得了显著的提升,在平均精度(mAP)上分别达到了61.9%和65.1%的优异表现。

在这里插入图片描述
▲表1|nuScenes数据集上的结果(*表示数据是通过开源实现的)©️【深蓝AI】编译

在这里插入图片描述
▲表2|Argoverse数据集上的结果(*表示数据是通过开源实现的)©️【深蓝AI】编译

在这里插入图片描述
▲表3|提出的模块的消融实验结果©️【深蓝AI】编译

在这里插入图片描述
▲表4|不同视图转换方法的结果©️【深蓝AI】编译

在这里插入图片描述
▲表5|实例学习中关键嵌入数量的结果©️【深蓝AI】编译

在这里插入图片描述
▲表6|占用损失的消融实验结果©️【深蓝AI】编译

在这里插入图片描述
▲表7|不同时序融合方法的结果©️【深蓝AI】编译

在这里插入图片描述
▲表8|不同方法效率的结果。“VT”表示透视图和鸟瞰图之间的转换方法;“Trans”表示Transformer结构;“SA”表示自注意力©️【深蓝AI】编译

在这里插入图片描述
▲图5|nuScenes验证数据集上的可视化结果©️【深蓝AI】编译

在这里插入图片描述
▲图6|Argoverse验证数据集上的可视化结果©️【深蓝AI】编译

在这里插入图片描述
▲图7|矢量点回归的可视化©️【深蓝AI】编译

在这里插入图片描述
▲图8|HD网格地图合并效果的比较©️【深蓝AI】编译

在这里插入图片描述
▲图9|网格地图合并的分析©️【深蓝AI】编译

5. 总结

本文详细介绍了DTCLMapper框架,它由两个核心模块组成:实例一致性学习(ICL)和地图一致性学习(MCL)。ICL模块通过矢量点预选和聚合实例特征一致性学习,强化了实例特征在时间维度上的一致性。而MCL模块则通过全局的几何和状态一致性约束,确保了地图的整体一致性和泛化能力。这两个模块的协同作用显著提高了矢量化高精地图的构建精度和质量。

作者计划进一步优化和扩展DTCLMapper框架,以适应更复杂的驾驶环境和处理更大规模的数据集。此外,作者建议各位学者去探索更多的自监督学习方法和多任务学习策略,以增强模型的泛化能力和适应性。

编译|Deep蓝同学

审核|Los

移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态👇
深蓝AI·赋能智自动驾驶与人工智能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

突发!马斯克3140亿参数Grok开源!Grok原理大公开!

BIG NEWS: 全球最大开源大模型!马斯克Grok-1参数量3410亿,正式开源!!! 说到做到,马斯克xAI的Grok,果然如期开源了! 就在刚刚,马斯克的AI创企xAI正式发布了此前备受期待大模型Grok-1,其参数量达…

硅纪元视角 | 虚拟神经科学的突破:AI「赛博老鼠」诞生

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

企业需要什么样的MES?

MES(英文全称:Manufacturing Execution System),即制造执行系统,是面向车间生产的管理系统。它位于上层计划管理系统(如ERP)与底层工业控制(如PCS层)之间,是制…

【Linux】:服务器用户的登陆、删除、密码修改

用Xshell登录云服务器。 1.登录云服务器 先打开Xshell。弹出的界面点。 在终端上输入命令ssh usernameip_address,其中username为要登录的用户名,ip_address为Linux系统的IP地址或主机名。 然后输入密码进行登录。 具体如下: 找到新建会话…

Windows与time.windows.com同步time出错(手把手操作)

今天我来针对Windows讲解Time同步 时间问题 计算机的时间不同,过快或者过慢。(可以和自己的手机时间进行对比,手机的时间进行同步的频率会比计算机更快,因此更精准)计算机time过快和过慢,会导致使用过程中…

想实现随时随地远程访问?解析可道云teamOS内网穿透功能

在数字化时代,无论是个人还是企业,都面临着数据共享与远程访问的迫切需求。 比如我有时会需要在家中加班,急需访问公司内网中的某个关键文件。 然而,由于公网与内网的天然隔阂,这些需求往往难以实现。这时&#xff0c…

代码随想录 链表章节总结

移除链表元素 && 设计链表 学会设置虚拟头结点 翻转链表 leetcode 206 https://leetcode.cn/problems/reverse-linked-list/description/ 方法一:非递归新开链表 头插法:创建一个新的链表,遍历旧链表,按顺序在新链表使…

AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x02.初识与安装 CUDA 并行计算平台和编程模型 什么是 CUDA? CUDA(Compute Unified Device Architecture)是英伟达(NVIDIA)推出的并行计算平台和编…

idea提交代码或更新代码一直提示token然后登陆失败无法提交或者更新代码

最近因为换了电脑需要对开发环境做配置, 遇到了这个问题, 应该是因为我们用到了gitlab,默认的最新的idea会有gitlab插件 强制录入gitlab的token,如果gitlab不支持token的验证那么问题就来了 , 不管怎么操作都无法提交或…

Spring MVC深入理解之源码实现

1、SpringMVC的理解 1)谈谈对Spring MVC的了解 MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。 Model:数据模型,JavaBean的类,用来进行数据封装…

单链表详解(2)

三、函数定义 查找节点 //查找结点 SLTNode* SLTNodeFind(SLTNode* phead, SLTDataType x) {assert(phead);SLTNode* pcur phead;while (pcur){if (pcur->data x){return pcur;}pcur pcur->next;}return NULL; } 查找节点我们是通过看数据域来查找的,查…

【MySQL05】【 undo 日志】

文章目录 一、前言二、undo 日志(回滚日志)1. 事务 id2. undo 日志格式2.1 INSERT 对应的 undo 日志2.2 DELETE 对应的 undo 日志2.3 UPDATE 对应的 undo 日志2.3.1 不更新主键2.3.2 更新主键 2.3 增删改操作对二级索引的影响2.4 roll_pointer 3. FIL_PA…

layui项目中的layui.define、layui.config以及layui.use的使用

第一步:创建一个layuiTest项目,结构如下 第二步:新建一个test.js,利用layui.define定义一个模块test,并向外暴露该模块,该模块里面有两个方法method1和method2. 第三步:新建一个test.html,在该页面引入layui.js&#x…

neo4j 图数据库:Cypher 查询语言、医学知识图谱

neo4j 图数据库:Cypher 查询语言、医学知识图谱 Cypher 查询语言创建数据查询数据查询并返回所有节点查询并返回所有带有特定标签的节点查询特定属性的节点及其所有关系和关系的另一端节点查询从名为“小明”的节点到名为“小红”的节点的路径 更新数据更新一个节点…

python爬虫和用腾讯云API接口进行翻译并存入excel,通过本机的Windows任务计划程序定时运行Python脚本!

项目场景: 提示:这里简述项目相关背景:定时爬取外网的某个页面,并将需要的部分翻译为中文存入excel 接下了的,没学过的最好看一下 基本爬虫的学习 【爬虫】requests 结合 BeautifulSoup抓取网页数据_requests beauti…

Vue CoreVideoPlayer 一款基于 vue.js 的轻量级、优秀的视频播放器组件

大家好,我是程序视点的小二哥!今天小二哥给大家推荐一款非常优秀的视频播放组件 效果欣赏 介绍 Vue-CoreVideoPlayer 一款基于vue.js的轻量级的视频播放器插件。 采用Adobd XD进行UI设计,支持移动端适配,不仅功能强大,颜值也是超一流! Vue-…

第一次构建一个对话机器人流程解析(二)

1. 问答机器人的组成-基于知识图谱的搜索 在教育场景下,若学生有关于学习内容的提问,或业务层面的提问,则要求问答机器人的回答必须精准,来满足业务的要求因此需要通过知识图谱来快速检索,所提内容的相关信息&#xf…

数字系统与进制转换

数字系统 数字逻辑是计算机科学的基础,它研究的是如何通过逻辑门电路(与门、或门、非门等)实现各种逻辑功能。数字系统则是由数字逻辑电路组成的系统,可以实现各种复杂的运算和控制功能。在计算机科学中,数字逻辑和数…

自定义波形图View,LayoutInflater动态加载控件保存为本地图片

效果图: 页面布局: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="…

Kubernetes基于helm部署jenkins

Kubernetes基于helm安装jenkins jenkins支持war包、docker镜像、系统安装包、helm安装等。在Kubernetes上使用Helm安装Jenkins可以简化安装和管理Jenkins的过程。同时借助Kubernetes&#xff0c;jenkins可以实现工作节点的动态调用伸缩&#xff0c;更好的提高资源利用率。通过…