一、项目介绍
1.1论文
论文题目:Temporal‐enhanced graph convolution network for skeleton‐ based action recognition
论文作者:Yulai Xie | Yang Zhang| Fang Ren
论文链接:https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/cvi2.12086
论文内容:提出时间增强图卷积网络,对其中的因果卷积、3D‐GCN层、TA层进行了阐述
1.2项目内容
项目名:TE-GCN-main
项目链接:GitHub - xieyulai/TE-GCN: skeleton-based action recognition
1.3数据集
1.UAV-Human
项目中暂时只采用了这个数据集
这个数据集包含有155个类型,
2.NTU‐RGB + D
3.Kinetics‐Skeleton
二、实验步骤
1.搭建conda虚拟环境,使用Pycharm编译器,安装最新的pytorch库
2.下载数据集或者模型,打开下载链接后Skeleton在UAVHuman/ActionRecognition中,下载好后将数据集放入\UAVHuman_For_TE-GCN-main\data
3.按照UAVHuman中的README依次运行split_v1.py 、 split_v2.py 与generate_data.py运行完后文件夹里的内容如图:
4.将v1、v2中的test_data.npy、test_label.pkl、train_data.npy、train_label.pkl分别粘贴到TE-GCN-main\data下的xsub1、xsub2文件夹下
5.通过脚本训练模型
sh scripts/TRAIN_V1.sh、sh scripts/TRAIN_V2.sh
6.运行main.py文件
三、问题解决
1 运行generate_data.py时产生报错
报错部分pad the null frames with the previous frames,原因 has no skeleton
暂时未知对实验的影响,先继续跑项目
2 运行脚本scripts/TRAIN_V1.sh报错
安装Git,在pychar中使用git,然后运行
3.报错没有yaml等库
使用pip安装pip install pyyaml或其他库
4.报错FileNotFoundError: [Errno 2] No such file or directory: './config/nturgbd-cross-view/test_bone.yaml'
由于运行脚本后训练出来的文件为test.yaml,脚本和项目不太一样故改称脚本训练后的test.yaml
5.报错TypeError: load() missing 1 required positional argument: 'Loader'
将load替换为safe_load
6.FileNotFoundError: [Errno 2] No such file or directory: './runs/ntu_cs_agcn_joint-49-31300.pt'
将runs文件中的两个训练权重之一改为ntu_cs_agcn_joint-49-31300
7.AssertionError: Invalid device id
# device_ids=self.arg.device, device_ids=[0],
8.FileNotFoundError: [Errno 2] No such file or directory: './data/uav/xsub1/test_label.pkl'
不知道为什么给出的代码有很多与README不同,将xsub1放在uav中
9.
10.在main.py的257~260行可以看到作者用的pytorch版本为1.7
四、运行结果
采用给的第一个权重文件
与给出的- V1:TOP1-42.37% - V2:TOP1-68.11%
可以看到v1是相同的
采用第二个权重文件,可以看到第二个权重精确度更高