This repo basically is the OpenISS re-implementation (tensorflow + keras) of a person re-identification baseline proposed by the paper "Bag of Tricks and A Strong Baseline for Deep Person Re-identification".
The authors original implementation which is in Pytorch can be found in their repo.
This is a part of the Eric Lai's ML portion of the OpenISS project for his master's thesis:
- Haotao Lai, An OpenISS Framework Specialization for Person Re-identification, Master's thesis, August 2019, Concordia University, Montreal
See also: openiss-yolov3.
In our Speed cluster using GPUs, it could take up to 4 days to complete the training at 120 epochs.
TEST DATASET: Market1501
---- Train images: 12936
---- Query images: 3368
---- Gallery images: 15913
The pre-requisites to prepare the environment is located in environment.yml
.
Once logged into Speed, go to your speed-scratch directory: cd /speed-scratch/$USER/
and clone/download this git repository.
Before you run the script, you need to specify the dataset directory location. Go to the reid.py
file,
check the global variable named g_data_root
. If you don't have the dataset yet, you can get the dataset by
using the script in the datasets
folder. If you do so, set g_data_root = './datasets'
.
To download the test dataset go to: datasets/
and run get_dataset_market1501.sh
To train or try the model out, go to the very end of the reid.py
file. Comment the method you don't want
and uncomment the method you want
*** IMPORTANT ***
Modify the script openiss-2-speed.sh
to setup the job to be ready for CPUs or GPUs nodes; h_vmem= and gpu= CAN'T be enabled at the same time
On CPUs nodes: qsub ./openiss-2-speed.sh
On GPUs nodes: qsub -q g.q ./openiss-2-speed.sh
The result files are located in output/cross_ds_v/
For the theory behind the code, please check with the wiki.