/Domain-Adaptive-Faster-RCNN-PyTorch

Domain Adaptive Faster R-CNN in PyTorch

Primary LanguagePythonMIT LicenseMIT

Domain Adaptive Faster R-CNN in PyTorch

This is a PyTorch implementation of 'Domain Adaptive Faster R-CNN for Object Detection in the Wild', implemented by Haoran Wang(haowang@student.ethz.ch). 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:

  1. Follow the example in Detectron-DA-Faster-RCNN to download dataset and generate coco style annoation files
  2. 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
  3. 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"
    
  4. 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. 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.