Skip to content

Latest commit

 

History

History
107 lines (74 loc) · 5.75 KB

File metadata and controls

107 lines (74 loc) · 5.75 KB

English | 简体中文

2s-AGCN基于骨骼的行为识别模型

内容

模型简介

模型结构图

2s-AGCN是发表在CVPR2019上的一篇针对ST-GCN进行改进的文章,文章提出双流自适应卷积网络,针对原始ST-GCN的缺点进行了改进。在现有的基于GCN的方法中,图的拓扑是手动设置的,并且固定在所有图层和输入样本上。另外,骨骼数据的二阶信息(骨骼的长度和方向)对于动作识别自然是更有益和更具区分性的,在当时方法中很少进行研究。因此,文章主要提出一个基于骨架节点和骨骼两种信息融合的双流网络,并在图卷积中的邻接矩阵加入自适应矩阵,大幅提升骨骼动作识别的准确率,也为后续的工作奠定了基础(后续的骨骼动作识别基本都是基于多流的网络框架)。

数据准备

数据下载及处理与CTR-GCN一致,详情请参考NTU-RGBD数据准备

模型训练

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

模型测试

NTU-RGBD数据集模型测试

模型测试参数的配置文件均在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

模型推理

导出inference模型(以cs_joint为例)

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

预测引擎推理结果

预测引擎推理结果图

参考论文