Bin-ze / BEVFormer_segmentation_detection

Implemented BEVFormer support for BEV segmentation
Apache License 2.0
98 stars 9 forks source link

运行地图分割效果步骤 #9

Closed LadissonLai closed 11 months ago

LadissonLai commented 1 year ago

非常感谢您出色的工作。 按照我的理解,跑地图分割的效果的步骤如下: 1、按照官网教程运行Eval脚本,生成test文件夹下面的json文件 2、运行debug_test.py 3、运行visual_det_seg.py 不确定该步骤是否正确,请作者指教。 另外,当我跑第一步时, ./tools/dist_test.sh ./projects/configs/bevformer/bevformer_small_seg_det_300x300.py ./ckpts/bevformer_small_seg_det_300.pth 1 遇到如下报错。请问下如何解决? /home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torch/distributed/launch.py:178: FutureWarning: The module torch.distributed.launch is deprecated and will be removed in future. Use torch.distributed.run. Note that --use_env is set by default in torch.distributed.run. If your script expects--local_rankargument to be set, please change it to read fromos.environ['LOCAL_RANK']` instead. See https://pytorch.org/docs/stable/distributed.html#launch-utility for further instructions

warnings.warn( projects.mmdet3d_plugin load checkpoint from local path: ./ckpts/bevformer_small_seg_det_300.pth 2023-10-06 01:36:57,252 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.0.conv2 is upgraded to version 2. 2023-10-06 01:36:57,255 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.1.conv2 is upgraded to version 2. 2023-10-06 01:36:57,256 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.2.conv2 is upgraded to version 2. 2023-10-06 01:36:57,257 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.3.conv2 is upgraded to version 2. 2023-10-06 01:36:57,259 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.4.conv2 is upgraded to version 2. 2023-10-06 01:36:57,261 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.5.conv2 is upgraded to version 2. 2023-10-06 01:36:57,262 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.6.conv2 is upgraded to version 2. 2023-10-06 01:36:57,265 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.7.conv2 is upgraded to version 2. 2023-10-06 01:36:57,267 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.8.conv2 is upgraded to version 2. 2023-10-06 01:36:57,269 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.9.conv2 is upgraded to version 2. 2023-10-06 01:36:57,271 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.10.conv2 is upgraded to version 2. 2023-10-06 01:36:57,273 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.11.conv2 is upgraded to version 2. 2023-10-06 01:36:57,276 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.12.conv2 is upgraded to version 2. 2023-10-06 01:36:57,278 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.13.conv2 is upgraded to version 2. 2023-10-06 01:36:57,280 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.14.conv2 is upgraded to version 2. 2023-10-06 01:36:57,283 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.15.conv2 is upgraded to version 2. 2023-10-06 01:36:57,285 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.16.conv2 is upgraded to version 2. 2023-10-06 01:36:57,287 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.17.conv2 is upgraded to version 2. 2023-10-06 01:36:57,290 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.18.conv2 is upgraded to version 2. 2023-10-06 01:36:57,292 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.19.conv2 is upgraded to version 2. 2023-10-06 01:36:57,294 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.20.conv2 is upgraded to version 2. 2023-10-06 01:36:57,296 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.21.conv2 is upgraded to version 2. 2023-10-06 01:36:57,299 - root - INFO - ModulatedDeformConvPack img_backbone.layer3.22.conv2 is upgraded to version 2. 2023-10-06 01:36:57,302 - root - INFO - ModulatedDeformConvPack img_backbone.layer4.0.conv2 is upgraded to version 2. 2023-10-06 01:36:57,308 - root - INFO - ModulatedDeformConvPack img_backbone.layer4.1.conv2 is upgraded to version 2. 2023-10-06 01:36:57,311 - root - INFO - ModulatedDeformConvPack img_backbone.layer4.2.conv2 is upgraded to version 2. Traceback (most recent call last): File "./tools/test.py", line 265, in main() File "./tools/test.py", line 237, in main outputs = multi_gpu_test(model, data_loader, args.tmpdir, File "/home/ubt2t/AL/BEVFormer_segmentation_detection/projects/mmdet3d_plugin/apis/test.py", line 228, in multi_gpu_test semantic_map_iou_val = IntersectionOverUnion(num_map_class) File "/home/ubt2t/AL/BEVFormer_segmentation_detection/projects/mmdet3d_plugin/metrics/metrics.py", line 26, in init super().init(compute_on_step=compute_onstep) File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torchmetrics/metric.py", line 146, in init raise ValueError(f"Unexpected keyword arguments: {', '.join(kwargs)}") ValueError: Unexpected keyword arguments: compute_on_step ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 3956620) of binary: /home/ubt2t/anaconda3/envs/bevformer/bin/python Traceback (most recent call last): File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torch/distributed/launch.py", line 193, in main() File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torch/distributed/launch.py", line 189, in main launch(args) File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torch/distributed/launch.py", line 174, in launch run(args) File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torch/distributed/run.py", line 689, in run elastic_launch( File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 116, in call return launch_agent(self._config, self._entrypoint, list(args)) File "/home/ubt2t/anaconda3/envs/bevformer/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 244, in launch_agent raise ChildFailedError( torch.distributed.elastic.multiprocessing.errors.ChildFailedError:


     ./tools/test.py FAILED        

======================================= Root Cause: [0]: time: 2023-10-06_01:37:08 rank: 0 (local_rank: 0) exitcode: 1 (pid: 3956620) error_file: <N/A> msg: "Process failed with exitcode 1"

Other Failures:

***************************************`
Bin-ze commented 1 year ago

在下载完权重之后,正确的步骤应该是:

  1. 运行debug_test.py

    python debug_test.py --config $config_path --checkpoint $ckpt_path --show-dir $seg_result_save_path

运行完成后将在seg_result_save_path保存对应的分割结果

  1. 运行visual_det_seg.py

    python visual_det_seg.py 注意更改该python文件中的pred_seg_path =$seg_result_save_path

更改bevformer_results = mmcv.load('./test/bevformer_small_seg_det/Fri_Feb_10_10_46_01_2023/pts_bbox/results_nusc.json') 该json文件保存了测试时的检测结果 更改out_path=f"$you_res_save_path/{sample_token_list[id]}" 此时保存的为BEV分割结果以及检测结果的拼接图,就像我在主页展示的一样

还有一些路径需要更改 https://github.com/Bin-ze/BEVFormer_segmentation_detection/blob/8e2a1beee39946f393322a293f127a489b093377/projects/mmdet3d_plugin/apis/test.py#L88 此处需要更改为相对路径或者你的项目所在位置的绝对路径 在此处还可以设置是否在运行debug_test.py时保存对应的BEV分割的GT,默认保存: show_mask_gt = True 当更改为False则不保存

在上述的所有python文件中,很多地方都存在路径的不正确,因为之前我使用绝对路径,这些部分都需要一一更改。

关于您所展示的报错,我无法从上述错误中定位到具体问题,因为在我实现该repo的过程中我从未遇到。但是从错误中可以看出,一部分的原因是由于多卡并行导致的,您可以试着先不运行多卡推理,直接使用上述步骤一来得到你想要的推理结果以及json。 如果这样依旧无法解决您的问题,请将错误回复在下方,我将帮您解决

Alex-fishred commented 10 months ago

ValueError: Unexpected keyword arguments: compute_on_step I tried lowering the torchmetrics version and successfully solved this problem