OpenGait is a flexible and extensible gait recognition project provided by the Shiqi Yu Group and supported in part by WATRIX.AI.
- [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.
- 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
andlogging
to log everything, which looks pretty.
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.
-
clone this repo.
git clone https://github.com/ShiqiYu/OpenGait.git
-
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
See prepare dataset.
- 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 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 ofCUDA_VISIBLE_DEVICES
.--cfgs
The path to config file.--phase
Specified astrain
.
--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.
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 astest
.--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.
- Read the detailed config to figure out the usage of needed setting items;
- See how to create your model;
- There are some advanced usages, refer to advanced usages, please.
- Some models may not be compatible with
AMP
, you can disable it by settingenable_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
Open Gait Team (OGT)
- Chao Fan (樊超), [email protected]
- Chuanfu Shen (沈川福), [email protected]
- Junhao Liang (梁峻豪), [email protected]
- GLN: Saihui Hou (侯赛辉)
- GaitGL: Beibei Lin (林贝贝)
- GREW: GREW TEAM
Note: This code is only used for academic purposes, people cannot use this code for anything that might be considered commercial use.