端到端实现高精地图重建(TopoNet解读和横评)

论文出处

[2304.05277] Graph-based Topology Reasoning for Driving Scenes (arxiv.org)https://arxiv.org/abs/2304.05277

TopoNet

TopoNet的目标是从车辆上安装的多视角摄像头获取图像,感知实体并推理出驾驶场景的拓扑关系,实现端到端预测,下图是TopoNet的整体设计

765443d2ecb9448c8a85fce4f6259480.png

模块解读

  1. 特征编码:多视角图片作为输入,特征提取器生成多尺度的图像特征,单独提取前视图特征。然后通过view transformerm模块生成BEV特征。前视图特征和BEV特征在后面被分成两个分支来做处理,因为在前视图中更容易学习到交通元素的特征在BEV中不容易学习,而在BEV空间中更容易学习中心线的特征

  2. 可变注意力解码:这里设计了是多层的解码器堆叠,两个特征分别传入两个都是基于可变注意力的decoder,前视图特征做Q查询是学习交通元素的信息,而BEV特征Q查询是为了学习中心线的中心线。

  3. SGNN模块:

    1. 因为在透视图中的交通要素的位置特征很难利用,但是语义特征很重要,所以先利用嵌入网络来提取交通元素的语义信息,然后转换为统一的特征空间和中心线匹配。

    2. 分别构建两个有向图来传播特征(直接构建一个全连接图计算成本高,会学习到非必要的信息),一个用于车道图估计Gll,一个代表交通要素分配Glt。分别对两个图做GNN学习。因为Ql和Qt代表不同的查询对象,语义有差异,引入适配器层组合信息增益R,流程如下图。(融合学习信息的操作,生成下一级decoder的查询Q)f964f51e88a7401e98c7e69b606792ea.png

    3. 在一个场景知识图中,不同类别的交通要素的权重矩阵是独立的,会为不同走向的车道带来不同的信息。所以接下来是用了一个改造过的图卷积网络GCN(被拆分成了两块),查询交通要素聚合信息。7adf5585b9584fc7902074267e0e2294.png

          这是一个在场景知识图上更新查询LC1的例子。计算过程:中心线部分根据学习权重矩阵的情况结合前向和后向的权重去计算(因为车道的结构是彼此依赖的,车道位置信息可以很好指示邻居的信息),每个节点的新特征都是受到它的邻居影响的。而交通要素之间的特征更新是特征查询和特征类别做矩阵乘法更新

  4. 检测头部分:模型对应出三个检测头,直接交通元素decoder产生的检测头做用于检测指示牌,信号灯等,而根据SGNN得到的检测头可分为拓扑关系检测头和中心线的洁厕头,拓扑关系的检测头是交通元素和中心线共同作用的结果

损失函数

模型中用到了多种损失函数,匈牙利算法生成真实值和预测值之间的匹配

交通要素:Focal loss分类损失,L1 loss回归损失 ,IOU loss位置损失

中心线:Focal loss分类损失,L1 loss回归损失

其他三种技术

STSU

论文出处:

[2203.17270] BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers (arxiv.org)https://arxiv.org/abs/2203.17270

遵循 DETR 的做法,使用稀疏查询进行对象检测。STSU也是使用两组查询向量,一组用于中心线,一组用于交通对象元素。他的transformer有两个分支,车道分支和目标分支。

车道分支:检测头预测是否存在由某个查询向量编码的车道,控制头预测 R 贝塞尔曲线 控制点的位置,关联头预测用于聚类的嵌入向量,关联分类器判断关联性。贝塞尔曲线非常适合中心线,可以使用固定数量的 2D 点对任意长度的曲线进行建模

目标分支:处理transformer的提议,包含检测头, MLP + sigmoid 层,后处理网络:将实例转换为语义分割0cffa9a5299e413cab69eb31aafe3664.png

VectorMapNet

论文出处:[2206.08920] VectorMapNet: End-to-end Vectorized HD Map Learning (arxiv.org)https://arxiv.org/abs/2206.08920

用矢量来构建高精度语义地图,设计思路是将该问题构建为稀疏点集预测问题,每个语义元素由N_v个有序二维点列构成的折线表示。

主要由三部分组成:BEV特征提取、地图元素检测:利用transformer的decoder,polyline生成:基于BEV特征。预测头是一个分类分支和一个回归分支。2e8fddd9f9ab454ca208844978716200.png

MapTR

论文出处: 

[2208.14437] MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction (arxiv.org)https://arxiv.org/abs/2208.14437

MapTR是一个基于排列的HD Map构造方法,它将每个地图元素视为有着一组等价排列方式的点集。封闭形状被描绘为多边形polygon,开放形状被描绘为线段polyline,通过这样的方式避免地图元素定义上的歧义。

具体工作流程是先做2D to BEV的encoder,得到BEV特征,然后用transformer的decoder,其中query查询的就是点集特征,最后是分类头和预测头输出。3c4a0bd3b30f47bbb0741c8258ab6c46.png

 

TopoNet会表现出优势的原因

其实这些模型的构建思路都很相似,区别在于他们对问题做了不同的抽象,把模型学习特征要素的表示方式不一样,STSU是贝塞尔曲线,VectorMapNet是矢量集合来表示,MapTR就更加精细一点,提出了等价排列点集的思路。

TopoNet的优势在于作者思考后把问题转化到了图的拓扑关系问题。作者设计了模型专门学习图的拓扑关系,利用了可变注意力和图神经网络区学习。学习到了节点之间的邻接关系,中心线和交通要素间的关系。

还有就是对交通要素和中心线先是分别提取特征学习,然后再融合更新查询矩阵Q这个思路和STSU相似,看起来也很有效。交通要素头和中心线预测头都很好学习到了自身的特征。拓扑关系预测头则是两者的融合,这个设计也很巧妙,是前面分别做特征提取和decoder的思路延续。

 

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

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

相关文章

【自动化测试】----Java的单元测试工具Junit5

目录 支持Java的最低版本为8在pom.xml添加依赖Junit提供的注解功能 断言 Assertion类提供的一些方法测试用例执行顺序 (为了预防测试用例执行顺序错误)参数化 (假设登陆操作,用户名和密码很多,尽可能通过一个测试用例…

Java多线程--JDK5.0新增线程创建方式

文章目录 一、新增方式1:实现Callable接口(1)介绍(2)案例(3)总结对比 二、新增方式2:使用线程池(1)问题与解决思路1、现有问题2、解决思路3、好处 &#xff0…

Swift Vapor 教程(查询数据、插入数据)

上一篇简单写了 怎么创建 Swift Vapor 项目以及在开发过程中使用到的软件。 这一篇写一个怎么在创建的项目中创建一个简单的查询数据和插入数据。 注:数据库配置比较重要 先将本地的Docker启动起来,用Docker管理数据库 将项目自己创建的Todo相关的都删掉…

以小猪o2o生活通v17.1为例简要分析SWOOLE加密破解,swoole_loader加密破解swoole加密逆向后的代码修复流程(个人见解高手掠过)

现在用Php加密五花八门除了组件就是混淆,在组件里面响当当的还属swoole,SWOOLEC是不错的国产加密,值得推荐官方宣称是永远无法破解的加密算法,针对swoole compiler的代码修复我谈谈我的看法,以小猪o2o生活通&#xff0…

PyTorch 2.2 中文官方教程(十九)

使用 RPC 进行分布式管道并行 原文:pytorch.org/tutorials/intermediate/dist_pipeline_parallel_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 作者:Shen Li 注意 在github中查看并编辑本教程。 先决条件: PyTorc…

04-Java建造者模式 ( Builder Pattern )

建造者模式 摘要实现范例 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象 一个Builder 类会一步一步构造最终的对象,该 Builder 类是独立于其他对象的 建造者模式属于创建型模式,它提供了一种创建对…

深度学习手写字符识别:训练模型

说明 本篇博客主要是跟着B站中国计量大学杨老师的视频实战深度学习手写字符识别。 第一个深度学习实例手写字符识别 深度学习环境配置 可以参考下篇博客,网上也有很多教程,很容易搭建好深度学习的环境。 Windows11搭建GPU版本PyTorch环境详细过程 数…

vcruntime140.dll最新的修复方法,一键修复vcruntime140.dll的手段

在这篇文章中,我们将深入探讨并详细介绍各种修复vcruntime140.dll文件缺失或损坏问题的方法。鉴于此类问题广泛存在并影响了众多用户,本文目的是向大家展示不同的修复策略,希望能够帮助每个人解决这些棘手的技术难题。下面一起来看看vcruntim…

【RT-DETR有效改进】UNetv2提出的一种SDI多层次特征融合模块(细节高效涨点)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本问给大家带来的改进机制是UNetv2提出的一种多层次特征融合模块(SDI)其是一种用于替换Concat操作的模块,SDI模块的主要思想是通过整合编码器生成的层级特征图来增强图像中的语义信息和细节信息。包括皮肤…

黑豹程序员-ElementPlus选择图标器

ElementPlus组件提供了很多图标svg 如何在你的系统中&#xff0c;用户可以使用呢&#xff1f; 这就是图标器&#xff0c;去调用ElementPlus的icon组件库&#xff0c;展示到页面&#xff0c;用户选择&#xff0c;返回选择的组件名称。 效果 代码 <template><el-inpu…

机器学习 - 梯度下降

场景 上一章学习了代价函数&#xff0c;在机器学习中&#xff0c;代价模型是用于衡量模型预测值与真实值之间的差异的函数。它是优化算法的核心&#xff0c;目标是通过调整模型的参数来最小化代价模型的值&#xff0c;从而使模型的预测结果更接近真实值。常见的代价模型是均方…

【Boost】:searcher的建立(四)

searcher的建立 一.初始化二.搜索功能三.完整源代码 sercher主要分为两部分&#xff1a;初始化和查找。 一.初始化 初始化分为两步&#xff1a;1.创建Index对象&#xff1b;2.建立索引 二.搜索功能 搜索分为四个步骤 分词&#xff1b;触发&#xff1a;根据分词找到对应的文档…

架构设计特训

一、考点分布 软件架构风格&#xff08;※※※※&#xff09;层次型软件架构风格&#xff08;※※※※&#xff09;面向服务的软件架构风格&#xff08;※※※※&#xff09;云原生架构风格&#xff08;※※※※&#xff09;质量属性与架构评估&#xff08;※※※※※&#xff…

Transformer实战-系列教程1:Transformer算法解读1

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 Transformer实战-系列教程1&#xff1a;Transformer算法解读1 Transformer实战-系列教程2&#xff1a;Transformer算法解读2 现在最火的AI内容&#xff0c;chatGPT、视觉大模…

Golang切片与数组

在Go语言中&#xff0c;切片&#xff08;Slice&#xff09;和数组&#xff08;Array&#xff09;是两个核心的数据结构&#xff0c;它们在内存管理、灵活性以及性能方面有着显著的区别。接下来将解析Golang中的切片与数组&#xff0c;通过清晰的概念解释、案例代码和实际应用场…

小林Coding_操作系统_读书笔记

一、硬件结构 1. CPU是如何执行的 冯诺依曼模型&#xff1a;中央处理器&#xff08;CPU&#xff09;、内存、输入设备、输出设备、总线 CPU中&#xff1a;寄存器&#xff08;程序计数器、通用暂存器、指令暂存器&#xff09;&#xff0c;控制单元&#xff08;控制CPU工作&am…

[word] word页面视图放大后,影响打印吗? #笔记#学习方法

word页面视图放大后&#xff0c;影响打印吗&#xff1f; word文档的页面视图又叫普通视图&#xff0c;又叫打印视图&#xff0c;是系统默认的视图&#xff0c;是用户用的最多最常见的视图。 问&#xff1a;怎样打开页面视图&#xff1f; 答&#xff1a;两种方法 方法一、点…

JS 基本语句

函数调用&#xff0c;分支&#xff0c;循环&#xff0c;语句示例。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

【Funny guys】龙年专属测试鼠标寿命小游戏...... 用Python给大家半年了......

目录 【Funny guys】龙年专属测试鼠标寿命小游戏...... 用Python给大家半年了...... 龙年专属测试鼠标寿命小游戏用Python给大家半年了贪吃龙游戏 文章所属专区 码农新闻 欢迎各位编程大佬&#xff0c;技术达人&#xff0c;以及对编程充满热情的朋友们&#xff0c;来到我们的程…

【项目实践03】【布隆过滤器】

文章目录 一、前言二、项目背景三、实现方案1. 谷歌 布隆过滤器2. Redis 布隆过滤器 四、思路延伸1. 布隆过滤器的实现原理2. 布隆过滤器的一些扩展3. 布谷鸟过滤器 五、参考内容 一、前言 本系列用来记录一些在实际项目中的小东西&#xff0c;并记录在过程中想到一些小东西&a…