|
||
---|---|---|
config | ||
configs | ||
csrc/eval_cylib | ||
data | ||
engine | ||
layers | ||
modeling | ||
scripts | ||
solver | ||
tests | ||
tools | ||
utils | ||
.gitignore | ||
README.md | ||
datasets | ||
demo.py | ||
vis_data.ipynb |
README.md
ReID_baseline
A strong baseline (state-of-the-art) for person re-identification.
We support
- easy dataset preparation
- end-to-end training and evaluation
- multi-GPU distributed training
- fast training speed with fp16
- fast evaluation with cython
- support both image and video reid
- multi-dataset training
- cross-dataset evaluation
- high modular management
- state-of-the-art performance with simple model
- high efficient backbone
- advanced training techniques
- various loss functions
- tensorboard visualization
Get Started
The designed architecture follows this guide PyTorch-Project-Template, you can check each folder's purpose by yourself.
-
cd
to folder where you want to download this repo -
Run
git clone https://github.com/L1aoXingyu/reid_baseline.git
-
Install dependencies:
- pytorch 1.0.0+
- torchvision
- fastai
- yacs
-
Prepare dataset
Create a directory to store reid datasets under this repo via
cd reid_baseline mkdir datasets
- Download dataset to
datasets/
from baidu pan or google driver - Extract dataset. The dataset structure would like:
datasets Market-1501-v15.09.15 bounding_box_test/ bounding_box_train/
- Download dataset to
-
Prepare pretrained model. If you use origin ResNet, you do not need to do anything. But if you want to use ResNet_ibn, you need to download pretrain model in here. And then you can put it in
~/.cache/torch/checkpoints
or anywhere you like.Then you should set this pretrain model path in
configs/softmax_triplet.yml
. -
compile with cython to accelerate evalution
cd csrc/eval_cylib; make
Train
Most of the configuration files that we provide, you can run this command for training market1501
bash scripts/train_market.sh
Or you can just run code below to modify your cfg parameters
python3 tools/train.py -cfg='configs/softmax.yml' INPUT.SIZE_TRAIN '(256, 128)' INPUT.SIZE_TEST '(256, 128)'
Test
You can test your model's performance directly by running this command
python3 tools/test.py --config_file='configs/softmax.yml' TEST.WEIGHT '/save/trained_model/path'
Results
cfg | market1501 | dukemtmc |
---|---|---|
softmax+triplet, size=(256, 128), batch_size=64(16 id x 4 imgs) | 93.9 (85.9) | 86.5 (75.9) |