前言 本文提出了一种基于Transformer和时间结构的Bird's-Eye-View(BEV)编码器,称为BEVFormer。该编码器可以有效地聚合来自多视角摄像机和历史BEV特征的时空特征。
本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。
Transformer、目标检测、语义分割交流群
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
CV各大方向专栏与各个部署框架最全教程整理
从BEVFormer生成的BEV特征可以同时支持多个3D感知任务,例如3D物体检测和地图分割。
背景意义
自动驾驶技术已经成为当前研究热点之一。在自动驾驶系统中,高质量的3D感知是至关重要的。
然而,在实际应用中,由于传感器噪声、遮挡等因素,3D感知任务仍然存在许多挑战。因此,需要一种新颖且高效的方法来解决这些问题。
PipeLine流程
其实和大多数的算法流程一样,BEVFormer的pipeline流程如下:
-
使用Backbone和Neck(ResNet-101-DCN + FPN)提取环视图像的多尺度特征。
-
Encoder模块(包括Temporal Self-Attention模块和Spatial Cross-Attention模块),通过论文提出的方法将环视图像特征转换为BEV特征。
-
类似于Deformable DETR的Decoder模块,完成3D目标检测的分类和定位任务。
-
正负样本的定义采用了Transformer中常用的匈牙利匹配算法,使用Focal Loss + L1 Loss作为总损失,并最小化该损失。
-
损失的计算使用Focal Loss分类损失和L1 Loss回归损失,并进行反向传播和更新网络模型参数。
输入数据格式
对于BEVFormer网络模型,输入数据是一个6维张量:(bs,queue,cam,C,H,W)。
其中:
-
bs表示batch size大小;
-
queue表示连续帧的数量。由于BEVFormer采用了时序信息的思想,因此输入到网络模型中的数据要包括之前几帧的数据,而不仅仅是当前帧的数据;
-
cam表示每帧中包含的图像数量。在nuScenes数据集中,一辆车通常带有六个环视相机传感器,可以实现360度全场景的覆盖,因此一帧会包含六张环视图片;
-
C,H,W分别表示图片的通道数、高度和宽度。
网络特征提取
网络特征提取的目的是为了从每一帧对应的六张环视图像中提取特征,以便于后续将其转换为 BEV 特征空间,并生成 BEV 特征。
BEV 特征产生
生成 BEV 特征的过程中,最核心的部分是论文中提出的 Encoder 模块,其中包括 Spatial Cross-Attention 和 Temporal Self-Attention。在这两个模块中,都使用了一个非常关键的组件:多尺度可变形注意力模块。
这个模块将 Transformer 的全局注意力变为局部注意力,以减少训练时间并提高 Transformer 的收敛速度。
Temporal Self-Attention的作用是将时序信息(如插图中的历史 BEV)与当前时刻的 BEV Query 进行融合,以提高 BEV Query 的建模能力。
Spatial Cross-Attention的作用是利用 Temporal Self-Attention 模块输出的 bev_query
,对主干网络和 Neck 网络提取到的多尺度环视图像特征进行查询,生成 BEV 空间下的 BEV Embedding
特征。
Decoder模块
以上过程中,利用了当前帧之前所有帧的特征迭代修正,以获得prev_bev
的特征,因此在使用 Decoder 模块进行解码之前,需要对当前时刻的 6 张环视图片同样使用 Backbone + Neck 提取多尺度特征,并使用上述 Temporal Self-Attention 模块和 Spatial Cross-Attention 模块的逻辑来生成当前时刻的bev_embedding
特征。然后,将这部分特征输入到 Decoder 中进行 3D 目标检测。
算法创新
使用Transformer和时间结构来聚合时空信息
BEVFormer使用Transformer和时间结构来聚合来自多视角摄像机和历史BEV特征的时空信息。
具体来说,BEVFormer使用预定义的网格状BEV查询与空间/时间特征进行交互,以查找并聚合时空信息。这种方法可以有效地捕获3D场景中物体的时空关系,并生成更强大的表示。
使用查询来查找空间/时间空间并相应地聚合时空信息
除了使用Transformer和时间结构来聚合时空信息外,BEVFormer还使用查询来查找空间/时间空间并相应地聚合时空信息。
具体而言,BEVFormer使用两种类型的注意力机制:一种是用于跨摄像机视图之间的注意力机制(即“Spatial Cross-Attention”),另一种是用于历史BEV特征之间的注意力机制(即“Temporal Self-Attention”)。
这些注意力机制可以帮助BEVFormer有效地捕获3D场景中物体之间的关系,并生成更好的表征。
适用于多个3D感知任务
从BEVFormer生成的BEV特征可以同时支持多个3D感知任务,例如3D物体检测和地图分割。
这意味着,使用BEVFormer可以减少需要为不同任务训练不同模型的工作量,并提高系统整体性能。
实验结果
实验结果表明,在KITTI数据集上进行评估时,BEVFormer相比其他现有方法具有更好的性能,表现出较高的3D物体检测和地图分割能力,为自动驾驶系统中的3D感知任务提供了一种新颖且高效的解决方案。
文末
本文提出了一种基于Transformer和时间结构的Bird's-Eye-View(BEV)编码器,并证明了其在多个3D感知任务中具有优异性能,所以可以看出该工作还是十分突出的。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【技术文档】《从零搭建pytorch模型教程》122页PDF下载
QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。
模型部署交流群:732145323。用于计算机视觉方面的模型部署、高性能计算、优化加速、技术学习等方面的交流。
其它文章
上线一天,4k star | Facebook:Segment Anything
3090单卡5小时,每个人都能训练专属ChatGPT,港科大开源LMFlow
Efficient-HRNet | EfficientNet思想+HRNet技术会不会更强更快呢?
实践教程|GPU 利用率低常见原因分析及优化
ICLR 2023 | SoftMatch: 实现半监督学习中伪标签的质量和数量的trade-off
目标检测创新:一种基于区域的半监督方法,部分标签即可(附原论文下载)
CNN的反击!InceptionNeXt: 当 Inception 遇上 ConvNeXt
神经网络的可解释性分析:14种归因算法
无痛涨点:目标检测优化的实用Trick
详解PyTorch编译并调用自定义CUDA算子的三种方式
深度学习训练模型时,GPU显存不够怎么办?
CV各大方向专栏与各个部署框架最全教程整理
计算机视觉入门1v3辅导班
计算机视觉各个方向交流群