Skip to content

A flexible and extensible framework for gait recognition. You can focus on designing your own models and comparing with state-of-the-arts easily with the help of OpenGait.

Notifications You must be signed in to change notification settings

cocoJennie/GR_ARCH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

nmbgcl

OpenGait is a flexible and extensible gait recognition project provided by the Shiqi Yu Group and supported in part by WATRIX.AI.

What's New

  • [Mar 2022] More results on GREW are supported, and the model files are coming soon.
  • [Mar 2022] Dataset GREW is supported in datasets/GREW.
  • [Mar 2022] HID support is ready in datasets/HID.

Highlighted features

  • Mutiple Dataset supported: OpenGait supports four popular gait datasets: CASIA-B, OUMVLP, HID, and GREW.
  • Multiple Models Support: We reproduced several SOTA methods, and reached the same or even the better performance.
  • DDP Support: The officially recommended Distributed Data Parallel (DDP) mode is used during both the training and testing phases.
  • AMP Support: The Auto Mixed Precision (AMP) option is available.
  • Nice log: We use tensorboard and logging to log everything, which looks pretty.

Model Zoo

Model Rank@1 Configuration Input Size Inference Time Model Size
Baseline 48.5 baseline.yaml 64x44 2m23s 84.12M
Baseline-ResNet9 56.0 - 64x44 - -
GaitSet(AAAI2019) 48.4 - - - -
GaitPart(CVPR2020) 47.6 - - - -
GaitGL(ICCV2021) 47.3 - - - -
RealGait(Arxiv now) (54.1) - - - -

The result of GaitGL comes from RealGait now, and our reproducing results are comming soon.

Model Rank@1 Configuration Input Size Inference Time Model Size
Baseline 86.7 baseline.yaml 64x44 1m13s 44.11M
GaitSet(AAAI2019) 87.2(87.1) gaitset.yaml 64x44 1m26s 6.31M
GaitPart(CVPR2020) 88.6(88.7) gaitpart.yaml 64x44 8m04s 3.78M
GaitGL(ICCV2021) 89.9(89.7) gaitgl.yaml 64x44 5m23s 95.62M
Model NM BG CL Configuration Input Size Inference Time Model Size
Baseline 96.3 92.2 77.6 baseline.yaml 64x44 12s 3.78M
GaitSet(AAAI2019) 95.8(95.0) 90.0(87.2) 75.4(70.4) gaitset.yaml 64x44 13s 2.59M
GaitPart(CVPR2020) 96.1(96.2) 90.7(91.5) 78.7(78.7) gaitpart.yaml 64x44 56s 1.20M
GLN*(ECCV2020) 96.4(95.6) 93.1(92.0) 81.0(77.2) gln_phase1.yaml, gln_phase2.yaml 128x88 47s/46s 8.54M / 14.70M
GaitGL(ICCV2021) 97.4(97.4) 94.5(94.5) 83.8(83.6) gaitgl.yaml 64x44 38s 3.10M

The results in the parentheses are mentioned in the papers.

Note:

  • All results are Rank@1, excluding identical-view cases.
  • The shown result of GLN is implemented without compact block.
  • Only two RTX3090 are used for infering CASIA-B, and eight are used for infering OUMVLP.

Get Started

Installation

  1. clone this repo.

    git clone https://github.com/ShiqiYu/OpenGait.git
    
  2. Install dependenices:

    • pytorch >= 1.6
    • torchvision
    • pyyaml
    • tensorboard
    • opencv-python
    • tqdm
    • py7zr

    Install dependenices by Anaconda:

    conda install tqdm pyyaml tensorboard opencv py7zr
    conda install pytorch==1.6.0 torchvision -c pytorch
    

    Or, Install dependenices by pip:

    pip install tqdm pyyaml tensorboard opencv-python py7zr
    pip install torch==1.6.0 torchvision==0.7.0
    

Prepare dataset

See prepare dataset.

Get trained model

  • Option 1:
    python misc/download_pretrained_model.py
    
  • Option 2: Go to the release page, then download the model file and uncompress it to output.

Train

Train a model by

CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/baseline/baseline.yaml --phase train
  • python -m torch.distributed.launch DDP launch instruction.
  • --nproc_per_node The number of gpus to use, and it must equal the length of CUDA_VISIBLE_DEVICES.
  • --cfgs The path to config file.
  • --phase Specified as train.
  • --log_to_file If specified, the terminal log will be written on disk simultaneously.

You can run commands in train.sh for training different models.

Test

Evaluate the trained model by

CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/baseline/baseline.yaml --phase test
  • --phase Specified as test.
  • --iter Specify a iteration checkpoint.

Tip: Other arguments are the same as train phase.

You can run commands in test.sh for testing different models.

Customize

  1. Read the detailed config to figure out the usage of needed setting items;
  2. See how to create your model;
  3. There are some advanced usages, refer to advanced usages, please.

Warning

  • Some models may not be compatible with AMP, you can disable it by setting enable_float16 False.
  • In DDP mode, zombie processes may be generated when the program terminates abnormally. You can use this command sh misc/clean_process.sh to clear them.
  • We implemented the functionality about testing while training, but it slightly affected the results. None of our published models use this functionality. You can disable it by setting with_test False.
  • Recommended Pytorch version: 1.6-1.8

Authors:

Open Gait Team (OGT)

Acknowledgement

Note: This code is only used for academic purposes, people cannot use this code for anything that might be considered commercial use.

About

A flexible and extensible framework for gait recognition. You can focus on designing your own models and comparing with state-of-the-arts easily with the help of OpenGait.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.1%
  • Shell 1.9%