This is the mmdetection implementation of our CVPR 2022 paper. ArXiv.
This code is based on mmdetection v2.18. Please install the code according to the mmdetection step first.
noisyboundaries
├──data
| ├──cityscapes
| | ├──annotations
| | | ├──instancesonly_filtered_gtFine_train.json
| | | ├──instancesonly_filtered_gtFine_val.json
| | ├──leftImg8bit
| | | ├──train
| | | ├──val
| ├──coco
| | ├──annotations
| | | ├──instances_train2017.json
| | | ├──instances_val2017.json
| | ├──images
| | | ├──train2017
| | | ├──val2017
We take the experiment with the 20% labeled images for example.
make the label file first:
mkdir labels
python scripts/cityscapes/prepare_cityscape_data.py --percent 20 --seed 1
Then, to train the supervised model, run:
bash tools/dist_train.sh configs/noisyboundaries/cityscapes/mask_rcnn_r50_fpn_1x_cityscapes_sup.py 8
With the supervised model, generating pseudo labels for semi-supervised learning:
bash scripts/cityscapes/extract_pl.sh 8 labels/rcity.pkl labels/cityscapes_1@20_pl.json
Then, perform semi-supervised learning:
bash tools/dist_train.sh configs/noisyboundaries/cityscapes/mask_rcnn_r50_fpn_1x_cityscapes_pl.py 8