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

论文阅读《BEVFormer》

BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers

目录

  • 摘要
  • 1 介绍
  • 2 相关工作
    • 2.1 基于Transformer的2D感知

摘要

3D视觉感知任务对于自动驾驶系统至关重要,包括基于多相机图像的3D检测和地图分割。在这项工作中,我们提出了一个名为BEVFormer的新框架,它使用时空变换器学习统一的BEV表示,以支持多种自动驾驶感知任务。简而言之,BEVFormer通过预定义的网格状的BEV查询来进行时空交互,以此来利用时空信息。为了聚合空间信息,我们设计了空间交叉注意力,每个 BEV查询从跨相机视图的感兴趣区域中提取空间特征。对于时间信息,我们提出时间自我注意力来循环融合历史BEV信息。我们的方法在 nuScenes 测试集上的NDS指标方面达到了新的最佳水平56.9%,比之前的最佳技术高出9.0分,与基于LiDAR的基线的性能相当。我们进一步表明,BEVFormer显著提高了低能见度条件下速度估计的准确率和目标的召回。代码可以在https://github.com/zhiqi-li/BEVFormer上找到。

1 介绍

3D空间中的感知对于自动驾驶、机器人等各种应用至关重要。尽管基于LiDAR的方法取得了显著进展,但基于相机的方法近年来引起了广泛关注。除了部署成本低之外,与激光雷达相比,相机还具有检测远距离物体和识别基于视觉的道路元素(例如交通灯、停止线)的理想优势。

在这里插入图片描述
图1 我们提出了BEVFormer,这是一种自动驾驶范例,它应用Transformer和Temporal结构从多相机输入中生成鸟瞰图(BEV)特征。BEV-Former利用查询来查找时空,并聚合其信息,从而有利于感知任务的更强的表征。

自动驾驶中对周围场景的视觉感知有望根据多个相机给出的二维线索预测三维边界框或语义图。最直接的解决方案是基于单目框架和多相机后处理。该框架的缺点是,它分别处理不同的视图,无法跨相机捕获信息,导致性能和效率较低。

作为单目框架的替代,更统一的框架是从多相机图像中提取整体表示。鸟瞰图(BEV)是周围场景的常用表示形式,因为它可以清晰地呈现物体的位置和比例,适用于各种自动驾驶任务,例如感知和规划。尽管先前的地图分割方法证明了BEV的有效性,但基于BEV的方法在3D物体检测方面并未表现出比其他范式更显著的优势。根本原因是3D物体检测任务需要强大的BEV特征来支持准确的3D边界框预测,但从2D平面生成BEV是不适当的。一种流行的生成BEV特征的 BEV框架基于深度信息,但该范式对深度值或深度分布的准确性很敏感。因此,基于BEV的方法的检测性能容易受到复合误差的影响,不准确的BEV特征会严重损害最终性能。因此,我们的目标是设计一种不依赖深度信息并且可以自适应地学习BEV特征而不是严格依赖3D先验的BEV生成方法。Transformer使用注意力机制来动态聚合有价值的特征,从概念上满足了你的需求。

使用BEV特征执行感知任务的另一个动机是BEV是连接时间和空间的理想桥梁。对于人类的视觉感知系统来说,时间信息在推断物体的运动状态、识别被遮挡的物体等方面起着至关重要的作用,视觉领域的许多研究已经证明了利用视频数据的有效性。然而,现有的最先进的多相机3D检测方法很少利用时序信息。重大挑战在于自动驾驶对时间至关重要并且场景中的物体变化很快,因此简单地堆叠跨时间戳的BEV特征会带来额外的计算成本和干扰信息,这可能并不理想。受到循环神经网络(RNN)的启发,我们利用BEV特征来循环传递从过去到现在的时间信息,这与RNN模型的隐藏状态具有相同的精神。

为此,我们提出了一种基于Transformer的鸟瞰图(BEV)编码器,称为BEVFormer,它可以有效地聚合来自多视角相机的时空特征和历史BEV特征。BEVFormer生成的BEV特征可以同时支持多个3D感知任务,例如3D物体检测和地图分割,这对于自动驾驶系统非常有价值。如图1所示,我们的BEVFormer包含三个关键设计。其一,网格状BEV查询通过注意力机制灵活地融合空间和时间特征。其二,空间交叉注意模块,用于聚合来自多相机图像的空间特征。其三,时间自注意力模块从历史BEV特征中提取时间信息,这有利于运动物体的速度估计和严重遮挡物体的检测,同时带来可忽略不计的计算开销。借助BEVFormer生成的统一特征,该模型可以与不同任务特定头(如可变形DETR和掩模解码器)协作,实现端到端3D目标检测和地图分割。我们的主要贡献如下:

  • 我们提出了BEVFormer,这是一种时空变换器编码器,可将多相机和/或时间戳输入投射到BEV表示中。通过统一的BEV特征,我们的模型可以同时支持多项自动驾驶感知任务,包括3D检测和地图分割。
  • 我们设计了可学习的BEV查询以及空间交叉注意层和时间自注意层,分别从跨相机中查找空间特征和从历史BEV中查找时间特征,然后将它们聚合为统一的BEV特征。
  • 我们在多个具有挑战性的基准上对所提出的BEVFormer进行了评估,包括nuScenes和Waymo。与现有技术相比,我们的BEVFormer性能持续提升。例如,在可比较的参数和计算开销下,BEVFormer在nuScenes测试集上实现了56.9%的NDS,比之前的最佳检测方法DETR3D高出9.0分(56.9%对47.9%)。对于地图分割任务,我们也实现了最先进的性能,在最具挑战性的车道分割上比Lift-Splat高出5.0分以上。我们希望这个简单而强大的框架可以作为后续3D感知任务的新基础。

2 相关工作

2.1 基于Transformer的2D感知

最近,一种新的趋势是使用transformer来重新制定检测和分割任务。

相关文章:

论文阅读《BEVFormer》

BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers 目录 摘要1 介绍2 相关工作2.1 基于Transformer的2D感知 摘要 3D视觉感知任务对于自动驾驶系统至关重要,包括基于多相机图像的3D检测和地图分割。…...

sql专题 之 sql的执行顺序

文章目录 sql的执行顺序sql语句的格式实际的执行顺序:虚拟表 vs 数据集虚拟表 结果集总结嵌套查询在sql查询中的执行顺序 前文我们了解了sql常用的语句,这次我们对于这些语句来个小思索 戳这里→ sql专题 之 常用命令 sql的执行顺序 SQL语句的执行顺序是…...

Vue3 -- 基于Vue3+TS+Vite项目【项目搭建及初始化】

兼容性注意: Vite 需要 Node.js 版本 18+ 或 20+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。【摘抄自vite官网】 这里我用的node版本是 v18.20.2 创建项目: 创建项目我们可以使用npm、yarn、pnpm、bun …...

CTF-RE: TEA系列解密脚本

// // Created by A5rZ on 2024/10/26. //#ifndef WORK_TEA_H #define WORK_TEA_H#endif //WORK_TEA_H#include <cstdint> #include <cstdio>// 定义TEA加密算法的轮次&#xff0c;一般建议为32轮 #define TEA_ROUNDS 32 #define DELTA 0x9e3779b9// TEA加密函数 v…...

信号量和线程池

1.信号量 POSIX信号量&#xff0c;用与同步操作&#xff0c;达到无冲突的访问共享资源目的&#xff0c;POSIX信号量可以用于线程间同步 初始化信号量 #include <semaphore.h> int sem_init(sem_t *sem, int pshared, unsigned int value); sem&#xff1a;指向sem_t类…...

【人工智能】10分钟解读-深入浅出大语言模型(LLM)——从ChatGPT到未来AI的演进

文章目录 一、前言二、GPT模型的发展历程2.1 自然语言处理的局限2.2 机器学习的崛起2.3 深度学习的兴起2.3.1 神经网络的训练2.3.2 神经网络面临的挑战 2.4 Transformer的革命性突破2.4.1 Transformer的核心组成2.4.2 Transformer的优势 2.5 GPT模型的诞生与发展2.5.1 GPT的核心…...

「QT」几何数据类 之 QPointF 浮点型点类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

可能是全网第一个MySQL Workbench插件编写技巧

引言 应公司要求&#xff0c;数据库的敏感数据在写入到数据库中要进行加密&#xff0c;但是在测试环境查询数据的时候要手动解密&#xff0c;很不方便&#xff0c;有的时候数据比较多&#xff0c;解密比较麻烦。遂研究了一下如何通过 MySQL Workbench 的插件来实现查询数据一键…...

D62【python 接口自动化学习】- python基础之数据库

day62 SQL 基础 学习日期&#xff1a;20241108 学习目标&#xff1a;MySQL数据库-- 131 SQL基础和DDL 学习笔记&#xff1a; SQL的概述 SQL语言的分类 SQL的语法特征 DDL - 库管理 DDL - 表管理 总结 SQL是结构化查询语言&#xff0c;用于操作数据库&#xff0c;通用于绝大…...

探索美赛:从准备到挑战的详细指南

前言 美国大学生数学建模竞赛&#xff08;MCM/ICM&#xff09;&#xff0c;简称“美赛”&#xff0c;是全球规模最大的数学建模竞赛之一。它鼓励参赛者通过数学建模来解决现实世界中的复杂问题&#xff0c;广受世界各地大学生的欢迎。本文将详细介绍美赛的全过程&#xff0c;从…...

IP地址查询——IP归属地离线库

自从网络监管部门将现实IP地址列入监管条例&#xff0c;IP地址的离线库变成网络企业发展业务的不可或缺的一部分&#xff0c;那么IP地址离线库是什么&#xff0c;又能够给我们带来什么呢&#xff1f; 什么是IP地址离线库&#xff1f; IP地址离线库是IP地址服务商将通过各种合…...

“倒时差”用英语怎么说?生活英语口语学习柯桥外语培训

“倒时差”用英语怎么说&#xff1f; “倒时差”&#xff0c;这个让无数旅人闻之色变的词汇&#xff0c;在英语中对应的正是“Jet Lag”。"Jet" 指的是喷气式飞机&#xff0c;而 "lag" 指的是落后或延迟。这个短语形象地描述了当人们乘坐喷气式飞机快速穿…...

Linux入门攻坚——37、Linux防火墙-iptables-3

私网地址访问公网地址的问题&#xff0c;请求时&#xff0c;目标地址是公网地址&#xff0c;可以在公网路由器中进行路由&#xff0c;但是响应报文的目的地址是私网地址&#xff0c;此时在公网路由器上就会出现问题。公网地址访问私网地址的问题&#xff0c;需要先访问一个公网…...

微服务架构面试内容整理-安全性-Spring Security

Spring Security 是 Spring 框架中用于实现认证和授权的安全模块,它提供了全面的安全解决方案,可以帮助开发者保护 Web 应用、微服务和 API 免受常见的安全攻击。以下是 Spring Security 的主要特点、工作原理和使用场景: 主要特点 1. 身份认证与授权: 提供多种认证方式,…...

新的服务器Centos7.6 安装基础的环境配置(新服务器可直接粘贴使用配置)

常见的基础服务器配置之Centos命令 正常来说都是安装一个docker基本上很多问题都可以解决了&#xff0c;我基本上都是通过docker去管理一些容器如&#xff1a;mysql、redis、mongoDB等之类的镜像&#xff0c;还有一些中间件如kafka。下面就安装一个 docker 和 nginx 的相关配置…...

深度学习:广播机制

广播机制&#xff08;Broadcasting&#xff09;是 PyTorch&#xff08;以及其他深度学习框架如 NumPy&#xff09;中的一种强大功能&#xff0c;它允许不同形状的张量进行逐元素操作&#xff0c;而不需要显式地扩展张量的维度。广播机制通过自动扩展较小的张量来匹配较大张量的…...

音视频入门基础:FLV专题(25)——通过FFprobe显示FLV文件每个packet的信息

音视频入门基础&#xff1a;FLV专题系列文章&#xff1a; 音视频入门基础&#xff1a;FLV专题&#xff08;1&#xff09;——FLV官方文档下载 音视频入门基础&#xff1a;FLV专题&#xff08;2&#xff09;——使用FFmpeg命令生成flv文件 音视频入门基础&#xff1a;FLV专题…...

Openstack7--安装消息队列服务RabbitMQ

只需要在控制节点安装 安装RabbitMQ yum -y install rabbitmq-server 启动RabbitMQ并设置开机自启 systemctl start rabbitmq-server;systemctl enable rabbitmq-server 创建 rabbitmq 用户 并设置密码为 000000 rabbitmqctl add_user rabbitmq 000000 如果你不慎创错了…...

day55 图论章节刷题Part07([53.寻宝]prim算法、kruskal算法)

前言&#xff1a;使用最小生成树的方法解决将所有节点连接起来所需的最小路径问题。 prim算法 Prim算法是一种贪心算法&#xff0c;从任意一个顶点开始构建最小生成树。每次选择当前已加入生成树的顶点中&#xff0c;距离最近的尚未加入生成树的顶点&#xff0c;直到所有顶点…...

LeetCode 93-复制 IP地址

题目链接&#xff1a;LeetCode93 欢迎留言交流&#xff0c;每天都会回消息。 class Solution {//定义结果集&#xff0c;返回最终结果List<String> rs new ArrayList<>();public List<String> restoreIpAddresses(String s) {//将字符串包装为可变长度的字…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...