【BEV感知】BEVFormer 融合多视角图形的空间特征和时序特征 ECCV 2022

前言

本文分享BEV感知方案中,具有代表性的方法:BEVFormer。

它基于Deformable Attention,实现了一种融合多视角相机空间特征时序特征端到端框架,适用于多种自动驾驶感知任务。

主要由3个关键模块组成:

  • BEV Queries Q:用于查询得到BEV特征图
  • Spatial Cross-Attention:用于融合多视角空间特征
  • Temporal Self-Attention:用于融合时序BEV特征

基本思想:使用可学习的查询Queries表示BEV特征查找图像中的空间特征先前BEV地图中的时间特征

采用3D到2D的方式,先在BEV空间初始化特征,通过在BEV高度维度“升维”形成3D特征。再通过映射关系,使用多层transformer与每个图像2D特征进行交互融合,最终再得到BEV特征。

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

代码地址:https://github.com/fundamentalvision/BEVFormer 

一、框架思路

看看BEVFormer的设计思路,它使用可学习的查询Queries表示BEV特征。BEV Queries是一种栅格形状的可学习参数,它通过注意力机制在多视角图像中查询和聚合特征。

通过BEV Queries,查找图像中的空间特征先前BEV地图中的时间特征,得到融合和更新后查询特征,也就是BEV特征。

一开始得到BEV特征并不准确,通过不断融合特征和更新后,得到的BEV Queries也就是准确的BEV特征了。

下面看看BEVFormer的框架思路,可以分为7步组成,如下图所示:

  • 输入多视角图像,经过主干网络提取图像特征,形成多视角特征图。
  • 通过BEV Queries,首先查询先前时序的BEV特征,融合对应的特征再融合图像的空间特征
  • 融合了时间和空间特征的BEV Queries,也就是BEV特征。
  • BEV特征后面接不同任务头,比如:3D检测、BEV分割、轨迹预测等等。

BEVFormer的主体由6层结构相同的编码器层组成,每一层都是基于:

  • 时序自注意力(Temporal Self-attention)
  • 加法(Add)标准化(Norm)
  • 空间交叉注意力(Spatial Cross-attention)
  • 加法(Add)标准化(Norm)
  • 前馈网络(Feed Forward)
  • 加法(Add)标准化(Norm)

详细分析模型前向推理过程:

  1. 在时间点t,将车辆上多个视角的相机图像输入到主干网络中,输出各图像的多尺度特征,表示为 F_{t}^{i},其中 i 是第i个视角相机的特征, n是相机视角的总数。同时,保留时间点t-1的BEV特征 BEV _{t-1}

  2. 在每个BEVFormer编码器层中,首先使用BEV Queries Q 通过时间自注意力(Temporal Self-attention, TSA)模块从BEV _{t-1}中查询并融合时域信息,得到修正后的BEV Queries Q′。

  3. 然后,对TSA修正过的BEV Queries Q′,通过空间交叉注意力(Spatial Cross-attention, SCA)模块从多摄像头特征F_{t}^{i}中查询并融合空间信息,得到进一步修正的BEV Queries Q′′。

  4. 将经过两次修正的BEV Queries Q′′ 输入到前馈网络计算,然后输出,作为下一个编码器层的输入。

  5. 如此堆叠6层,即经过6轮微调,时间点t的统一BEV特征 BEV _{t} 就生成了。

  6. 最后,将BEV特征作为任务头的输入,比如:3D检测头和地图分割头。

二、关键设计——BEV Queries 查询得到BEV特征图

BEV平面(Bird's-Eye View,鸟瞰视图)是一个以车辆自身为中心的,被划分成许多小方格的二维平面

这个平面的高度H和宽度W代表了:在x轴(横向)和y轴(纵向)上的栅格数量。

BEV平面直观地反映了车辆周围的物理空间,其中每个小方格代表现实世界中的一定面积,例如s米。

比如针对nuScenes数据集,可能会定义BEV平面的栅格尺寸为200x200,这意味着这个平面可以覆盖从车辆中心向各个方向延伸51.2米的区域。在这种情况下,每个小方格(栅格)代表的实际面积是0.512米。

关键要的:

1、BEV Queries是一组预先定义的、具有栅格形状的可学习参数, 维度是H*W*C,用来捕获围绕自车的BEV特征。

简单来说,一旦学习完成,BEV Queries就会变成BEV features,即鸟瞰视图特征。

2、BEV Queries的高度H和宽度W,与BEV平面在x轴(横向)和y轴(纵向)的栅格尺寸保持一致,这意味着它们也具有与BEV平面类似的特性,即直观地映射车辆周围的物理空间。

然而,BEV Queries的C维,即在通道(channel)维度上的尺寸,并不直接对应于BEV平面z轴的物理空间尺寸。

3、每个位于(x, y)位置的query都仅负责表征其对应的小范围区域。轮番查询“空间信息”和“时间信息”,生成BEV特征图。

重点:BEV Queries在模型中经过连续的微调和转换,最终成为BEV features。

三、核心内容——Spatial Cross-Attention融合多视角空间特征

通过BEV Queries查询和融合空间信息,BEV Queries表示整幅栅格图,BEV Query表示其中一个网格,步骤如下:

  1. 将每个BEV Query拉升为一个支柱。在z方向进行lift操作,预测该网格的离散高度形成N个高度值预定义它们对应的高度范围是-5m到3m。结合该网格的x,y坐标,生成N个3D参考点。
  2. 通过相机内外参,将柱子中的3D参考点投影到视图中得到2D点,数量记为V_num。正常一个3D参考点,对应1~2幅多视图,毕竟不能所有相机都看到同一个物体。
  3. 从命中视图中的区域中采样特征。采用Deformable Attention,把像平面上的这些投影点作为2D图像参考点在其周围进行特征采样
  4. 最后,每个3D参考点有V_num个特征图,进行加权求和。每个网格有N个3D参考点,形成的特征图,进行加权求和,最终输出多视角空间特征。

如下图所示,一个3D参考点(x, y, z),投影到多视角图中,只有2幅是对应的。这样很正常,毕竟相机是四周安装的,不可能所有相机都看到同一个物体。

四、核心内容——Temporal Self-Attention融合时序BEV特征

受到经典的循环神经网络(RNN)的启发,BEV特征 B _{t}可以被视作一种能够传递序列信息的“记忆体”。

在这种框架下,每一个时刻生成的BEV特征B_{t} 都是基于上一时刻的BEV特征 B_{t-1}获取所需的时序信息

  • 这种方法的优势在于,它能够动态地获取所需的时序特征,而不是像简单地堆叠不同时刻的BEV特征那样,仅能获取固定长度的时序信息。
  • 这种动态获取时序特征的方式使得BEV特征能够更加有效地反映出环境的动态变化,比如车辆的移动或周围环境的变化。

融合时序BEV特征,通过BEV Queries 查询时间信息,步骤如下:

  1. 根据自我运动对齐两个时刻的BEV图。两个时刻是指上一时刻和当前时刻。目前是使得相同索引位置的栅格对应于现实世界中的同一位置
  2. 过去时刻BEV图的和当前采样特征
  3. 对过去和当前BEV图中采样的特征进行加权求和。
  4. 使用RNN风格迭代收集历史BEV图特征。

 思路流程:

  • 在给定时间点t-1的BEV特征B_{t-1}的情况下,首先需要根据自我运动(ego motion)将B_{t-1}对齐到时间点t
  • 这个对齐过程确保了B_{t-1}B_{t} 在相同索引位置的栅格对应于现实世界中的同一位置。这样对齐后的BEV特征记作 {B_{t-1}}^{'}
  • 在时间点t,位于网格中A处的BEV query所代表的物体可能是静态的(不动的)或者是动态的(在移动中)。
  • 这个物体在时间点t-1会出现在{B_{t-1}}^{'}的 A周围。因此,为了采集特征,使用可变形注意力机制(deformable attention)以 A为参考点,在其周围进行特征采样

通过这种方式,模型能够更加准确地捕捉到物体随时间的动态变化。

可变形注意力允许模型关注于相邻时刻在空间上对应但位置可能略有变化的特征,从而有效地捕捉动态物体的运动轨迹和静态物体的稳定性。

这种方法在处理时序数据时,特别是在动态和复杂的环境中,如自动驾驶场景下,显得尤为重要和有效。

五、任务头

得到的BEV特征用于后面的感知任务,具体以下特征。

  • 多任务学习:3D目标检测和地图语义分割。
  • 可迁移性:常用的2D检测头,都可以通过很小的修改迁移到3D检测上。

在3D目标检测方面,论文借鉴了2D目标检测器Deformable DETR(可变形的DEtection TRansformer)的设计思路,并发展出了一种端到端的3D目标检测头。这种检测头的修改和特点包括:

  1. 输入:使用单尺度的BEV特征 作为检测头的输入。这与Deformable DETR通常使用多尺度特征的做法不同。

  2. 预测输出:与预测2D边界框不同,3D目标检测头预测3D边界框和物体的速度。。

  3. 候选目标集合:继承DETR方法的优势,在预测时生成有限数量的候选目标集合。在开源工程中,这个集合的大小通常设置为300个目标。

  4. 无需NMS后处理:由于这种end-to-end的检测头直接预测目标集合,因此不需要传统的非极大值抑制(Non-Maximum Suppression, NMS)后处理。这是一个显著的优势,因为NMS通常是目标检测流程中的一个复杂且效率较低的步骤。

在地图分割方面,论文参考了2D分割方法Panoptic SegFormer来设计map segmentation head。

基于BEV的地图分割在本质上与常见的语义分割任务类似。作者采用了以下关键设计:

  1. Mask Decoder:使用mask decoder,这是一种专门用于分割任务的解码器,能够有效地处理不同尺寸的特征图,并产生准确的分割mask。

  2. Class-Fixed Queries:采用类别固定的查询(class-fixed queries)设计。这种设计方式允许模型为每个特定的语义类别(如汽车、车辆、道路可通行区域和车道线)生成特定的查询。这些查询随后被用于查找和分割图像中对应的对象或区域。

通过这种方式,map segmentation head可以有效地对各种道路和交通元素进行精确的分割,如区分车辆、道路、车道线等。这种方法的优势在于,它能够直接从BEV特征中提取出复杂的道路和交通场景信息,为自动驾驶车辆提供准确的环境理解和导航信息。

六、训练和推理设计

训练设计:

  1. 时间选择:对于给定的时间点t,在过去2秒内随机选择3个时刻,分别是t-3、t-2和t-1。

  2. BEV特征生成:在这3个初始时刻,循环生成BEV特征集 { B_{t-3}, B_{t-2}​, B_{t-1} }。在此阶段,不计算梯度,即不进行反向传播优化。

  3. Temporal Self-Attention的特殊情况:在计算第一个时刻t-3的temporal self-attention输出时,由于它之前没有BEV特征,因此使用它自身的特征作为前序时刻的输入。在这种情况下,temporal self-attention暂时退化成了普通的self-attention。

推理设计: 

  1. 时间序列处理:在推理过程中,按照时间顺序计算图像序列中的每一帧。

  2. BEV特征的持续利用:前序时刻的BEV特征被保持并用于后续时刻的处理。这样,模型在每个时刻都能利用之前时刻的信息。

  3. 在线推理策略:这种按时间顺序处理并保留前序BEV特征的方法是一种在线(online)推理策略。这种策略在实际应用中通常更高效,因为它能够实时处理连续的输入数据,并持续更新对环境的理解。

七、实现测试与效果

在论文中,针对BEV模型的实现和实验,采取了以下关键的配置和设计决策:

Backbone的选择:

  1. ResNet101-DCN:使用了从FCOS3D训练得到的参数。
  2. VoVnet-99:采用了从DD3D训练得到的参数。

多尺度特征和FPN输出:

  • 默认情况下,使用FPN(Feature Pyramid Network)输出的多尺度特征,其尺寸包含1/16、1/32、1/64。值得注意的是,在代码中实际上使用了1/8尺寸的特征,例如nuScenes数据集中的116x200的FPN输出。
  • 同时,将维度C(通道数)设置为256。

BEV Queries的尺寸设置:

  • 在nuScenes数据集实验中,BEV queries的尺寸设置为200x200,对应在x和y方向的感知范围均为[-51.2m, 51.2m],BEV Grid的尺寸精度为0.512m。
  • 在Waymo数据集实验中,BEV queries的尺寸设置为300x220,x方向的感知范围为[-35.0m, 75.0m],y方向为[-75.0m, 75.0m],BEV Grid的尺寸精度为0.5m。自车中心位于BEV的(70,150)位置。

Spatial Cross-Attention模块:

  • 对每个BEV query,在spatial cross-attention模块中设置 N 个3D参考点,预定义它们对应的高度范围是-5m到3m。

采样点的选择:

  • 对每个2D图像参考点(即3D参考点在2D视图上的投影点),在其周围选取4个采样点送入Spatial Cross-Attention。

训练配置:

  • 默认情况下,训练24个epoch,学习率设定为一个特定值。

Baselines的选择:

  • 为了合理评估task heads的影响并与其他生成BEV方法进行公平比较,选择了VPN和Lift-Splat作为baselines。在这些baseline模型中,保留了原有的task heads和其他设置,但将它们head之前的部分替换为BEVFormer。

BEVFormer的静态版本:

  • 在论文中,通过将temporal self-attention修改为普通的self-attention,从而将BEVFormer转变为一个静态模型,命名为BEVFormer-S。这个版本不使用历史BEV Features。

效果对比:

分享完成~

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

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

相关文章

Opencv实验合集——实验五:高动态范围

1.概念 高动态范围成像(HDRI 或 HDR)是一种用于成像和摄影的技术,可以再现比标准数字成像或照相技术更大的动态光度范围。虽然人眼可以适应各种光线条件,但大多数成像设备每通道使用 8 位,因此我们仅限于 256 级。当我…

Bifrost 中间件 X-Requested-With 系统身份认证绕过漏洞复现

0x01 产品简介 Bifrost是一款面向生产环境的 MySQL,MariaDB,kafka 同步到Redis,MongoDB,ClickHouse等服务的异构中间件 0x02 漏洞概述 Bifrost 中间件 X-Requested-With 存在身份认证绕过漏洞,未经身份认证的攻击者可未授权创建管理员权限账号,可通过删除请求头实现身…

Linux的重定向

Linux中的重定向是将程序的输入流或输出流从默认的位置改变到指定的位置。可以使用特殊的符号来实现重定向操作。(文中command代表命令) (1)重定向命令列表 命令 说明 command > file …

【单调栈】LeetCode1776:车队

作者推荐 【贪心算法】【中位贪心】.执行操作使频率分数最大 涉及知识点 单调栈 题目 在一条单车道上有 n 辆车,它们朝着同样的方向行驶。给你一个长度为 n 的数组 cars ,其中 cars[i] [positioni, speedi] ,它表示: positi…

iTOP-RK3568开发板实时系统编译,Preemption系统/Xenomai系统编译,获取Linux源码包

1 获取 Linux 源码包 编译环境说明: 本手册使用的是迅为提供的编译环境 ubuntu20.04,在网盘资料“iTOP-3568 开发板\03_ 【iTOP-RK3568 开发板】指南教程\05_NPU 开发配套资料\03_RKNN_Toolkit2 环境搭建\01 课程用到的资料\01_初始 Ubuntu20 虚拟机”…

这5个A 视频生成工具你需要了解

任何人都可以很快成为下一个斯科塞斯或斯皮尔伯格,而无需任何电影制作经验。 这是许多人工智能视频生成工具背后的公司做出的承诺。但如今这些文本转视频工具有多好呢?他们是否有足够的能力制作一部高质量、成熟的电影? 在本文中&#xff0…

java_web_电商项目

java_web_电商项目 1.登录界面2.注册界面3. 主界面4.分页界面5.商品详情界面6. 购物车界面7.确认订单界面8.个人中心界面9.收货地址界面10.用户信息界面11.用户余额充值界面12.后台首页13.后台商品增加14.后台用户增加15.用户管理16.源码分享1.登录页面的源码2.我们的主界面 1.…

【yolov8系列】 yolov8 目标检测的模型剪枝

前言 最近在实现yolov8的剪枝,所以有找相关的工作作为参考,用以完成该项工作。 先细读了 Torch-Pruning,个人简单记录了下 【剪枝】torch-pruning的基本使用,有框架完成的对网络所有结构都自适应剪枝是最佳的,但这里没…

VBA之Word应用:利用代码统计文档中的书签个数

《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实…

10kV站所柜内运行状态及环境指标监测管理平台

背景: 10kV站所柜内运行状态及环境指标监测管理平台对分布在不同位置的动力设备、环境监测设备和安保设备进行遥测、遥信采集,对各设备的运行状态进行实时监控,同时就相关监测数据展开记录与处理,第一时间向相关人员发出通知&…

【算法】红黑树

一、红黑树介绍 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 红黑树是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来&am…

HTML---CSS美化网页元素

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.div 标签&#xff1a; <div>是HTML中的一个常用标签&#xff0c;用于定义HTML文档中的一个区块&#xff08;或一个容器&#xff09;。它可以包含其他HTML元素&#xff0c;如文本、图像…

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见&#xff0c;比如性别&#xff0c;要么是男&#xff0c;要么是女。比如单选题&#xff0c;给出多个选择&#xff0c;但是只能选择其中的一个。 在本节课中&#xff0c;我们演示一下这两种常见的用法。 基本用法 我们创建src/component…

Word的兼容性问题很常见,禁用兼容模式虽步不是最有效的,但可以解决兼容性问题

当你在较新版本的Word应用程序中打开用较旧版本的Word创建的文档时&#xff0c;会出现兼容性问题。错误通常发生在文件名附近&#xff08;兼容模式&#xff09;。兼容性模式问题&#xff08;暂时&#xff09;禁用Word功能&#xff0c;从而限制使用较新版本Word的用户编辑文档。…

Nginx快速入门:安装目录结构详解及核心配置解读(二)

0. 引言 上节我们讲解了nginx的应用场景和安装&#xff0c;本节继续针对nginx的各个目录文件进行讲解&#xff0c;让大家更加深入的认识nginx。并通过一个实操案例&#xff0c;带大家来实际认知nginx的核心配置 1. nginx安装目录结构 首先nginx的默认安装目录为&#xff1a;…

【深度学习】语言模型与注意力机制以及Bert实战指引之一

文章目录 统计语言模型和神经网络语言模型注意力机制和Bert实战Bert配置环境和模型转换格式准备 模型构建网络设计模型配置代码实战 统计语言模型和神经网络语言模型 区别&#xff1a;统计语言模型的本质是基于词与词共现频次的统计&#xff0c;而神经网络语言模型则是给每个词…

2023大湾区汽车创新大会暨IEEE自动驾驶国际标准研讨会成功举办

2023年12月15日-12月16日&#xff0c;由IEEE ADWG工作组主席孙栋博士、杨子江博士共同主持的2023大湾区汽车创新大会平行主题论坛-IEEE自动驾驶国际标准研讨会在深圳坪山成功举办。图灵奖获得者Joseph Sifakis、英伟达仿真生态总监German Ros、ASAM标准组织CEO Marius Dupuis、…

云原生之深入解析Kubernetes集群发生网络异常时如何排查

一、Pod 网络异常 网络不可达&#xff0c;主要现象为 ping 不通&#xff0c;其可能原因为&#xff1a; 源端和目的端防火墙&#xff08;iptables, selinux&#xff09;限制&#xff1b; 网络路由配置不正确&#xff1b; 源端和目的端的系统负载过高&#xff0c;网络连接数满…

Re解析(正则表达式解析)

正则表达式基础 元字符 B站教学视频&#xff1a; 正则表达式元字符基本使用 量词 贪婪匹配和惰性匹配 惰性匹配如下两张图&#xff0c;而 .* 就表示贪婪匹配&#xff0c;即尽可能多的匹配到符合的字符串&#xff0c;如果使用贪婪匹配&#xff0c;那么结果就是图中的情况三 p…

CTF网络安全大赛是干什么的?发展史、赛制、赛程介绍,参赛需要学什么?

CTF&#xff08;Capture The Flag&#xff09;是一种网络安全竞赛&#xff0c;它模拟了各种信息安全场景&#xff0c;旨在提升参与者的网络安全技能。CTF 赛事通常包含多种类型的挑战&#xff0c;如密码学、逆向工程、网络攻防、Web 安全、二进制利用等。 发展史 CTF 的概念…