骨骼动作识别模型¶
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 |
注:
如何训练¶
用户可以使用以下指令进行模型训练。
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
更多测试细节,可参考 基础教程 中的 测试某个数据集 部分。