MapTR v2文章研读

news2024/11/23 6:59:23

MapTR v2论文来了,本文仅介绍v2相较于v1有什么改进之处,如果想了解v1版本的论文细节,可见链接。

相较于maptr,maptr v2改进之处:

  1. 在分层query机制中引进解耦自注意力机制,有效降低了内存消耗;
  2. 在训练阶段,额外引进一对多预测分支,增加正样本数量,有效加速模型收敛;
  3. 在透视图(perspective view)和鸟瞰图(bev)增加密集监督,有效提升模型性能;
  4. 加入center-line类别,利于下游的规划控制;
  5. 提供更多关于模型工作的理论分析;
  6. 将模型框架由2D地图元素结构扩展至3D地图元素预测;
  7. 额外增加关于Argoverse2数据的实验结果。

下面依据改进之处展开说一下。首先看一下v2版本的模型整体结构示意图:

在这里插入图片描述

Encoder

在encoder阶段,maptr v2支持多种pv转bev方法,如CVT、LSS、Defirmable Attention、GKT和IPM。为了引入深度信息,默认使用基于LSS的BEVPoolv2作为转换方式。

Decoder

在decoder阶段,作者引入新的self-Attention变体和cross-Attention变体。

self-Attention变体

maptr采用一般的自注意力机制来交换queries信息,计算复杂度为 O ( ( N + N v ) 2 ) O((N+N_v)^2) O((N+Nv)2),其中 N N N N v N_v Nv分别代表实例queries数量和每个queries点的数量,点的数量是固定的,但随着实例数的增加,其消耗的内存资源也是逐步增加的。在maptr v2中,作者提出使用解耦的自注意力机制代替普通的attention,具体就是分别在实例queries之间和queries内部做self-attention,具体可见上图,计算复杂度为 O ( N 2 + N v 2 ) O(N^2+N_v^2) O(N2+Nv2)。有效的降低了内存消耗,实验表明,这种方式使得模型有更高的性能。

cross-Attention变体

作者在maptr v2文章中提出三种cross-attention方式,分别是基于bev的 cross-attention、基于pv的cross-attention和两者集合的cross-attention。其中,基于bev的 cross-attention和maptr中的一样,这里不在详述;基于pv的cross-attention,得到预测的参考点集后,在特征图上采集各点周围的特征值;两者结合的cross-attention,就是将结合上述两种方式的attention方法。具体可见上图。

loss函数

一对多损失

在这里插入图片描述

maptr v2引入一对多损失方法,在训练时额外添加一对多的匹配分支。其中一对一损失即为maptr中定义的损失函数。一对多损失,如上图所示,将真值的地图元素复制k份,地图元素数量增加至 T T T,新的真值定义为 Y ′ = { y i ′ } i = 0 T − 1 Y'=\left\{y'_i\right\}_{i=0}^{T-1} Y={yi}i=0T1。然后同样在Y和Y使用分层的二分匹配,计算损失。对于一对多的匹配分支,一个真值地图元素可以匹配k个预测的地图元素。在训练时增加了正样本数量,使得decoder收敛更快。
在这里插入图片描述

辅助的密集预测损失(Dense Prediction Loss)

为了更好的利用语义和几何信息,maptr v2 引入三种辅助的损失函数:
在这里插入图片描述

Depth Prediction Loss

在这里插入图片描述

BEV Segmentation Loss

在这里插入图片描述

PV Segmentation Loss

在这里插入图片描述

总的损失函数:

在这里插入图片描述

Centerline

在v2,作者根据LaneGAP提出的路径规划模型,在类别中加入一种特殊的地图元素centerline,它可以提供方向信息,在规划控制里很重要。
在这里插入图片描述
加入centerline类别后,模型分别在nuscenes和argoverse2数据集上测试结果如上表。

结果

在nuscenes验证集上测试结果
在这里插入图片描述

在Argoverse2验证集上测试结果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Spring中如何解决循环依赖问题

一、什么是循环依赖 循环依赖也叫循环引用,是指bean之间形成相互依赖的关系,由此,bean对象在属性注入时便会产生循环。这种循环依赖会导致编译器无法编译代码,从而无法运行程序。为了避免循环依赖,我们在开发过程中需…

视频号视频下载工具有那些?我们怎么下载视频号里面的视频

本篇文章给大家谈谈视频号视频下载工具,以及视频号视频如何下载?对应的知识点,希望对各位有所帮助。 视频号里面的视频可以下载吗? 视频号官方首先是不提供下载功能的,但是很多第三方可以提供视频号的视频下载功能。 早期版本视…

【力扣每日一题】2023.9.12 课程表Ⅳ

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 今天是课程表系列题目的最后一题,因为我在题库里找不到课程表5了,所以今天的每日一题就是最后一个课程表了。 题…

小节5:Python列表list常用操作

1、对列表的基本认知: 列表list,是可变类型。比如,append()函数会直接改变列表本身,往列表里卖弄添加元素。所以,list_a list_a.append(123)就是错误的。如果想删除列表中的元素,可以用remove()函数&…

基于微信小程序的宠物寄养平台,附源码、数据库

1. 简介 本文正是基于微信小程序开发平台,针对宠物寄养的需求,本文设计出一个包含寄养家庭分类、寄养服务管理、宠物档案、交流论坛的微信小程序,以此帮助宠物寄养的实现,促进宠物寄养工作的进展。 2 开发技术 微信小程序的运行环境分为渲染层和逻辑层&#xff0…

仿照Everything实现的文件搜索工具--SearchEverything

一、项目介绍 项目名称:SearchEverything 项目简介:SearchEverything是仿照Everything实现的一款桌面级的文件搜索软件,它是Everything的增强版,支持跨平台的使用。 项目功能: 1.选择文件夹后,多线程扫描文件夹下的…

学会这个技能,写字楼立马高级起来!

在当今现代化社会中,写字楼已成为商业和行政活动的中心。成千上万的人们每天涌入这些高楼大厦,从事各种各样的工作,以实现公司和组织的目标。然而,与这种繁忙的办公环境一样,也带来了一系列的安全挑战和管理难题。 随着…

【大数据之Kafka】十一、Kafka消费者及消费者组案例

1 独立消费者案例(订阅主题) (1)需求:创建一个独立消费者,消费 first 主题中数据。 (2)分析: 注意:在消费者 API 代码中必须配置消费者组 id。命令行启动消…

算法通关村第13关【青铜】| 数字与数学基础问题

数字统计专题 1.数组元素积的符号 思路&#xff1a;每回碰到负数就取反 class Solution {public int arraySign(int[] nums) {int res nums[0];if(nums[0]>0){res 1;}else if(nums[0]<0){res -1;}else{return res;}for(int i 1;i<nums.length;i){if(nums[i]<…

Linux基本认识

一、Linux基本概念 Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统&#xff0c;是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多…

地下管网实时水位监测用什么设备好?

地下排水管网是城市重要基础设施生命线之一&#xff0c;主要用于排放雨水、地表水和废水&#xff0c;以维护城市的安全运行。然而&#xff0c;在极端天气事件发生时&#xff0c;排水系统可能会面临压力巨大&#xff0c;导致排水不畅引发城市内涝。通过对管网水位实时监测&#…

Java集合大总结——Collection集合

Collection集合的整理 1、List&#xff0c;Set&#xff0c;Queue&#xff0c;Map四者的区别集合底层数据结构梳理2、关于集合的的选用2.1 为什么使用集合3、List接口3.1 ArrayList 和 Array&#xff08;数组&#xff09;的区别&#xff1f;3.1 LinkedList 为什么不能实现Random…

基于python+txt的学生成绩管理系统

基于pythontxt的学生成绩管理系统 一、系统介绍二、效果展示三、其他系统实现四、获取源码 一、系统介绍 录入学生信息查找学生信息删除学生信息修改学生信息排序统计学生信息显示所有学生信息 基于python的学生成绩管理系统&#xff0c;具备基本的增删改查功能&#xff0c;包…

2023-9-12 完全背包问题

题目链接&#xff1a;完全背包问题 初版(时间复杂度拉满) #include <iostream> #include <algorithm>using namespace std;const int N 1010;int n, m; int v[N], w[N]; int f[N][N];int main() {cin >> n >> m;for(int i 1; i < n; i ) cin >…

AntDB数据库参加ACDU中国行杭州站,分享数据库运维实践与经验

关于ACDU 和中国行: ACDU是由墨天轮社区举办的中国数据库联盟的品牌活动之一&#xff0c;在线下汇集数据库领域的行业知名人士&#xff0c;共同探讨数据库前沿技术及其应用&#xff0c;促进行业发展和创新的平台&#xff0c;也为开发者们提供友好交流的机会。 AntDB作为具有技术…

Kafka 基于 S3 的数据导出、导入、备份、还原、迁移方案

在系统升级或迁移时&#xff0c;用户常常需要将一个 Kafka 集群中的数据导出&#xff08;备份&#xff09;&#xff0c;然后在新集群或另一个集群中再将数据导入&#xff08;还原&#xff09;。通常&#xff0c;Kafka集群间的数据复制和同步多采用 Kafka MirrorMaker&#xff0…

【C++】常用集合算法

0.前言 1.set_intersection #include <iostream> using namespace std;// 常用集合算法 交集set_intersection #include<vector> #include<algorithm>void myPrint(int val) {cout << val << " "; }void test01() {vector<int>v…

Oracle启动报错解决:ora-00119和ora-00132

WINDOWS环境下&#xff0c; 查看Oracle的各项服务都正常&#xff0c; 但是SQL窗口启动ORACLE报错ora-00119和ora-00132&#xff0c;如何解决&#xff1a; 一、问题描述 1、ORACLE服务全部打开&#xff0c;没有报错&#xff1b; 2、plsql登陆报ora-12505错&#xff1b; 3、监听…

docker启动MySQL报错:退出状态码1

docker启动mysql反复重启&#xff0c;通过 使用 docker logs 容器ID chown: cannot read directory /var/lib/mysql/: Permission denied 但是目录权限确认没问题&#xff0c;即使 chmod 777 还是报相同的错误&#xff0c;后来发现是selinux的问题 查看状态 getenforce 临时…

保护个人隐私,自建个性图床:Cpolar+Qchan轻量级搭建教程分享

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景&#xff0c;在大量开发人员的努力下&#xff0c;已经开发出大…