open-mmlab / mmdetection3d

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

[Bug] `mono_det_demo.py` with `detr3d` got TypeError: __init__() got an unexpected keyword argument 'transformer' #2727

Closed furyNerd closed 9 months ago

furyNerd commented 9 months 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

docker container by docker build -t mmdetection3d docker/

Reproduces the problem - code sample

export cam_pkl=demo/data/kitti/000008.pkl
export img_uri=demo/data/kitti/000008.png
export mdl_cfg=projects/DETR3D/configs/detr3d_r101_gridmask.py
export mdl_ckp=ckpts/detr3d_r101_gridmask.pth    # checkpoint file wget in advance
export cam_idx=CAM2
export out_dir=my_test/detr3d_ki.png

python demo/mono_det_demo.py ${img_uri} ${cam_pkl} ${mdl_cfg} ${mdl_ckp} --cam-type ${cam_idx} --out-dir ${out_dir}

Reproduces the problem - command or script

export cam_pkl=demo/data/kitti/000008.pkl
export img_uri=demo/data/kitti/000008.png
export mdl_cfg=projects/DETR3D/configs/detr3d_r101_gridmask.py
export mdl_ckp=ckpts/detr3d_r101_gridmask.pth    # checkpoint file wget in advance
export cam_idx=CAM2
export out_dir=my_test/detr3d_ki.png

python demo/mono_det_demo.py ${img_uri} ${cam_pkl} ${mdl_cfg} ${mdl_ckp} --cam-type ${cam_idx} --out-dir ${out_dir}

Reproduces the problem - error message

Traceback (most recent call last):
  File "demo/mono_det_demo.py", line 70, in <module>
    main(args)
  File "demo/mono_det_demo.py", line 41, in main
    model = init_model(args.config, args.checkpoint, device=args.device)
  File "/mmdetection3d/mmdet3d/apis/inference.py", line 69, in init_model
    model = MODELS.build(config.model)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/registry.py", line 570, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
    obj = obj_cls(**args)  # type: ignore
  File "/mmdetection3d/projects/DETR3D/detr3d/detr3d.py", line 51, in __init__
    data_preprocessor=data_preprocessor)
  File "/mmdetection3d/mmdet3d/models/detectors/mvx_two_stage.py", line 83, in __init__
    self.pts_bbox_head = MODELS.build(pts_bbox_head)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/registry.py", line 570, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
    obj = obj_cls(**args)  # type: ignore
  File "/mmdetection3d/projects/DETR3D/detr3d/detr3d_head.py", line 59, in __init__
    *args, transformer=transformer, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'transformer'

Additional information

hi, i have successfully run the mono_det_demo.py with fcos3d (though results not quick accuracy):

export cam_pkl=demo/data/kitti/000008.pkl
export img_uri=demo/data/kitti/000008.png
export mdl_cfg=configs/fcos3d/fcos3d_r101-caffe-dcn_fpn_head-gn_8xb2-1x_nus-mono3d_finetune.py
export mdl_ckp=ckpts/fcos3d_r101_caffe_fpn_gn-head_dcn_2x8_1x_nus-mono3d_finetune_20210717_095645-8d806dc2.pth # checkpoint file wget in advance
export cam_idx=CAM2
export out_dir=my_test/f3d_ki.png

python demo/mono_det_demo.py ${img_uri} ${cam_pkl} ${mdl_cfg} ${mdl_ckp} --cam-type ${cam_idx} --out-dir ${out_dir}

i wish to test the detr3d as well:

export cam_pkl=demo/data/kitti/000008.pkl
export img_uri=demo/data/kitti/000008.png
export mdl_cfg=projects/DETR3D/configs/detr3d_r101_gridmask.py
export mdl_ckp=ckpts/detr3d_r101_gridmask.pth
export cam_idx=CAM2
export out_dir=my_test/detr3d_ki.png

python demo/mono_det_demo.py ${img_uri} ${cam_pkl} ${mdl_cfg} ${mdl_ckp} --cam-type ${cam_idx} --out-dir ${out_dir}

which errors like:

Traceback (most recent call last):
  File "demo/mono_det_demo.py", line 70, in <module>
    main(args)
  File "demo/mono_det_demo.py", line 41, in main
    model = init_model(args.config, args.checkpoint, device=args.device)
  File "/mmdetection3d/mmdet3d/apis/inference.py", line 69, in init_model
    model = MODELS.build(config.model)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/registry.py", line 570, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
    obj = obj_cls(**args)  # type: ignore
  File "/mmdetection3d/projects/DETR3D/detr3d/detr3d.py", line 51, in __init__
    data_preprocessor=data_preprocessor)
  File "/mmdetection3d/mmdet3d/models/detectors/mvx_two_stage.py", line 83, in __init__
    self.pts_bbox_head = MODELS.build(pts_bbox_head)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/registry.py", line 570, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "/opt/conda/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
    obj = obj_cls(**args)  # type: ignore
  File "/mmdetection3d/projects/DETR3D/detr3d/detr3d_head.py", line 59, in __init__
    *args, transformer=transformer, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'transformer'

i am new to open-mmlab and mmdet3d, though investigated the code/config, still cannot find any clue, could i have some advice? thanks

furyNerd commented 9 months ago

sorry, just found answer #2594