BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)

前言 本文提出了一种基于Transformer和时间结构的Bird's-Eye-View(BEV)编码器,称为BEVFormer。该编码器可以有效地聚合来自多视角摄像机和历史BEV特征的时空特征。

本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

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招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

其它文章

穿越时空的智慧:经得起时间考验的深度学习理念

一次性分割一切,比SAM更强,华人团队的通用分割模型SEEM来了

目标检测中的框位置优化总结

CVPR'23|向CLIP学习预训练跨模态!简单高效的零样本参考图像分割方法

大模型微调项目 / 数据集调研汇总

CVPR23 Highlight|拥有top-down attention能力的vision transformer

视觉定位领域专栏(三)算法评估方法总结

视觉定位领域专栏(二)常用数据集介绍

视觉定位领域专栏(一)领域介绍、应用场景和研究难点

语义分割专栏(二)复习FCN的编解码结构

语义分割专栏(一)解读FCN

CUDA 教程(三)CUDA C 编程简介

目标跟踪(二)单、多目标跟踪的基本概念与常用数据集

【CV技术指南】咱们自己的CV全栈指导班、基础入门班、论文指导班 全面上线!!

即插即用模块 | RFAConv助力YOLOv8再涨2个点

CVPR 2023|21 篇数据集工作汇总(附打包下载链接)

CVPR 2023|两行代码高效缓解视觉Transformer过拟合,美图&国科大联合提出正则化方法DropKey

LargeKernel3D:在3D稀疏CNN中使用大卷积核

ViT-Adapter:用于密集预测任务的视觉 Transformer Adapter

CodeGeeX 130亿参数大模型的调优笔记:比FasterTransformer更快的解决方案

分割一切还不够,还要检测一切、生成一切,SAM二创开始了

CVPR 2023 深挖无标签数据价值!SOLIDER:用于以人为中心的视觉

SegGPT:在上下文中分割一切

上线一天,4k star | Facebook:Segment Anything

AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习

计算机视觉入门1v3辅导班

计算机视觉交流群

聊聊计算机视觉入门

posted @ 2023-05-11 15:10  CV技术指南(公众号)  阅读(1184)  评论(0编辑  收藏  举报