mmaction2 指南 (3) 添加新的数据集

本文档介绍了如何在mmaction2中添加新的数据集,包括将数据重新组织为已有的标注格式,如rawframe和video标注,以及自定义数据集的创建。通过继承BaseDataset并重写相应方法,可以实现在线和离线转换。同时,提供了自定义数据集的例子以及如何支持混合数据训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mmaction2 指南

3. 添加新的数据集

自定义行为识别数据集

新的数据重新组织到已有格式

重新构建标注文件就行

  • 标注格式一:
    rawframe标注【路径,帧数,类别】
some/directory-1 163 1
some/directory-2 122 1
some/directory-3 258 2
some/directory-4 234 2
some/directory-5 295 3
some/directory-6 121 3
  • 标注格式二:
    video标注【路径、类别】
some/path/000.mp4 1
some/path/001.mp4 1
some/path/002.mp4 2
some/path/003.mp4 2
some/path/004.mp4 3
some/path/005.mp4 3
  • 标注格式三:
json格式的标注

{
  "video1": {
      "duration_second": 211.53,
      "duration_frame": 6337,
      "annotations": [
          {
              "segment": [
                  30.025882995319815,
                  205.2318595943838
              ],
              "label": "Rock climbing"
          }
      ],
      "feature_frame": 6336,
      "fps": 30.0,
      "rfps": 29.9579255898
  },
  "video2": {
      "duration_second": 26.75,
      "duration_frame": 647,
      "annotations": [
          {
              "segment": [
                  2.578755070202808,
                  24.914101404056165
              ],
              "label": "Drinking beer"
          }
      ],
      "feature_frame": 624,
      "fps": 24.0,
      "rfps": 24.1869158879
  }
}

自定义数据集 class

  • online转换

继承 BaseDataset 重写 load_annotations(self), evaluate(self, results, metrics, logger) and dump_results(self, results, out) 可参考 RawframeDataset, VideoDataset or ActivityNetDataset.

  • offline转换
    修改数据标注文件,让其符合RawframeDataset, VideoDataset or ActivityNetDataset的调用形式

  • 例子:自己改下标注文件,调用RawframeDataset

...
# dataset settings
dataset_type = 'RawframeDataset'
data_root = 'path/to/your/root'
data_root_val = 'path/to/your/root_val'
ann_file_train = 'data/custom/custom_train_list.txt'
03-18
<think>好的,我现在需要处理用户关于PoseC3D的安装和使用教程的请求。首先,用户提到了系统级指令,我需要确保回答符合格式要求,比如行内数学表达式用$...$,独立公式用$$...$$,正确使用LaTeX,中文回答,生成相关问题,引用标识等。 用户可能的需求是寻找安装指南或教程,或者解决使用中遇到的问题。根据参考的引用[1],用户提到了自定义数据集的训练,因此我需要在回答中包含这部分的信息,并在适当的位置添加引用标识。 首先,我需要整理PoseC3D的基本信息,比如它是基于MMAction2框架的动作识别模型,使用骨骼关键点数据。安装步骤应包括依赖安装、MMAction2的安装、PoseC3D的配置等。同时,用户可能对快速测试和自定义数据集训练感兴趣,这部分需要详细说明步骤,并引用提供的参考链接。 接下来,我需要确保每个步骤的代码块正确,使用正确的语法,比如Python代码的标记。同时,生成的相关问题需要与PoseC3D的应用场景、优化方法、常见问题相关,这样用户能进一步探索。 在回答结构上,要分步骤清晰,从环境准备到安装、配置、测试、自定义训练,逐步引导用户。同时,注意引用标识的位置,比如在提到自定义数据集训练时添加[^1]。 另外,要检查是否有遗漏的信息,比如是否需要安装PyTorch、CUDA等依赖,这些可能影响用户安装过程。需要提醒用户根据自身环境调整安装命令,比如指定PyTorch版本。 最后,生成的问题需要覆盖用户可能关心的其他方面,比如应用场景、优化方法、常见问题,这样用户能通过这些问题进一步获取所需信息。同时,确保所有数学公式或代码块都正确使用LaTeX格式,避免格式错误。 总结来说,我需要按照用户的指示构建一个结构清晰、步骤明确、引用正确的中文回答,并生成相关的扩展问题,帮助用户全面了解PoseC3D的安装和使用流程。</think>### PoseC3D 安装与使用教程 #### 1. 环境准备 - **依赖项**:需安装 Python ≥3.7、PyTorch ≥1.6 和 CUDA ≥10.1。推荐使用 conda 管理环境: ```bash conda create -n posec3d python=3.8 conda activate posec3d conda install pytorch torchvision cudatoolkit=11.3 -c pytorch ``` - **MMAction2 框架**:PoseC3D 基于 MMAction2 实现,需先安装: ```bash pip install mmcv-full==1.5.0 git clone https://github.com/open-mmlab/mmaction2.git cd mmaction2 pip install -r requirements/build.txt pip install -v -e . ``` #### 2. 安装 PoseC3D - 从官方仓库克隆代码: ```bash git clone https://github.com/open-mmlab/mmaction2 # PoseC3D 代码已包含在 MMAction2 中 ``` - 下载预训练模型: ```bash wget https://download.openmmlab.com/mmaction/posec3d/posec3d_kinetics400.pth ``` #### 3. 快速测试 运行示例代码验证安装: ```python from mmaction.apis import inference_recognizer, init_recognizer config_path = &#39;configs/skeleton/posec3d/slowonly_r50_8xb16-u48-240e_ntu60-xsub-keypoint.py&#39; checkpoint_path = &#39;posec3d_kinetics400.pth&#39; model = init_recognizer(config_path, checkpoint_path, device=&#39;cuda:0&#39;) result = inference_recognizer(model, &#39;demo.mp4&#39;) print(result) ``` #### 4. 自定义数据集训练 1. **数据准备**:需将骨骼关键点数据整理为 `.pkl` 格式,目录结构如下: ``` data/ ├── train.pkl ├── val.pkl └── annotations.txt ``` 2. **修改配置文件**:在 `configs/skeleton/posec3d/` 下调整数据集路径和类别数[^1]。 3. **启动训练**: ```bash python tools/train.py configs/skeleton/posec3d/custom_config.py --validate ``` #### 5. 常见问题 - **依赖冲突**:确保 `mmcv-full` 版本与 PyTorch/CUDA 匹配。 - **显存不足**:在配置文件中减小 `batch_size` 或使用梯度累积。 - **骨骼数据生成**:可使用 MMPose 提取关键点。 ```python # 示例:用 MMPose 提取视频关键点 from mmpose.apis import inference_top_down_pose_model pose_model = init_pose_model(&#39;configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w48_coco_256x192.py&#39;, &#39;hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth&#39;) keypoints = inference_top_down_pose_model(pose_model, &#39;input_video.mp4&#39;) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值