PoseC3D基于骨骼的行为识别模型

July 8, 2022 · View on GitHub

English | 简体中文

PoseC3D基于骨骼的行为识别模型


内容

模型简介

人体骨架作为人类行为的一种简洁的表现形式,近年来受到越来越多的关注。许多基于骨架的动作识别方法都采用了图卷积网络(GCN)来提取人体骨架上的特征。尽管在以前的工作中取得了积极的成果,但基于GCN的方法在健壮性、互操作性和可扩展性方面受到限制。在本文中,作者提出了一种新的基于骨架的动作识别方法PoseC3D,它依赖于3D热图堆栈而不是图形序列作为人体骨架的基本表示。与基于GCN的方法相比,PoseC3D在学习时空特征方面更有效,对姿态估计噪声更具鲁棒性,并且在跨数据集环境下具有更好的通用性。此外,PoseC3D可以在不增加计算成本的情况下处理多人场景,其功能可以在早期融合阶段轻松与其他模式集成,这为进一步提升性能提供了巨大的设计空间。在四个具有挑战性的数据集上,PoseC3D在单独用于Keletons和与RGB模式结合使用时,持续获得优异的性能。

数据准备

UCF-101-Skeleton数据集来自mmaction2项目,是由ResNet50作为主干网的Faster-RCNN识别人类,然后使用HRNet-w32实现动作估计。地址如下:

https://github.com/open-mmlab/mmaction2/tree/master/tools/data/skeleton

以及预训练模型下载地址:

https://aistudio.baidu.com/aistudio/datasetdetail/140593

模型训练

UCF101数据集训练

  • UCF101数据集使用单卡训练,启动命令如下:
python3.7 main.py --validate -c configs/recognition/posec3d/posec3d.yaml --weights res3d_k400.pdparams
  • 您可以自定义修改参数配置,以达到在不同的数据集上进行训练/测试的目的,参数用法请参考config

模型测试

UCF101数据集模型测试

  • 模型测试的启动命令如下:
python3.7 main.py --test -c configs/recognition/posec3d/posec3d.yaml  -w output/PoseC3D/PoseC3D_epoch_0012.pdparams
  • 通过-c参数指定配置文件,通过-w指定权重存放路径进行模型测试。

模型在UCF101数据集上baseline实验精度如下:

Test_DataTop-1checkpoints
UCF101 test187.05PoseC3D_ucf101.pdparams

模型推理

导出inference模型

python3.7 tools/export_model.py -c configs/recognition/posec3d/posec3d.yaml \
                                -p data/PoseC3D_ucf101.pdparams \
                                -o inference/PoseC3D

上述命令将生成预测所需的模型结构文件PoseC3D.pdmodel和模型权重文件PoseC3D.pdiparams

使用预测引擎推理

python3.7 tools/predict.py --input_file data/example_UCF101_skeleton.pkl\
                           --config configs/recognition/posec3d/posec3d.yaml \
                           --model_file inference/PoseC3D/PoseC3D.pdmodel \
                           --params_file inference/PoseC3D/PoseC3D.pdiparams \
                           --use_gpu=True \
                           --use_tensorrt=False

输出示例如下:

Current video file: data/example_UCF101_skeleton.pkl
	top-1 class: 0
	top-1 score: 0.6731489896774292

可以看到,使用在UCF101上训练好的PoseC3D模型对data/example_UCF101_skeleton.pkl进行预测,输出的top1类别id为0,置信度为0.67。

参考论文