YouTube-8M 数据集简介

Preface

Google 公布了一个大型的视频数据集:YouTube-8M 视频数据集(项目主页地址),这个数据集的 Technical Report 在 arXiv 上也挂出来了:YouTube-8M: A Large-Scale Video Classification Benchmark

本文是对 Google 对这个数据集介绍的博文:Announcing YouTube-8M: A Large and Diverse Labeled Video Dataset for Video Understanding Research 的一个总结归纳,


Introduction

这个数据集包含 8,000,000 万个 YouTube 视频链接,这些视频集进行了 video-level(视频层级) 的标注,标注为 4800 种 Knowledge Graph entities(知识图谱实体)。

这次公布的 YouTube-8M 数据集相比较于之前公布的数据集:YouTube-1M,又是一次的大提升。之前的 YouTube-1M 是包含 500 种体育项目的 YouTube 视频数据集,包含 1,000,000 个视频链接。


Characteristic

这个的数据集的特点如下:

这里写图片描述

8 Million video URLs

为了保证数据集的质量,在选取视频时,做了一些限制:

  • 每一个视频都是公开的,且每个视频至少有 1000 帧
  • 每一个视频的长度在 120s 到 500s 之间
  • 每一个视频至少与一个 Knowledge Graph entities(知识图谱实体)相联系
  • 成人视频由自动分类器移除

0.5 Million Hours of video

数据集中视频超过了 5000 个小时,一般需要 1PB( 1PB=1024TB 的硬盘来存储,同时一般也需要 50 CPU-years 来处理这个视频。

所以为了减小存储开销与计算时间开销,Google 提供了 pre-computed and compressed features,这样的话就可以在单台机子上一天内完成模型的训练。

1.9 Billion Frame Features

同时,已经用在 ImageNet 上训练得到的 Inception-V3 image annotation model 提取了这些视频的 frame-levelvideo-level 特征。

这些特征是从 1.9 Billion 视频帧中,以每秒 1 帧的时间分辨率进行提取的。之后进行了 PCA 降维处理,是最后的特征能够存储在一张硬盘中(小于 1.5T)。

4800 Classes

这些视频被标注的 annotation vocabulary 包含 4800 个 Knowledge Graph entities(知识图谱实体)。

每一个 entity 至少有 120 个训练视频,平均每个 entity 有 2229 个训练视频。annotation 的定义方式参照 YouTube Data API

其中最多的一个 entity 是 Vehicle,超过了 500K 个训练视频;拥有最少视频的 entity 是 Somersault,只有 120 个视频。

4800 个 entity 被分为 24 种 frequent,最高 frequent 的是 Arts & Entertainment,超过 2,800,000 个训练视频。最少 frequent 是 Finance,小于 14,000 个训练视频。

这里,所谓的 24 top-level verticals,详情可以参考 Youtube-8M 主页中的这个 Explore 页面:dataset browser,如下图:

这里写图片描述

具体的,如 Arts & Entertainment 这类,其 Entity 如下:

这里写图片描述

另外,关于数据集的具体的 labels,其归属的 Vertical,对应的 KnowledgeGraphID,可以参加这个 CSV 文件:train-labels-histogram

这里写图片描述

1.8 Avg.Labels/Video

每个视频平均有 1.8 个 labels,这些 ground truth labels 来自于 Youtube data API,根据视频的 content、metadata、contextual、user signals 对每个视频进行 annotation。

每个视频的 label 个数从 1 到 39,平均每个视频有 1.8 个 labels。大约有 60% 80% 的视频,其 labels 个数在 2~3 个。


Postscripts

上面只是我对这个数据集的一点翻译式的记录描述,使用时具体的详情,请参见 Google 对这份 YouTube-8M 的 Technical Report: YouTube-8M: A Large-Scale Video Classification Benchmark

这里写图片描述

### 关于YouTube-8M数据集及其分割方法 YouTube-8M 数据集是一个大规模的多标签视频分类数据集,旨在推动视频理解的研究进展。该数据集由数百万个带有标注的 YouTube 视频组成,这些视频被分割成固定长度的时间片段以便处理和分析[^1]。 #### 数据集特点 YouTube-8M 的核心特点是其庞大的规模和高质量的标注。具体来说,每个视频都被分割成了多个 **1秒长的小片段**,并使用 Google 自家的大规模机器学习模型为其分配了多达数千种可能的类别标签。这种设计使得研究人员能够更高效地训练复杂的深度学习模型来完成各种任务,比如动作识别、场景检测等。 #### 分割方法 对于视频分割部分,官方采用了一种简单的均匀采样策略: - 将原始视频按照时间轴分成若干个连续且不重叠的短片断(通常为每段 1 秒)。 - 每一段都作为一个独立样本用于后续建模过程中的输入表示形式之一。 如果希望进一步探索如何利用此数据集中已有的结构化信息,则可以通过加载预定义好的特征文件或者重新提取新的视觉音频表征来进行实验尝试;而针对特定应用场景下的自定义需求也可以考虑调整默认设置以适应不同类型的下游任务要求。 以下是基于 PyTorch 实现的一个简单脚本示例展示如何读取此类格式化的帧级特征向量作为神经网络模型的一部分: ```python import torch from torch.utils.data import Dataset, DataLoader class YT8MDataset(Dataset): def __init__(self, data_path): self.data = torch.load(data_path) def __len__(self): return len(self.data) def __getitem__(self, idx): sample = { 'features': self.data[idx]['feature'], 'labels': self.data[idx]['label'] } return sample if __name__ == "__main__": dataset = YT8MDataset('path_to_your_data.pth') dataloader = DataLoader(dataset, batch_size=32, shuffle=True) for i_batch, sample_batched in enumerate(dataloader): features = sample_batched['features'] labels = sample_batched['labels'] print(f'Batch {i_batch}: Features shape={features.shape}, Labels={labels}') ``` 上述代码展示了如何创建一个继承 `torch.utils.data.Dataset` 类的对象,并通过实现必要的接口函数使其支持批量迭代访问操作模式。这有助于快速搭建起适合当前研究目标所需的端到端解决方案框架体系架构基础之上再做适当扩展优化改进工作即可满足实际项目开发过程中遇到的各种复杂情况挑战难题解决之道方向指引思路启发参考价值所在之处体现出来显得尤为重要关键环节所在位置明确指出强调突出显示效果更好一点的话就更加完美无缺憾之作了呢!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值