Shortcuts

骨骼动作识别模型

AGCN

简介

@inproceedings{shi2019two,
  title={Two-stream adaptive graph convolutional networks for skeleton-based action recognition},
  author={Shi, Lei and Zhang, Yifan and Cheng, Jian and Lu, Hanqing},
  booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition},
  pages={12026--12035},
  year={2019}
}

模型库

NTU60_XSub

配置文件 数据格式 GPU 数量 主干网络 top1 准确率 ckpt log json
2sagcn_80e_ntu60_xsub_keypoint_3d joint 1 AGCN 86.06 ckpt log json
2sagcn_80e_ntu60_xsub_bone_3d bone 2 AGCN 86.89 ckpt log json

如何训练

用户可以使用以下指令进行模型训练。

python tools/train.py ${CONFIG_FILE} [optional arguments]

例如:以一个确定性的训练方式,辅以定期的验证过程进行 AGCN 模型在 NTU60 数据集的骨骼数据上的训练。

python tools/train.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py \
    --work-dir work_dirs/2sagcn_80e_ntu60_xsub_keypoint_3d \
    --validate --seed 0 --deterministic

例如:以一个确定性的训练方式,辅以定期的验证过程进行 AGCN 模型在 NTU60 数据集的关节数据上的训练。

python tools/train.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py \
    --work-dir work_dirs/2sagcn_80e_ntu60_xsub_bone_3d \
    --validate --seed 0 --deterministic

更多训练细节,可参考 基础教程 中的 训练配置 部分。

如何测试

用户可以使用以下指令进行模型测试。

python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments]

例如:在 NTU60 数据集的骨骼数据上测试 AGCN 模型,并将结果导出为一个 pickle 文件。

python tools/test.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py \
    checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \
    --out joint_result.pkl

例如:在 NTU60 数据集的关节数据上测试 AGCN 模型,并将结果导出为一个 pickle 文件。

python tools/test.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py \
    checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \
    --out bone_result.pkl

更多测试细节,可参考 基础教程 中的 测试某个数据集 部分。

PoseC3D

简介

@misc{duan2021revisiting,
      title={Revisiting Skeleton-based Action Recognition},
      author={Haodong Duan and Yue Zhao and Kai Chen and Dian Shao and Dahua Lin and Bo Dai},
      year={2021},
      eprint={2104.13586},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}
姿态估计结果


关键点热图三维体可视化


肢体热图三维体可视化


模型库

FineGYM

配置文件 热图类型 GPU 数量 主干网络 Mean Top-1 ckpt log json
slowonly_r50_u48_240e_gym_keypoint 关键点 8 x 2 SlowOnly-R50 93.7 ckpt log json
slowonly_r50_u48_240e_gym_limb 肢体 8 x 2 SlowOnly-R50 94.0 ckpt log json
融合预测结果 94.3

NTU60_XSub

配置文件 热图类型 GPU 数量 主干网络 Top-1 ckpt log json
slowonly_r50_u48_240e_ntu60_xsub_keypoint 关键点 8 x 2 SlowOnly-R50 93.7 ckpt log json
slowonly_r50_u48_240e_ntu60_xsub_limb 肢体 8 x 2 SlowOnly-R50 93.4 ckpt log json
融合预测结果 94.1

NTU120_XSub

配置文件 热图类型 GPU 数量 主干网络 Top-1 ckpt log json
slowonly_r50_u48_240e_ntu120_xsub_keypoint 关键点 8 x 2 SlowOnly-R50 86.3 ckpt log json
slowonly_r50_u48_240e_ntu120_xsub_limb 肢体 8 x 2 SlowOnly-R50 85.7 ckpt log json
融合预测结果 86.9

UCF101

配置文件 热图类型 GPU 数量 主干网络 Top-1 ckpt log json
slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint 关键点 8 SlowOnly-R50 87.0 ckpt log json

HMDB51

配置文件 热图类型 GPU 数量 主干网络 Top-1 ckpt log json
slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint 关键点 8 SlowOnly-R50 69.3 ckpt log json

注:

  1. 这里的 GPU 数量 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 依据 线性缩放规则,当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 如,lr=0.2 对应 8 GPUs x 16 video/gpu,以及 lr=0.4 对应 16 GPUs x 16 video/gpu。

  2. 用户可以参照 准备骨骼数据集 来获取以上配置文件使用的骨骼标注。

如何训练

用户可以使用以下指令进行模型训练。

python tools/train.py ${CONFIG_FILE} [optional arguments]

Example: 以确定性的训练,加以定期的验证过程进行 PoseC3D 模型在 FineGYM 数据集上的训练。

python tools/train.py configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py \
    --work-dir work_dirs/slowonly_r50_u48_240e_gym_keypoint \
    --validate --seed 0 --deterministic

有关自定义数据集上的训练,可以参考 Custom Dataset Training

更多训练细节,可参考 基础教程 中的 训练配置 部分。

如何测试

用户可以使用以下指令进行模型测试。

python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments]

Example: 在 FineGYM 数据集上测试 PoseC3D 模型,并将结果导出为一个 pickle 文件。

python tools/test.py configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py \
    checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \
    --out result.pkl

更多测试细节,可参考 基础教程 中的 测试某个数据集 部分。

STGCN

简介

@inproceedings{yan2018spatial,
  title={Spatial temporal graph convolutional networks for skeleton-based action recognition},
  author={Yan, Sijie and Xiong, Yuanjun and Lin, Dahua},
  booktitle={Thirty-second AAAI conference on artificial intelligence},
  year={2018}
}

模型库

NTU60_XSub

配置文件 骨骼点 GPU 数量 主干网络 Top-1 准确率 ckpt log json
stgcn_80e_ntu60_xsub_keypoint 2d 2 STGCN 86.91 ckpt log json
stgcn_80e_ntu60_xsub_keypoint_3d 3d 1 STGCN 84.61 ckpt log json

BABEL

配置文件 GPU 数量 主干网络 Top-1 准确率 类平均 Top-1 准确率 Top-1 准确率
(官方,使用 AGCN)
类平均 Top-1 准确率
(官方,使用 AGCN)
ckpt log
stgcn_80e_babel60 8 ST-GCN 42.39 28.28 41.14 24.46 ckpt log
stgcn_80e_babel60_wfl 8 ST-GCN 40.31 29.79 33.41 30.42 ckpt log
stgcn_80e_babel120 8 ST-GCN 38.95 20.58 38.41 17.56 ckpt log
stgcn_80e_babel120_wfl 8 ST-GCN 33.00 24.33 27.91 26.17* ckpt log

* 注:此数字引自原 论文, 实际公开的 模型权重 精度略低一些。

如何训练

用户可以使用以下指令进行模型训练。

python tools/train.py ${CONFIG_FILE} [optional arguments]

例如:以一个确定性的训练方式,辅以定期的验证过程进行 STGCN 模型在 NTU60 数据集上的训练

python tools/train.py configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \
    --work-dir work_dirs/stgcn_80e_ntu60_xsub_keypoint \
    --validate --seed 0 --deterministic

更多训练细节,可参考 基础教程 中的 训练配置 部分。

如何测试

用户可以使用以下指令进行模型测试。

python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments]

例如:在 NTU60 数据集上测试 STGCN 模型,并将结果导出为一个 pickle 文件。

python tools/test.py configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \
    checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \
    --out result.pkl

更多测试细节,可参考 基础教程 中的 测试某个数据集 部分。

Read the Docs v: latest
Versions
latest
stable
1.x
v1.0.0rc1
dev-1.x
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.