Domain Adaptive Faster R-CNN in PyTorch
Updates
- Our new paper Scale-Aware Domain Adaptive Faster R-CNN has been accepted by IJCV. The corresponding code is maintained under sa-da-faster.
Introduction
This is a PyTorch implementation of 'Domain Adaptive Faster R-CNN for Object Detection in the Wild', implemented by Haoran Wang([email protected]). The original paper can be found here. This implementation is built on maskrcnn-benchmark @ e60f4ec.
If you find this repository useful, please cite the oringinal paper:
@inproceedings{chen2018domain,
title={Domain Adaptive Faster R-CNN for Object Detection in the Wild},
author = {Chen, Yuhua and Li, Wen and Sakaridis, Christos and Dai, Dengxin and Van Gool, Luc},
booktitle = {Computer Vision and Pattern Recognition (CVPR)},
year = {2018}
}
and maskrnn-benchmark:
@misc{massa2018mrcnn,
author = {Massa, Francisco and Girshick, Ross},
title = {{maskrnn-benchmark: Fast, modular reference implementation of Instance Segmentation and Object Detection algorithms in PyTorch}},
year = {2018},
howpublished = {\url{https://github.com/facebookresearch/maskrcnn-benchmark}},
note = {Accessed: [Insert date here]}
}
Installation
Please follow the instruction in maskrcnn-benchmark to install and use Domain-Adaptive-Faster-RCNN-PyTorch.
Example Usage
An example of Domain Adaptive Faster R-CNN with FPN adapting from Cityscapes dataset to Foggy Cityscapes dataset is provided:
- Follow the example in Detectron-DA-Faster-RCNN to download dataset and generate coco style annoation files
- Symlink the path to the Cityscapes and Foggy Cityscapes dataset to
datasets/
as follows:# symlink the dataset cd ~/github/Domain-Adaptive-Faster-RCNN-PyTorch ln -s /<path_to_cityscapes_dataset>/ datasets/cityscapes ln -s /<path_to_foggy_cityscapes_dataset>/ datasets/foggy_cityscapes
- Train the Domain Adaptive Faster R-CNN:
python tools/train_net.py --config-file "configs/da_faster_rcnn/e2e_da_faster_rcnn_R_50_C4_cityscapes_to_foggy_cityscapes.yaml"
- Test the trained model:
python tools/test_net.py --config-file "configs/da_faster_rcnn/e2e_da_faster_rcnn_R_50_C4_cityscapes_to_foggy_cityscapes.yaml" MODEL.WEIGHT <path_to_store_weight>/model_final.pth
Pretrained Model & Results
Pretrained model with image+instance+consistency domain adaptation on Resnet-50 bakcbone for Cityscapes->Foggy Cityscapes task is provided. For those who might be interested, the corresponding training log could be checked at here.
As the link above is not valid anymore, a newly pretrained model and the training log under the same setting could be found on Google drive. Due to the change of running environment and the random number, the number would be slightly different compared to the previous one.
The following results are all tested with Resnet-50 backbone.
image | instsnace | consistency | AP@50 | |
---|---|---|---|---|
Faster R-CNN | 24.9 | |||
DA Faster R-CNN | ✓ | 38.3 | ||
DA Faster R-CNN | ✓ | 38.8 | ||
DA Faster R-CNN | ✓ | ✓ | 40.8 | |
DA Faster R-CNN | ✓ | ✓ | ✓ | 41.0 |
Other Implementation
da-faster-rcnn based on Caffe. (original code by paper authors)
Detectron-DA-Faster-RCNN based on Caffe2 and Detectron.
sa-da-faster based on PyTorch and maskrcnn-benchmark.