FiftyOne 中的 ActivityNet 200 数据集:Dataset Zoo 加载、局部下载与实战用法
FiftyOne 中的 ActivityNet 200 数据集Dataset Zoo 加载、局部下载与实战用法【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyoneActivityNet 是大规模人体活动理解视频数据集支持全局视频分类、裁剪片段活动分类与时间动作检测三类任务。本文围绕 FiftyOne Dataset Zoo 内置的activitynet-200200 类版本含视频与时间动作检测标注展开介绍其数据集结构、全量/局部下载的完整参数体系以及通过 Python API 与 CLI 加载并在 App 中可视化的实战方案帮助你按需下载、低成本探索这一 500 GB 规模的视频数据集。数据集概览ActivityNet 200 是 FiftyOne Dataset Zoo 中内置的视频数据集ZooDataset 类为ActivityNet200Dataset核心信息如下数据集名称activitynet-200数据集来源http://activity-net.org/index.html许可证CC-BY-4.0数据集大小500 GB标签video, classification, action-recognition, temporal-detection支持的分割train, validation, testZooDataset 类ActivityNet200Dataset从源码看ActivityNet200Dataset的属性定义了该数据集在 Zoo 中的注册信息license返回CC-BY-4.0、supported_splits返回(train, test, validation)并且supports_partial_downloads返回True这意味着该数据集天然支持下文介绍的按需局部下载机制。与其他版本的关系ActivityNet 200 是 ActivityNet 100 的超集ActivityNet 100 与 200 在活动类别数量和各分割的视频数量上均不相同二者在磁盘上共享视频文件集成文档明确指出ActivityNet 100 的 Zoo 目录中的视频会被 ActivityNet 200 直接复用每个视频在磁盘上只保存一份拷贝避免重复存储见 docs/source/integrations/activitynet.rst。全量分割统计分割视频数标注实例数Train10,02415,410Test5,044标签未公开withheldValidation4,9267,654需要注意test 分割不提供标注其标签在官方发布时被保留withheld。加载前的重要说明局部下载会从 YouTube 下载视频若视频仍可获取全量分割必须先向 ActivityNet 维护者申请官方源文件后才能加载原因见下文操作视频数据集需要本机安装ffmpeg参见 故障排查视频相关否则视频无法解码与预览。局部下载按需获取数据子集由于 ActivityNet 体量高达 500 GBFiftyOne 提供了丰富的参数用于高效下载特定子集。指定新的子集时FiftyOne 会优先复用本地已下载的数据仅在必要时才从 YouTube 补充下载缺失视频。底层由download_activitynet_split()驱动它通过ActivityNetDatasetManager统一管理已下载样本与待下载样本的比对与调度。参数详解以下参数均可通过load_zoo_dataset()传入参数默认值说明splitNone字符串指定要加载的单个分割支持(train, test, validation)splitsNone字符串列表指定要加载的多个分割source_dirNone存放手动下载的 ActivityNet 官方文件的目录用于避免从 YouTube 下载视频classesNone字符串或字符串列表指定必须加载的类别提供后仅加载包含至少一个指定类别实例的样本max_durationNone仅下载时长秒小于等于该值的视频默认下载全部视频copy_filesTrue填充dataset_dir时对源文件是移动False还是复制True仅在提供source_dir时生效num_workersNone下载单个视频时使用的进程数默认使用multiprocessing.cpu_count()shuffleFalse是否随机打乱局部下载时样本的选取顺序seedNone打乱时使用的随机种子max_samplesNone每个分割最多加载的样本数若同时指定classes则最多加载包含指定类别中至少一个的样本数默认加载所有匹配样本参数校验与选取策略的源码细节在ActivityNetDownloadConfig中可以看到两层校验逻辑validate_split()分割必须是_SPLIT_MAP中的键否则抛出ValueErrorvalidate_max_duration()max_duration必须是正数整数或浮点小于等于 0 会直接报错。而load_entire_split属性则揭示了全量 vs 局部的判定规则当max_duration、max_samples、classes三者均为空时test 分割不受classes影响才被认为是加载全量分割。当同时指定classes与max_samples时样本的选取遵循明确优先级见download_necessary_samples()优先选取已下载且包含全部指定类别的样本直至max_samples其次选取已下载且包含至少一个指定类别的样本若仍有配额再按包含全部类别 → 包含任一类别的顺序从 YouTube 下载新视频补齐若匹配类别的视频不足以填满max_samples则只加载可用的视频。这套策略保证了重复执行局部加载时后续加载基本不再触发 YouTube 下载。Python 实战示例import fiftyone as fo import fiftyone.zoo as foz # # 从 validation 分割随机加载 10 个样本 # # 仅在必要时下载所需视频 # dataset foz.load_zoo_dataset( activitynet-200, splitvalidation, max_samples10, shuffleTrue, ) session fo.launch_app(dataset) # # 加载 validation 分割中包含 Bathing dog 和 Walking the dog # 动作的 10 个样本 # # 包含全部指定类别的视频会被优先选取其次才是包含至少一个 # 指定类别的视频。如果匹配样本不足 max_samples则只加载可用的视频。 # # 仅在必要时下载视频后续再次局部加载 validation 分割 # 将不再需要下载任何视频。 # dataset foz.load_zoo_dataset( activitynet-200, splitvalidation, classes[Bathing dog, Walking the dog], max_samples10, ) session.dataset datasetCLI 实战示例同样通过 FiftyOne CLI 完成上述操作# # 从 validation 分割随机加载 10 个样本 # # 仅在必要时下载所需视频 # fiftyone zoo datasets load activitynet-200 \ --split validation \ --kwargs max_samples10 fiftyone app launch activitynet-200-validation-10 # # 加载 validation 分割中包含 Archery 和 Cricket # 动作的 10 个样本 # # 包含全部指定类别的视频会被优先选取其次才是包含至少一个 # 指定类别的视频。如果匹配样本不足 max_samples则只加载可用的视频。 # # 仅在必要时下载视频后续再次局部加载 validation 分割 # 将不再需要下载任何视频。 # fiftyone zoo datasets load activitynet-100 \ --split validation \ --kwargs \ classesArchery,Cricket \ max_samples10 fiftyone app launch activitynet-100-validation-10加载完成后可以通过fo.launch_app(dataset)在 FiftyOne App 中浏览视频与时间动作检测标注App 中每个样本会展示视频关键帧及对应的时序检测框。全量分割下载自 ActivityNet 发布以来大量视频已从 YouTube 下架。因此若你不指定上一节中的任何局部下载参数就必须先从 ActivityNet 维护者处下载官方源文件才能将某个完整分割加载进 FiftyOne。具体步骤填写 ActivityNet 官方申请表 获取源文件通过source_dir参数将源文件目录传给load_zoo_dataset()。从源码看全量加载有硬性约束在download_activitynet_split()中若load_entire_split为真且本地已存在样本数不等于该分割的官方总数见_NUM_TOTAL_SAMPLES会直接抛出ValueError提示必须先下载官方源文件或改用max_samples/max_duration/classes从 YouTube 下载子集。source_dir的处理由ActivityNetDatasetManager.process_source()完成它识别官方发布包中的 zip 归档如各分割视频包、missing_files.zip与解压目录按需解压后把视频文件复制copy_filesTrue或移动copy_filesFalse到 Zoo 数据目录同时自动跳过已在本地存在的视频。完整的全量分割加载指引见 ActivityNet 集成文档。进阶自定义导入与元数据除 Zoo 下载外activitynet-200还可以通过ActivityNetDatasetImporter直接导入本地数据。该 Importer 继承自FiftyOneTemporalDetectionDatasetImporter支持以下可选参数data_path显式控制媒体文件位置可以是dataset_dir下的子目录名如data、绝对目录路径、dataset_dir下的 JSON 清单文件名如data.json或绝对文件路径默认为data/或data.json中已存在的那个labels_path显式控制标注文件位置默认为labels.jsonclasses/max_duration/max_samples与 Zoo 下载同名参数语义一致用于筛选导入的样本compute_metadata默认False是否在导入时为每个视频生成VideoMetadata实例shuffle/seed是否随机打乱导入顺序及对应种子。导入后get_dataset_info()会返回数据集的classes与taxonomy类别层次结构信息方便后续分析与评估。小结ActivityNet 200 是视频理解领域的经典基准数据集通过 FiftyOne Dataset Zoo 可以轻松完成加载、可视化与评估。核心要点回顾数据规模大500 GB优先使用max_samples、classes、max_duration等局部下载参数按需取数局部下载会先复用本地已有视频再回源 YouTube重复加载几乎不产生额外流量加载全量分割必须先从官方申请源文件并配合source_dir使用结合 FiftyOne App 可直观浏览视频与时间动作检测标注快速验证模型假设与数据质量。【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

用Codex跑通全栈项目:规格驱动开发实战指南

用Codex跑通全栈项目:规格驱动开发实战指南

把一段需求丢给AI,它直接动手改代码、跑测试、修报错,最后交付一个能跑起来的全栈项目——这种体验放在几年前还只存在于Demo视频里。但当我真正用Codex跑通一个包含注册登录、任务CRUD、状态流转的完整项目后,最大的感触不是"AI写得真快…

2026/11/13 14:38:45 阅读更多 →
微信小程序绘本跟读案例源码拆解:音频链路与录音评测实战

微信小程序绘本跟读案例源码拆解:音频链路与录音评测实战

简介:微信小程序绘本跟读案例源码是一份面向小程序开发者和移动开发学习者的完整示例项目,适用于想了解教育类应用中语音交互实现方式的人群。资源包共100个文件,以60个png图片、11个json配置、10个js逻辑、9个wxss样式、8个wxml页面结构为主…

2026/11/13 14:38:45 阅读更多 →
VSCode Remote-SSH连接Deepin报错“管道不存在”的完整排查指南

VSCode Remote-SSH连接Deepin报错“管道不存在”的完整排查指南

最近同事把一台开发机装成了Deepin,我本想在本地Windows上用VSCode远程连过去写代码。装好Remote-SSH扩展,填好地址一点连接,右下角很快就弹出一个红色提示:过程试图写入的管道不存在,英文是 The process tried to wri…

2026/11/7 15:43:41 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻