This repository contains a Pytorch implementation for our ISGAN (NeurIPS 2019). Our code is released only for scientific or personal use. Please contact us for commercial use.
- Python 3.6
- Pytorch 1.0.0
- Cuda 10.0
- We conduct experiments on Market1501, CUHK03 and DukeMTMC-reID.
- The structure of data path should be organized as follows:
datasets/
bounding_box_train/
bounding_box_test/
query/
- You can organize CUHK03 datasets as above using the command below. Download cuhk03_new_protocol_config_detected/labeled.mat here.
python utils/transform_cuhk03.py --src <path/to/cuhk03_release> --dst <path/to/save>
- You can train your own model using the below commands. ISGAN is trained with 3 stages. Please refer the paper for the details. Note that each dataset has the different number of identities and you have to change 'num_cls' in opt.py (e.g. --num_cls 767 for CUHK03 and --num_cls 702 for DukeMTMC-reID datatsets)
python main.py --mode train --data_path <path/to/the/dataset> --stage 1
python main.py --mode train --data_path <path/to/the/dataset> --stage 2
python main.py --mode train --data_path <path/to/the/dataset> --stage 3
- You can test the model using the below commands. Note that you also have to change 'num_cls' option in opt.py according to the dataset.
python main.py --mode evaluate --data_path <path/to/the/dataset> --weight <path/to/the/weights>
Please cite our paper if you find the code useful for your research.
@inproceedings{eom2019learning,
title={Learning Disentangled Representation for Robust Person Re-identification},
author={Eom, Chanho and Ham, Bumsub},
booktitle={Advances in Neural Information Processing Systems},
pages={5298--5309},
year={2019}
}
Our code is inspired by ReID-MGN