NVlabs / DiscoBox

The Official PyTorch Implementation of DiscoBox.
https://arxiv.org/abs/2105.06464
Other
96 stars 9 forks source link

Question regarding box-conditioned inference #15

Closed caincdiy closed 1 year ago

caincdiy commented 1 year ago

Hi, I'm new to MMDet and DiscoBox, and I'm trying to train a model to convert bounding boxs to polygons on my own dataset. So I use this command: python ./tools/train.py configs/Andy_self/Discobox/boxcond_discobox_solov2_x101_dcn_fpn_3x.py --work-dir ./Disco_work_dirs --load-from ./checkpoints/Disco_coco_x101_dcn_fpn_3x.pth and I get the following error:

File "./tools/train.py", line 191, in main() File "./tools/train.py", line 187, in main meta=meta) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/apis/train.py", line 172, in train_detector runner.run(data_loaders, cfg.workflow) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in run epoch_runner(data_loaders[i], kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 50, in train self.run_iter(data_batch, train_mode=True, kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 30, in run_iter kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/parallel/data_parallel.py", line 67, in train_step return self.module.train_step(inputs[0], kwargs[0]) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/models/detectors/base.py", line 251, in train_step losses = self(data) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl return forward_call(input, kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/fp16_utils.py", line 128, in new_func output = old_func(new_args, new_kwargs) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/models/detectors/single_stage_wsis.py", line 249, in forward return self.forward_train(img, img_metas, kwargs) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/models/detectors/single_stage_wsis.py", line 86, in forward_train use_ts_loss=self.avg_loss_ins<0.4) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/torch/cuda/amp/autocast_mode.py", line 141, in decorate_autocast return func(args, **kwargs) TypeError: loss() got an unexpected keyword argument 'use_ts_loss'

After I checked the source code from single_stage_wsis.py I changed the argument name to "use_loss_ts" and the error disappeared. Bet another error occurred:

Traceback (most recent call last): File "./tools/train.py", line 191, in main() File "./tools/train.py", line 187, in main meta=meta) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/apis/train.py", line 172, in train_detector runner.run(data_loaders, cfg.workflow) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in run epoch_runner(data_loaders[i], kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 50, in train self.run_iter(data_batch, train_mode=True, kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 30, in run_iter kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/parallel/data_parallel.py", line 67, in train_step return self.module.train_step(inputs[0], kwargs[0]) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/models/detectors/base.py", line 251, in train_step losses = self(data) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl return forward_call(input, kwargs) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/mmcv/runner/fp16_utils.py", line 128, in new_func output = old_func(new_args, new_kwargs) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/models/detectors/single_stage_wsis.py", line 249, in forward return self.forward_train(img, img_metas, kwargs) File "/home/yuecao/project/terrasense/DiscoBox/mmdet/models/detectors/single_stage_wsis.py", line 86, in forward_train use_loss_ts=self.avg_loss_ins<0.4) File "/home/yuecao/anaconda3/envs/discobox/lib/python3.7/site-packages/torch/cuda/amp/autocast_mode.py", line 141, in decorate_autocast return func(args, **kwargs) TypeError: loss() missing 2 required positional arguments: 'img_metas' and 'cfg'

Did I do anything wrong? How should I fix this problem?

Thank you very much for your help

voidrank commented 1 year ago

Hi @caincdiy

You can follow the hints and remove the extra parameters one by one.

Sorry, I don't intend to maintain this repo anymore since we have a following-up work of weakly supervised instance segmentation, which outperforms DiscoBox by a large margin. We will release the work 1 or 2 weeks due to the policy issue.

Best,

Shiyi

caincdiy commented 1 year ago

Thank you very much

caincdiy commented 1 year ago

Hi @voidrank

I'm wondering if your new work on weakly supervised instance segmentation has released? Where can I find them? Thank you very much.

voidrank commented 1 year ago

Hi @caincdiy

The code's license has been issued, but the paper is still under review. I will ask them to process it ASAP after the holidays.

FYI, our best model of the new work achieves 44.1% mAP on coco test-dev. I hope you can wait for a few days and I believe it is worth it.

voidrank commented 1 year ago

Hi @caincdiy

Check https://arxiv.org/pdf/2301.03992.pdf

Best

caincdiy commented 1 year ago

Hi @voidrank

Thank you so much for letting me know, and thank you for the wonderful project : )

Best, Yue