Dual-Rate Dynamic Teacher for Source-Free Domain Adaptive Object Detection (ICCV 2025)
July 21, 2025 · View on GitHub
The core contribution is Asynchronous Exponential Moving Average (AEMA), which update teacher parameters in asynchronous manner.
The framework of the proposed Dual-rate Dynamic Teacher (DDT) is shown in the following figure.
Environment Setup
conda create -n ddt python=3.8
conda activate ddt
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
pip install -r requirements.txt
# Compiling and testing Deformable DETR CUDA operators
cd models/ops
bash make.sh
python test.py
Dataset
Our method used 3 popular SF-DAOD benchmarks:
- city2foggy: Cityscapes (source domain) → FoggyCityscapes with foggy level 0.02 (target domain).
- sim2city: Sim10k (source domain) → Cityscapes with
carclass (target domain). - city2bdd: Cityscapes (source domain) → Bdd100k-daytime (target domain).
The raw data can be download from the official websites: Cityscapes, FoggyCityscapes, Sim10k, Bdd100k. The annotations are converted into COCO style, can download from here (provided by MRT-release). The datasets are organized as:
- data
- cityscapes
- annotations
- leftImg8bit
- train
- val
- foggy_cityscapes
- annotations
- leftImg8bit_foggy
- train
- val
- bdd100k
- annotations
- images
- 100k
- cityscapes
Training & Evaluation
The source pretrained weight of DefDETR-R50 can be downloaded from DRU.
- outputs
- city2foggy
- source_only
- downloaded weight
- source_only
- sim2city
- source_only
- downloaded weight
- source_only
- city2bdd
- source_only
- downloaded weight
- source_only
- city2foggy
Then, you can use the following shell to train and evaluate ddt.
bash configs/def-detr-base/city2foggy/teaching_mask_ddt.sh
bash configs/def-detr-base/city2foggy/evaluation_teaching_mask_ddt.sh
The training log file of city2foggy (best mAP = 45.9) is available at log file
Acknowledgement
This repository is based on DRU and MRT-release. We appreciate their great work.