This is the official code implementation for 'What, How, and When Should Object Detectors Update in Continually Changing Test Domains?' presented at CVPR 2024 arxiv.
We use Python 3.10, PyTorch 1.11.0 (CUDA 11.8 build). The codebase is built on Detectron2.
conda create -n cta_od python=3.10
Conda activate cta_od
conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.8 -c pytorch
cd ContinualTTA_ObjectDetection
pip install -r requirements.txt
## Make sure you have GCC and G++ version <=8.0
cd ..
python -m pip install -e ContinualTTA_ObjectDetection
Please follow dataset structure below.
-
Coco & coco-corruption
- coco - train2017 - val2017 - val2017-snow - val2017-frost ...
-
SHIFT
- shift - discrete - images - train - front - images ... - det_2d.json - seq.csv - val - front ... - continuous1x - continuous10x
You can download the following assets via Link.
- Source Model checkpoints
- Feature Statistics
- Dataset (COCO-Corrupted, 15 corruption type)
# coco -> coco-corrupted
bash scripts/coco_adapt.sh
# shift discrete
bash scripts/shift_discrete_adapt.sh
# shift continuous
bash scripts/shift_continuous_adapt.sh
If you found our work is useful in your research, please consider starring ⭐ us on GitHub and citing 📚 us in your research!
@InProceedings{Yoo_2024_CVPR,
author = {Yoo, Jayeon and Lee, Dongkwan and Chung, Inseop and Kim, Donghyun and Kwak, Nojun},
title = {What How and When Should Object Detectors Update in Continually Changing Test Domains?},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {23354-23363}
}