Stream Query Denoising for Vectorized HD Map Construction

参考代码:截止2024.02未开源

动机与出发点
这篇文章是在StreamMapNet的基础上做的,为了在局部地图感知任务上提升时序上的感知稳定性,参考DN-DETR中的去噪方案,为局部地图感知提出一种针对局部地图元素的加噪声方案以及去噪逻辑。注意的是,这里DN去噪操作是在上一帧GT的基础上做的,原因是上一帧的感知结果存在相对GT存在更大不确定性(感知结果质量、地图元素新增和去除),为了训练的稳定性。文章由于noise机制的引入增加了一些超参数的引入,不过文章也通过消融实验给出了对应合适的取值。

方法设计
文章算法的结构见下图所示:
在这里插入图片描述
明显的差异是其在StreamMapNet的基础上增加了去噪分支,这个分支需要确定参与去噪的地图元素与当前帧的对应关系(也就是上图中的Adaptive Temporal Matching),以及寻找到对应关系之后依据元素之间的距离计算加噪声的力度(也就是上图中对应的Dynamic Query Noising)。之后就是在噪声元素基础上构建query进行解码和去噪了。

噪声的生成
1. 噪声源与对应GT的确定
为什么选择前一帧的GT作为去噪步骤的信息来源,在上面的内容中已经做了解释,按照文中的解释是为了训练的稳定性。那么怎么确定前一帧GT和当前帧GT呢?自然是使用CD(Chamfer distance)距离了,这个距离会按照距离值计算两帧GT每个元素之间的最匹配的索引和对应的距离值(自然在计算距离之前需要根据ego-motion将前一帧元素变换到当前帧下,也就是得到 y ^ \hat{y} y^):
D , i d x = min ⁡ j ∈ [ 1 , m ] ( C D ( y i t , y ^ j t − 1 ) ) D,idx=\min_{j\in[1,m]}(CD(y_i^t,\hat{y}_j^{t-1})) D,idx=j[1,m]min(CD(yit,y^jt1))
那么拿到两帧之间的匹配关系之后,就可以依据每个元素的的宽高(有外接矩形确定)和设定的超参数 α \alpha α(容忍度系数调节)来确定匹配的阈值:
δ = α w + h 2 \delta=\alpha\frac{w+h}{2} δ=α2w+h
这种自适应的匹配阈值和固定阈值对性能带来的影响见下表:
在这里插入图片描述

2. 噪声添加
这里将地图元素描述为有序点的形式,用一个外接矩形去包围它,那么调整外接矩形中心的位置和宽高就可以调整这个地面元素上点的位置了,因为设定了地图元素上每个点相对矩形的相对位置是不变的。也就是下图中对地图元素做sift和scale操作
在这里插入图片描述
那么sift和scale操作的幅度是多大呢?一个思路是可以根据匹配的结果来确定,那么就可以在基准噪声( η = { Δ x , Δ y , Δ w , Δ h } \eta=\{\Delta x,\Delta y,\Delta w,\Delta h\} η={Δx,Δy,Δw,Δh})的基础上添加一个增益因子 R d e c a y R_{decay} Rdecay
R d e c a y = 1 − D γ ⋅ δ α R_{decay}=1-\frac{D}{\gamma\cdot\frac{\delta}{\alpha}} Rdecay=1γαδD
其中, γ \gamma γ为增益控制因子,那么在增益的加持下添加noise的过程描述为:
B i n s = { x , y , w , h } + { Δ x , Δ y , Δ w , Δ h } ⋅ R d e c a y B_{ins}=\{x,y,w,h\}+\{\Delta x,\Delta y,\Delta w,\Delta h\}\cdot R_{decay} Bins={x,y,w,h}+{Δx,Δy,Δw,Δh}Rdecay
那么这个超参数的取值和对性能的影响见下表:
在这里插入图片描述

noising query的生成
对于加了noise之后地图元素上的某个点 p i m = { x i , y i } p_i^m=\{x_i,y_i\} pim={xi,yi},将它的位置进行编码 P E ( ⋅ ) 是 M L P PE(\cdot)是MLP PE()MLP
P i m = M L P ( p t ) ( C o n c a t ( P E ( x i m ) , P E ( y i m ) ) ) P_i^m=MLP^{(pt)}(Concat(PE(x_i^m),PE(y_i^m))) Pim=MLP(pt)(Concat(PE(xim),PE(yim)))
那么这个元素的编码就是元素上所有点编码的组合:
P o s q = M L P ( p o s ) ( C o n c a t ( P 1 m , … , P n m ) ) Pos_q=MLP^{(pos)}(Concat(P_1^m,\dots,P_n^m)) Posq=MLP(pos)(Concat(P1m,,Pnm))
这个关于位置的编码再加上关于类别的编码就是这个noise之后的地图元素的query了:
Q d e n o i s e = M L P ( f u s e ) ( C o n c a t ( C q , P o s q ) ) Q_{denoise}=MLP^{(fuse)}(Concat(C_q,Pos_q)) Qdenoise=MLP(fuse)(Concat(Cq,Posq))

上面说到的两个工作在base上的影响见下表所示:
在这里插入图片描述

实验结果
在Nuscenes下与其它一些局部地图感知算法的性能比较:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在线JSON解析格式化工具

在线JSON解析格式化工具 - BTool在线工具软件,为开发者提供方便。JSON在线可视化工具:提供JSON视图,JSON格式化视图,JSON可视化,JSON美化,JSON美化视图,JSON在线美化,JSON结构化,JSON格式化,JSON中文Unicode等等。以清晰美观的结构化视图来展示json,可伸缩折叠展示,…

精品jsp+ssm人事办公管理系统OA考勤考核出入库

《[含文档PPT源码等]精品jspssm基于java的办公管理系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版本&…

【Vue】Vue基础入门

📝个人主页:五敷有你 🔥系列专栏:Vue ⛺️稳重求进,晒太阳 Vue概念 是一个用于构建用户界面的渐进式框架优点:大大提高开发效率缺点:需要理解记忆规则 创建Vue实例 步骤: …

微信发送一条消息经历哪些过程。企业微信以及钉钉的IM架构对比

0.前言 微信和钉钉是经常会与到两个IM通讯软件,今天从技术角度对他们两个进行分析。这样也方便对于构建IM系统有更好的了解和认识。如果目标是想构建一个IM即时通信的app或者说想了解一下一条消息的收发会经历什么过程可以详细了解一下。 我们可以想想一下微信发送…

Linux中有名管道和无名管道

无名管道基础 进程间通信介绍 常用通信方式 无名管道(pipe) 有名管道 (fifo) 信号(signal) 共享内存(mmap) 套接字(socket)过时的IPC通信方式 System V IPC 共享内存(sh…

AI大模型开发架构设计(10)——AI大模型架构体系与典型应用场景

文章目录 AI大模型架构体系与典型应用场景1 AI大模型架构体系你了解多少?GPT 助手训练流程GPT 助手训练数据预处理2个训练案例分析 2 AI 大模型的典型应用场景以及应用架构剖析AI 大模型的典型应用场景AI 大模型应用架构 AI大模型架构体系与典型应用场景 1 AI大模型架构体系你…

给你介绍一款适合教培行业的手机软件,很好用,关键还是免费的

给你介绍一款适合教培行业的手机软件,很好用,关键还是免费的,DT浏览器不同于普通意义上的浏览器,DT的含义就是数据资料的意思,更专注于资料的收集和管理,是一款资料管理类的浏览器,也是一款面向…

学生公寓|基于Springboot的学生公寓管理系统设计与实现(源码+数据库+文档)

学生公寓管理系统目录 目录 基于Springboot的学生公寓管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、宿舍列表 2、宿舍公告信息管理 3、宿舍公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

Solidworks:平面工程图练习

把草图变成工程图,遇到第一个问题是线宽需要用鼠标选中后再设置线宽和颜色。我觉得应该有一个自动设置现款的功能,不知道有没有,我找了半天也没找到。 另一个问题是,作业代号字体上下颠倒了,不知道这是啥意思。 第三个…

使用LORA微调RoBERTa

模型微调是指在一个已经训练好的模型的基础上,针对特定任务或者特定数据集进行再次训练以提高性能的过程。微调可以在使其适应特定任务时产生显着的结果。 RoBERTa(Robustly optimized BERT approach)是由Facebook AI提出的一种基于Transfor…

单片机学习笔记---DS18B20温度传感器

目录 DS18B20介绍 模拟温度传感器的基本结构 数字温度传感器的应用 引脚及应用电路 DS18B20的原理图 DS18B20内部结构框图 暂存器内部 单总线介绍 单总线电路规范 单总线时序结构 初始化 发送一位 发送一个字节 接收一位 接收一个字节 DS18B20操作流程 指令介…

L2-002 链表去重

一、题目 二、解题思路 结构体数组的下标表示该节点的地址,value 表示该节点的值,next 表示下一个结点的地址。result1 表示去重后的链表的节点的地址,result2 表示被删除的链表的节点的地址。 flag 表示节点对应的值是否出现过,…

第二节:轻松玩转书生·浦语大模型趣味Demo

参考教程:https://github.com/InternLM/tutorial/blob/main/helloworld/hello_world.md InternLM-Chat-7B 智能对话 Demo 终端运行 web demo 运行 1.首先启动服务: cd /root/code/InternLM streamlit run web_demo.py --server.address 127.0.0.1 --…

Python爬虫之文件存储#5

爬虫专栏:http://t.csdnimg.cn/WfCSx 文件存储形式多种多样,比如可以保存成 TXT 纯文本形式,也可以保存为 JSON 格式、CSV 格式等,本节就来了解一下文本文件的存储方式。 TXT 文本存储 将数据保存到 TXT 文本的操作非常简单&am…

Stable Diffusion 模型下载:DreamShaper XL(梦想塑造者 XL)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 DreamShaper 是一个分格多样的大模型,可以生成写实、原画、2.5D 等…

给定长度为n的数组b,求对于任意1<=l<=r<=n, 求b[i] + b[j] + b[k] - (r - l) 的最大值(l<=i, j, k<=r)

题目 思路: #include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn = 1e6 + 5, inf = 1e18 + 5, maxm = 4e4 + 5,…

leetcode(双指针)11.盛最多水的容器(C++详细解释)DAY9

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回…

利用pandas读取MongoDB库中的数据

下方代码的主要目的是从MongoDB数据库中获取数据&#xff0c;并使用pandas库将其转换为DataFrame。 # codingutf-8 from pymongo import MongoClient import pandas as pd# 创建MongoDB客户端连接 client MongoClient() # 选择数据库douban中的集合tv1 collection client[do…

java之jvm详解

JVM内存结构 程序计数器 Program Counter Register程序计数器(寄存器) 程序计数器在物理层上是通过寄存器实现的 作用&#xff1a;记住下一条jvm指令的执行地址特点 是线程私有的(每个线程都有属于自己的程序计数器)不会存在内存溢出 虚拟机栈(默认大小为1024kb) 每个线…

每日五道java面试题之java基础篇(七)

第一题. HashMap和HashTable有什么区别&#xff1f;其底层实现是什么&#xff1f; 区别 &#xff1a; HashMap⽅法没有synchronized修饰&#xff0c;线程⾮安全&#xff0c;HashTable线程安全&#xff1b;HashMap允许key和value为null&#xff0c;⽽HashTable不允许 底层实现…