machengcheng2016 / CrossRectify-SSOD

Official code of "CrossRectify: Leveraging Disagreement for Semi-supervised Object Detection" (PR'2023)
https://arxiv.org/abs/2201.10734
13 stars 4 forks source link

File does not exist #7

Closed leodmel closed 1 year ago

leodmel commented 2 years ago

Love this work! But when I try to reproduce the results of Table 4, an error occurred which says FileNotFoundError: file "/opt/tiger/app/CrossRectify-SSOD-main/mmdetection/thirdparty/mmdetection/configs/_base_/models/faster_rcnn_r50_fpn_double.py" does not exist, I assume you forgot to upload this file?

machengcheng2016 commented 2 years ago

Thanks for your remind. I've just uploaded it to the extension folder

leodmel commented 2 years ago

I tried to eval the model, but dist_test.sh in the command bash tools/dist_test.sh work_dirs/soft_teacher_faster_rcnn_r50_caffe_fpn_coco_180k/10/1/soft_teacher_faster_rcnn_r50_caffe_fpn_coco_180k.py work_dirs/soft_teacher_faster_rcnn_r50_caffe_fpn_coco_180k/10/1/iter_180000.pth 8 --eval bbox doesn't exist, so I checked the dist_test.sh file in SoftTeacher repo and instead ran python3 -m torch.distributed.launch --nproc_per_node=8 --master_port=29500 \ tools/test.py soft_teacher_faster_rcnn_r50_caffe_fpn_coco_180k.py iter_80000.pth --launcher pytorch --eval bbox, which caused the following error

  File "tools/test.py", line 263, in <module>
    main()
  File "tools/test.py", line 255, in main
    metric = dataset.evaluate(outputs, **eval_kwargs)
  File "/opt/tiger/app/CrossRectify-SSOD-main/mmdetection/thirdparty/mmdetection/mmdet/datasets/coco.py", line 414, in evaluate
    result_files, tmp_dir = self.format_results(results, jsonfile_prefix)
  File "/opt/tiger/app/CrossRectify-SSOD-main/mmdetection/thirdparty/mmdetection/mmdet/datasets/coco.py", line 359, in format_results
    result_files = self.results2json(results, jsonfile_prefix)
  File "/opt/tiger/app/CrossRectify-SSOD-main/mmdetection/thirdparty/mmdetection/mmdet/datasets/coco.py", line 291, in results2json
    json_results = self._det2json(results)
  File "/opt/tiger/app/CrossRectify-SSOD-main/mmdetection/thirdparty/mmdetection/mmdet/datasets/coco.py", line 223, in _det2json
    for i in range(bboxes.shape[0]):
AttributeError: 'list' object has no attribute 'shape'

Do you have any suggestions? :D

machengcheng2016 commented 2 years ago

You can download the iter_180000.pth for COCO-10% here

leodmel commented 2 years ago

Thanks for your pretrained model.

So far I've figured out how to evaluate models, all you need to do is to run split_two_ckpts_into_one.py and eval the produced pths following the steps depicted in SoftTeacher repo.

However, I cannot reproduce Cross-Rectify's result on COCO mAP 1% labelled, I got 0.197/0.196 for iter_180000.a.pth/iter_180000.b.pth respectively, while in the paper it is 21.90 ± 0.11, it is quite different, any ideas? My running command python3 -m torch.distributed.launch --nproc_per_node=8 --master_port=29500 \ tools/train.py configs/soft_teacher/soft_teacher_faster_rcnn_r50_caffe_fpn_coco_180k.py --launcher pytorch \ --cfg-options fold=1 percent=1

machengcheng2016 commented 2 years ago

It is really strange. I can always get mAP results higher than the baseline method SoftTeacher. Maybe you can re-run under such supervision degree, as an unlucky random seed will lead to bad results.