MapTR论文笔记

MAPTR: STRUCTURED MODELING AND LEARNING FOR ONLINE VECTORIZED HD MAP CONSTRUCTION

目的

传统高精地图 通过一些离线的基于 SLAM 的方法生成,需要复杂的流程以及高昂的维护费用。基于 bev 分割的建图方法,缺少向量化 实例级的信息,比如说lane结构。为了获得向量化的 HD map,HDMapNet 将像素级的分割结果分组,需要复杂且耗时的后处理。VectorMapNet 将地图的元素表示成点序列,采用了层级式 coarse-to-fine 网络,并且利用了自回归的 decoder 预测 序列化的点集,需要较长的推理时间。
![[attachments/Pasted image 20230806170047.png]]
当前在线向量化的在线高清地图的构建方法的效率较低,无法应用到实时的场景。DETR 采用了简单的 encoder-decoder transformer 结构,实现了端到端的目标检测。本文的目的是设计一个 类似于 DETR 结构,高效的端到端的 高清地图的构建方法。

本文的主要贡献主要有两点:

  1. 对于地图元素的统一表示
  2. 针对这种统一表示给出了 一个端到端学习的网络结构

方法

地图元素表示

地图的元素可表示成 折线 和 多边形 两种类别。这两种都可以用 点集 表示。然而点集的排列方式不是唯一的,存在多种排列方式。比如说 折线,它的起点和终点是可以互换的,代表两种方向,对于一些方向不敏感的元素,比如说人行道或者 车道线,两种方向都是可以的。如下图所示:

如果让网络只学习某一种排列方式,是不合理的。因此本文对于每一个地图元素都给出了所有的排列组合方式,用于后续网络的训练。
对于折线,根据起点位置的不同,有两种排列方式。对于多边形,需要考虑两个因素: 起点的位置 以及 连接的顺序(顺时针 或 逆时针),这样可以产生多种排列方式。

在这里插入图片描述

匹配方法

和 DETR 一样,MapTR 同时预测 N 个地图元素,N 是一个较大的数字,比一般场景中地图元素的数量要大。
MapTR 中需要使用两种匹配方法以实现 网络预测的元素 和 gt 某个元素的某一个具体的排列方式的匹配。本文的匹配方法有两个层级:Instance-level Matching 以及 Point-level Matching。

Instance-level Matching

在训练时,我们需要把 网络预测的元素 和 gt 匹配起来,这里也是使用的匈牙利匹配算法。
预测元素 和 gt 的 cost 考虑两部分:
元素的类别 以及 位置。类别使用的是 Focal loss,位置的loss使用的是 关于点位置的距离函数。

Point-level Matching

在 实例级的匹配之后,我们已经拿到了 预测元素 和 gt 的匹配关系,然后我们还需要做 点级的 匹配。
预测的点集 会和 gt 排列组合 中 每一个 排列方法 计算 距离,选择距离最小的一个配对。这里使用的是曼哈顿距离。

训练的 loss

  • 分类 loss focal loss
  • point2point loss,曼哈顿距离
  • edge direction loss,point2point loss 只考虑了点,并没有考虑 和折线 和 多边形的 边。edge direction loss 加入了对 边方向的 监督。这里使用的是余弦相似度。
    边可以用向量来表示(空间中两个点的坐标相减)

网络结构

MapTR 结构还是比较直接的 使用的是 bev + transformer decoder 结构

在这里插入图片描述

相关资料

https://www.bilibili.com/video/BV1uh4y1X7Ah/?spm_id_from=333.337.search-card.all.click

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

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

相关文章

3年经验,面试测试岗只会功能测试开口要求18K,令我陷入沉思。

由于朋友临时有事, 所以今天我代替朋友进行一次面试,公司需要招聘一位自动化测试工程师,我以很认真负责的态度完成这个过程, 大概近30分钟。 主要是技术面试, 在近30分钟内, 我与被面试者是以交流学习的方式…

Spring Boot3.0(一):入门篇

什么是 Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 用我的话来理解,就是 Spring…

nginx的优化和防盗链 重要!!!

实验一、隐藏版本号 要把nginx的版本号隐藏起来,防止恶意攻击 方法一:修改配置文件 在http模块中加入一个命令 server_token off; 过程: 备份,改配置文件一定要备份 修改配置文件 在http模块中添加 server_tokens …

MySQL插入数据的方法

插入数据方法: 1.insert into 表 values(value1, value2, value3....) 2.insert into 表 (字段1, 字段3, 字段5) values(value1, value2, value3) 3.insert into 表 [(字段1, 字段2, 字段3....)] values(value1, val…

string类函数--深入浅出了解

目录 1.为什么学习string类1.1C语言中的字符串1.2OJ题中的优势 2.标准库中的string类3.string类的常用接口函数3.1string类对象的常见构造3.2string类对象的容量操作3.3string类对象的访问及遍历操作3.4string类的修改操作3.5string类的非成员函数 总结 1.为什么学习string类 …

JMeter命令行执行+生成HTML报告

1、为什么用命令行模式 使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死; 所以一般采用的方式是在GUI模式下调整测试脚本,再用命令行模式执行; 命令行方式支持在…

Connection reset原因分析及解决思路

Connection reset原因分析及解决思路 我们在开发过程中经常会出现Connection reset问题,包括http调用,数据库连接等场景。出现Connection reset的原因很多,本文从tcp层面简单介绍下Connection reset出现的原因和问题,以及在实际开…

Golang 包详解以及go mod

Golang 中包的介绍和定义 包(package)是多个 Go 源码的集合,是一种高级的代码复用方案,Go 语言为我们提供了 很多内置包,如 fmt、strconv、strings、sort、errors、time、encoding/json、os、io 等。 Golang 中的包可以分为三种:1、系统内置包 2、自定义包 3、第三方包…

指令重排相关

指令流水线所带来的一些问题 结构冒险 流水线中出现硬件资源竞争 数据冒险 流水线中后面的指令需要等待前面指令完成数据的读写 控制冒险 流水线需要个怒前面指令的执行结果来决定下一步去哪儿之行 为了解决指令流水线的数据冒险所带来的停顿、CPU 搞了个乱序执行。 在遇到数…

Permute 3 for mac音视频格式转换

Permute是一款Mac平台上的媒体格式转换软件,由Chaotic Software开发。它可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式,并提供了一些常用工具以便于用户进行编辑和处理。 Permute的主要特点包括: - 支持大量格式:支…

通过cpolar内网穿透发布网页测试

通过内网穿透发布网页测试 文章目录 通过内网穿透发布网页测试 对于网站开发者来说,对完成的网页进行测试十分必要,同时还要在测试过程中充分采纳委托制作方的意见,及时根据甲方意见进行修改,但在传统的测试方式中,必须…

以太网帧格式与吞吐量计算

以太网帧结构 帧大小的定义 以太网单个最大帧 6(目的MAC地址) 6(源MAC地址) 2(帧类型) 1500{IP数据包[IP头(20)DATA(1480)]} 4(CRC校验&#xff…

认识FFMPEG框架

FFMPEG全称: Fast Forward Moving Picture Experts Group (MPEG:动态图像专家组) ffmpeg相关网站: git://source.ffmpeg.org/ffmpeg.git http://git.videolan.org/?pffmpeg.git https://github.com/FFmpeg/FFmpeg FFMPEG框架基本组件: AVFormat , AVCodec, AVDevice, AVFil…

MaxCompute发布按量付费闲时版,计算成本最高节省66.66%!

在大数据不断在追求计算效率和成本优化的背景下,阿里云云原生大数据计算服务 MaxCompute宣布推出按量付费闲时版,用户可选择用此版本完成时间不敏感的作业,从而降低计算成本,同等作业类型的计算费用与按量付费标准版相比&#xff…

【云原生】Docker中容器管理常用所有命令

1.docker 容器创建流程 2.容器运行本质 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建容器基本选项:--name:为容器命名 -i:交互式创建容器 -d:后台创建容器 -t:为容器分配伪终端 Docker 容器存在的意义就是为…

vscode自动添加注释说明

1. 安装vscode 双击安装程序,默认安装即可(如:VSCodeSetup-x64-1.70.2.exe) 2. 安装doxygen文档生成插件 1> 打开vscode软件,点击左侧插件管理菜单 2> 点击右上角’…‘按钮,选择’Install from VSIX’(联网状态可以直接搜索doxygen下载安装) 3> 选择doxygen离线安装…

Golang之路---03 面向对象——接口与多态

接口与多态 何为接口 在面向对象的领域里,接口一般这样定义:接口定义一个对象的行为。接口只指定了对象应该做什么,至于如何实现这个行为(即实现细节),则由对象本身去确定。   在 Go 语言中,…

华为harmonyos4.0鸿蒙4.0安装谷歌服务框架Play商店,解决从服务器检索信息时出错

8月4号华为手机发布了全新的harmonyos4.0鸿蒙4.0系统,很多人需要问还是不是支持谷歌服务框架?那么答案是肯定的,它和鸿蒙3是一样的,一样的操作,一样的支持安装谷歌服务框架,安装Google play商店。测试机型&…

Flink State 和 Fault Tolerance详解

有状态操作或者操作算子在处理DataStream的元素或者事件的时候需要存储计算的中间状态,这就使得状态在整个Flink的精细化计算中有着非常重要的地位: 记录数据从某一个过去时间点到当前时间的状态信息。以每分钟/小时/天汇总事件时,状态将保留…

opencv-34 图像平滑处理-2D 卷积 cv2.filter2D()

2D卷积是一种图像处理和计算机视觉中常用的操作,用于在图像上应用滤波器或卷积核,从而对图像进行特征提取、平滑处理或边缘检测等操作。 在2D卷积中,图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动,对每个局部区…