five

CVML-TueAI/HMDB51

收藏
Hugging Face2025-12-10 更新2025-12-20 收录
下载链接:
https://hf-mirror.com/datasets/CVML-TueAI/HMDB51
下载链接
链接失效反馈
官方服务:
资源简介:
--- dataset_info: features: - name: video_path dtype: string - name: label dtype: string - name: subset dtype: int64 splits: - name: split1 num_bytes: 636609 num_examples: 6766 - name: split2 num_bytes: 636609 num_examples: 6766 - name: split3 num_bytes: 636609 num_examples: 6766 download_size: 351201 dataset_size: 1909827 configs: - config_name: default data_files: - split: split1 path: data/split1-* - split: split2 path: data/split2-* - split: split3 path: data/split3-* --- # 📘 HMDB51 Dataset (with Protocol Splits + Video Streaming Support) This repository hosts the **HMDB51** human action recognition dataset in a format optimized for modern deep learning research. It provides: - Three official evaluation protocols (`split1`, `split2`, `split3`) - JSONL metadata files containing action labels and train/test assignments - Raw video files stored directly on HuggingFace Hub - Optional **WebDataset** tar shards for high-performance streaming --- ## 📁 Folder Layout ``` HMDB51/ │ ├── metadata_split1.jsonl ├── metadata_split2.jsonl ├── metadata_split3.jsonl │ ├── Videos/ │ ├── brush_hair/ │ ├── climb/ │ └── ... (all 51 classes) │ └── webdataset/ ├── 000000.tar ├── 000001.tar └── ... ``` Each JSONL record: ```json { "video_path": "Videos/brush_hair/example.avi", "label": "brush_hair", "subset": 1 } ``` --- ## 🔹 1. Load Metadata (HF-native) ```python from datasets import load_dataset ds = load_dataset("json", data_files="metadata_split2.jsonl")["train"] train = ds.filter(lambda x: x["subset"] == 1) test = ds.filter(lambda x: x["subset"] == 2) ``` --- ## 🔹 2. Load a Video File ### Decord ```python from decord import VideoReader vr = VideoReader(train[0]["video_path"]) frame0 = vr[0] ``` ### TorchVision ```python from torchvision.io import read_video video, audio, info = read_video(train[0]["video_path"]) ``` --- ## 🔹 3. WebDataset Version (Optional) ```python import webdataset as wds, jsonlines ids = [rec["video_path"] for rec in jsonlines.open("metadata_split2.jsonl") if rec["subset"]==1] train_wds = wds.WebDataset("webdataset/*.tar").select(lambda s: s["__key__"] in ids) ``` --- ## 🔹 4. PyTorch DataLoader Example ```python from torch.utils.data import Dataset, DataLoader from decord import VideoReader class VideoDataset(Dataset): def __init__(self, subset): self.subset = subset def __getitem__(self, i): item = self.subset[i] vr = VideoReader(item["video_path"]) return vr.get_batch([0,8,16]), item["label"] def __len__(self): return len(self.subset) loader = DataLoader(VideoDataset(train), batch_size=4) ``` --- ## 🔹 5. Protocol Files ``` metadata_split1.jsonl metadata_split2.jsonl metadata_split3.jsonl ``` Each matches the official HMDB51 evaluation protocol. --- ## 📚 Citation ```bibtex @inproceedings{kuehne2011hmdb, title={HMDB: a large video database for human motion recognition}, author={Kuehne, Hildegard and Jhuang, Hueihan and Garrote, Est{'\i}baliz and Poggio, Tomaso and Serre, Thomas}, booktitle={2011 International conference on computer vision}, pages={2556--2563}, year={2011}, organization={IEEE} } ``` ---

--- dataset_info: 特征: - 名称: video_path 数据类型: string - 名称: label 数据类型: string - 名称: subset 数据类型: int64 数据划分: - 名称: split1 字节大小: 636609 样本数量: 6766 - 名称: split2 字节大小: 636609 样本数量: 6766 - 名称: split3 字节大小: 636609 样本数量: 6766 下载总大小: 351201 数据集总占用大小: 1909827 配置项: - 配置名称: default 数据文件: - 划分: split1 路径: data/split1-* - 划分: split2 路径: data/split2-* - 划分: split3 路径: data/split3-* --- # 📘 HMDB51 数据集(带官方划分协议 + 视频流式加载支持) 本仓库托管**HMDB51**人类动作识别数据集,采用适配现代深度学习研究的格式存储。其提供如下能力: - 三套官方评估划分协议(`split1`、`split2`、`split3`) - 包含动作标签与训练/测试分配信息的JSONL元数据文件 - 直接存储于HuggingFace Hub的原始视频文件 - 可选的WebDataset tar分块文件,用于高性能流式加载 ## 📁 文件夹结构 HMDB51/ │ ├── metadata_split1.jsonl ├── metadata_split2.jsonl ├── metadata_split3.jsonl │ ├── Videos/ │ ├── brush_hair/ │ ├── climb/ │ └── ... (共51个动作类别) │ └── webdataset/ ├── 000000.tar ├── 000001.tar └── ... 每条JSONL记录格式如下: json { "video_path": "Videos/brush_hair/example.avi", "label": "brush_hair", "subset": 1 } ## 🔹 1. 加载元数据(HuggingFace 原生接口) python from datasets import load_dataset # 加载指定划分的元数据文件 ds = load_dataset("json", data_files="metadata_split2.jsonl")["train"] # 筛选子集1作为训练集,子集2作为测试集 train = ds.filter(lambda x: x["subset"] == 1) test = ds.filter(lambda x: x["subset"] == 2) ## 🔹 2. 加载视频文件 ### Decord 视频读取库 python from decord import VideoReader # 读取首个训练样本的视频 vr = VideoReader(train[0]["video_path"]) # 获取第一帧图像 frame0 = vr[0] ### TorchVision 视频工具库 python from torchvision.io import read_video # 读取视频、音频与元信息 video, audio, info = read_video(train[0]["video_path"]) ## 🔹 3. WebDataset 版本(可选) python import webdataset as wds, jsonlines # 获取所有训练样本的视频路径 ids = [rec["video_path"] for rec in jsonlines.open("metadata_split2.jsonl") if rec["subset"]==1] # 创建WebDataset数据集,仅保留训练样本 train_wds = wds.WebDataset("webdataset/*.tar").select(lambda s: s["__key__"] in ids) ## 🔹 4. PyTorch DataLoader 示例 python from torch.utils.data import Dataset, DataLoader from decord import VideoReader # 自定义视频数据集类 class VideoDataset(Dataset): def __init__(self, subset): self.subset = subset def __getitem__(self, i): item = self.subset[i] vr = VideoReader(item["video_path"]) # 获取第0、8、16帧作为样本 return vr.get_batch([0,8,16]), item["label"] def __len__(self): return len(self.subset) # 创建数据加载器,批次大小为4 loader = DataLoader(VideoDataset(train), batch_size=4) ## 🔹 5. 划分协议文件 metadata_split1.jsonl metadata_split2.jsonl metadata_split3.jsonl 上述三个元数据文件均符合HMDB51官方评估协议要求。 ## 📚 引用 bibtex @inproceedings{kuehne2011hmdb, title={HMDB:用于人类动作识别的大型视频数据库}, author={Kuehne, Hildegard 和 Jhuang, Hueihan 和 Garrote, Estíbaliz 和 Poggio, Tomaso 和 Serre, Thomas}, booktitle={2011年国际计算机视觉大会}, pages={2556--2563}, year={2011}, organization={IEEE} }
提供机构:
CVML-TueAI
搜集汇总
数据集介绍
main_image_url
背景与挑战
背景概述
HMDB51是一个用于人类动作识别的视频数据集,包含51个动作类别,总计约20,000个视频样本。该数据集提供了三个官方评估协议(split1、split2、split3),并支持视频流处理和多种加载方式(如Hugging Face Datasets、Decord、TorchVision),适用于深度学习模型训练和评估。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务