站点图标 高效码农

Meta AI发布Action100M数据集:揭秘用100万个分层视频教会AI看懂每一个动作

在人工智能,特别是计算机视觉和视频理解领域,高质量、大规模的数据集是推动技术进步的关键基石。今天,我们将深入探讨一个由Meta FAIR领衔,联合多所顶尖学术机构发布的重要资源——Action100M。这是一项旨在推动精细粒度视频动作理解的大规模数据集项目。本文将从数据集的构成、核心特性、到具体的使用方法,为你提供一个全面而透彻的解读。

数据集概览:规模与来源

Action100M,顾名思义,其目标规模是包含100万个视频段落的标注。目前,研究团队已在Hugging Face上发布了预览版本(facebook/action100m-preview),该预览版包含了12万行完整数据,即完整数据集的10%,供社区先行体验与研究。

数据来源于YouTube上的公开教学与演示类视频,涵盖了从生活技巧、手工制作、烹饪、园艺到汽车维修、项目管理等极其广泛的主题。每个数据样本对应一个完整的YouTube视频,通过其唯一的video_uid(一个11位字符的字符串)进行标识。数据集的核心价值不仅在于其规模,更在于其独特且精细的分层标注结构——Tree-of-Captions。

核心数据结构:三层信息与分层标注

当你从Hugging Face加载一个数据样本时,你会得到一个包含三个核心字段的字典。理解这三个字段,就掌握了使用Action100M的钥匙。

1. 视频唯一标识与元数据

  • video_uid (字符串): 这是源YouTube视频的ID,是追溯原始视频的唯一凭证。
  • metadata (字典): 包含了视频级别的信息,通常有:
    • title: 视频标题。
    • description: 视频描述。
    • ASR transcript: 自动语音识别生成的文字稿(如果可用)。
      这些元数据为理解视频的全局上下文提供了丰富的文本信息。

2. 精髓所在:分层的“节点”标注

  • nodes (列表[字典]): 这是数据集最核心、最具创新性的部分。它是一个列表,其中每个元素代表视频中的一个时间段(segment)。列表的长度是动态的,根据视频内容和复杂程度,每个视频的节点数在9个到超过5,570个之间不等。

    每个节点都是一个字典,包含了对这个时间段全面、多角度的描述。我们来拆解节点的每一个字段:

    • 时空定位:

      • start, end (浮点数):以为单位的精确时间戳,定义了该片段在完整视频中的起止位置。
      • node_id (字符串):片段的全局唯一标识符。
      • parent_id (字符串或null):体现了分层结构。每个片段都有一个父片段(更粗粒度的片段),根节点(代表整个视频)的parent_idnull
      • level (整数):表示在层次结构中的深度。数值越小,层级越粗,片段越长;数值越大,层级越细,片段越短。这构成了一个从视频整体到具体动作步骤的树状分解视图。
    • 多模型生成的描述:

      • plm_caption (字符串或null): 由PLM-3B模型生成的对该片段的描述性标题。
      • plm_action (字符串或null): 由PLM-3B模型提取的简短动作标签。
      • llama3_caption (字符串或null): 仅针对最细粒度的“叶子节点”,由LLama-3.2-Vision-11B模型对片段中间帧生成的图像描述。
    • 核心的GPT标注:

      • gpt (字典或null): 这是Action100M最主要的标注来源,适用于足够长的片段。它进一步细分为两个子维度:
        • 概要 (summary):
          • brief: 一句话的简洁概括。
          • detailed: 更长的、详细的段落总结。
        • 动作 (action):
          • brief: 简短的动词短语,命名当前步骤(例如,“切割黄瓜”)。
          • detailed: 以命令式语气描述的详细操作说明(例如,“用锋利的刀将黄瓜切成薄片”)。
          • actor: 执行该动作的主体(名词短语,例如,“厨师”)。

这种“主干-枝干-树叶”式的标注体系,使得Action100M不仅能回答“视频里发生了什么”,更能回答“在视频的第X到Y秒,谁,正在以何种方式,执行什么具体的动作步骤”,极大地促进了细粒度视频理解和步骤推理模型的发展。

如何快速上手使用

Action100M的获取和使用非常便捷,得益于Hugging Face datasets库的良好支持。以下是加载预览数据集的推荐方式:

from datasets import load_dataset

# 使用 streaming 模式加载,适合大数据集浏览和迭代
dataset = load_dataset(
    “parquet”,
    data_files=“hf://datasets/facebook/Action100M-preview/data/*.parquet”,
    streaming=True, # 启用流式加载,不一次性下载全部数据
)
# 获取训练集(预览版仅一个split)的迭代器
data_iterator = iter(dataset[“train”])

# 获取第一个样本
first_sample = next(data_iterator)

# 探索样本结构
print(f“视频ID: {first_sample[‘video_uid’]}”)
print(f“视频标题: {first_sample[‘metadata’].get(‘title’)}”)
print(f“该视频共有 {len(first_sample[‘nodes’])} 个标注节点”)
# 查看第一个节点的GPT动作简要描述
if first_sample[‘nodes’][0].get(‘gpt’):
    print(f“第一个节点的动作: {first_sample[‘nodes’][0][‘gpt’][‘action’][‘brief’]}”)

通过上述代码,你可以开始遍历数据集,访问每个视频的分层标注信息。项目官方GitHub仓库还提供了从本地Parquet文件加载以及可视化标注的示例,帮助你更直观地理解数据。

从数据到洞察:实例解读

为了让你对标注内容有更感性的认识,让我们设想两个来自数据集的实例(基于文件描述):

  1. 烹饪视频:一个制作“菜花 Buffalo 鸡翅”的视频。其树状标注可能这样组织:

    • Level 0 (根节点): 整个食谱制作过程。
    • Level 1: 主要阶段,如“准备菜花”、“制作面糊”、“烘烤”、“调制酱汁”。
    • Level 2 (叶子节点): 具体步骤,例如在“准备菜花”阶段下,可能有一个节点start=45.2, end=68.5,其gpt[“action”][“brief”]为“将菜花切成小块”,actor为“厨师”。
  2. 汽车维修视频:一个“检查电瓶和发电机问题”的视频。

    • 其中一个叶子节点可能定位在start=120.5, end=149.8gpt[“action”][“detailed”]可能描述为:“将万用表调至电压档,将红色表笔连接至电瓶正极端子,黑色表笔连接至负极端子,读取静态电压值。” actor为“维修技师”。

官方提供的示例GIF也展示了这种对应关系:视频片段与gpt[“action”][“brief”]描述的动作(如“加入面粉”、“搅拌混合物”)精准同步,验证了标注的时效性和准确性。


常见问题解答 (FAQ)

Q: Action100M数据集可以免费商用吗?
A: 不可以。根据官方说明,Action100M数据集采用 “FAIR Noncommercial Research License”。这意味着它仅供非商业的研究目的使用。任何商业用途都需要额外授权。在使用前,请务必阅读并遵守其许可证文件中的条款。

Q: 我只想研究视频动作识别,需要关心所有的标注字段吗?
A: 不一定,你可以根据研究目标灵活选择。例如:

  • 若研究动作定位与分类,可重点关注start/endgpt[“action”][“brief”]actor
  • 若研究视频段落摘要,可关注gpt[“summary”]下的字段。
  • 若研究多模态模型生成的描述质量,则可对比plm_captionllama3_captiongpt[“summary”]
  • 若研究视频层次结构解析,则必须利用levelparent_id构建树关系。

Q: 数据集中“节点”的数量波动为什么这么大(9到5.57k+)?
A: 这真实反映了现实世界视频的复杂多样性。一个简单的“开箱视频”可能只有几个步骤,而一个完整的“花园搭建教程”或“软件编程课程”则可能被分解成上千个精细的步骤。这也正是大规模数据集的价值的体现——它能覆盖各种复杂度的真实场景。

Q: 如何在自己的模型中有效利用这种分层结构?
A: 你可以将层次结构视为一种强监督信号。例如:

  • 训练模型时,可以设计损失函数,让相同parent_id下的节点在特征空间更接近。
  • 进行步骤预测时,可以利用粗粒度(高level)节点的预测来约束或初始化细粒度(低level)节点的预测。
  • 将树状结构转化为图神经网络(GNN)的输入,显式建模片段间的时序与层次关系。

学术影响与引用

Action100M作为一个新兴的大规模基准数据集,预计将对视频理解社区产生显著影响。它通过提供海量的、具有精细时间粒度、丰富语义描述和清晰层次结构的标注,为训练更强大、更智能的视频理解模型奠定了基础。

如果你在研究中使用了Action100M数据集,请按如下格式引用其预印本论文:

@article{chen2026action100m,
  title={Action100M: A Large-scale Video Action Dataset},
  author={Chen, Delong and Kasarla, Tejaswi and Bang, Yejin and Shukor, Mustafa and Chung, Willy and Yu, Jade and Bolourchi, Allen and Moutakanni, Théo and Fung, Pascale},
  journal={arXiv preprint arXiv:2601.xxxxx},
  year={2026}
}

总结

Action100M不仅仅是一个“视频-标签”对的数据集,它是一个结构化的视频知识库。它将冗长的、连续的视频流,解构成一个有组织的、可查询的动作步骤树,每一步都附带了由先进AI模型生成并结合人类校验的多样化描述。对于从事视频动作识别、时序动作定位、步骤推理、视频摘要、指令跟随以及多模态大语言模型研究的研究者和开发者而言,Action100M提供了一个前所未有的、具有深度和广度的实验平台。

通过拥抱这样的开放数据集,我们能够共同推动机器对视觉世界的理解,从“看到了什么”迈向“理解正在如何一步步发生”,最终构建出能够与人类协作处理复杂任务的智能系统。


摘要:Action100M是一个由Meta FAIR等机构发布的大规模视频动作数据集,预览版包含12万条数据。其核心创新在于提供了基于时间分层的“Tree-of-Captions”标注,每个视频片段包含精确的时间戳、层次关系以及由GPT等模型生成的动作概要、详细指令和执行者信息,旨在推动细粒度的视频步骤理解与推理研究。数据集可通过Hugging Face平台直接加载使用。

退出移动版