当前位置:   article > 正文

【使用OpenGait 复现步态识别经典算法 GaitSet ——CASIA-B数据集】_opengait如何使用

opengait如何使用

最近在使用AutoDL云服务器跑步态识别的代码,用的是开放步态识别框架OpenGait,记录一下自己跑代码的步骤和遇到的问题以及解决方式。

这篇文章主要记录使用OpenGait 复现步态识别经典算法 GaitSet 的步骤和遇到的问题以及解决方式,用到的数据集是CASIA-B。


一、下载好主要工具包

OpenGait官方文档要求我们下载以下工具包:
pytorch >= 1.10
torchvision
pyyaml
tensorboard
opencv-python
tqdm
py7zr
kornia
einops

# 下面是我安装的工具包和版本号
pip install torch==1.13.1  # torch不要安装2.0以上的
pip install torchvision==0.8.1+cu110

pip install pyyaml==6.0
pip install tensorboard==2.6.0
pip install opencv-python==4.7.0.72
pip install tqdm==4.61.2
pip install py7zr==0.20.4
pip install kornia==0.6.12  #下载这个的时候,可能会自动卸载掉原有的torch,安装上torch2.0,要改回1.13.1
   pip uninstall torch
   pip install torch==1.13.1
pip install einops ==0.7.0

# 重点,typing-extensions虽然官方文档没提到,但是很重要。如果不指定版本号会下载一个3.X版本的,运行代码时会报错。
pip install typing-extensions==4.3.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

二、CASIA-B数据预处理

上传CASIA-B数据集到AutoDL的数据盘autodl-tmp下(放在系统盘root下当然也没问题,只是数据盘处理数据更快,空间也大),之后进行解压,然后进行数据预处理,数据预处理命令如下:

# 数据盘autodl-tmp下原本只有解压后的CASIA-B文件,经过预处理,生成了CASIA-B-pkl文件,后面进行训练用的就是CASIA-B-pkl文件
python datasets/pretreatment.py --input_path /root/autodl-tmp/CASIA-B --output_path /root/autodl-tmp/CASIA-B-pkl
  • 1
  • 2

三、OpenGait项目的结构

运行代码之前有必要讲一下OpenGait项目的结构。
OpenGait项目的结构
1、assets:对跑代码来说没用,里面是一些官方文档用的的图片,跳过。
在这里插入图片描述
2、configs:超级有用,里面是各个步态识别方法的参数配置。
在这里插入图片描述
比如我们要跑GaitSet,那就查看GaitSet的配置:
在这里插入图片描述
打开针对CASIA-B数据集的配置:
在这里插入图片描述
3、datasets:数据处理相关,主要学习pretreatment.py文件。
在这里插入图片描述
4、docs:官方文档,可以说是OpenGait的使用教程,跑代码一定要看这些文档。
在这里插入图片描述
5、misc:只有两个文件,上面那个是清理进程的,下面那个是从官网下载预训练模型的。
在这里插入图片描述
6、opengait:OpenGait的主程序,代码内容过多,后面再解释。
在这里插入图片描述
7、output:包括测试的检查点(比如第10000次、第20000次等等),TensorBoard可视化所需的event文件,以及日志文件(此处还未生成)
在这里插入图片描述
8、pretreatment.log:运行pretreatment.py进行数据预处理后保存的日志文件。
9、README.md:OpenGait总的说明文档
10、test.sh和train.sh文件:功能和在linux终端输入执行命令一样,.sh文件只是你提前把要运行的命令写进去再运行.sh文件就行。
在这里插入图片描述

①比如我要运行GaitSet,我可以在linux终端输入:

# 必须进入到OpenGait项目下
cd OpenGait
# 使用0、1、2、3号共4块GPU进行训练,选择的cfgs配置文件的路径为./configs/gaitset/gaitset.yaml,运行train命令,记录到日志
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./configs/gaitset/gaitset.yaml --phase train  --log_to_file
  • 1
  • 2
  • 3
  • 4

由于我在gaitset.yaml配置文件中,开启了测试伴随训练with_test: true,所以每隔10000次会自动测试,如果不开启测试伴随训练with_test: false,那么还需要你在完成训练后,在终端输入以下命令进行测试:

# 注意phase后面改为了test
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./configs/gaitset/gaitset.yaml --phase test 
  • 1
  • 2

②上面是在linux终端直接输入一长串命令的方式,那.sh文件有什么作用呢?我们还可以通过直接运行.sh文件从而运行GaitSet,前提是在train.sh文件把CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./configs/gaitset/gaitset.yaml --phase train --log_to_file命令写进去(不要注释掉),然后在linux终端输入:

sh train.sh
  • 1

接下来也会开始运行GaitSet的训练。

四、运行结果

NMBGCL备注
95.087.270.4原文
96.1590.4474.56复现

在这里插入图片描述

五、问题及解决

1、ImportError: cannot import name ‘TypeGuard’ from ‘typing_extensions’
原因分析:typing_extensions版本过低,我出现这个问题的时候typing-extensions的版本号是3.7.4.3
解决办法:卸载低版本,安装高版本

pip uninstall typing-extensions
pip install typing-extensions==4.3.0
  • 1
  • 2

2、ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.4.0 requires typing-extensions~=3.7.4, but you have typing-extensions 4.3.0 which is incompatible.、
原因分析:我安装的tensorflow是2.4.0的,它需要typing-extensions是3.7.4的
解决办法:卸载掉tensorflow(不影响后续跑代码),因为我的Cuda版本是11.0,与之对应的tensorflow版本只能是2.4.0,又因为typing-extensions必须得是高版本,只能卸载掉2.4.0的tensorflow了。

pip uninstall tensorflow 
  • 1

然后就成功运行起来啦:
在这里插入图片描述


总结

欢迎使用OpenGait研究步态识别的伙伴进行交流

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/436949
推荐阅读
相关标签
  

闽ICP备14008679号