百度BML&飞桨训练营(十三)花样滑冰选手骨骼点识别--AGCN&STGCN

花样滑冰选手骨骼点识别(AGCN&STGCN)

紧跟着冬奥会的一个视觉项目,非常有意思。可以检测选手的骨骼点识别。

人体运动分析是近几年许多领域研究的热点问题。在学科的交叉研究上,人体运动分析涉及到计算机科学、运动人体科学、环境行为学和材料科学等。随着研究的深入以及计算机视觉、5G通信的飞速发展,人体运动分析技术已应用于自动驾驶、影视创作、安防异常事件监测和体育竞技分析、康复等实际场景人体运动分析已成为人工智能领域研究的前沿课题。目前的研究数据普遍缺少细粒度语义信息,导致现存的分割或识别任务缺少时空细粒度动作语义模型。此类研究在竞技体育、运动康复、日常健身等方面有非常重大的意义。相比于图片的细粒度研究,时空细粒度语义的人体动作具有动作的类内方差大、类间方差小这一特点,这将导致由细粒度语义产生的一系列问题,利用粗粒度语义的识别模型进行学习难得获得理想的结果。

基于飞桨实现花样滑冰选手骨骼点动作识别大赛采用PaddleVideo中的ST-GCN模型,就能得到还不错的效果。也可以使用优化后的模型AGCN,获取更高的精度。

数据集介绍

本赛题数据集旨在通过花样滑冰研究人体的运动。在花样滑冰运动中,人体姿态和运动轨迹相较于其他运动呈现复杂性强、类别多的特点,有助于细粒度图深度学习新模型、新任务的研究。

在数据集中,所有的视频素材从2017 到2018 年的花样滑冰锦标赛中采集。源视频素材中视频的帧率被统一标准化至每秒30 帧,并且图像大小是1080 * 720 来保证数据集的相对一致性。之后我们通过2D姿态估计算法Open Pose对视频进行逐帧骨骼点提取,最后以.npy格式保存数据集。

训练数据集与测试数据集的目录结构如下所示:

train_data.npy
train_label.npy
test_A_data.npy
test_B_data.npy  # B榜测试集后续公开

其中train_label.npy通过np.load()读取后会得到一个一维张量,每一个元素为一个值在0-29之间的整形变量代表动作的标签;data.npy文件通过np.load()读取后,会得到一个形状为N×C×T×V×M的五维张量,每个维度的具体含义如下:

维度符号表示维度值大小维度含义补充说明
N样本数代表N个样本
C3分别代表每个关节点的x,y坐标和置信度每个x,y均被放缩至-1到1之间
T1500代表动作的持续时间长度,共有1500帧有的动作的实际长度可能不足1500,例如可能只有500的有效帧数,我们在其后重复补充0直到1500帧,来保证T维度的统一性
V25代表25个关节点具体关节点的含义可看下方的骨架示例图
M1代表1个运动员个数

骨架示例图:

项目环境准备

进入BML主页,点击立即使用
🔗:https://ai.baidu.com/bml/
图片

step2:点击Notebook,创建“通用任务”
图片

step3:填写任务信息。

图片

第二步:下载数据集

下载链接:https://aistudio.baidu.com/aistudio/datasetdetail/128506
四个文件都需要下载
图片

第三步:下载任务操作模板
下载链接:https://aistudio.baidu.com/aistudio/datasetdetail/128507
图片

4.上传本次Notebook操作模型、数据集、测试集,共5个文件
图片

第一步:环境准备

1.下载PaddleVideo、
图片

2.安装PaddleVideo的相关依赖
图片

图片

5.修改配置文件(数据路径),找到对应文件,打开,修改训练集和测试集路径
图片

图片

改成这样(必须英文输入)
图片

6.保存yaml文件和Notebook文件
图片

图片

在这里插入图片描述

模型训练

3.进行模型训练,约需要半小时训练完成。
训练结果保存在PaddleVideo/output文件夹下
图片

如果你想调整训练参数,可以在configs/recognition/stgcn/stgcn_fsd.yaml文件中找到网络结构与数据路径。
图片

表示我们使用的是ST-GCN算法,framework为RecognizerGCN,backbone是时空图卷积网络STGCN,head使用对应的STGCNHead,数据集分类采用30分类 (用若用户使用10分类数据集,请在此更改为num_classes:10)。
在这里插入图片描述

若修改为10分类训练,除了修改数据集路径之外,在上一步网络结构中需要修改num_classes。(可以通过降低batch_size来提升实验效果,但是会加长训练时长)

4.进行模型测试
图片

本案例中自带训练权重
通过-c参数指定配置文件,通过-w指定权重存放路径进行模型测试。
ST-GCN模型实验精度

本案例仅选用优化后单模型ST-GCN进行试验,分别在FSD30分类与10分类的测试集下计算模型精度。模型优化策略选用了数据平均抽帧(降维),随机可学习骨骼点子图划分、通过矩阵拼接替换爱因斯坦求和约定操作。下表展示了ST-GCN模型在不同测试集下实验精度结果(单卡NVIDIA GeForce RTX 3070 Ti)

数据集类别 Test Data Top-1精度

请添加图片描述

在FSD10分类下需要修改 configs/recognition/stgcn/stgcn_fsd.yaml 文件中num_classes、batch_size等参数。通过修改参数(eg. batch_size:8,16),可以达到91%左右的测试集精度。

在这里插入图片描述

模型导出

在安装环境依赖后新增一行代码并运行(在安装环境依赖前也可以),升级一下paddlepaddle
代码:!python -m pip install paddlepaddle-gpu==2.1.3.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
图片

4.进行模型导出,代码有更新,需要替换

更新后的代码:!python3.7 /home/work/PaddleVideo/tools/export_model.py -c /home/work/PaddleVideo/configs/recognition/stgcn/stgcn_fsd.yaml -p /home/work/PaddleVideo/output/STGCN/STGCN_epoch_00090.pdparams -o /home/work/PaddleVideo/output/inference

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

代码中的参数含义可参考↓:https://github.com/PaddlePaddle/PaddleVideo/blob/release/2.0.0/docs/zh-CN/start.md#2-模型推理

图片

导出后的模型就在 /home/work/PaddleVideo/output/inference里

导出成功界面如下
图片

5.进行模型预测,代码有更新,需要替换

更新后的代码:
!python3.7 /home/work/PaddleVideo/tools/predict.py
–input_file /home/work/PaddleVideo/data/fsd10/example_skeleton.npy
–config /home/work/PaddleVideo/configs/recognition/stgcn/stgcn_fsd.yaml
–model_file /home/work/PaddleVideo/output/inference/STGCN.pdmodel
–params_file /home/work/PaddleVideo/output/inference/STGCN.pdiparams
–use_gpu=True
–use_tensorrt=False

图片

按照上图中的代码注释,确认一下文件名

模型推理成功的截图:
图片

图片

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 百度BML(Baidu Machine Learning)是一个人工智能(AI)开发平台,旨在为开发者和企业提供强大而全面的AI能力。BML集成了多种技术和工具,如自然语言处理(NLP)、图像识别、语音识别等,可用于构建各类AI应用。 首先,BML提供了丰富的开发工具和API接口,帮助开发者快速构建各种AI应用。无论是大规模的企业级项目还是小型个人应用,BML都有相应的解决方案。开发者可以使用BML提供的高质量模型和数据集,节省了繁琐的模型训练和调优的过程,加快了开发速度。 其次,BML具备强大的AI能力,可以实现多种复杂的任务。例如,开发者可以通过BML实现智能客服系统,使计算机可以理解和回答用户的问题,提升了用户体验。同时,开发者也可以利用BML的图像识别技术,实现物体识别、人脸识别等功能。这些功能使得开发者能够开发出更加智能化的应用。 此外,BML还具备高度可扩展性和灵活性。无论是基于云端还是边缘设备,BML都能提供支持。开发者可以根据自己的需求,选择适合自己的计算资源和部署方式。同时,BML还支持多种编程语言和开发环境,使得开发者能够轻松上手。 总的来说,百度BML作为一款AI开发平台,提供了丰富的工具和API接口,具备强大的AI能力,同时具有高度可扩展性和灵活性。这使得开发者能够更加便捷地构建各类AI应用,推动人工智能技术的发展。 ### 回答2: 百度BML(Baidu Mind Learning)是百度公司开发的一款人工智能(AI)开发平台。BML旨在为开发者提供一个全方位的AI开发环境,使他们能够轻松构建和部署各种AI模型和应用。 首先,BML提供了丰富的AI模型和算法库,包括自然语言处理、机器学习、图像识别等领域的模型和算法。开发者可以根据自己的需求选择适合的模型,无需从头开始设计和实现,大大提高了开发效率。 其次,BML提供了一套完整的开发工具和接口,方便开发者进行模型训练、调优和测试。开发者可以使用BML的IDE(集成开发环境)进行代码编写和调试,还可以通过API接口与其他系统进行集成。BML支持多种编程语言,如Python和Java,方便不同开发者的使用。 另外,BML还提供了丰富的数据集和标注工具,帮助开发者进行数据预处理和标注。这对于开发者来说非常重要,因为良好的数据集和标注能够显著提高模型的性能和准确性。 最后,BML还提供了云端部署和管理功能,使开发者可以方便地将自己的AI模型部署到云端,实现大规模的应用和扩展。BML的云计算平台还可以实时监控和管理模型的运行情况,对模型进行更新和优化。 总之,百度BML是一款功能强大的AI开发平台,提供了丰富的模型和算法库、完整的开发工具和接口、丰富的数据集和标注工具,以及云端部署和管理功能。开发者可以利用BML高效地构建和部署各种AI模型和应用,加速人工智能技术的发展和应用。 ### 回答3: 百度BML是一种AI开发平台,它帮助开发者快速构建和部署自然语言处理、计算机视觉和语音识别人工智能模型的应用。BML提供了一系列丰富的API和工具,以帮助开发者将AI技术应用到自己的产品和服务中。 首先,BML提供了高效的自然语言处理API。开发者可以使用这些API构建智能对话系统、文本分析和情感分析等功能。通过BML的语言处理技术,开发者可以实现无缝对接用户输入和输出,并提供智能化的响应和建议。 其次,BML还提供了强大的计算机视觉API。开发者可以使用这些API实现图像识别、人脸识别和图像搜索等功能。通过BML的计算机视觉技术,开发者可以将图像和视频转化为结构化数据,并进行更进一步的处理和分析。 另外,BML还包括了先进的语音识别API。开发者可以使用这些API构建语音助手、语音转化为文本和声纹识别等功能。通过BML的语音识别技术,开发者可以将语音信息转化为可操作的文本数据,并与其他的业务逻辑进行结合。 总的来说,百度BML提供了丰富的AI开发接口和工具,帮助开发者快速构建和部署各种人工智能应用。通过利用BML的强大功能,开发者可以轻松实现自然语言处理、计算机视觉和语音识别等复杂的AI技术,并将其应用到自己的产品和服务中,提升用户体验和增加商业价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翼达口香糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值