Hub documentation

FiftyOne

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FiftyOne

FiftyOneは、非構造化ビジュアルデータのキュレーション、可視化、管理のためのオープンソースツールキットです。このライブラリは、低信頼度の予測の特定から低品質サンプルの特定、データの隠れたパターンの発見まで、データセントリックなワークフローを効率化します。このライブラリは、画像や動画からPDF、点群、メッシュまで、あらゆる種類のビジュアルデータをサポートしています。

FiftyOneは、オブジェクト検出、キーポイント、ポリライン、およびカスタムスキーマに対応しています。

FiftyOneはHugging Face Hubと統合されており、HubからFiftyOneのデータセットを直接読み込み、共有できます。

🚀 ColabでFiftyOne 🤝 Hugging Face統合を試してみてください!

前提条件

まず、Hugging Face アカウントでログインします:

hf auth login

fiftyone>=0.24.0 がインストールされていることを確認してください:

pip install -U fiftyone

Hubからのビジュアルデータセットの読み込み

FiftyOneのHugging Faceユーティリティのload_from_hub()を使用すると、以下を読み込むことができます:

  • HubにアップロードされたFiftyOneのすべてのデータセット
  • datasets ライブラリを介してハブにアップロードされたデータセットの標準である Parquet ファイルに保存されている、画像ベースのデータセットの大多数

HubからFiftyOneデータセットを読み込む

FiftyOneのサポートされている一般的な形式のいずれかでハブにプッシュされたデータセットには、ハブ上のデータセットリポジトリに必要な設定情報がすべて含まれているため、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

ダウンロードプロセスをカスタマイズできます。ダウンロードするサンプル数、作成されるデータセットオブジェクトの名前、ディスクに永続化するかどうかなどです。

…

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 にプッシュする

以下のコマンドで、ハブにデータセットをプッシュできます。

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()を呼び出すと、指定されたリポジトリ名で、あなたのユーザー名配下のリポジトリにデータセットがアップロードされます。必要に応じてリポジトリが作成されます。Dataset Cardが自動的に生成され、ハブからデータセットを読み込むための手順が記載されます。preview_path引数を使用して、Dataset Cardに表示されるサムネイル画像/GIFをアップロードできます。

これらの引数の多くを使用した例を以下に示します。この例では、FiftyOneのQuickstart Videoデータセットの最初の3つのサンプルを、タグ、MITライセンス、説明、プレビュー画像を付けて、プライベートリポジトリusername/my-quickstart-video-datasetにアップロードします。

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>"
)

📚 リソース

Update on GitHub