Hub documentation
FiftyOne
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)
ダウンロードプロセスをカスタマイズできます。ダウンロードするサンプル数、作成されるデータセットオブジェクトの名前、ディスクに永続化するかどうかなどです。
…
from huggingface_hub import HfApi
api = HfApi()
api.list_datasets(tags="fiftyone")FiftyOneでHubからParquetデータセットを読み込む
load_from_hub()関数を使用して、Parquetファイルからデータセットを読み込むこともできます。型変換は自動的に処理され、必要に応じて画像がURLからダウンロードされます。
この機能により、読み込むことができるのは以下のいずれかです:
- FiftyOne互換の画像分類データセット(Food101やImageNet-Sketchなど)
- FiftyOne互換の物体検出データセット(CPPE-5やWIDER FACEなど)
- FiftyOne互換セグメンテーションデータセット(SceneParse150やSidewalk Semanticなど)
- FiftyOne互換の画像キャプションデータセット(COYO-700MやNew Yorker Caption Contestなど)
- FiftyOne互換の視覚的質問応答データセット(TextVQAやScienceQAなど)
例えば、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
)
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>"
)📚 リソース
- 🚀 コード実習用 Colab ノートブック
- 🗺️ FiftyOne Datasets ユーザーガイド
- 🤗 FiftyOne 🤝 Hub 統合ドキュメント
- 🤗 FiftyOne 🤝 Transformers 統合ドキュメント
- 🧩 FiftyOne Hugging Face Hub プラグイン