Need help with Self-Similarity-Grouping?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

SHI-Labs
170 Stars 38 Forks 14 Commits 25 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

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.