当前位置:网站首页>BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Trans
BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Trans
2022-07-17 05:10:00 【byzy】
BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers论文笔记
原文链接:https://arxiv.org/pdf/2203.17270.pdf
1.引言
视觉感知是利用多个摄像机提供的图像来给出3D边界框或语义图。最直接的方法是基于单目框架和跨相机后处理。但这种方法单独处理每个视图,而不能捕捉跨相机的信息,导致性能和效率都很低。
另一框架是从多相机图像中提取整体表达。鸟瞰图(BEV)是一种合适的表达,但基于BEV的方法与3D检测相比没有优势。生成BEV的流行框架是基于深度估计,但误差较大,导致最终性能较差。
此外,现有的多相机3D检测方法很少关注时间信息,因为自动驾驶对算法时间要求很高,且物体在场景中变化迅速,引入多帧数据会带来额外的计算量。但时间信息对于估计物体运动状态、确定被遮挡物体而言很重要。
因此本文提出BEVFormer(如下图所示),从多相机图像和历史BEV特征中聚合时空信息,生成BEV特征。包含3个部分:BEV query,空间注意力和时间注意力。
3.BEVFormer
3.1 整体结构
如上图所示,BEVFormer大体结构和传统的Transformer类似。BEV query是网格化可学习参数,通过注意力机制从多相机视图中查询BEV特征;空间注意力中,每个BEV query仅与感兴趣区中的图像特征交互。
3.2 BEV Queries
预定义可学习参数作为queries,其中
是BEV平面的长和宽。
是位于
处的一个query。
默认BEV平面的中心是自车位置。
在输入到BEVFormer前,向中加入了可学习的positional embedding。
3.3 空间交叉注意力
普通的多头自注意力的计算复杂度很高,考虑使用可变形注意力(deformable attention)。
其中
分别为参考点和输入特征,
为Attention head的数量,
是每个head采样key的数量。
是特征维度。
是预测的注意力权重,被归一化为
是相对参考点的预测偏移;
是位置
处的特征,通过双线性插值得到。
如图2(b)所示,首先将BEV平面的每个query提升为柱状query,并从其中采样个3D参考点,然后将这些点投影到2D视图。对一个query而言,可能只有部分视图有投影点,这些视图集合为
。将这些2D点视为
的参考点,并从
中的这些参考点附近采样特征。最后使用这些采样特征的加权求和作为空间交叉注意力(SCA)的输出,即:
其中是当前时刻第
个相机视图的特征;
为投影函数,得到
在视图
上产生的第
个参考点。
如何用投影函数得到参考点。首先使用下式计算BEV平面
处的真实坐标
(以自车位置为原点):
其中是BEV网格的分辨率。
由于BEV无高度信息,故在采样时需要预定义anchor heights。故3D参考点为
。
投影函数满足,其中
是第
个摄像机的投影矩阵。
3.4 时间自注意力
首先将当前时刻的queries 与历史BEV特征
对齐,使得对齐的网格对应真实世界中相同位置。将对齐后的历史BEV特征记为
。使用时间自注意力(TSA)进行时间交互:
与普通的可变形注意力不同,时间自注意力中的偏移由
和
的拼接进行预测。
特别地,对于第一帧,使用替代
。
3.6 实施细节
训练:对每个时间点,随机采样2s以内的3帧数据,记为
。依次产生
(此过程无需梯度;对于
,由于无过去BEV特征,时间自注意力退化为自注意力)。最后根据
生成
,然后送入head中计算损失函数。
推断:按照严格时间顺序,使用上一帧的BEV特征用于当前帧BEV特征的生成。
边栏推荐
- 软件过程与管理复习(八)
- SGM: Sequence Generation Model for Multi-Label Classification(用于多标签分类的序列生成模型)
- 对Crowdhuman数据集处理,根据生成的train.txt分离数据集
- 8. ODS layer construction of data warehouse
- Problems encountered by kotlin generics
- Could not locate zlibwapi.dll. Please make sure it is in your library path
- 正则替换group(n)内容
- Coap在Andorid中的简单应用
- PCM静默检测
- 安卓实现真正安全的退出app
猜你喜欢
Pointnet++ code explanation (I): farthest_ point_ Sample function
6. Data warehouse design for data warehouse construction
C language implementation of iteration and binary search
C language - bubble sort
微信小程序的常用組件
SGM: Sequence Generation Model for Multi-Label Classification(用于多标签分类的序列生成模型)
9. Dim layer construction of data warehouse construction
CV学习笔记【2】:卷积与Conv2d
CV-Model【1】:Mnist
记录:YOLOv5模型剪枝轻量化
随机推荐
软件过程与管理复习(七)
尝试解决YOLOv5推理rtsp有延迟的一些方法
MySQL learning notes (4) - (basic crud) operate the data of tables in the database
Pointnet++ code explanation (VI): pointnetsetabstraction layer
Pointnet++代码详解(七):PointNetSetAbstractionMsg层
Pointnet++代码详解(一):farthest_point_sample函数
Livedata analysis
kotlin作用域函数
Time difference calculation
E-commerce user behavior real-time analysis system (flink1.10.1)
PyTorch学习笔记【3】:使用神经网络拟合数据
C语言实现迭代实现二分查找
【语音识别】MFCC特征提取
6. Data warehouse design for data warehouse construction
关于线程池中终止任务
USB转TTL CH340模块安装(WIN10)
Page navigation of wechat applet
深度聚类相关(三篇文章)
多模态融合方法总结
安卓实现真正安全的退出app