hh23333 / PVPM

PyTorch code for CVPR'2020 paper “Pose-guided Visible Part Matching for Occluded Person ReID”
112 stars 26 forks source link

CVPR2020 Pose-guided Visible Part Matching for Occluded Person ReID

This is the pytorch implementation of the CVPR2020 paper "Pose-guided Visible Part Matching for Occluded Person ReID"

Dependencies

-Python2.7\ -Pytorch 1.0\ -Numpy

Related Project

Our code is based on deep-person-reid. We adopt openpose to extract pose landmarks and part affinity fields.

Dataset Preparation

Download the raw datasets Occluded-REID, P-DukeMTMC-reID, and Partial-Reid (code:zdl8) which is released by Partial Person Re-identification. Instructions regarding how to prepare Market1501 datasets can be found here. And then place them under the directory like:

PVPM_experiments/data/
├── ICME2018_Occluded-Person-Reidentification_datasets
│   ├── Occluded_Duke
│   └── Occluded_REID
├── Market-1501-v15.09.15
└── Partial-REID_Dataset

Pose extraction

Install openopse as described here.\ Change path to your own dataset root and run sh files in /scripts:

sh openpose_occluded_reid.sh
sh openpose_market.sh

Extracted Pose information can be found here(code:iwlz)

To Train PCB baseline

python scripts/main.py --root PATH_TO_DATAROOT \
 -s market1501 -t market1501\
 --save-dir PATH_TO_EXPERIMENT_FOLDER/market_PCB\
 -a pcb_p6 --gpu-devices 0 --fixbase-epoch 0\
 --open-layers classifier fc\
 --new-layers classifier em\
 --transforms random_flip\
 --optim sgd --lr 0.02\
 --stepsize 25 50\
 --staged-lr --height 384 --width 128\
 --batch-size 32 --base-lr-mult 0.5

To train PVPM

python scripts/main.py --load-pose --root PATH_TO_DATAROOT
 -s market1501\
 -t occlusion_reid p_duke partial_reid\
 --save-dir PATH_TO_EXPERIMENT_FOLDER/PVPM\
 -a pose_p6s --gpu-devices 0\
 --fixbase-epoch 30\
 --open-layers pose_subnet\
 --new-layers pose_subnet\
 --transforms random_flip\
 --optim sgd --lr 0.02\
 --stepsize 15 25 --staged-lr\
 --height 384 --width 128\
 --batch-size 32\
 --start-eval 20\
 --eval-freq 10\
 --load-weights PATH_TO_EXPERIMENT_FOLDER/market_PCB/model.pth.tar-60\
 --train-sampler RandomIdentitySampler\
 --reg-matching-score-epoch 0\
 --graph-matching
 --max-epoch 30
 --part-score

Trained PCB model and PVPM model can be found here(code:64zy)

Citation

If you find this code useful to your research, please cite the following paper:

@inproceedings{gao2020pose,
title={Pose-guided Visible Part Matching for Occluded Person ReID},
author={Gao, Shang and Wang, Jingya and Lu, Huchuan and Liu, Zimo},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={11744--11752},
year={2020}
}