All Projects → prajjwal1 → person-reid-incremental

prajjwal1 / person-reid-incremental

Licence: other
Incremental Learning in Person Re-Identification

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to person-reid-incremental

Fast Reid
SOTA Re-identification Methods and Toolbox
Stars: ✭ 2,287 (+18958.33%)
Mutual labels:  person-reidentification
Image Text Embedding
TOMM2020 Dual-Path Convolutional Image-Text Embedding https://arxiv.org/abs/1711.05535
Stars: ✭ 223 (+1758.33%)
Mutual labels:  person-reidentification
MetaBIN
[CVPR2021] Meta Batch-Instance Normalization for Generalizable Person Re-Identification
Stars: ✭ 58 (+383.33%)
Mutual labels:  person-reidentification
Reid Mgn
Reproduction of paper: Learning Discriminative Features with Multiple Granularities for Person Re-Identification
Stars: ✭ 145 (+1108.33%)
Mutual labels:  person-reidentification
Person Reid 3d
🗽 Parameter-Efficient Person Re-identification in the 3D Space 🗽
Stars: ✭ 193 (+1508.33%)
Mutual labels:  person-reidentification
Person reid baseline pytorch
Pytorch ReID: A tiny, friendly, strong pytorch implement of object re-identification baseline. Tutorial 👉https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/tutorial
Stars: ✭ 2,963 (+24591.67%)
Mutual labels:  person-reidentification
Open Reid
Open source person re-identification library in python
Stars: ✭ 1,144 (+9433.33%)
Mutual labels:  person-reidentification
FedReID
Implementation of Federated Learning to Person Re-identification (Code for ACMMM 2020 paper)
Stars: ✭ 68 (+466.67%)
Mutual labels:  person-reidentification
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 (+1583.33%)
Mutual labels:  person-reidentification
Hetero-center-loss-for-cross-modality-person-re-id
Code for paper "Hetero-center loss for cross-modality person re-identification"
Stars: ✭ 47 (+291.67%)
Mutual labels:  person-reidentification
Person Reid Gan Pytorch
A Pytorch Implementation of "Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in vitro"(ICCV17)
Stars: ✭ 147 (+1125%)
Mutual labels:  person-reidentification
Awesome Person Re Identification
Awesome Person Re-Identification
Stars: ✭ 184 (+1433.33%)
Mutual labels:  person-reidentification
Dispersion-based-Clustering
The source code for our work "Towards better Validity: Dispersion based Clustering for unsupervised Person Re-identification"
Stars: ✭ 33 (+175%)
Mutual labels:  person-reidentification
Attribute Aware Attention
[ACM MM 2018] Attribute-Aware Attention Model for Fine-grained Representation Learning
Stars: ✭ 143 (+1091.67%)
Mutual labels:  person-reidentification
AdversarialBinaryCoding4ReID
Codes of the paper "Adversarial Binary Coding for Efficient Person Re-identification"
Stars: ✭ 12 (+0%)
Mutual labels:  person-reidentification
Naic person reid dmt
This is Top 3 Code for the Person ReID Compitition of NAIC
Stars: ✭ 137 (+1041.67%)
Mutual labels:  person-reidentification
Dgd person reid
Domain Guided Dropout for Person Re-identification
Stars: ✭ 229 (+1808.33%)
Mutual labels:  person-reidentification
Deep-Association-Learning
Tensorflow Implementation on Paper [BMVC2018]Deep Association Learning for Unsupervised Video Person Re-identification
Stars: ✭ 68 (+466.67%)
Mutual labels:  person-reidentification
AOS4ReID
Adversarially Occluded Samples for Person Re-identification, CVPR 2018
Stars: ✭ 32 (+166.67%)
Mutual labels:  person-reidentification
Awesome-Cross-Domain-Person-Re-identification
Awesome-Cross-Domain-Person-Re-identification
Stars: ✭ 17 (+41.67%)
Mutual labels:  person-reidentification

Incremental Learning in Person Re-Identification

===========================================================

This repository contains code for our research. Paper can be found here, arXiv

Getting started

  1. cd ~/PATH_NAME
  2. Run git clone https://github.com/prajjwal1/person-reid-incremental
  3. Install the specified dependencies, to install use pip3 install - requirements.txt
  4. Follow the below mentioned steps for preparation of dataset and performing training

Prerequisites:

  • OS: Linux/MacOS
  • Pytorch>=0.3

Install Dependencies

Datasets

Dataset structure

This is the recommended file structure which was used

For preparation of Market1501

+-- Market1501
|   +-- bounding_box_test
|   +-- bounding_box_train
.......

For preparation of Duke MTMC

+-- dukemtmc-reid
  |   +-- DukeMTMC-reID
    |   +-- bounding_box_test
    |   +-- bounding_box_train
.............

Covariance loss metric has been added to all the modules. You're required to change the flags as per phase as described in paper

Create a directory named as data/ and use the standard directory structure.

For training on Market1501 (Phase 1):

$ python covariance_market1501.py

For training on Duke MTMC (Phase 2).

$ python covariance_duke.py

Make sure to specify the model path properly

SAVED_MODEL_PATH needs to be specified to load the model generated from phase 1

To use ensembling and training, use

$ python covariance_ensembling.py

In this case, you'll have to specify amongst which pipelines do you want to perform ensembling. If you get better results, please file a PR.

To perform training:

While executing make sure to correctly carry out training (Phase 1 and Phase 2) properly as mentioned to achieve incremental learning

When training, log file would be created in the /log directory.

Results:

No. Dataset Rank 1 Rank 20 maP
1 Market1501 89.3% 98.3% 71.8%
2 DukeMTMC 80.0% 93.7% 60.2%
3 Market1501 70.2% 92.4% 41.2%

Takes around 8-9 hours to train the model for 950 epochs (convergence is usually achieved)

Models

We used a ResNet50 along with different architecture of pipelines. We have used hybrid_convnet2. You are required to change the dimensions of the FC layer as per number of classes manually.

To resume training

$ mkdir saved_models

Then specify this as per dir structure in the main module

SAVED_MODEL_PATH = 'saved_models/p1.pth.tar'
checkpoint = torch.load(SAVED_MODEL_PATH)
model.load_state_dict(checkpoint['state_dict'])

For evaluation

$ python evaluation.py

Make sure to set the dataset and path of the models correctly, and also which pipeline to use for evaluation

Citation:

Please cite this, if you use our work

@misc{bhargava2018incremental,
    title={Incremental Learning in Person Re-Identification},
    author={Prajjwal Bhargava},
    year={2018},
    eprint={1808.06281},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}
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].