OpenGait:首个开源步态识别框架
导言
行人步态作为一种远距离的生物识别特征,在识别时,无需受试者配合。相比于掌纹、虹膜、人脸识别,步态这个生物特征更具健壮性,不易被伪装。而步态这个生物特征,在识别时也会有许多挑战,比如:遮挡、角度变化、穿戴条件变化、光照变化等。由此,激发了许多研究者的研究兴趣。
背景
为了解决上述挑战,近几年,以基于外观的结合深度学习的网络在流行的两个步态数据集CASIA-B和OU-MVLP上取得了不错的准确率。著名的方法有,2019年AAAI的GaitSet,该方法以Set作为输入,取得了突破性的进展;2020年CVPR的GaitPart采用将特征图分块的方法,以提取局部的细粒度特征;2020年ECCV的GLN也是通过将特征图水平分块的方式,获取部分级特征;2021年ICCV的GaitGL通过3D CNN提取时空特征来获得更丰富更具判别性的特征。
痛点
有如此多的好idea,不能一窥其全貌,不能从代码中了解其本质的想法,实乃科研途中的一大憾事。俗话说,代码之下没有秘密,顶会论文说的天花乱坠,不如直接看代码来的实在。而对于idea很多,代码能力略差的同学来说,复现顶会论文相当痛苦,通常你要先搭建深度学习环境,手撸代码,调试代码bug。
福音
为了解决步态科研者的痛点,南方科技大学于仕琪老师团队开源了OpenGait这个步态识别框架,我们只用专注于网络的设计就可以了,大大减少了重复性的工作,毕竟在这个内卷的时代,效率也很重要。
OpenGait优点
支持分布式多卡训练,在大数据吞吐量的情况下提速20%以上;分布式多卡测试,跑完CASIA-B仅需15秒!(5485个序列,BaseLine,2 1080ti gpus),跑完OUMVLP仅需不到两分钟!(133780个序列,Baseline,8 1080ti gpus)支持混合精度训练,当gpu支持半精度时显存直接砍半,并提速20%~50%(视具体GPU型号而定)。友好的可视化训练过程,支持Tensorboard可视化及日志记录,可自定义添加可视化内容。支持多阶段训练及边训边测。模块化设计,常规模型可以仅通过配置文件定义,主流的操作也可以通过配置文件客制化加载。自定义网络模型便于扩展自定义损失函数便于扩展支持联合损失函数OpenGait复现了4篇顶会的SOTA算法,取得相近甚至更高的结果。1.0版本支持OU-MVLP数据集
模型训练和测试流程
注:此外OpenGait的配置文件有详细的文档说明
复现方法的性能结果
CASIA-B
Model
NM
BG
CL
Configuration
Input Size
Inference Time
Model Size
Baseline
96.3
92.2
77.6
??baseline.yaml??
64×44
12s
3.78M
??GaitSet(AAAI2019)??
95.8(95.0)
90.0(87.2)
75.4(70.4)
??gaitset.yaml??
64×44
13s
2.59M
??GaitPart(CVPR2020)??
96.1(96.2)
90.7(91.5)
78.7(78.7)
??gaitpart.yaml??
64×44
56s
1.20M
??GLN*(ECCV2020)??
96.4(95.6)
93.1(92.0)
81.0(77.2)
??gln_phase1.yaml???, ??gln_phase2.yaml??
128×88
47s/46s
8.54M / 14.70M
??GaitGL(ICCV2021)??
97.4(97.4)
94.5(94.5)
83.8(83.6)
??gaitgl.yaml??
64×44
38s
3.10M
OUMVLP
Model
Rank@1
Configuration
Input Size
Inference Time
Model Size
Baseline
86.7
??baseline.yaml??
64×44
1m13s
44.11M
??GaitSet(AAAI2019)??
87.2(87.1)
??gaitset.yaml??
64×44
1m26s
6.31M
??GaitPart(CVPR2020)??
88.6(88.7)
??gaitpart.yaml??
64×44
8m04s
3.78M
??GaitGL(ICCV2021)??
89.9(89.7)
??gaitgl.yaml??
64×44
5m23s
95.62M
项目地址
??链接??
海阔凭鱼跃,天高任鸟飞。我要加油,冲向我的理想。