Go to file
bevfusion f1f37a8d79 Initial commit 2025-11-21 02:50:51 +00:00
.vscode feat: 提交清理前的完整项目状态 2025-11-14 11:41:11 +00:00
RMT-PPAD-main Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
analysis_results Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
archive feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
archive_scripts Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
assets Add README 2022-05-28 16:21:28 -04:00
configs Initial commit 2025-11-21 02:50:51 +00:00
docker Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
docs/technical feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
mmdet3d Initial commit 2025-11-21 02:50:51 +00:00
openmpi-4.1.4 Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
project feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
scripts feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
tools Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
.gitignore [ROCm] add support for ROCm/HIP (#509) 2024-07-31 00:04:51 -04:00
ANALYZE_BEV_FEATURE_DIMENSIONS.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_DETECTION_HEAD.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_HIGHRES_CONFIG.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_NETWORK_CONFIG.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_PHASE4A_GCA_CONFIG.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_RESULTS.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_RESULTS_SIMPLE.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_RTDETR_ARCHITECTURES.py Initial commit 2025-11-21 02:50:51 +00:00
ANALYZE_TRANSFORMER_DEBUG.py Initial commit 2025-11-21 02:50:51 +00:00
BASELINE_VS_GCA_CONFIGURATION.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
BEVFUSION_PROJECT_MASTER_PLAN.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
BEV_FEATURE_SCALE_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
BEV分割类别说明_Divider.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
CALL_FLOW_DIAGRAM.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
CAMERA_ADAPTER_ENHANCED_DESIGN.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
CAMERA_CONFIGURATION_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
CAMERA_FLEXIBILITY_QUICK_GUIDE.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
CHECK_RESULTS.py Initial commit 2025-11-21 02:50:51 +00:00
CLEANUP_AND_START_FP16_BATCH2.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
CONFIG_DETAILED_EXPLANATION.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
CURRENT_8GPU_CONFIG.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
DECISION_SHARED_VS_TASK_GCA.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
DICE_LOSS_EXPLANATION.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
ENHANCED_BEVFUSION_MODEL_ARCHITECTURE.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
ENV_SUMMARY.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
EVALUATION_OPTIMIZATION_STRATEGIES.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
EVAL_AND_VISUALIZE.sh Initial commit 2025-11-21 02:50:51 +00:00
EVAL_BEV_ONLY.py Initial commit 2025-11-21 02:50:51 +00:00
EVAL_EPOCH1_SIMPLE.sh Initial commit 2025-11-21 02:50:51 +00:00
EVAL_EPOCH1_TEST.sh Initial commit 2025-11-21 02:50:51 +00:00
EVAL_EPOCH23_COMPLETE.sh Initial commit 2025-11-21 02:50:51 +00:00
EVAL_FROM_PKL.py Initial commit 2025-11-21 02:50:51 +00:00
EVAL_HOOK_AND_DATASET_EXPLANATION.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
EXPLAIN_BEV_RESOLUTION.py Initial commit 2025-11-21 02:50:51 +00:00
FINAL_CONFIG_CHECK_REPORT.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
FP16_Batch2配置总结.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
GCA_ARCHITECTURE_FINAL_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
GCA_CONFIG_SUMMARY.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
GCA_MODULE_DETAILED_GUIDE.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
GCA_OPTIMIZATION_SUMMARY.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
GCA_PLACEMENT_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
GCA_SHARED_BEV_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
INFER_ONE_BATCH.sh Initial commit 2025-11-21 02:50:51 +00:00
INSPECT_FAST_RESULTS.py Initial commit 2025-11-21 02:50:51 +00:00
INSPECT_PICKLE.py Initial commit 2025-11-21 02:50:51 +00:00
LICENSE [Major] Code release. 2022-06-03 04:21:18 +00:00
MEMORY_ANALYSIS.py Initial commit 2025-11-21 02:50:51 +00:00
PHASE4B_NETWORK_ARCHITECTURE_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
PROJECT_CLEANUP_REPORT_20251114_114248.md feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
QUICK_EVAL.py Initial commit 2025-11-21 02:50:51 +00:00
README.md Update the instruction of the -np flag. (#489) 2024-07-25 15:16:39 -04:00
RMT_PPAD_ANALYSIS_FOR_BEVFUSION.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
RMT_PPAD_MTDETR_HEAD_DETAILED_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
RMT_PPAD_VS_BEVFUSION_HEAD_ANALYSIS.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
RT-DETR-main.zip Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
SHARED_BEV_GCA_IMPLEMENTATION_GUIDE.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
SIMPLE_BEV_VISUALIZE.py Initial commit 2025-11-21 02:50:51 +00:00
SIMPLE_VISUALIZE.py Initial commit 2025-11-21 02:50:51 +00:00
SSH_CONNECTION_GUIDE.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
START.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
START_PHASE4B_RMTPPAD_SEGMENTATION_RESUME.sh Initial commit 2025-11-21 02:50:51 +00:00
START_PHASE4B_RMTPPAD_SEGMENTATION_STABLE.sh Initial commit 2025-11-21 02:50:51 +00:00
START_TASK_GCA_TRAINING.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
TASK_GCA_FINAL_SUMMARY.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
TASK_GCA_IMPLEMENTATION_COMPLETE.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
TASK_GCA_完成报告.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
TRAINING_QUICK_REFERENCE.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
TRAINING_STATUS_SNAPSHOT_20251114.md feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
VISUALIZATION_README.md Initial commit 2025-11-21 02:50:51 +00:00
VISUALIZE_INFERENCE.py Initial commit 2025-11-21 02:50:51 +00:00
VISUALIZE_INFERENCE_RESULTS.py Initial commit 2025-11-21 02:50:51 +00:00
VISUALIZE_RESULTS.py Initial commit 2025-11-21 02:50:51 +00:00
backup_core_code.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
bevfusion_backup_20251114_133628.bundle Initial commit 2025-11-21 02:50:51 +00:00
bevfusion_complete_backup_20251114_090608.bundle feat: 提交清理前的完整项目状态 2025-11-14 11:41:11 +00:00
camera-only-seg.pth feat: 提交清理前的完整项目状态 2025-11-14 11:41:11 +00:00
cleanup_eval_hook.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
cleanup_project.sh feat: 提交清理前的完整项目状态 2025-11-14 11:41:11 +00:00
commit_current_state.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
debug_transformer_output.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
docker-compose.yml Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
eval_in_new_docker.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
inference_and_visualize.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
init_git_repo.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
monitor_all_tasks.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
monitor_phase4a_stage1.sh Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
monitor_training.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
nohup.out Initial commit 2025-11-21 02:50:51 +00:00
nuscenes Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
quick_visualize.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
setup.cfg [Major] Code release. 2022-06-03 04:21:18 +00:00
setup.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
setup_git_access.sh feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
setup_local_git_server.sh feat: 完成项目目录整理和训练状态备份 2025-11-14 13:36:35 +00:00
simple_demo.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
ss-config.json Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_config_simple.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_distributed_enhanced.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_enhanced_config.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_enhanced_head.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_minimal_config.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_multi_scale.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_numerical_stability.py Initial commit 2025-11-21 02:50:51 +00:00
test_phase4b_config.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_rmtppad_integration.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
test_single_gpu.py Initial commit 2025-11-21 02:50:51 +00:00
test_transformer_simple.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
verify_weight_reuse.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
visualize_bev_correct.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
visualize_results.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
visualize_results_with_video.py Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
修复_neck输出列表问题.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
全部问题已解决.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
内存优化方案总结.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
剪枝准备完成总结.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
后台训练使用指南.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
启动.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
启动训练_完整步骤.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
多机训练快速参考.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
如何转换为Word.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
并行任务与GPU优化_最终建议.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
当前8卡训练配置总结.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
当前状态与新Docker评估指南_简版.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
执行此命令启动训练.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
方案2能力说明.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
最终修复_预训练模型.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
最终启动_已就绪.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
最终启动指令.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
现在启动.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
立即启动.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
立即执行.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
给用户的项目总结.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
问题已全部解决.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
项目状态一览_LATEST.txt Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00
项目进度与状态报告_LATEST.md Complete project state snapshot: Phase 4B RMT-PPAD Integration 2025-11-14 09:06:09 +00:00

README.md

BEVFusion

website | paper | video

demo

News

  • (2024/5) BEVFusion is integrated into NVIDIA DeepStream for sensor fusion.
  • (2023/5) NVIDIA provides a TensorRT deployment solution of BEVFusion, achieving 25 FPS on Jetson Orin.
  • (2023/4) BEVFusion ranks first on Argoverse 3D object detection leaderboard among all solutions.
  • (2023/1) BEVFusion is integrated into MMDetection3D.
  • (2023/1) BEVFusion is accepted to ICRA 2023!
  • (2022/8) BEVFusion ranks first on Waymo 3D object detection leaderboard among all solutions.
  • (2022/6) BEVFusion ranks first on nuScenes 3D object detection leaderboard among all solutions.
  • (2022/6) BEVFusion ranks first on nuScenes 3D object detection leaderboard among all solutions.

Abstract

Multi-sensor fusion is essential for an accurate and reliable autonomous driving system. Recent approaches are based on point-level fusion: augmenting the LiDAR point cloud with camera features. However, the camera-to-LiDAR projection throws away the semantic density of camera features, hindering the effectiveness of such methods, especially for semantic-oriented tasks (such as 3D scene segmentation). In this paper, we break this deeply-rooted convention with BEVFusion, an efficient and generic multi-task multi-sensor fusion framework. It unifies multi-modal features in the shared bird's-eye view (BEV) representation space, which nicely preserves both geometric and semantic information. To achieve this, we diagnose and lift key efficiency bottlenecks in the view transformation with optimized BEV pooling, reducing latency by more than 40x. BEVFusion is fundamentally task-agnostic and seamlessly supports different 3D perception tasks with almost no architectural changes. It establishes the new state of the art on the nuScenes benchmark, achieving 1.3% higher mAP and NDS on 3D object detection and 13.6% higher mIoU on BEV map segmentation, with 1.9x lower computation cost.

Results

3D Object Detection (on Waymo test)

Model mAP-L1 mAPH-L1 mAP-L2 mAPH-L2
BEVFusion 82.72 81.35 77.65 76.33
BEVFusion-TTA 86.04 84.76 81.22 79.97

Here, BEVFusion only uses a single model without any test time augmentation. BEVFusion-TTA uses single model with test-time augmentation and no model ensembling is applied.

3D Object Detection (on nuScenes test)

Model Modality mAP NDS
BEVFusion-e C+L 74.99 76.09
BEVFusion C+L 70.23 72.88
BEVFusion-base* C+L 71.72 73.83

*: We scaled up MACs of the model to match the computation cost of concurrent work.

3D Object Detection (on nuScenes validation)

Model Modality mAP NDS Checkpoint
BEVFusion C+L 68.52 71.38 Link
Camera-Only Baseline C 35.56 41.21 Link
LiDAR-Only Baseline L 64.68 69.28 Link

Note: The camera-only object detection baseline is a variant of BEVDet-Tiny with a much heavier view transformer and other differences in hyperparameters. Thanks to our efficient BEV pooling operator, this model runs fast and has higher mAP than BEVDet-Tiny under the same input resolution. Please refer to BEVDet repo for the original BEVDet-Tiny implementation. The LiDAR-only baseline is TransFusion-L.

BEV Map Segmentation (on nuScenes validation)

Model Modality mIoU Checkpoint
BEVFusion C+L 62.95 Link
Camera-Only Baseline C 57.09 Link
LiDAR-Only Baseline L 48.56 Link

Usage

Prerequisites

The code is built with following libraries:

After installing these dependencies, please run this command to install the codebase:

python setup.py develop

We also provide a Dockerfile to ease environment setup. To get started with docker, please make sure that nvidia-docker is installed on your machine. After that, please execute the following command to build the docker image:

cd docker && docker build . -t bevfusion

We can then run the docker with the following command:

nvidia-docker run -it -v `pwd`/../data:/dataset --shm-size 16g bevfusion /bin/bash

We recommend the users to run data preparation (instructions are available in the next section) outside the docker if possible. Note that the dataset directory should be an absolute path. Within the docker, please run the following command to clone our repo and install custom CUDA extensions:

cd home && git clone https://github.com/mit-han-lab/bevfusion && cd bevfusion
python setup.py develop

You can then create a symbolic link data to the /dataset directory in the docker.

Data Preparation

nuScenes

Please follow the instructions from here to download and preprocess the nuScenes dataset. Please remember to download both detection dataset and the map extension (for BEV map segmentation). After data preparation, you will be able to see the following directory structure (as is indicated in mmdetection3d):

mmdetection3d
├── mmdet3d
├── tools
├── configs
├── data
│   ├── nuscenes
│   │   ├── maps
│   │   ├── samples
│   │   ├── sweeps
│   │   ├── v1.0-test
|   |   ├── v1.0-trainval
│   │   ├── nuscenes_database
│   │   ├── nuscenes_infos_train.pkl
│   │   ├── nuscenes_infos_val.pkl
│   │   ├── nuscenes_infos_test.pkl
│   │   ├── nuscenes_dbinfos_train.pkl

Evaluation

We also provide instructions for evaluating our pretrained models. Please download the checkpoints using the following script:

./tools/download_pretrained.sh

Then, you will be able to run:

torchpack dist-run -np [number of gpus] python tools/test.py [config file path] pretrained/[checkpoint name].pth --eval [evaluation type]

For example, if you want to evaluate the detection variant of BEVFusion, you can try:

torchpack dist-run -np 8 python tools/test.py configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml pretrained/bevfusion-det.pth --eval bbox

While for the segmentation variant of BEVFusion, this command will be helpful:

torchpack dist-run -np 8 python tools/test.py configs/nuscenes/seg/fusion-bev256d2-lss.yaml pretrained/bevfusion-seg.pth --eval map

Training

We provide instructions to reproduce our results on nuScenes.

For example, if you want to train the camera-only variant for object detection, please run:

torchpack dist-run -np 8 python tools/train.py configs/nuscenes/det/centerhead/lssfpn/camera/256x704/swint/default.yaml --model.encoders.camera.backbone.init_cfg.checkpoint pretrained/swint-nuimages-pretrained.pth

For camera-only BEV segmentation model, please run:

torchpack dist-run -np 8 python tools/train.py configs/nuscenes/seg/camera-bev256d2.yaml --model.encoders.camera.backbone.init_cfg.checkpoint pretrained/swint-nuimages-pretrained.pth

For LiDAR-only detector, please run:

torchpack dist-run -np 8 python tools/train.py configs/nuscenes/det/transfusion/secfpn/lidar/voxelnet_0p075.yaml

For LiDAR-only BEV segmentation model, please run:

torchpack dist-run -np 8 python tools/train.py configs/nuscenes/seg/lidar-centerpoint-bev128.yaml

For BEVFusion detection model, please run:

torchpack dist-run -np 8 python tools/train.py configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml --model.encoders.camera.backbone.init_cfg.checkpoint pretrained/swint-nuimages-pretrained.pth --load_from pretrained/lidar-only-det.pth 

For BEVFusion segmentation model, please run:

torchpack dist-run -np 8 python tools/train.py configs/nuscenes/seg/fusion-bev256d2-lss.yaml --model.encoders.camera.backbone.init_cfg.checkpoint pretrained/swint-nuimages-pretrained.pth

Note: please run tools/test.py separately after training to get the final evaluation metrics.

Deployment on TensorRT

CUDA-BEVFusion: Best practice for TensorRT, which provides INT8 acceleration solutions and achieves 25fps on ORIN.

FAQs

Q: Can we directly use the info files prepared by mmdetection3d?

A: We recommend re-generating the info files using this codebase since we forked mmdetection3d before their coordinate system refactoring.

Acknowledgements

BEVFusion is based on mmdetection3d. It is also greatly inspired by the following outstanding contributions to the open-source community: LSS, BEVDet, TransFusion, CenterPoint, MVP, FUTR3D, CVT and DETR3D.

Please also check out related papers in the camera-only 3D perception community such as BEVDet4D, BEVerse, BEVFormer, M2BEV, PETR and PETRv2, which might be interesting future extensions to BEVFusion.

Citation

If BEVFusion is useful or relevant to your research, please kindly recognize our contributions by citing our paper:

@inproceedings{liu2022bevfusion,
  title={BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird's-Eye View Representation},
  author={Liu, Zhijian and Tang, Haotian and Amini, Alexander and Yang, Xingyu and Mao, Huizi and Rus, Daniela and Han, Song},
  booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
  year={2023}
}