基于MMSkeleton框架构建自定义骨骼数据集指南

基于MMSkeleton框架构建自定义骨骼数据集指南

【免费下载链接】mmskeleton A OpenMMLAB toolbox for human pose estimation, skeleton-based action recognition, and action synthesis. 【免费下载链接】mmskeleton 项目地址: https://gitcode.com/gh_mirrors/mm/mmskeleton

前言

MMSkeleton是一个专注于骨骼动作识别的开源框架,它支持多种骨骼数据格式。本文将详细介绍如何在该框架下构建自定义的骨骼数据集,包括从视频源提取骨骼数据以及直接使用已有骨骼数据的两种方式。

数据集格式说明

MMSkeleton框架支持两种主要的数据格式:

  1. .npy格式:NumPy数组格式,适合高效存储和读取
  2. .json格式:推荐格式,具有更好的可读性和扩展性

JSON数据结构详解

JSON格式的骨骼数据包含三个主要部分:

{
    "info": {
        "video_name": "示例视频.mp4",
        "resolution": [宽度, 高度],
        "num_frame": 总帧数,
        "num_keypoints": 关键点数量,
        "keypoint_channels": ["x", "y", "score"],
        "version": "数据版本"
    },
    "annotations": [
        {
            "frame_index": 帧序号,
            "id": 检测ID,
            "person_id": 人物ID,
            "keypoints": [[x坐标, y坐标, 置信度], ...]
        },
        ...
    ],
    "category_id": 动作类别ID
}

其中:

  • keypoints数组中的每个元素代表一个身体关键点
  • score表示该关键点的检测置信度
  • category_id对应动作类别,若未标注则为-1

从视频构建数据集

准备工作

  1. 准备视频文件:建议将同类动作的视频放在同一目录
  2. 确保视频命名规范,便于后续管理

处理流程

  1. 视频解析:框架会逐帧读取视频
  2. 人物检测:使用预训练的检测模型定位视频中的人物
  3. 姿态估计:对检测到的人物进行关键点提取
  4. 数据存储:将提取的骨骼序列保存为JSON格式

执行命令示例

mmskl configs/utils/build_dataset_example.yaml \
    --video_dir 视频目录 \
    --category_annotation 类别标注文件 \
    --out_dir 输出目录 \
    --gpus GPU设备号

类别标注文件格式

类别标注文件采用JSON格式,包含两个部分:

{
    "categories": ["类别1", "类别2", ...],
    "annotations": {
        "视频文件名1.mp4": {"category_id": 0},
        "视频文件名2.mp4": {"category_id": 1},
        ...
    }
}

使用已有骨骼数据

如果已有骨骼数据,只需将其转换为上述JSON格式即可直接使用。转换时需注意:

  1. 关键点顺序需与框架预期一致
  2. 确保坐标系和归一化方式正确
  3. 置信度分数范围应在[0,1]之间

高级自定义

对于特殊需求,可以自定义数据加载器:

  1. 继承基础数据加载器类
  2. 实现数据读取和预处理逻辑
  3. 在配置文件中指定自定义加载器
# 示例自定义数据加载器
class CustomDataLoader(BaseDataLoader):
    def __init__(self, ...):
        # 初始化代码
        pass
    
    def load_data(self, ...):
        # 自定义数据加载逻辑
        pass

模型训练与测试

构建好数据集后,可以使用ST-GCN等模型进行训练:

# 训练命令
mmskl configs/recognition/st_gcn/自定义配置/train.yaml

# 测试命令
mmskl configs/recognition/st_gcn/自定义配置/test.yaml --checkpoint 模型路径

常见问题与建议

  1. 数据质量问题

    • 确保视频中人物清晰可见
    • 复杂场景建议使用更强大的检测模型
    • 可对提取的骨骼数据进行可视化检查
  2. 性能优化

    • 批量处理视频提高效率
    • 合理设置GPU数量加速处理
    • 对大视频可考虑分段处理
  3. 扩展性考虑

    • 为数据集添加更多元信息
    • 考虑多视角数据融合
    • 设计灵活的数据增强策略

结语

通过本文介绍,您应该已经掌握了在MMSkeleton框架下构建自定义骨骼数据集的方法。无论是从原始视频提取还是使用现有骨骼数据,合理的数据组织方式都是后续模型训练成功的基础。建议在实际应用中根据具体场景调整数据处理流程,以获得最佳性能。

【免费下载链接】mmskeleton A OpenMMLAB toolbox for human pose estimation, skeleton-based action recognition, and action synthesis. 【免费下载链接】mmskeleton 项目地址: https://gitcode.com/gh_mirrors/mm/mmskeleton

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

抵扣说明:

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

余额充值