BEVFormer详细复现方案


✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨

🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。

我是Srlua小谢,在这里我会分享我的知识和经验。🎥

希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮

记得先点赞👍后阅读哦~ 👏👏

📘📚 所属专栏:传知代码论文复现

欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙

​​

​​

目录

论文解读

论文方法

方法描述

方法改进

解决的问题

论文实验

论文总结

文章优点

方法创新点

未来展望

复现过程

安装过程

数据准备(mini数据集为例)

NuScenes

使用

训练 和 测试

使用FP16去训练模型.

Visualization

模型权重

复现过程中遇到的问题

参考材料


 本文所有资源均可在该地址处获取。

论文解读

本文介绍了一种新的框架——BEVFormer,用于学习具有时空Transformer的统一BEV表征,以支持多个自动驾驶感知任务。BEVFormer利用空间和时间信息,通过预定的网格状BEV查询向量与空间和时间域交互。为了聚合空间信息,作者设计了一个空间交叉注意力,每个BEV查询向量从跨相机视图的感兴趣区域提取空间特征。对于时间信息,作者提出了一种时间自注意力来递归融合历史BEV信息。实验结果表明,在nuScenes测试集上,BEVFormer的NDS指标达到了最新的56.9%,比之前的最佳技术高出9.0分,与基于lidar的基线性能相当。此外,BEVFormer还显著提高了低能见度条件下目标速度估计和召回率的准确性。

论文方法

方法描述

本论文提出了一种名为BEVFormer的新型BEV特征生成框架,该框架能够通过注意力机制有效地聚合来自多视角相机的时空特征和历史BEV特征。BEVFormer主要由六个编码器层组成,其中包括BEV查询、空间交叉注意力和时间自我注意力三种定制设计。BEVFormer的BEV查询向量是一组网格形状的可学习参数,用于从多目相机视图中查询BEV空间中的特征。空间交叉注意力和时间自注意力则用于根据BEV查询从多相机图像中查找和聚合空间特征和历史BEV的时间特征。BEVFormer还设计了一个基于可变形注意力的端到端三维探测头和一个基于二维分割方法Panoptic SegFormer的地图分割头。

方法改进

BEVFormer采用了可变形注意力和时间自注意力两种注意力机制,使得BEVFormer能够在不增加计算成本的前提下,有效地聚合来自多视角相机的时空特征和历史BEV特征。另外,BEVFormer还设计了一个基于可变形DETR探测器的端到端三维探测头和一个基于二维分割方法Panoptic SegFormer的地图分割头,使得BEVFormer可以应用于三维物体检测和地图分割等多个自动驾驶感知任务。

解决的问题

BEVFormer的目标是解决多目相机三维感知问题,即如何从多目相机视图中聚合时空特征和历史BEV特征,以实现准确的三维物体检测和地图分割。传统的方法通常是独立完成三维物体检测或地图分割任务,而BEVFormer通过引入注意力机制,能够有效地聚合来自多视角相机的时空特征和历史BEV特征,从而提高了多目相机三维感知的准确性。

论文实验

本文介绍了BEVFormer模型在nuScenes和Waymo两个公共自动驾驶数据集上的实验结果。实验内容包括:

  1. 数据集介绍:作者使用了nuScenes和Waymo两个数据集进行实验,其中nuScenes数据集包含1000个场景,每个场景持续时间大约为20s,关键样本以2Hz的频率进行标注;Waymo开放数据集是一个大型自动驾驶数据集,拥有798个训练序列和202个验证序列。
  2. 实验设置:作者采用了两种类型的骨干ResNet101-DCN和VoVnet99,并使用FPN输出的多尺度特征。在nuScenes上,BEV查询向量的默认大小为200×200,感知范围为[-51.2m, 51.2m]的X轴和Y轴,BEV网格分辨率s大小为0.512m。在Waymo上,BEV查询向量的默认空间形状为300×220,感知范围为X轴[-35.0m, 75.0m],Y轴[-75.0m, 75.0m],每个网格分辨率s的大小为0.5m。
  3. 三维目标检测结果:作者使用了检测头训练模型进行检测任务,并与其他先进的三维目标检测方法进行比较。在nuScenes测试集和验证集拆分上,BEVFormer模型在val集上超过了DETR3D模型超过9.2个百分点(51.7% NDS vs. 42.5% NDS)。在测试集上,BEVFormer模型在没有花里胡哨的情况下实现了56.9% NDS,比DETR3D(47.9% NDS)高了9.0个百分点。此外,BEVFormer模型的时间信息在多镜头检测的速度估计中起着至关重要的作用,平均速度误差(mA VE)为0.378米/秒,接近基于激光雷达的方法[43]的性能。
  4. 多任务感知结果:作者同时使用检测头和分割头对模型进行训练,以验证模型对多任务的学习能力。在nuScenes验证集上,BEVFormer在所有任务中都实现了更高的性能,例如,在闪避任务上高出11.0个百分点(52.0% NDS v.s. 41.0% NDS)。与单独训练任务相比,多任务学习通过共享更多的模块来节省计算成本和减少推理时间。

论文总结

文章优点

  • 本文提出的 BEVFormer 框架能够高效聚合时空信息,生成强大的 BEV 特征,从而提高了视觉感知模型的性能。
  • 作者通过实验表明,利用多镜头输入的时空信息可以显著提高视觉感知模型的性能,这对于构建更好、更安全的自动驾驶系统至关重要。
  • BEVFormer 的设计思路基于 Transformer 使用注意力机制动态地聚合有价值的特性,这种方法能够更好地适应不同的任务需求。

方法创新点

  • 本文提出了一种基于 Transformer 的鸟瞰视角(BEV)编码器,称为 BEV-Former,它可以有效地聚合环视相机的时空特征和历史 BEV 特征。
  • 作者设计了可学习的 BEV 查询向量,并设计了空间交叉注意力层和时间自注意力层,分别从跨摄像头和历史 BEV 中查找空间特征和时间特征,并将其聚合为统一的 BEV 特征。
  • BEVFormer 能够同时支持多种自动驾驶感知任务,包括 3D 检测和地图分割,这使得它成为了一个更加通用的视觉感知方法。

未来展望

  • 本文提出的 BEVFormer 只是以下更强大的视觉感知方法的基础,基于视觉的感知系统仍有巨大的潜力有待开发。
  • 未来的研究方向可以探索如何进一步优化 BEVFormer 的性能,比如增加更多的时空特征信息或者改进注意力机制等。
  • 同时也可以考虑将 BEVFormer 应用于其他领域,比如医疗影像分析等。

复现过程

安装过程

Following (https://mmdetection3d.readthedocs.io/en/latest/getting_started.html#installation)

a. Create a conda virtual environment and activate it.

conda create -n open-mmlab python=3.8 -y
conda activate open-mmlab

b. Install PyTorch and torchvision following the 

### 如何复现 BEVFormer 代码 BEVFormer 是一种基于 Transformer 的自动驾驶鸟瞰图 (Bird's Eye View, BEV) 纯视觉感知方法,已在多个领域取得了显著成果。以下是关于如何复现 BEVFormer 代码的相关说明。 #### 下载预训练模型 为了快速启动项目并验证效果,可以从官方提供的链接下载预训练模型文件。通过以下命令获取预训练权重: ```bash wget https://path/to/pretrained/model.pth ``` 此操作有助于减少从头训练的时间成本,并提供一个可靠的性能基线[^1]。 #### 获取源码与环境搭建 可以通过克隆 GitHub 上的仓库来获得完整的 BEVFormer 源码及其配套脚本。执行以下命令完成代码库拉取以及开发环境初始化: ```bash git clone https://github.com/Charmve/OccNet-Course ~/workspace/OccNet-Course cd ~/workspace/OccNet-Course/scripts/ ./start_dev_docker.sh ./goto_dev_docker.sh cd ../code/ ``` 上述步骤会设置好 Docker 容器内的依赖项,确保运行时所需的软件包版本一致[^2]。 #### 数据准备与配置调整 在实际实验前需准备好对应的数据集,并依据具体需求修改 `Config` 文件中的参数设定。这一步骤对于适配不同的硬件平台或者优化特定场景下的表现至关重要[^3]。 #### 示例运行流程 假设一切准备工作就绪,则可以直接调用样例脚本来测试整个流水线的功能性。例如,在终端输入下面这条指令即可触发一次典型的推理过程演示: ```python from beformer import inference_model inference_model('model.pth', 'input_image.jpg') ``` 此外还有更多高级特性等待探索者自行发掘,比如支持多传感器融合处理等功能扩展模块。 #### 关键数据结构解析 值得一提的是,某些辅助性的 JSON 文件也扮演着不可或缺的角色。像 `sample_data.json` 就记录了一些样本的基础元信息(不含标签),便于追踪跨时间序列的对象状态变化情况[^4]。 ---
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值