当前位置: 首页 > news >正文

端到端实现高精地图重建(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的思路延续。

 

相关文章:

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

论文出处 [2304.05277] Graph-based Topology Reasoning for Driving Scenes (arxiv.org)https://arxiv.org/abs/2304.05277 TopoNet TopoNet的目标是从车辆上安装的多视角摄像头获取图像,感知实体并推理出驾驶场景的拓扑关系,实现端到端预测&#xf…...

系统架构20 - 统一建模语言UML(上)

统一建模语言 组成要素事物关系 在目前的软件开发方法中,面向对象的方法占据着主导地位。面向对象方法的主导地位也决定着软件开发过程模型化技术的发展,面向对象的建模技术方法也就成为主导的方法。 公认的面向对象建模语言出现于20世纪70年代中期。从1…...

数据库学习笔记2024/2/4

随笔 1. 为什么学? 认识数据,熟悉数据,掌握数据。 进企业必备技能。 2. 怎么学? 1、MySQL数据库就是存储和管理数据的一个大型软件,这个软件有一个专门的语言叫SQL,主要学的是SQL语言,但想要达到企业用人标准,就还得学会熟练使用MySQL这个软件。 2、学习分三阶段: 一. …...

Apache POI 处理excel文件 记录用法

Apache POI 写excel public static void write() throws IOException {//再内存中创建了一个Excel文件XSSFWorkbook excel new XSSFWorkbook();//创建一个sheet页XSSFSheet sheet excel.createSheet("info");//这里创建行对象,这里的rownum 是从0开始的,类似于数…...

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

🚩🚩🚩Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 Transformer实战-系列教程1:Transformer算法解读1 Transformer实战-系列教程2:Transformer算法解读2 5、Multi-head机制 在4中我们的输入是X&#x…...

python_蓝桥杯刷题记录_笔记_全AC代码_入门3

前言 记录我的解法以及笔记思路,谢谢观看。 题单目录 1.P2141 [NOIP2014 普及组] 珠心算测验 2.P1567 统计天数 3.P1055 [NOIP2008 普及组] ISBN 号码 4.P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here 5.P1308 [NOIP2011 普及组] 统计单词数 6.P1047 […...

STM32 IIC电量计LTC2944

1 描述 LTC2944 可在便携式产品应用中测量电池充电状态、电池电压、电池电流及其自身温度。宽输入电压范围允许使用高达 60V 的多节电池。精密库仑反向积分电流通过电池正极端子与负载或充电器之间的检测电阻器。 电压、电流和温度由内部 14 位无延迟 ΔΣ™ ADC 测量。测量结…...

Linux 链接 GitHub 出现 Connection timed out

问题 安装GIT并完成公钥验证:Linux 系统拉取 Github项目 [rootxxx devtools]# ssh -T gitgithub.com ssh: connect to host github.com port 22: Connection timed out解决方案 进入在存放公钥私钥id_rsa.pub文件里,新建/修改config文本 [rootxxx my…...

vulnhub靶场之Thales

一.环境搭建 1.靶场描述 Description : Open your eyes and change your perspective includes 2 flags:user.txt and root.txt. Telegram: machineboy141 (for any hint) This works better with VIrtualBox rathe than VMware 2.靶场地址 https://www.vulnhub.com/entry/t…...

Qt之使用Qt内置图标

一效果 二.原理 Qt内置图标封装在QStyle中,共七十多个图标,可以直接拿来用,能应付不少简单程序需求,不用自己去找图标并添加到资源文件了。 下面是内置图标的枚举定义: enum StandardPixmap {SP_TitleBarMenuButton,SP_TitleBarMinButton,SP_TitleBarMaxButton,SP_T…...

《计算机网络简易速速上手小册》第10章:未来网络技术趋势(2024 最新版)

文章目录 10.1 边缘计算与网络设计 - 未来网络的速度与激情10.1.1 基础知识10.1.2 重点案例:使用 Python 实现边缘计算的实时视频分析准备工作Python 脚本示例 10.1.3 拓展案例1:智能交通系统Python 脚本示例 - 边缘计算设备上的交通流量分析 10.1.4 拓展…...

Vue引入Axios

1.命令安装axios和vue-axios npm install axios --save npm install vue-axios --save 2.package.json查看版本 3.在main.js中引用 import axios from axios; import VueAxios from vue-axios; Vue.use(VueAxios,axios) 4.如何使用 (初始化方法) 将下列代…...

【git 本地管理版本及与github合并】 Init Push Pull操作解决方案

文章目录 创建本地仓库,并与远程仓库链接更新本地仓库并使用Push推送到远程仓库 1. 几种基础命令介绍:2. git push操作流程 .gitignore删除本地仓库,断开本地与远程的链接设置用于提交commit的用户名,邮箱,以便githu…...

JavaSE-项目小结-IP归属地查询(本地IP地址库)

一、项目介绍 1. 背景 IP地址是网络通信中的重要标识,通过分析IP地址的归属地信息,可以帮助我们了解访问来源、用户行为和网络安全等关键信息。例如应用于网站访问日志分析:通过分析访问日志中的IP地址,了解网站访问者的地理位置分…...

使用最大边界相关算法处理文章自动摘要

一、需求背景 对于博客或者文章来说,摘要是普遍性的需求。但是我们不可能让作者自己手动填写摘要或者直接暴力截取文章的部分段落作为摘要,这样既不符合逻辑又不具有代表性,那么,是否有相关的算法或者数学理论能够完成这个需求呢&…...

ref和reactive, toRefs的使用

看尤雨溪说:为什么Vue3 中应该使用 Ref 而不是 Reactive? toRefs import { ref, toRefs } from vue;// 定义一个响应式对象 const state ref({count: 0,name: Vue });// 使用toRefs转换为响应式引用对象 const reactiveState toRefs(state);// 现在你…...

从源代码看Chrome 版本号

一直以来都是用Chrome 浏览器,但是看到Chrome 点分4 组数据的表达方式,总是感觉怪怪的,遂深入源代码了解她的版本号具体表示的内容 chrome 浏览器中显示的版本号 源代码中的版本号标识 版本号文件位于 chrome/VERSION , 看到源代…...

Vue 图片加载失败处理

Vue 图片加载失败处理 很多人会使用 error 方法在图片加载 失败时替换img.src 的方式 但是这种方式在默认图片加载失败时&#xff0c;error会出现死循环&#xff0c;所以我使用了error v-if的方式。 <template><div><!-- 正常时显示 --><img v-if&quo…...

Quartus IP学习之ISSP(In-System Sources Probes)

一、ISSP IP概要&#xff1a; ISSP&#xff1a;In-System Sources & Probes Intel FPGA IP 作用&#xff1a; 分为In-System Sources与In-System Probesn-System Sources&#xff0c;输入端&#xff0c;等价于拨码开关&#xff0c;通过输入板载FPGA上的拨码开关状态改变…...

Vue组件通信讲解[父子组件通信]

Vue组件通信讲解 在Vue中&#xff0c;父子组件之间的通信可以通过props和emit来实现。props用于从父组件向子组件传递数据&#xff0c;而$emit用于从子组件向父组件触发事件。 以下是一个包含子传父和父传子通信的Vue案例解决方案&#xff1a; 父组件&#xff1a;Parent.vue…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...

13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析

LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...