Git Product home page Git Product logo

domainadaptivereid's Introduction

Unsupervised Domain Adaptive Re-Identification

Implementation of the paper Unsupervised Domain Adaptive Re-Identification: Theory and Practice.

The selftraining scheme proposed in the paper is simple yet effective.

Illustration of the selftraining scheme.

Running the experiments

Step 1: Train on source dataset

Run source_train.py via

python source_train.py \
    --dataset <name_of_source_dataset>\
    --resume <dir_of_source_trained_model>\
    --data_dir <dir_of_source_data>\
    --logs_dir <dir_to_save_source_trained_model>

To replicate the results in the paper, you can download pre-trained models on Market1501 from GoogleDrive and on DukeMTMC from GoogleDrive. Our models are trained with PyTorch 0.3.

Step 2: Run self-training

python selftraining.py \
    --src_dataset <name_of_source_dataset>\
    --tgt_dataset <name_of_target_dataset>\
    --resume <dir_of_source_trained_model>\
    --data_dir <dir_of_source_target_data>\
    --logs_dir <dir_to_save_model_after_adaptation>

Other code

dw_example.ipynb is the file for replicating Figure 6 in the paper.

Results

Step 1: After training on source dataset

Source Dataset Rank-1 mAP
DukeMTMC 80.8 65.4
Market1501 91.6 78.2
CUHK03 48.79 46.95
MSMT17 69.82 42.48

Step 2: After adaptation

SRC --> TGT Before Adaptation After Adaptation Settings
Rank-1 mAP Rank-1 mAP
CUHK --> Market43.2619.9577.1456.60default
CUHK --> DUKE19.528.7462.4842.26default
CUHK --> MSMT8.642.4929.5711.284GPU
Market --> DUKE27.311.968.449.0default
Market --> CUHK4.074.5320.3220.85default
Market --> MSMT8.372.5430.5412.044GPU, num_instances=8
DUKE --> Market46.819.175.853.7default
DUKE --> CUHK4.434.569.8910.32default
DUKE --> MSMT12.383.8239.2215.994GPU, num_instances=8
MSMT --> Market49.4723.7180.9459.974GPU
MSMT --> DUKE46.5427.0174.9657.054GPU
MSMT --> CUHK10.7111.5916.2116.564GPU

FAQ

If you found difficulty in reproducing our reported results, please check the number of GPUs in your experiments. This may be caused by the un-sync BN layer implementation of PyTorch. Below we provide some training logs with the setting Duke --> Market, for helping you check your experiment settings.

With 1 GPU

Job ID 24312 24313 24314 24315 24316 24317
Rank 1 72.7 72.8 73.1 72.9 73.8 73.0

OneDrive Download Link

With 2 GPU

Job ID 24306 24307 24308 24309 24310 24311
Rank 1 75.1 75.7 77.5 76.1 77.5 77.3

OneDrive Download Link

Acknowledgement

Our code is based on open-reid.

domainadaptivereid's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.