open-mmlab / mmdetection3d

OpenMMLab's next-generation platform for general 3D object detection.
https://mmdetection3d.readthedocs.io/en/latest/
Apache License 2.0
5.36k stars 1.55k forks source link

BEVFusion bad performance #2702

Open fcjian opened 1 year ago

fcjian commented 1 year ago

Prerequisite

Task

I'm using the official example scripts/configs for the officially supported tasks/models/datasets.

Branch

1.x branch https://github.com/open-mmlab/mmdetection3d/tree/dev-1.x

Environment

sys.platform: linux Python: 3.8.17 (default, Jul 5 2023, 21:04:15) [GCC 11.2.0] CUDA available: True numpy_random_seed: 2147483648 GPU 0,1,2,3,4,5,6,7: Tesla V100-SXM2-32GB CUDA_HOME: /usr/local/cuda NVCC: Cuda compilation tools, release 11.0, V11.0.221 GCC: gcc (GCC) 6.3.1 20170216 (Red Hat 6.3.1-3) PyTorch: 1.10.0+cu111 PyTorch compiling details: PyTorch built with:

TorchVision: 0.11.0+cu111 OpenCV: 4.8.0 MMEngine: 0.8.4 MMDetection: 3.1.0 MMDetection3D: 1.2.0+c04831c spconv2.0: False

Reproduces the problem - code sample

bash tools/dist_test.sh projects/BEVFusion/configs/bevfusion_lidar-cam_voxel0075_second_secfpn_8xb4-cyclic-20e_nus-3d.py checkpoints/bevfusion_lidar-cam_voxel0075_second_secfpn_8xb4-cyclic-20e_nus-3d-5239b1af.pth 4

Reproduces the problem - command or script

bash tools/dist_test.sh projects/BEVFusion/configs/bevfusion_lidar-cam_voxel0075_second_secfpn_8xb4-cyclic-20e_nus-3d.py checkpoints/bevfusion_lidar-cam_voxel0075_second_secfpn_8xb4-cyclic-20e_nus-3d-5239b1af.pth 4

Reproduces the problem - error message

Results writes to /tmp/tmp42l3w4br/results/pred_instances_3d/results_nusc.json Evaluating bboxes of pred_instances_3d mAP: 0.0074 mATE: 0.9728 mASE: 0.5499 mAOE: 1.3097 mAVE: 1.7918 mAAE: 0.5295 NDS: 0.0985 Eval time: 293.3s

Additional information

No response

zxzheng826 commented 1 year ago

same problem happen to mine. When it loading the model .pth file, seems some the state dict do not match exactly (I used the .pth model file end with 5239blaf). Strangely, when I use the model named "bevfusion_converted.pth", the evaluation result is not so bad as the previous metioned one. NDS is about 61% and still has gap between the reported result. Hoping someone PLEASE point out what go wrong.

zxzheng826 commented 1 year ago

same problem happen to mine. When it loading the model .pth file, seems some the state dict do not match exactly (I used the .pth model file end with 5239blaf). Strangely, when I use the model named "bevfusion_converted.pth", the evaluation result is not so bad as the previous metioned one. NDS is about 61% and still has gap between the reported result. Hoping someone PLEASE point out what go wrong.

I found out what go wrong. It seems it is crucial to install spconv 2.0 to run BEVFusion project correctly. It is mentioned in installing mmdet3d guideline Note 2. After I install cumm-cuxx and spconv-cuxx with pip, the problem fade instantly. So checking spconv 2.0 flag in environment may help you to diagnose.