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

BEVDet4D 论文学习

1. 解决了什么问题?

单帧数据包含的信息很有限,制约了目前基于视觉的多相机 3D 目标检测方法的性能,尤其是关于速度预测任务,要远落后于基于 LiDAR 和 radar 的方法。

2. 提出了什么方法?

BEVDet4D 将 BEVDet 方法从 3D 扩展到时间+空间的 4D 范畴。作者改进了 BEVDet 框架,在当前帧的特征中融合了之前帧的特征,只增加了少量的计算成本。BEVDet4D 简化了速度预测问题,将其看作为相邻帧特征之间的位置偏移预测问题。如下图,它保留了之前帧的 BEV 特征,将其与当前帧的特征通过空间对齐与 concat 操作融合。
在这里插入图片描述

2.1 网络结构

BEVDet 包括 4 个模块:image-view encoder、view transformer、BEV encder、task-specific head。为了融入时间信息,BEVDet4D 保留了 view transformer 对之前帧生成的特征。然后进行对齐,和当前帧的特征完成融合。View transformer 生成的特征对于后续模块来说,过于稀疏、粗糙。因此在时域融合操作前,有一个调整候选特征的 BEV 编码器,包括 2 个残差单元,通道数和输入特征数一致。

2.2 Simplify the Velocity Learning Task

在这里插入图片描述

符号定义 全局坐标系为 O g − X Y Z O_g - XYZ OgXYZ,自身坐标系为 O e ( T ) − X Y Z O_{e(T)}-XYZ Oe(T)XYZ,目标坐标系为 O t ( T ) − X Y Z O_{t(T)}-XYZ Ot(T)XYZ。如上图,作者构建了一个虚拟场景,包括一辆运动中的 ego 车辆和两个目标车辆。在世界坐标系内,一个目标车辆是静止的(即 O s − X Y Z O_s-XYZ OsXYZ绿色框),一个目标车辆是运动状态的(即 O m − X Y Z O_m-XYZ OmXYZ蓝色框)。两个相邻帧(第 T − 1 T-1 T1帧和第 T T T帧)的物体通过透明度区分。物体的位置表示为 P x ( t ) \text{P}^x(t) Px(t) x ∈ { g , e ( T ) , e ( T − 1 ) } x\in\lbrace g,e(T),e(T-1)\rbrace x{g,e(T),e(T1)}表示坐标系。 t ∈ { T , T − 1 } t\in\lbrace T,T-1\rbrace t{T,T1}表示时间戳。 T s r c d s t \text{T}^{dst}_{src} Tsrcdst表示从源坐标系到目标坐标系的变换。
本文方法不是直接预测目标的速度,而是预测相邻帧之间目标物体的平移量。排除了时间因素,任务就简化了,根据两个 BEV 特征间的差异就可计算出位置的移动。此外,该方法学习的位置移动与 ego 车辆自身的运动是没有关系的,因为 ego 的运动会让目标物体位置移动的分布变得很复杂。
如上图所示,由于 ego 的运动,原本在世界坐标系是静止的物体,在 ego 坐标系就成了运动的了。View transformer 对两个相邻帧生成特征,由于 ego 运动,它们在世界坐标系的感受野是不同的。一个静止物体在前后两帧的世界坐标系位置是 P s g ( T ) \text{P}_s^g(T) Psg(T) P s g ( T − 1 ) P_s^g(T-1) Psg(T1)。位置的移动可以表示为:
P s e ( T ) ( T ) − P s e ( T − 1 ) ( T − 1 ) = T g e ( T ) P s g ( T ) − T g e ( T − 1 ) P s g ( T − 1 ) = T g e ( T ) P s g ( T ) − T e ( T ) e ( T − 1 ) T g e ( T ) P s g ( T − 1 ) \begin{align} &\text{P}_s^{e(T)}(T)-\text{P}_s^{e(T-1)}(T-1)\nonumber \\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_g^{e(T-1)}\text{P}_s^g(T-1)\nonumber\\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_{e(T)}^{e(T-1)}\text{T}_{g}^{e(T)}\text{P}_s^g(T-1)\nonumber \end{align} ==Pse(T)(T)Pse(T1)(T1)Tge(T)Psg(T)Tge(T1)Psg(T1)Tge(T)Psg(T)Te(T)e(T1)Tge(T)Psg(T1)

根据上面等式,如果直接将 2 个特征 concat,后续模块的学习目标(即物体在两个特征图的位置偏移)就包含了 ego 运动(即 T e ( T ) e ( T − 1 ) \text{T}_{e(T)}^{e(T-1)} Te(T)e(T1))。为了避免,作者利用 T e ( T − 1 ) e ( T ) \text{T}_{e(T-1)}^{e(T)} Te(T1)e(T)对相邻帧的物体进行变换,排除 ego 运动的影响。

P s e ( T ) ( T ) − T e ( T − 1 ) e ( T ) P s e ( T − 1 ) ( T − 1 ) = T g e ( T ) P s g ( T ) − T e ( T − 1 ) e ( T ) T e ( T ) e ( T − 1 ) T g e ( T ) P s g ( T − 1 ) = T g e ( T ) P s g ( T ) − T g e ( T ) P s g ( T − 1 ) = P s e ( T ) ( T ) − P s e ( T ) ( T − 1 ) \begin{align} &\text{P}_s^{e(T)}(T)-\text{T}_{e(T-1)}^{e(T)}\text{P}_s^{e(T-1)}(T-1)\nonumber \\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_{e(T-1)}^{e(T)}\text{T}_{e(T)}^{e(T-1)}\text{T}_g^{e(T)}\text{P}_s^g(T-1)\nonumber\\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_{g}^{e(T)}\text{P}_s^g(T-1)\nonumber\\ =&\text{P}_{s}^{e(T)}(T)-\text{P}_s^{e(T)}(T-1)\nonumber\\ \end{align} ===Pse(T)(T)Te(T1)e(T)Pse(T1)(T1)Tge(T)Psg(T)Te(T1)e(T)Te(T)e(T1)Tge(T)Psg(T1)Tge(T)Psg(T)Tge(T)Psg(T1)Pse(T)(T)Pse(T)(T1)
根据上面等式,学习目标定为了当前帧 ego 坐标系中的物体运动,与 ego 运动就没关系了。该等式的对齐操作通过特征对齐实现。给定之前帧的候选特征 F ( T − 1 , P e ( T − 1 ) ) \mathcal{F}(T-1,\text{P}^{e(T-1)}) F(T1,Pe(T1))以及当前帧的 F ( T , P e ( T ) ) \mathcal{F}(T,\text{P}^{e(T)}) F(T,Pe(T)),通过下面等式实现对齐特征:
F ′ ( T − 1 , P e ( T ) ) = F ( T − 1 , T e ( T ) e ( T − 1 ) P e ( T ) ) \mathcal{F}'(T-1,\text{P}^{e(T)})=\mathcal{F}(T-1,\text{T}_{e(T)}^{e(T-1)}\text{P}^{e(T)}) F(T1,Pe(T))=F(T1,Te(T)e(T1)Pe(T))

T e ( T ) e ( T − 1 ) P e ( T ) \text{T}_{e(T)}^{e(T-1)}\text{P}^{e(T)} Te(T)e(T1)Pe(T)在特征 F ( T − 1 , P e ( T − 1 ) ) \mathcal{F}(T-1,\text{P}^{e(T-1)}) F(T1,Pe(T1))上可能不是一个有效的位置,因此需要使用双线性插值。

3. 有什么优点?

BEVDet4D 预测 velocity 的错误率降低了 − 62.9 % -62.9\% 62.9%,与那些基于 LiDAR 或 radar 的方法表现相近。在 nuScenes 基准上取得了 54.5 % 54.5\% 54.5%NDS。

相关文章:

BEVDet4D 论文学习

1. 解决了什么问题? 单帧数据包含的信息很有限,制约了目前基于视觉的多相机 3D 目标检测方法的性能,尤其是关于速度预测任务,要远落后于基于 LiDAR 和 radar 的方法。 2. 提出了什么方法? BEVDet4D 将 BEVDet 方法从…...

【设计模式与范式:创建型】43 | 单例模式(下):如何设计实现一个集群环境下的分布式单例模式?

上两节课中,我们针对单例模式,讲解了单例的应用场景、几种常见的代码实现和存在的问题,并粗略给出了替换单例模式的方法,比如工厂模式、IOC 容器。今天,我们再进一步扩展延伸一下,一块讨论一下下面这几个问…...

Metal入门学习:绘制渲染三角形

一、编程指南PDF下载链接(中英文档) 1、Metal编程指南PDF链接 https://github.com/dennie-lee/ios_tech_record/raw/main/Metal学习PDF/Metal 编程指南.pdf 2、Metal着色语言(Metal Shader Language:简称MSL)编程指南PDF链接 https://github.com/dennie-lee/ios_te…...

python 中常见变量类型

数值 a 10 b 123 … 字符串 在python中 用单引号’‘和双引号""括起来的都是字符串,不使用引号括起来的不是字符串,字符串是使用最多的数据类型,用来表示一段文本信息。 比如: a ‘123’ b “123” 字符串之间可以用加法运算…...

SVN使用教程(一)

文章目录 前言一、SVN是什么?二、SVN和Git对比,有什么优势?三、SVN主要应用四、SVN仓库五、安装SVN客户端 前言 提示:这里可以添加本文要记录的大概内容: 在制作系统或者写文档,都需要用于管理和跟踪开发…...

【5.19】四、性能测试—指标、种类

目录 4.1 性能测试概述 4.2 性能测试的指标 4.3 性能测试的种类 为了追求高质量、高效率的生活与工作,人们对软件产品的性能要求越来越高,例如软件产品要足够稳定、响应速度足够快,在用户量、工作量较大时也不会出现崩溃或卡顿等现象。人们…...

Windows平台上的5种敏捷软件开发(过程)模型

我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows平台上的5种敏捷软件开发(过程)模型。 说到这个问题,你必须先知道除了敏捷模型还有没有其他什么模型?同时要比较模型的区别,首先还要看看什么叫软件开…...

一文实现部署AutoGPT

一文实现部署AutoGPT 简介AutoGPT的概述AutoGPT的用途和优势 预备知识Python基础机器学习基础自然语言处理基础 环境设置Python环境安装和配置需要的库和框架的安装,例如PyTorch, Transformers等 AutoGPT模型加载如何下载和加载预训练的AutoGPT模型模型参数和配置 使…...

数值计算 - 误差的来源

误差的来源是多方面的,但主要来源为:过失误差,描述误差,观测误差,截断误差和舍入误差。 过失误差 过失误差是由设备故障和人为的错误所产生的误差,在由于每个人都有“权利”利用机器进行数值计算,所以在计算…...

【软件测试】5年测试老鸟总结,自动化测试成功实施,你应该知道的...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 自动化测试 Pytho…...

【Hadoop】二、Hadoop MapReduce与Hadoop YARN

文章目录 二、Hadoop MapReduce与Hadoop YARN1、Hadoop MapReduce1.1、理解MapReduce思想1.2、Hadoop MapReduce设计构思1.3、Hadoop MapReduce介绍1.4、Hadoop MapReduce官方示例1.5、Map阶段执行流程1.6、Reduce阶段执行流程1.7、Shuffle机制 2、Hadoop YARN2.1、Hadoop YARN…...

Python教程:文件I/O的用法

本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档。 1.打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下&…...

序员工作1年,每天上班清闲,但却焦虑万分,若是你,你会吗?

有个学弟在后台留言 他谈到了自己去年毕业的 因为在大学里边有一些校企合作 所以呢他也是花了钱 然后去培训了有半年 去年毕业之后到现在工作有一年了 那目前的薪资是8,000块钱 虽然说相较于其他同学呢 这个薪资呢还算可以 但是呢 自己每天现在就处于一种非常 压抑的那种状态 所…...

Bed Bath and Beyond EDI 需求分析

Bed Bath and Beyond(Bed Bath and Beyond)是一家美国的家居用品零售商,成立于1971年,总部位于新泽西州Union。该公司在美国、加拿大和墨西哥拥有超过1500家门店。其产品涵盖了床上用品、浴室用品、厨房用品、家居装饰等领域&…...

【5.20】五、安全测试——渗透测试

目录 5.3 渗透测试 5.3.1 什么是渗透测试 5.3.2 渗透测试的流程 5.3 渗透测试 5.3.1 什么是渗透测试 渗透测试是利用模拟黑客攻击的方式,评估计算机网络系统安全性能的一种方法。这个过程是站在攻击者角度对系统的任何弱点、技术缺陷或漏洞进行主动分析&#x…...

java版鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统源代码

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管…...

大语言模型架构设计

【大模型慢学】GPT起源以及GPT系列采用Decoder-only架构的原因探讨 - 知乎本文回顾GPT系列模型的起源论文并补充相关内容,中间主要篇幅分析讨论为何GPT系列从始至终选择采用Decoder-only架构。 本文首发于微信公众号,欢迎关注:AI推公式最近Ch…...

SpringBoot整合Swagger2,让接口文档管理变得更简单

在软件开发的过程中,接口文档的编写往往是一个非常重要的环节,因为它是前端和后端沟通的桥梁,帮助团队更好地协作。然而,手动编写接口文档不仅耗费时间,还容易出错,因此我们需要一种简单的方法来管理接口文…...

socket | 网络套接字、网络字节序、sockaddr结构

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…...

golang-websocket

WebSocket 是一种新型的网络通信协议,可以在 Web 应用程序中实现双向通信。 WebSocket与HTTP协议的主要区别是: HTTP 和 WebSocket 协议的区别 HTTP 是单向的,而 WebSocket 是双向的。 在客户端和服务器之间的通信中,每个来自客…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...