首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【论文复现】FastBEV论文解读

【论文复现】FastBEV论文解读

作者头像
Eternity._
发布2024-12-15 09:01:33
发布2024-12-15 09:01:33
8651
举报
文章被收录于专栏:登神长阶登神长阶

论文解读

本文介绍了一种名为Fast-BEV的快速且强大的鸟瞰视图感知基线框架,旨在解决现有BEV解决方案在执行车辆内推理时需要大量资源或性能不佳的问题。该框架包括五个部分:一种轻量级部署友好的视角转换方法、一个多尺度图像编码器、一个专门设计用于加速车辆内推断的高效BEV编码器、一种强数据增强策略以及一种多帧特征融合机制。实验结果表明,该框架能够在当前流行的车辆芯片上实现高精度和高速度的鸟瞰视图感知任务,并取得了与先前工作相比更好的性能。

论文方法

方法描述

该论文提出了一种名为Fast-BEV的快速视图变换方法,用于将多相机图像转换为鸟瞰视角下的三维特征图。该方法通过使用ray投影来实现高效的特征映射,并且利用预计算的静态查找表来加速计算过程。此外,该方法还引入了多尺度图像编码、有效的鸟瞰视角特征编码、数据增强以及时空融合等技术,以进一步提高性能并减少计算时间。

方法改进

与传统的基于深度预测或注意力机制的方法相比,Fast-BEV采用了新的视图变换方法,即基于ray投影的方法,可以显著提高速度和效率。同时,该方法还引入了一些其他的技术来进一步优化性能,如多尺度图像编码、有效的鸟瞰视角特征编码、数据增强以及时空融合等。

解决的问题

该方法主要解决了在自动驾驶场景中如何高效地处理多相机图像的问题。由于需要考虑多个相机的视点和深度信息,因此传统的深度预测或注意力机制方法可能会面临计算复杂度高、运行缓慢等问题。而Fast-BEV提出的基于ray投影的方法可以在保证精度的同时,大幅提高计算速度和效率,从而更好地适应于实际应用场景的需求。

论文实验

本文主要介绍了在nuScenes数据集上进行的3D目标检测任务,并进行了多个对比实验来验证Fast-BEV模型的有效性和性能表现。

首先,文章比较了不同方案的视图变换速度和延迟,使用Fast-Ray变换方案与其他流行的方法进行了比较,包括LSS-DEVDet、LSS-BEVDepth和MatrixVT等。结果表明,Fast-Ray变换具有更快的速度和更小的延迟,特别是在高分辨率图像和大BEV特征尺寸下。

其次,文章还比较了Fast-BEV和其他先进方法的性能表现,包括PointPillar、FCOS3D、PETR、BEVDet、DETR3d、BEVDepth等。结果显示,Fast-BEV在mAP和NDS方面均优于其他方法,特别是当使用更大的输入分辨率时。

此外,文章还对Fast-BEV的不同组件进行了详细的Ablation分析,包括分辨率、2D/3D编码器、多尺度特征、训练epoch和数据增强等方面。这些实验结果进一步证明了Fast-BEV的有效性和性能表现。

最后,文章还设计了一系列高效模型(M系列),以满足不同计算能力平台的需求,并对其部署在不同的设备上的延迟进行了测试。结果表明,M系列模型能够在低功耗平台上实现实时推理,并且随着实际计算能力的提高,其延迟也会相应降低。

总之,本文通过多个对比实验,证明了Fast-BEV模型的有效性和性能表现,并为该领域的研究提供了有价值的参考。

论文总结

文章优点

本文提出了一种名为Fast-BEV的高效全卷积BEV感知框架,适用于车辆上的部署。该框架通过以下方式改进了现有的解决方案:

快速转换图像特征到BEV空间:使用快速Ray变换技术实现更快的图像特征向BEV空间的转换。 多尺度信息利用:引入多尺度图像编码器以更好地利用多尺度信息提高性能。 高效BEV编码器:设计高效的BEV编码器以加速车辆中的推理过程。 强大的数据增强策略:避免过拟合现象,提高模型泛化能力。 多帧特征融合机制:结合时空信息以进一步提升性能。 此外,作者还展示了在实际应用中如何扩展Fast-BEV,使其能够处理更多的传感器输入(如LiDAR和RADAR)以及支持更多的任务(如3D跟踪、运动预测和高分辨率重建)。

方法创新点

本文的主要创新点在于提出了一种针对低计算能力芯片的高效BEV感知框架。具体来说,Fast-BEV具有以下特点:

  1. 适用于低计算能力芯片:由于许多自动驾驶汽车使用低计算能力的芯片(如Nvidia Xavier),因此Fast-BEV的设计重点是能够在这些设备上实现更快速的推理速度。
  2. 不依赖GPU:与一些基于CUDA库的深度学习算法不同,Fast-BEV可以在没有GPU的情况下运行,这对于非GPU芯片而言是一个重要的优势。
  3. 可扩展性:Fast-BEV可以轻松地应用于其他类型的传感器输入(如LiDAR和RADAR),并支持多种任务,这使得它成为一种通用的BEV感知框架。

未来展望

在未来的研究中,Fast-BEV有望在以下几个方面得到进一步发展:

  1. 更广泛的传感器输入:将Fast-BEV扩展到更多类型的传感器输入(如LiDAR和RADAR),以便更好地适应不同的自动驾驶场景。
  2. 支持更多的任务:继续探索Fast-BEV在其他任务(如3D跟踪、运动预测和高分辨率重建)方面的潜力,并根据需求对其进行优化。
  3. 模型可解释性和可靠性:深入研究Fast-BEV内部的工作原理,以提高其可解释性和可靠性,从而为实际应用提供更好的保障。

代码复现

安装

CUDA>=9.2 GCC>=5.4 Python>=3.6 Pytorch>=1.8.1 Torchvision>=0.9.1 MMCV-full1.4.0 MMDetection2.14.0 MMSegmentation==0.14.1

数据集准备

代码语言:javascript
复制
  .
  ├── data
  │   └── nuscenes
  │       ├── maps
  │       ├── maps_bev_seg_gt_2class
  │       ├── nuscenes_infos_test_4d_interval3_max60.pkl
  │       ├── nuscenes_infos_train_4d_interval3_max60.pkl
  │       ├── nuscenes_infos_val_4d_interval3_max60.pkl
  │       ├── v1.0-test
  │       └── v1.0-trainval

download

预训练权重

.

代码语言:javascript
复制
  ├── pretrained_models
  │   ├── cascade_mask_rcnn_r18_fpn_coco-mstrain_3x_20e_nuim_bbox_mAP_0.5110_segm_mAP_0.4070.pth
  │   ├── cascade_mask_rcnn_r34_fpn_coco-mstrain_3x_20e_nuim_bbox_mAP_0.5190_segm_mAP_0.4140.pth
  │   └── cascade_mask_rcnn_r50_fpn_coco-mstrain_3x_20e_nuim_bbox_mAP_0.5400_segm_mAP_0.4300.pth

download

训练

代码语言:javascript
复制
  .
  ├── work_dirs
    └── fastbev
      └── exp
          └── paper
              └── fastbev_m0_r18_s256x704_v200x200x4_c192_d2_f4
              │   ├── epoch_20.pth
              │   ├── latest.pth -> epoch_20.pth
              │   ├── log.eval.fastbev_m0_r18_s256x704_v200x200x4_c192_d2_f4.02062323.txt
              │   └── log.test.fastbev_m0_r18_s256x704_v200x200x4_c192_d2_f4.02062309.txt
              ├── fastbev_m1_r18_s320x880_v200x200x4_c192_d2_f4
              │   ├── epoch_20.pth
              │   ├── latest.pth -> epoch_20.pth
              │   ├── log.eval.fastbev_m1_r18_s320x880_v200x200x4_c192_d2_f4.02080000.txt
              │   └── log.test.fastbev_m1_r18_s320x880_v200x200x4_c192_d2_f4.02072346.txt
              ├── fastbev_m2_r34_s256x704_v200x200x4_c224_d4_f4
              │   ├── epoch_20.pth
              │   ├── latest.pth -> epoch_20.pth
              │   ├── log.eval.fastbev_m2_r34_s256x704_v200x200x4_c224_d4_f4.02080021.txt
              │   └── log.test.fastbev_m2_r34_s256x704_v200x200x4_c224_d4_f4.02080005.txt
              ├── fastbev_m4_r50_s320x880_v250x250x6_c256_d6_f4
              │   ├── epoch_20.pth
              │   ├── latest.pth -> epoch_20.pth
              │   ├── log.eval.fastbev_m4_r50_s320x880_v250x250x6_c256_d6_f4.02080021.txt
              │   └── log.test.fastbev_m4_r50_s320x880_v250x250x6_c256_d6_f4.02080005.txt
              └── fastbev_m5_r50_s512x1408_v250x250x6_c256_d6_f4
                  ├── epoch_20.pth
                  ├── latest.pth -> epoch_20.pth
                  ├── log.eval.fastbev_m5_r50_s512x1408_v250x250x6_c256_d6_f4.02080021.txt
                  └── log.test.fastbev_m5_r50_s512x1408_v250x250x6_c256_d6_f4.02080001.txt

download

代码复现可能出现的问题

报错1:

代码语言:javascript
复制
assert len(_list) == len(sort)

解决办法:Fast -BEV/mmdet3d/datasets/nuscenes monocular_dataset.py, 找到192行修改成193行样子:

报错2:

解决方法,安装这2个包:

代码语言:javascript
复制
pip install imageio[ffmpeg] imageio[pyav]

最后运行visualize_results.py ,生成video_pred.mp4与video_gt.mp4两个视频:

引用&参考

代码语言:javascript
复制
@article{li2023fast,
  title={Fast-BEV: A Fast and Strong Bird's-Eye View Perception Baseline},
  author={Li, Yangguang and Huang, Bin and Chen, Zeren and Cui, Yufeng and Liang, Feng and Shen, Mingzhu and Liu, Fenggang and Xie, Enze and Sheng, Lu and Ouyang, Wanli and others},
  journal={arXiv preprint arXiv:2301.12511},
  year={2023}
}
[1]https://blog.csdn.net/h904798869/article/details/130317240#comments_26604181

编程未来,从这里启航!解锁无限创意,让每一行代码都成为你通往成功的阶梯,帮助更多人欣赏与学习!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 论文解读
    • 论文方法
      • 方法描述
      • 方法改进
      • 解决的问题
    • 论文实验
    • 论文总结
      • 文章优点
      • 方法创新点
    • 未来展望
  • 代码复现
    • 安装
    • 数据集准备
    • 预训练权重
    • 训练
    • 代码复现可能出现的问题
    • 引用&参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档