OA-DG: Object-Aware Domain Generalization

July 29, 2025 · View on GitHub

PWC PWC

OA-DG is an effective method for single-domain object detection generalization (S-DGOD). It consists of two components: OA-Mix for data augmentation and OA-Loss for reducing domain gaps.

oadg_introduction

Object-Aware Domain Generalization for Object Detection, Wooju Lee* , Dasol Hong* , Hyungtae Lim, and Hyun Myung, AAAI 2024 (arXiv:2312.12133)

✨Features

  • OA-DG consists of OA-Mix for data augmentation and OA-Loss for reducing the domain gap.

  • OA-Mix increases image diversity while preserving important semantic feature with multi-level transformations and object-aware mixing.

    👀 View some example images

    ex_screenshot

  • OA-Loss reduces the domain gap by training semantic relations of foreground and background instances from multi-domain.

  • Extensive experiments on standard benchmarks (Cityscapes-C and Diverse Weather Dataset) show that OA-DG outperforms SOTA methods on unseen target domains.

  • OA-DG can be generally applied to improve robustness regardless of the augmentation set and object detector architectures.

🚣 Getting Started

Follow these steps to set up the project on your local machine for training and testing.

Prerequisites

Ensure you have the following prerequisites installed on your local system.

  1. Install mmdetection: There are several installation guides. Follow one of the below:

    Our code is forked from mmdetection 2.28.x version.

    a. Customize Installation (recommended)

    # Install MMCV using MIM.
    
    $ pip install -U openmim
    $ mim install mmcv-full
    
    # Clone this repository
    $ git clone https://github.com/WoojuLee24/OA-DG.git
    
    # Go into the repository
    $ cd OA-DG
    
    # Install mmdetection
    $ pip install -v -e .
    

    b. Refer to the mmdetection's installation instructions.

    c. Use Dockerfile from mmdetection to setup the environment.

  2. Install other dependencies

    # For image processing operations.
    $ pip install Pillow
    # For spectral-residual saliency algorithm in OA-Mix.
    $ pip install opencv-python
    $ pip install opencv-contrib-python
    
  3. Prepare the following datasets:

    • Cityscapes: A dataset that contains urban street scenes from 50 cities with detailed annotations.
    • Diverse Weather Dataset: This dataset includes various weather conditions for robust testing and development of models, essential for applications in autonomous driving.

🏃 How To Run

Training

python3 -u tools/train.py $(CONFIG).py --work-dir $(WORK_DIR)
Example: OA-DG trained on Cityscapes dataset
python3 -u tools/train.py configs/OA-DG/cityscapes/faster_rcnn_r50_fpn_1x_cityscapes_oadg.py --work-dir /ws/data/cityscapes/faster_rcnn_r50_fpn_1x_cityscapes_oadg
Example: OA-DG trained on DWD dataset
python3 -u tools/train.py configs/OA-DG/dwd/faster_rcnn_r101_dc5_1x_dwd_oadg.py --work-dir /ws/data/dwd/faster_rcnn_r101_dc5_1x_dwd_oadg

Evaluation

  • Cityscapes-C

     python3 -u tools/analysis_tools/test_robustness.py \
       $(CONFIG).py $(CKPT_FILE).pth --out $(OUT_PATH).pkl \
       --corruptions benchmark --eval bbox
    
    Example: OA-DG evaluated on Cityscapes-C dataset
     python3 -u tools/analysis_tools/test_robustness.py \
       configs/OA-DG/cityscapes/faster_rcnn_r50_fpn_1x_cityscapes_oadg.py \
       /ws/data/cityscapes/faster_rcnn_r50_fpn_1x_cityscapes_oadg/epoch_2.pth \ 
       --out /ws/data/cityscapes/faster_rcnn_r50_fpn_1x_cityscapes_oadg/test_robustness_result_2epoch.pkl \
       --corruptions benchmark --eval bbox
    
  • Diverse Weather Dataset (DWD)

     python3 -u tools/test_dwd.py \
       $(CONFIG).py $(CKPT_FILE).pth --out $(OUT_PATH).pkl \
       --eval mAP
    
    Example: OA-DG evaluated on DWD dataset
     python3 -u tools/analysis_tools/test_dwd.py \
       configs/OA-DG/dwd/faster_rcnn_r101_dc5_1x_dwd_oadg.py \
       /ws/data/dwd/faster_rcnn_r101_dc5_1x_dwd_oadg/epoch_10.pth \ 
       --out /ws/data/dwd/faster_rcnn_r101_dc5_1x_dwd_oadg/test_robustness_result_10epoch.pkl \
       --eval mAP
    

Demo

You can run demo.

Results

We evaluated the robustness of our method for common corruptions and various weather conditions in urban scenes. mPC is an evaluation metric of robustness against out-of-distribution (OOD).

  • Cityscapes-C: cityacpes-c

  • DWD:

    ☀️ Daytime-Sunny
    ClassGTsDetsRecallAP
    aeroplane173897110.7990.561
    bicycle104661650.7160.491
    bird953393259820.8800.763
    boat53731510.7020.462
    bottle12309763180.7640.557
    bus78734100.6540.489
    car5029282290.8350.582
    mAP0.558
    🌃 Night-Sunny
    ClassGTsDetsRecallAP
    aeroplane2012153070.6880.395
    bicycle141091510.6160.371
    bird24161614095870.8460.639
    boat665131910.4980.178
    bottle175661854150.7100.439
    bus84149070.4470.271
    car4853416330.7140.412
    mAP0.386
    🌧️ Dusk-Rainy
    ClassGTsDetsRecallAP
    aeroplane82039530.6040.382
    bicycle32224690.4810.285
    bird342401802930.8350.681
    boat11015080.3360.132
    bottle5144270220.5250.325
    bus16911860.3310.214
    car2235131580.7030.449
    mAP0.353
    🌙 Night-Rainy
    ClassGTsDetsRecallAP
    aeroplane24811580.4680.289
    bicycle12110880.2230.123
    bird216551748570.6680.356
    boat4916350.1430.010
    bottle1532209630.3780.139
    bus715600.1690.120
    car49943830.4630.220
    mAP0.180
    🌫️ Daytime-Foggy
    ClassGTsDetsRecallAP
    aeroplane55418820.4930.324
    bicycle4920174700.5000.324
    bird33392814600.7140.626
    boat91143010.4970.319
    bottle21530627590.5270.420
    bus236366090.5300.426
    car73660680.4970.267
    mAP0.387

TODO list

  • Add instructions
  • Add codes
  • Add checkpoint files
  • Add configuration files for DWD
  • Pull request to MMDetection (Please click here to review the pull request.)

📢 License

Please see the LICENSE.md file.

📫 Contact Information

If you have any questions, please do not hesitate to contact us:

📎 Citation

@inproceedings{lee2024object,
  title={Object-Aware Domain Generalization for Object Detection},
  author={Lee, Wooju and Hong, Dasol and Lim, Hyungtae and Myung, Hyun},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  volume={38},
  number={4},
  pages={2947--2955},
  year={2024}
}
@misc{lee2023objectaware,
      title={Object-Aware Domain Generalization for Object Detection}, 
      author={Wooju Lee and Dasol Hong and Hyungtae Lim and Hyun Myung},
      year={2023},
      eprint={2312.12133},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}