2018-07-26 08:18:25 +08:00
# ReID_baseline
2019-01-10 18:39:31 +08:00
Baseline model (with bottleneck) for person ReID (using softmax and triplet loss).
2018-06-08 12:59:03 +08:00
2018-08-02 23:18:09 +08:00
We support
2019-01-10 18:39:31 +08:00
- [x] easy dataset preparation
- [x] end-to-end training and evaluation
- [x] high modular management
2018-06-13 16:53:32 +08:00
2018-08-02 23:18:09 +08:00
## Get Started
2019-01-10 18:39:31 +08:00
The designed architecture follows this guide [PyTorch-Project-Template ](https://github.com/L1aoXingyu/PyTorch-Project-Template ), you can check each folder's purpose by yourself.
2018-08-02 23:18:09 +08:00
1. `cd` to folder where you want to download this repo
2. Run `git clone https://github.com/L1aoXingyu/reid_baseline.git`
3. Install dependencies:
2019-01-10 18:39:31 +08:00
- [pytorch 1.0 ](https://pytorch.org/ )
2018-08-02 23:18:09 +08:00
- torchvision
2019-01-10 18:39:31 +08:00
- [ignite ](https://github.com/pytorch/ignite )
- [yacs ](https://github.com/rbgirshick/yacs )
2018-08-02 23:18:09 +08:00
4. Prepare dataset
2019-01-10 18:39:31 +08:00
2018-08-02 23:18:09 +08:00
Create a directory to store reid datasets under this repo via
```bash
cd reid_baseline
mkdir data
```
1. Download dataset to `data/` from http://www.liangzheng.org/Project/project_reid.html
2. Extract dataset and rename to `market1501` . The data structure would like:
2019-01-10 18:39:31 +08:00
```bash
data
market1501
bounding_box_test/
bounding_box_train/
2018-08-02 23:18:09 +08:00
```
5. Prepare pretrained model if you don't have
```python
from torchvision import models
models.resnet50(pretrained=True)
```
2019-01-10 18:39:31 +08:00
Then it will automatically download model in `~/.torch/models/` , you should set this path in `config/defaults.py` for all training or set in every single training config file in `configs/` .
2018-08-02 23:18:09 +08:00
## Train
2019-01-10 18:39:31 +08:00
Most of the configuration files that we provide, you can run this command for training
2018-08-02 23:18:09 +08:00
```bash
2019-01-10 18:39:31 +08:00
python3 tools/train.py --config_file='configs/market1501_softmax_bs64.yml'
```
You can also modify your cfg parameters as follow
```bash
python3 tools/train.py --config_file='configs/market1501_softmax_bs64.yml' INPUT.SIZE_TRAIN '(256, 128)' INPUT.SIZE_TEST '(256, 128)'
2018-08-02 23:18:09 +08:00
```
2018-06-13 16:53:32 +08:00
## Results
2018-09-19 18:17:06 +08:00
**network architecture**
2018-10-18 19:00:52 +08:00
2019-01-10 18:39:31 +08:00
< div align = center >
2018-10-18 19:00:52 +08:00
< img src = 'https://ws3.sinaimg.cn/large/006tNbRwly1fvh3ekjh12j315k0j4q58.jpg' width = '500' >
2019-01-10 18:39:31 +08:00
< / div >
| cfg | market1501 | cuhk03 | dukemtmc |
| --- | -- | -- | -- |
| softmax, size=(384, 128), batch_size=64 | 92.5 (79.4) | 60.4 (56.1) | 84.6 (68.1) |
| softmax, size=(256, 128), batch_size=64 | 92.0 (80.4) | 60.5 (55.5) | 84.1(68.4) |
| softmax_triplet, size=(384, 128), batch_size=128(32 id x 4 imgs) | 93.2 (82.5) | - | 86.4 (73.1)
| softmax_triplet, size=(256, 128), batch_size=128(32 id x 4 imgs) | 93.8 (83.2) | 65.9 (61.4) | -
2018-09-19 18:17:06 +08:00
2018-06-13 16:53:32 +08:00