English | 简体中文
2s-AGCN是发表在CVPR2019上的一篇针对ST-GCN进行改进的文章,文章提出双流自适应卷积网络,针对原始ST-GCN的缺点进行了改进。在现有的基于GCN的方法中,图的拓扑是手动设置的,并且固定在所有图层和输入样本上。另外,骨骼数据的二阶信息(骨骼的长度和方向)对于动作识别自然是更有益和更具区分性的,在当时方法中很少进行研究。因此,文章主要提出一个基于骨架节点和骨骼两种信息融合的双流网络,并在图卷积中的邻接矩阵加入自适应矩阵,大幅提升骨骼动作识别的准确率,也为后续的工作奠定了基础(后续的骨骼动作识别基本都是基于多流的网络框架)。
数据下载及处理与CTR-GCN一致,详情请参考NTU-RGBD数据准备
模型训练参数的配置文件均在configs/recognition/agcn2s/
文件夹中,启动命令如下:
# train cross subject with bone data
python main.py --validate -c configs/recognition/agcn2s/agcn2s_ntucs_bone.yaml --seed 1
# train cross subject with joint data
python main.py --validate -c configs/recognition/agcn2s/agcn2s_ntucs_joint.yaml --seed 1
# train cross view with bone data
python main.py --validate -c configs/recognition/agcn2s/agcn2s_ntucv_bone.yaml --seed 1
# train cross view with joint data
python main.py --validate -c configs/recognition/agcn2s/agcn2s_ntucv_joint.yaml --seed 1
模型测试参数的配置文件均在configs/recognition/agcn2s/
文件夹中,启动命令如下:
# test cross subject with bone data
python main.py --test -c configs/recognition/2sagcn/2sagcn_ntucs_bone.yaml -w data/2SAGCN_ntucs_bone.pdparams
# test cross subject with joint data
python main.py --test -c configs/recognition/2sagcn/2sagcn_ntucs_joint.yaml -w data/2SAGCN_ntucs_joint.pdparams
# test cross view with bone data
python main.py --test -c configs/recognition/2sagcn/2sagcn_ntucv_bone.yaml -w data/2SAGCN_ntucv_bone.pdparams
# test cross view with joint data
python main.py --test -c configs/recognition/2sagcn/2sagcn_ntucv_joint.yaml -w data/2SAGCN_ntucv_joint.pdparams
- 通过
-c
参数指定配置文件,通过-w
指定权重存放路径进行模型测试。
模型在NTU-RGBD数据集上的测试效果如下
CS | CV | |
---|---|---|
Js-AGCN(joint) | 85.8% | 94.13% |
Bs-AGCN(bone) | 86.7% | 93.9% |
训练日志:日志
VisualDL可视化日志:VDL
模型权重如下:
CS-Js | CS-Bs | CV-JS | CV-Bs | |
---|---|---|---|---|
地址 | ntu_cs_agcn_joint | ntu_cs_agcn_bone | ntu_cv_agcn_joint | ntu_cv_agcn_bone |
python3.7 tools/export_model.py -c configs/recognition/agcn2s/agcn2s_ntucs_joint.yaml \
-p data/AGCN2s_ntucs_joint.pdparams \
-o inference/AGCN2s_ntucs_joint
上述命令将生成预测所需的模型结构文件AGCN2s_ntucs_joint.pdmodel
和模型权重文件AGCN2s_ntucs_joint.pdiparams
。
- 各参数含义可参考模型推理方法
python3.7 tools/predict.py --input_file data/example_NTU-RGB-D_sketeton.npy \
--config configs/recognition/agcn2s/2sagcn_ntucs_joint.yaml \
--model_file inference/AGCN2s_ntucs_joint/AGCN2s_ntucs_joint.pdmodel \
--params_file inference/AGCN2s_ntucs_joint/AGCN2s_ntucs_joint.pdiparams \
--use_gpu=True \
--use_tensorrt=False
- Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition, Lei Shi and Yifan Zhang and Jian Cheng and Hanqing Lu