All Projects → Cysu → Dgd_person_reid

Cysu / Dgd_person_reid

Domain Guided Dropout for Person Re-identification

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Dgd person reid

Person search
Joint Detection and Identification Feature Learning for Person Search
Stars: ✭ 666 (+190.83%)
Mutual labels:  caffe, person-reidentification
Dl inference
通用深度学习推理服务,可在生产环境中快速上线由TensorFlow、PyTorch、Caffe框架训练出的深度学习模型。
Stars: ✭ 209 (-8.73%)
Mutual labels:  caffe
Deepdetect
Deep Learning API and Server in C++14 support for Caffe, Caffe2, PyTorch,TensorRT, Dlib, NCNN, Tensorflow, XGBoost and TSNE
Stars: ✭ 2,306 (+906.99%)
Mutual labels:  caffe
Raspberrypi Facedetection Mtcnn Caffe With Motion
MTCNN with Motion Detection, on Raspberry Pi with Love
Stars: ✭ 204 (-10.92%)
Mutual labels:  caffe
Pixelnet
The repository contains source code and models to use PixelNet architecture used for various pixel-level tasks. More details can be accessed at <http://www.cs.cmu.edu/~aayushb/pixelNet/>.
Stars: ✭ 194 (-15.28%)
Mutual labels:  caffe
Dsrg
Weakly-Supervised Semantic Segmentation Network with Deep Seeded Region Growing (CVPR 2018).
Stars: ✭ 206 (-10.04%)
Mutual labels:  caffe
Ck Caffe
Collective Knowledge workflow for Caffe to automate installation across diverse platforms and to collaboratively evaluate and optimize Caffe-based workloads across diverse hardware, software and data sets (compilers, libraries, tools, models, inputs):
Stars: ✭ 192 (-16.16%)
Mutual labels:  caffe
Caffe2 Ios
Caffe2 on iOS Real-time Demo. Test with Your Own Model and Photos.
Stars: ✭ 221 (-3.49%)
Mutual labels:  caffe
Interactive Deep Colorization
Deep learning software for colorizing black and white images with a few clicks.
Stars: ✭ 2,465 (+976.42%)
Mutual labels:  caffe
Mtcnn Accelerate Onet
MTCNN Face Detection & Alignment
Stars: ✭ 203 (-11.35%)
Mutual labels:  caffe
Learning Via Translation
Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity for Person Re-identification (https://arxiv.org/pdf/1711.07027.pdf). CVPR2018
Stars: ✭ 202 (-11.79%)
Mutual labels:  person-reidentification
Liteflownet2
A Lightweight Optical Flow CNN - Revisiting Data Fidelity and Regularization, TPAMI 2020
Stars: ✭ 195 (-14.85%)
Mutual labels:  caffe
Caffe Deepbinarycode
Supervised Semantics-preserving Deep Hashing (TPAMI18)
Stars: ✭ 206 (-10.04%)
Mutual labels:  caffe
Php Opencv
php wrapper for opencv
Stars: ✭ 194 (-15.28%)
Mutual labels:  caffe
Caffe Yolov3 Windows
A windows caffe implementation of YOLO detection network
Stars: ✭ 210 (-8.3%)
Mutual labels:  caffe
Person Reid 3d
🗽 Parameter-Efficient Person Re-identification in the 3D Space 🗽
Stars: ✭ 193 (-15.72%)
Mutual labels:  person-reidentification
Auto Reid And Others
Auto-ReID and Other Person Re-Identification Projects
Stars: ✭ 198 (-13.54%)
Mutual labels:  caffe
Netron
Visualizer for neural network, deep learning, and machine learning models
Stars: ✭ 17,193 (+7407.86%)
Mutual labels:  caffe
Image Text Embedding
TOMM2020 Dual-Path Convolutional Image-Text Embedding https://arxiv.org/abs/1711.05535
Stars: ✭ 223 (-2.62%)
Mutual labels:  person-reidentification
Ide Baseline Market 1501
ID-discriminative Embedding (IDE) for Person Re-identification
Stars: ✭ 220 (-3.93%)
Mutual labels:  caffe

Domain Guided Dropout for Person Re-id

This project aims at learning generic person re-identification (re-id) deep features from multiple datasets with domain guided dropout. Mainly based on our CVPR 2016 paper Learning Deep Feature Representations with Domain Guided Dropout for Person Re-identification.

Installation

We have integrated our self-brewed caffe into external/caffe, which provides batch-normalization and multi-gpu parallel training. Please clone this project with the command:

git clone --recursive https://github.com/Cysu/dgd_person_reid.git

Apart from the official installation prerequisites, we have several other dependencies: cudnn-v4, openmpi, and 1.55 <= boost < 1.60. You may install them manually or by a package manager (a tip for installing boost 1.55 on Ubuntu 14.04: sudo apt-get autoremove libboost1.54* then sudo apt-get install libboost1.55-all-dev).

Then configure the Makefile.config and compile the caffe. To use multi-GPU for training, please uncomment the MPI parallel block in the Makefile.config and set the MPI_INCLUDE and MPI_LIB properly. Please find more details of using the caffe here.

cd external/caffe
cp Makefile.config.example Makefile.config
# Configure the libraries properly
make -j8 && make py

Some other prerequisites are

  1. Matlab (to pre-process the CUHK03 dataset)
  2. python2 packages: numpy, scipy, Pillow, scikit-learn, protobuf, lmdb
  3. Add export PYTHONPATH=".:$PYTHONPATH" to ~/.bashrc and restart the terminal

Download datasets

Download the following datasets.

  1. CUHK03
  2. CUHK01
  3. PRID
  4. VIPeR (I cannot find the link to the original dataset. This is my previous backup version.)
  5. 3DPeS
  6. i-LIDS (I cannot find the link to the original dataset. This is my previous backup version.)
  7. Shinpuhkan (need to send an email to the authors)

Link the root directory of these datasets to our project.

ln -sf /path/to/the/root/of/datasets external/raw

Prepare data

  1. Create a directory for experiment data and results

    mkdir -p external/exp
    

    or link against another external directory

    ln -s /path/to/your/exp/directory external/exp
    
  2. Convert raw datasets into a uniform data format

    scripts/format_rawdata.sh
    
  3. Convert formatted datasets into LMDBs

    scripts/make_dbs.sh
    
  4. Merge all the datasets together for the joint single-task learning (JSTL)

    scripts/merge_dbs.sh
    

Experiments

Note: We use two GPUs to train the models by default. Change the mpirun -n 2 ... -gpu 0,1 in scripts/routines.sh to your own hardware configuration if necessary.

**GPU device id needs to be changed in:

  1. train_model() and extract_features() of scripts/rountines.sh
  2. main() of tools/compute_impact_score.py**

Our experiments are organized into two groups:

  1. Baseline: training individually on each dataset
  2. Ours: Joint single task learning (JSTL) + Domain guided dropout (DGD)

We provide a pretrained JSTL+DGD model here that can be used as a generic person re-id feature extractor.

Some archived experiment logs can be found at archived/.

Baseline: training individually on each dataset

To train and test a model individually on a dataset, just run the script

scripts/exp_individually.sh prid

where the parameter is the dataset name, can be one of cuhk03, cuhk01, prid, viper, 3dpes, ilids.

Ours: Joint single task learning (JSTL) + Domain guided dropout (DGD)

  1. Pretrain a model using the mixed dataset with JSTL. The CMC accuracies printed out are corresponding to the JSTL entries in Table 3 of our paper.

     scripts/exp_jstl.sh
    
  2. Based on the pretrained JSTL model, we first compute the neuron impact scores (NIS) for each dataset, and then resume the JSTL training with deterministic DGD. The CMC accuracies printed out are corresponding to the JSTL+DGD entries in Table 3 of our paper.

     scripts/exp_dgd.sh
    

    At last, to achieve the best performance, we can fine-tune the model on each dataset with stochastic DGD. The CMC accuracies printed out are corresponding to the FT-(JSTL+DGD) entries in Table 3 of our paper.

     scripts/exp_ft_dgd.sh
    

Citation

@inproceedings{xiao2016learning,
  title={Learning Deep Feature Representations with Domain Guided Dropout for Person Re-identification},
  author={Xiao, Tong and Li, Hongsheng and Ouyang, Wanli and Wang, Xiaogang},
  booktitle={CVPR},
  year={2016}
}

Referenced Datasets

We summarize the person re-id datasets used in this project as below.

Name Reference
3DPeS Baltieri, et al., 3DPes: 3D people dataset for surveillance and forensics
CUHK01 Li, et al., Human reidentification with transferred metric learning
CUHK02 Li, et al., Locally Aligned Feature Transforms across Views
CUHK03 Li, et al., Deepreid: Deep filter pairing neural network for person re-identification
i-LIDS Zheng, et al., Associating groups of people
PRID Hirzer, et al., Person re-identification by descriptive and discriminative classification
Shinpuhkan Kawanishi, et al., Shinpuhkan2014: A Multi-Camera Pedestrian Dataset for Tracking People across Multiple Cameras
VIPeR Gray, et al., Evaluating appearance models for recognition, reacquisition, and tracking
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].