/SECRET

SECRET: Self-Consistent Pseudo Label Refinement for Unsupervised Domain Adaptive Person Re-Identification

Primary LanguagePythonMIT LicenseMIT

[AAAI2022] SECRET

The official repository for SECRET: Self-Consistent Pseudo Label Refinement for Unsupervised Domain Adaptive Person Re-Identification.

framework

Installation

git clone https://github.com/LunarShen/SECRET.git
cd SECRET
conda create -n secret python=3.8
conda activate secret
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch
pip install tqdm numpy six h5py Pillow scipy scikit-learn metric-learn pyyaml yacs termcolor faiss-gpu==1.6.3 opencv-python Cython
python setup.py develop

Prepare Datasets

mkdir Data

Download the raw datasets DukeMTMC-reID, Market-1501, MSMT17, and then unzip them under the directory like

SECRET/Data
├── dukemtmc
│   └── DukeMTMC-reID
├── market1501
│   └── Market-1501-v15.09.15
└── msmt17
    └── MSMT17_V1

Training

We utilize 4 GTX-1080TI GPUs for training.

Stage I: Pre-training on the source domain

# duke-to-market
sh scripts/duke2market/pretrain.sh
# market-to-duke
sh scripts/market2duke/pretrain.sh
# market-to-msmt
sh scripts/market2msmt/pretrain.sh

Stage II: fine-tuning with SECRET

# duke-to-market
sh scripts/duke2market/train.sh
# market-to-duke
sh scripts/market2duke/train.sh
# market-to-msmt
sh scripts/market2msmt/train.sh

Evaluation

# duke-to-market
sh scripts/duke2market/eval.sh
# market-to-duke
sh scripts/market2duke/eval.sh
# market-to-msmt
sh scripts/market2msmt/eval.sh

Results

results

Acknowledgements

Codebase from MMT, fast-reid

Citation

If you find this project useful for your research, please cite our paper.

@inproceedings{he2022secret,
  title={SECRET: Self-Consistent Pseudo Label Refinement for Unsupervised Domain Adaptive Person Re-identification},
  author={He, Tao and Shen, Leqi and Guo, Yuchen and Ding, Guiguang and Guo, Zhenhua},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  volume={36},
  number={1},
  pages={879--887},
  year={2022}
}