OpenGait: The First Open Source Gait Recognition Framework
preface
As a long- distance biometric feature, pedestrian gait does not require the subject's cooperation in recognition. Compared with palm print , iris , and face recognition , gait is a more robust biological feature and is not easily camouflaged. The biological feature of gait will also have many challenges in recognition , such as: occlusion , angle changes , changes in wearing conditions, changes in lighting , etc. As a result, the research interest of many researchers has been stimulated.
background
To address the above challenges, appearance-based networks combined with deep learning have achieved good accuracy on two popular gait datasets, CASIA-B and OU-MVLP, in recent years. Well -known methods include AAAI's GaitSet in 2019 , which uses Set as input and achieved breakthrough progress; CVPR's GaitPart in 2020 adopts the method of dividing feature maps into blocks to extract local fine-grained features; 2020 ECCV The GLN also obtains partial-level features by horizontally dividing the feature map; in 2021, ICCV's GaitGL extracts spatiotemporal features through 3D CNN to obtain richer and more discriminative features.
Pain points
There are so many good ideas, and it is a great pity that we cannot see the whole picture and understand their essence from the code. As the saying goes, there are no secrets under the code. It is better to look at the code directly. For students with a lot of ideas and poor coding skills, it is quite painful to reproduce the top conference papers. Usually, you need to build a deep learning environment, code by hand, and debug code bugs.
Gospel
In order to solve the pain points of gait researchers, the team of Mr. Yu Shiqi from Southern University of Science and Technology has open sourced OpenGait, a gait recognition framework. We only need to focus on the design of the network, which greatly reduces the repetitive work. In the age of volume, efficiency is also very important.
OpenGait Advantages
- Support distributed multi-card training, speed up by more than 20% in the case of large data throughput; distributed multi-card test, it only takes 15 seconds to run CASIA-B! (5485 sequences, BaseLine, 2 1080ti gpus), it takes less than two minutes to run OUMVLP! (133780 sequences, Baseline, 8 1080ti gpus)
- Support mixed precision training, when the GPU supports half precision, the video memory is directly cut in half, and the speed is increased by 20% to 50% (depending on the specific GPU model).
- Friendly visualization of the training process, support for Tensorboard visualization and logging, and customizable visualization content.
- Support multi-stage training and testing while training.
- Modular design, conventional models can be defined only through configuration files, and mainstream operations can also be customized and loaded through configuration files.
- Custom network model for easy extensibility
- Custom loss function for easy extension
- Support joint loss function
- OpenGait reproduced the SOTA algorithm of 4 top conferences, and achieved similar or even higher results.
- Version 1.0 supports the OU-MVLP dataset
Model training and testing process
Note: In addition, the OpenGait configuration file has detailed documentation
Reproduce the performance results of the method
CASIA-B
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 |
OUMVLP
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 |