All Projects → heshuting555 → Naic_person_reid_dmt

heshuting555 / Naic_person_reid_dmt

This is Top 3 Code for the Person ReID Compitition of NAIC

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Naic person reid dmt

AdversarialBinaryCoding4ReID
Codes of the paper "Adversarial Binary Coding for Efficient Person Re-identification"
Stars: ✭ 12 (-91.24%)
Mutual labels:  person-reidentification
Person Reid gan
ICCV2017 Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in vitro
Stars: ✭ 301 (+119.71%)
Mutual labels:  person-reidentification
Person search
Joint Detection and Identification Feature Learning for Person Search
Stars: ✭ 666 (+386.13%)
Mutual labels:  person-reidentification
FedReID
Implementation of Federated Learning to Person Re-identification (Code for ACMMM 2020 paper)
Stars: ✭ 68 (-50.36%)
Mutual labels:  person-reidentification
2016 person re Id
TOMM2017 A Discriminatively Learned CNN Embedding for Person Re-identification
Stars: ✭ 255 (+86.13%)
Mutual labels:  person-reidentification
Batch Dropblock Network
Official source code of "Batch DropBlock Network for Person Re-identification and Beyond" (ICCV 2019)
Stars: ✭ 304 (+121.9%)
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 (-65.69%)
Mutual labels:  person-reidentification
Dg Net
Joint Discriminative and Generative Learning for Person Re-identification. CVPR'19 (Oral)
Stars: ✭ 1,042 (+660.58%)
Mutual labels:  person-reidentification
Deepcc
Multi-Target, Multi-Camera Tracking
Stars: ✭ 299 (+118.25%)
Mutual labels:  person-reidentification
Awesome Person Re Identification
Awesome Person Re-identification
Stars: ✭ 642 (+368.61%)
Mutual labels:  person-reidentification
Deep-Association-Learning
Tensorflow Implementation on Paper [BMVC2018]Deep Association Learning for Unsupervised Video Person Re-identification
Stars: ✭ 68 (-50.36%)
Mutual labels:  person-reidentification
HiCMD
[CVPR2020] Hi-CMD: Hierarchical Cross-Modality Disentanglement for Visible-Infrared Person Re-Identification
Stars: ✭ 64 (-53.28%)
Mutual labels:  person-reidentification
Dukemtmc Reid evaluation
ICCV2017 The Person re-ID Evaluation Code for DukeMTMC-reID Dataset (Including Dataset Download)
Stars: ✭ 344 (+151.09%)
Mutual labels:  person-reidentification
AOS4ReID
Adversarially Occluded Samples for Person Re-identification, CVPR 2018
Stars: ✭ 32 (-76.64%)
Mutual labels:  person-reidentification
Generalizing Reid
Repository of the paper "Generalizing Person Re-Identification by Camera-Aware Instance Learning and Cross-Domain Mixup"
Stars: ✭ 28 (-79.56%)
Mutual labels:  person-reidentification
MetaBIN
[CVPR2021] Meta Batch-Instance Normalization for Generalizable Person Re-Identification
Stars: ✭ 58 (-57.66%)
Mutual labels:  person-reidentification
Light Reid
[ECCV2020] a toolbox of light-reid learning for faster inference, speed both feature extraction and retrieval stages up to >30x
Stars: ✭ 302 (+120.44%)
Mutual labels:  person-reidentification
Open Reid
Open source person re-identification library in python
Stars: ✭ 1,144 (+735.04%)
Mutual labels:  person-reidentification
Rollback
Backbone Can Not be Trained at Once: Rolling Back to Pre-trained Network for Person Re-Identification (AAAI2019)
Stars: ✭ 33 (-75.91%)
Mutual labels:  person-reidentification
Eanet
EANet: Enhancing Alignment for Cross-Domain Person Re-identification
Stars: ✭ 380 (+177.37%)
Mutual labels:  person-reidentification

NAIC_Person_ReID_Competition

This repository contains our source code for the Person ReID Compitition of NAIC. We are team,DMT, who rank third place in the first season and second place in the second season.

Authors

Introduction

Detailed information about the Person ReID Compitition of NAIC can be found here.

The code is modified from reid strong baseline and AICITY2020_DMT_VehicleReID

Useful Tricks

  • [x] DataAugmention(RandomErase + ColorJittering +RandomAffine + RandomHorizontallyFlip + Padding + RandomCrop)
  • [x] WarmUp + MultiStepLR
  • [x] Ranger
  • [x] ArcFace
  • [x] Faster Reranking
  • [x] Gem
  • [x] Weighted Triplet Loss
  • [x] Remove Long Tail Data (pid with single image)
  • [x] Solving UDA through Generating Pseudo Label
  • [x] Distmat Ensemble
  • [x] FP16
  1. Due to the characteristics of the dataset, we find color Jittering can greatly improve model performance.
  2. Luo rewrote Faster Reranking, using the GPU to calculate the distance, and using sparse matrix storage, which can save GPU memory and RAM to meet the organizer's hardware requirements.
  3. Pseudo label is a common trick used in deep learning competitions. We use a trained model to generate pseudo label and add some constraints to get the cleaner label.
  4. We use Ranger optimizer to make the model converge faster and better.
  5. FP16 training can save 30% memory cost and is 30% faster with no precision drop. Although we didn't have time to try it in this competition, it proved to be a very useful thing in other competitions. Recommend everyone to use. You can refer to apex install it. if you don't have apex installed, please turn-off FP16 training by setting SOLVER.FP16=False

Project File Structure

+-- NAIC_Challenge
|   +-- NAIC_Person_ReID_DMT(put code here)
|   +-- model(dir to save the output)
|   +-- data
|		+--train
|		+--test
|			+--query_a
|			+--gallery_a
|			+--query_b
|			+--gallery_b

Get Started

  1. cd to folder where you want to download this repo

  2. Run git clone https://github.com/heshuting555/NAIC_Person_ReID_DMT.git

  3. Install dependencies:

    We use cuda 9.0/python 3.6.7/torch 1.2.0/torchvision 0.4.0 for training and testing.

  4. ResNet-ibn is applied as the backbone. Download ImageNet pretrained model here

RUN

  1. If you want to get the same score as online in the Person ReID Compitition of NAIC . Use the following commands:

    bash run.sh
    
  2. If you want to use our baseline for training.

    python train.py --config_file [CHOOSE WHICH config TO RUN]
    # E.g
    #python train.py --config_file configs/naic_round2_model_a.yml
    
  3. If you want to use our UDA method for training.

    python train_UDA.py --config_file [CHOOSE WHICH config TO RUN] --config_file_test [CHOOSE WHICH CONFIG TO TEST and GET PSEUDO LABLE] --data_dir_query [PATH TO QUERY DATASET] --data_dir_gallery [PATH TO GALLERY DATASET]
    # E.g
    #python train_UDA.py --config_file configs/naic_round2_model_b.yml --config_file_test configs/naic_round2_model_a.yml --data_dir_query ../data/test/query_a --data_dir_gallery ../data/test/gallery_a
    
  4. If you want to test the model and get the result in json format required by the competition.

    python test.py --config_file [CHOOSE WHICH CONFIG TO TEST]
    # E.g
    #python test.py --config_file configs/naic_round2_model_a.yml
    

Citation

If you find our work useful in your research, please consider citing:

@InProceedings{He_2020_CVPR_Workshops,
author = {He, Shuting and Luo, Hao and Chen, Weihua and Zhang, Miao and Zhang, Yuqi and Wang, Fan and Li, Hao and Jiang, Wei},
title = {Multi-Domain Learning and Identity Mining for Vehicle Re-Identification},
booktitle = {The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2020}
}
@InProceedings{Luo_2019_CVPR_Workshops,
author = {Luo, Hao and Gu, Youzhi and Liao, Xingyu and Lai, Shenqi and Jiang, Wei},
title = {Bag of Tricks and a Strong Baseline for Deep Person Re-Identification},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2019}
}
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].