首页 > 其他分享 >BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)

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

时间:2023-05-11 15:25:37浏览次数:49  
标签:特征 Attention 专栏 BEVFormer 模块 BEV 3D

前言 本文提出了一种基于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辅导班

计算机视觉交流群

聊聊计算机视觉入门

标签:特征,Attention,专栏,BEVFormer,模块,BEV,3D
From: https://www.cnblogs.com/wxkang/p/17391118.html

相关文章

  • 纯电动汽车BEV 电机 电池 VCU控制仿真模型纯电动汽车整车仿真测
    纯电动汽车BEV电机电池VCU控制仿真模型纯电动汽车整车仿真测试;附赠传统燃油车仿真模型发动机传动系车辆模型.模型均有直观的模型搭建说明描述!ID:7550622560149808......
  • BEV专栏(二)从BEVFormer看BEV流程(下篇)
    前言 书接上回,在上一篇文章中,我们介绍了BEVFormer这一先进的BEV算法。在本篇文章中,我们将深入探讨BEVFormer的实现细节,旨在帮助读者更深入地理解BEVFormer的工作原理和性能表现。本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。欢迎关注公......
  • 【验证码逆向专栏】某验全家桶细节避坑总结
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • 【验证码逆向专栏】数美验证码全家桶逆向分析以及 AST 获取动态参数
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • Uncaught TypeError: f.__fbeventsModules[a] is not a function at f.__fbeventsM
    UncaughtTypeError:f.__fbeventsModules[a]isnotafunctionatf.__fbeventsModules.f.getFbeventsModules怎么了这个错误通常是因为代码中使用了Facebook的跟踪代码,但是在加载该代码之前,代码中尝试访问跟踪模块。这个错误有几种可能的原因:Facebook跟踪代码没有正......
  • KubeVela 稳定性及可扩展性评估
    作者:殷达背景随着v1.8的发布,基于OAM的应用程序交付项目KubeVela已经持续发展了3年多。目前已被各种组织采用并部署在生产环境中。无论是与托管定义一起使用还是在多个集群上进行管理,在单个KubeVela控制平面上运行数千个应用程序的情况并不少见。用户经常问的一个关键......
  • kubevirt实验部署:k8s1.23.17+kube-ovn+nfs+kubevirt+ceph 集成使用
    标签(空格分隔):kubernetes系列一:kubevirt的简介KubeVirt是一个Kubernetes插件,它为Kubernetes提供了在与容器相同的基础结构上提供、管理和控制虚拟机的能力。KubeVirt是由云原生计算基金会(CNCF)赞助的开源项目,目前正处于孵化阶段。KubeVirt使Kubernetes能够使用与容器化工作负......
  • 【专栏精选】实战:动态配置图片
    本文节选自洪流学堂公众号技术专栏《大话Unity2019》,未经允许不可转载。洪流学堂公众号回复专栏,查看更多专栏文章。洪流学堂,让你快人几步。你好,我是郑洪智。小新:“大智,最近我在做一个虚拟展厅的demo,你说我怎么最大程度提高这个程度的扩展性呢?最好图片和文字说明是可以动态替换的。......
  • 【专栏精选】实战:使用LeanCloud上传玩家分数,实现排行榜
    本文节选自洪流学堂公众号技术专栏《大话Unity2019》,未经允许不可转载。洪流学堂公众号回复专栏,查看更多专栏文章。洪流学堂,让你快人几步。你好,我是郑洪智。小新:“有了用户登录后,我们总要拿来做点什么事情吧?”大智:“有了用户登陆信息之后,就可以针对用户来存储他自己的信息了,比如......
  • 【专栏精选】网络封包神器protobuf简介
    本文节选自洪流学堂公众号技术专栏《大话Unity2019》,未经允许不可转载。洪流学堂公众号回复专栏,查看更多专栏文章。洪流学堂,让你快人几步。你好,我是郑洪智。大智:“上次我们在学习如何进行数据包封包的时候说到:在网络传输时数据包需要定义好格式,这个格式就是数据在字节流中是如何排......