SuperAPI AI 工具集

fiftyone-dataset-curation

数据与分析

查看项目

更新于 10-16 04:09

技能介绍

用途

FiftyOne Dataset Curation 是一个面向 FiftyOne 数据集的端到端整理技能,覆盖图像、视频、点云与分组多模态数据。它既可以按阶段顺序执行完整整理流程,也可以跳过或只执行指定阶段。该技能以交互式方式运行,强调在每一步向用户呈现发现并请求确认。

主要阶段

技能包含以下阶段:

  • Phase -1 整理计划:先列出数据集、摘要和字段 schema,向用户展示计划并等待确认。
  • Phase 0 数据集加载(可选):若没有已加载数据集,则委托给 fiftyone-dataset-import。
  • Phase 1 数据集审查:使用 dataset_summary、get_field_schema、count_values、distinct 等工具,检查媒体类型、样本数、字段类型、标签、类别名和已有 brain runs。
  • Phase 2 数据质量审计:计算元数据,检查空元数据、分辨率、文件大小,并通过 jacobmarks/image-quality-issues 插件检测模糊、对比度低、饱和度低、宽高比异常、过暗或过亮等图像问题。
  • Phase 3 近重复检测:委托给 fiftyone-find-duplicates 技能,建议使用 mobilenet-v2-imagenet-torch 或 clip-vit-base32-torch,brain key 为 img_sim,默认阈值 0.3。
  • Phase 4 类别分布与不平衡分析:对分类或检测标签进行 count_values、histogram_values、bounds、mean、std 分析,标记样本占比低于 5% 的类别,并检查元数据覆盖空白。
  • Phase 5 嵌入探索与空白检测:委托给 fiftyone-embeddings-visualization 技能,使用 CLIP 或 DINOv2 模型进行 UMAP 可视化,必须传入 num_dims 参数。计算 uniqueness 以查找冗余样本,并支持文本语义搜索发现子集。
  • Phase 6 标注审计:需要预测字段,使用 compute_mistakenness 计算误标程度,按 mistakenness 排序查看高可疑样本,并检查可能的缺失标注。
  • Phase 7 干净子集创建与划分:组合质量过滤器构建 clean_<dataset_name> 视图,报告清理前后样本数,并支持基于 uniqueness 的多样性子集。
  • Phase 8 数据问答:按需回答问题。

使用方式

该技能通过 MCP 工具调用与 FiftyOne 交互,核心指令包括:先 list_datasets 检查数据集,set_context 设置上下文,launch_app 启动 App 并等待 5 到 10 秒初始化,通过 dataset_summary 和 get_field_schema(flat=True) 发现 schema,通过 list_operators(builtin_only=False) 和 get_operator_schema 动态发现算子。任何打标签、添加字段或删除操作前必须向用户确认。不要自动关闭 App。执行委托型 brain 算子前,需用 fiftyone delegated list 确认委托服务在运行,必要时用 fiftyone delegated launch & 启动并等待约 5 秒。插件名称和算子 URI 必须通过 list_plugins 和 list_operators 动态获取,不能假设文档名称与已安装名称一致。

适用场景

适用于计算机视觉数据集的整理与质量保障,包括:检查数据 schema 与质量、审计标注、分析类别分布、探索嵌入空间、发现近重复样本、检测数据空白、构建干净子集以及划分训练/验证/测试集。适合需要在大规模图像、视频、点云或多模态数据集上进行交互式探索与清理的机器学习工作流。

限制

Phase 6 标注审计要求数据集存在预测字段,否则需先运行 fiftyone-dataset-inference。UMAP 需要 umap-learn 安装在与 FiftyOne 相同的 Python 环境中。分组数据集建议按传感器切片分别操作,并使用传感器前缀的 brain key。技能明确要求不硬编码字段名,需从 schema 发现结果适配。COCO 导出对分类标签需先运行推理生成检测标签。具体收费、价格、平台支持范围等事实资料暂未提供。