Self-Similarity-Grouping

by SHI-Labs

Self-similarity Grouping: A Simple Unsupervised Cross Domain Adaptation Approach for Person Re-ident...

152 Stars 33 Forks Last release: Not found 14 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Self-similarity Grouping: A Simple Unsupervised Cross Domain Adaptation Approach for Person Re-identificatio(SSG)

Implementation of the paper Self-similarity Grouping: A Simple Unsupervised Cross Domain Adaptation Approach for Person Re-identification, ICCV 2019 (Oral)

The SSG approach proposed in the paper is simple yet effective and achieves the state-of-arts on three re-ID datasets: Market1501, DukdMTMC and MSMT17.

Illustration of the Self-similarity Grouping.

Running the experiments

Step 1: Train on source dataset

Run

source_train.py
via
python source_train.py \
    --dataset \
    --resume \
    --data_dir \
    --logs_dir 

To replicate the results in the paper, you can download pre-trained models on Market1501, DukeMTMC and MSMT17 from GoogleDrive. There maybe some bugs in sourcetrain.py, please refer to DomainAdaptiveReID to obtained the pretrained model or just use the pretrained model provided by us. And you can find all models after adaptation from GoogleDrive. Our models can be trained with _PyTorch 0.4.1__ or PyTorch 1.0.

Step 2: Run Self-similarity Grouping

python selftraining.py \
    --src_dataset \
    --tgt_dataset \
    --resume \
    --iteration \
    --data_dir \
    --logs_dir \
    --gpu-devices \
    --num-split 

Or just command

shell
./run.sh

Step 3: Run Clustering-guided Semi-Supervised Training

python semitraining.py \
    --src_dataset \
    --tgt_dataset \
    --resume \
    --iteration \
    --data_dir \
    --logs_dir \
    --gpu-devices \
    --num-split \
    --sample 

Results

Step 1: After training on source dataset

| Source Dataset | Rank-1 | mAP | | :--- | :---: | :---: | | DukeMTMC | 82.6 | 70.5 | | Market1501 | 92.5 | 80.8 | | MSMT17 | 73.6 | 48.6 |

Step 2: After adaptation

SRC --> TGT Before Adaptation Adaptation by SSG Adaptation by SSG++
Rank-1 mAP Rank-1 mAP Rank-1 mAP
Market1501 --> DukeMTMC 30.5 16.1 73.0 53.4 76.0 60.3
DukeMTMC --> Market1501 54.6 26.6 80.0 58.3 86.2 68.7
Market1501 --> MSMT17 8.6 2.7 31.6 13.2 37.6 16.6
DukeMTMC --> MSMT17 12.38 3.82 32.2 13.3 41.6 18.3

Issues

  • The pre-trained model is trained with Pytorch 0.4.1, there may be some error when loading it by Pytorch with higher version. This link should be helpful
  • The source_training.py codes may have some bugs, I suggest you directly using our pretrained baseline model. And I will fix the bugs soon.
  • To reproduce results listed in paper, I recommend to use two GPUs with batch size of 32. And in general, the experimental results may have be a little different from the results listed in paper (+/-1%).

Acknowledgement

Our code is based on open-reid and DomainAdaptiveReID.

Citation

If you find the code helpful in your resarch or work, please cite the following paper.

@InProceedings{Fu_2019_ICCV,
author = {Fu, Yang and Wei, Yunchao and Wang, Guanshuo and Zhou, Yuqian and Shi, Honghui and Huang, Thomas S.},
title = {Self-Similarity Grouping: A Simple Unsupervised Cross Domain Adaptation Approach for Person Re-Identification},
booktitle = {The IEEE International Conference on Computer Vision (ICCV)},
month = {October},
year = {2019}
}

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.