Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验

开始使用

FiftyOne

FiftyOne 是一个用于整理、可视化和管理非结构化视觉数据的开源工具包。该库简化了以数据为中心的工作流程,从查找低置信度预测到识别低质量样本,再到发现数据中的隐藏模式。该库支持各种视觉数据,从图像和视频到 PDF、点云和网格。

FiftyOne 支持对象检测、关键点、折线和自定义模式。

FiftyOne 与 Hugging Face Hub 集成,因此您可以直接从 Hub 加载和共享 FiftyOne 数据集。

🚀 在 Colab 中尝试 FiftyOne 🤝 Hugging Face 集成!

先决条件

首先 使用您的 Hugging Face 帐户登录

huggingface-cli login

确保您已安装 fiftyone>=0.24.0

pip install -U fiftyone

从 Hub 加载视觉数据集

使用 FiftyOne 的 Hugging Face 实用程序中的 load_from_hub(),您可以加载

  • 任何上传到 Hub 的 FiftyOne 数据集
  • 大多数存储在 Parquet 文件中的基于图像的数据集(这是通过 datasets 库上传到 Hub 的数据集的标准)

从 Hub 加载 FiftyOne 数据集

任何以 FiftyOne 的 支持的通用格式 推送到 Hub 的数据集都应在其 Hub 上的数据集存储库中包含所有必要的配置信息,因此您可以通过指定其 repo_id 来加载数据集。例如,要加载 VisDrone 检测数据集

import fiftyone as fo
from fiftyone.utils import load_from_hub

## load from the hub
dataset = load_from_hub("Voxel51/VisDrone2019-DET")

## visualize in app
session = fo.launch_app(dataset)

FiftyOne VisDrone dataset

您可以 自定义下载过程,包括要下载的样本数量、创建的数据集对象名称或是否将其持久保存到磁盘。

您可以使用以下命令列出 Hub 上所有可用的 FiftyOne 数据集

from huggingface_hub import HfApi
api = HfApi()
api.list_datasets(tags="fiftyone")

使用 FiftyOne 从 Hub 加载 Parquet 数据集

您也可以使用 load_from_hub() 函数从 Parquet 文件加载数据集。将为您处理类型转换,并在必要时从 URL 下载图像。

有了这个功能,您可以加载以下任何内容

例如,我们可以使用以下命令将 WikiArt 数据集 中的前 1,000 个样本加载到 FiftyOne 中

import fiftyone as fo
from fiftyone.utils.huggingface import load_from_hub

dataset = load_from_hub(
    "huggan/wikiart",  ## repo_id
    format="parquet",  ## for Parquet format
    classification_fields=["artist", "style", "genre"], ## columns to treat as classification labels
    max_samples=1000,  # number of samples to load
    name="wikiart",  # name of the dataset in FiftyOne
)

WikiArt Dataset

将 FiftyOne 数据集推送到 Hub

您可以使用以下命令将数据集推送到 Hub

import fiftyone as fo
import fiftyone.zoo as foz
from fiftyone.utils.huggingface import push_to_hub

## load example dataset
dataset = foz.load_zoo_dataset("quickstart")

## push to hub
push_to_hub(dataset, "my-hf-dataset")

当您调用 push_to_hub() 时,数据集将上传到您用户名下指定仓库名称的仓库中,如果仓库不存在,则会创建该仓库。一个 数据集卡片 会自动生成,并填充从 Hub 加载数据集的说明。您可以使用 preview_path 参数上传一个缩略图图像/gif,以显示在数据集卡片上。

以下是一个使用这些参数的示例,它将 FiftyOne 的 快速入门视频 数据集的前三个样本上传到私有仓库 username/my-quickstart-video-dataset,并添加标签、MIT 许可证、描述和预览图像

dataset = foz.load_from_zoo("quickstart-video", max_samples=3)

push_to_hub(
    dataset,
    "my-quickstart-video-dataset",
    tags=["video", "tracking"],
    license="mit",
    description="A dataset of video samples for tracking tasks",
    private=True,
    preview_path="<path/to/preview.png>"
)

📚 资源

< > 在 GitHub 上更新