NTU-RGBD数据集下载及数据格式解析

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
将 Kinetics 数据集转换为 NTU-RGBD 数据集需要进行以下步骤: 1. 下载 Kinetics 数据集NTU-RGBD 数据集,并解压缩它们。 2. 安装 Python 和必要的依赖项(如 NumPy、Pandas 和 OpenCV)。 3. 创建一个 Python 脚本,读取 Kinetics 数据集中的所有视频文件并将其转换为 NTU-RGBD 数据集中的格式。以下是一个示例脚本: ```python import os import shutil import numpy as np import pandas as pd import cv2 # 设置路径 kinetics_path = '/path/to/kinetics/dataset' ntu_path = '/path/to/ntu-rgbd/dataset' # 读取动作类别映射 class_map = pd.read_csv(os.path.join(ntu_path, 'class_map.csv'), index_col=0) # 创建 NTU-RGBD 数据集目录 if not os.path.exists(ntu_path): os.makedirs(ntu_path) # 遍历 Kinetics 数据集中的所有视频文件 for filename in os.listdir(os.path.join(kinetics_path, 'videos')): # 获取动作类别和视频 ID class_name, video_id = filename.split('_')[:2] class_id = class_map.loc[class_name]['ntu_id'] # 创建输出目录 output_dir = os.path.join(ntu_path, 'nturgb+d_rgb', 'Skeletons', 'S001', 'C001', 'P001', class_id) if not os.path.exists(output_dir): os.makedirs(output_dir) # 读取视频文件并提取帧 cap = cv2.VideoCapture(os.path.join(kinetics_path, 'videos', filename)) frames = [] while True: ret, frame = cap.read() if not ret: break frame = cv2.resize(frame, (640, 360)) frames.append(frame) # 提取帧的关键点 keypoints = [] for frame in frames: # 使用 OpenPose 提取关键点 # 这里需要引入 OpenPose 的库 keypoint = extract_keypoints(frame) keypoints.append(keypoint) # 保存关键点数据 np.save(os.path.join(output_dir, 'S001C001P001R001A{:03d}.npy'.format(int(video_id))), keypoints) # 复制 RGB 视频文件到 NTU-RGBD 数据集目录 shutil.copyfile(os.path.join(kinetics_path, 'videos', filename), os.path.join(ntu_path, 'nturgb+d_rgb', 'avi', 'S001', 'C001', 'P001', class_id, 'A{:03d}.avi'.format(int(video_id)))) ``` 4. 运行 Python 脚本,等待转换完成。 5. 完成后,检查 NTU-RGBD 数据集目录,确保格式正确并且所有文件都已转换成功。 需要注意的是,以上示例脚本中使用了 OpenPose 库来提取帧的关键点。如果您没有安装该库,需要先安装并配置环境。另外,由于 Kinetics 数据集NTU-RGBD 数据集的标注方式不同,转换后的数据可能存在一定的误差。因此,在使用转换后的数据集进行训练或评估时,需要注意这些差异。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值