Hub documentation
FiftyOne
FiftyOne
FiftyOne est un kit d’outils open source pour la curation, la visualisation et la gestion de données visuelles non structurées. La bibliothèque rationalise les flux de travail centrés sur les données, de la recherche de prédictions à faible confiance à l’identification d’échantillons de mauvaise qualité et à la découverte de motifs cachés dans vos données. La bibliothèque prend en charge tous les types de données visuelles, des images et vidéos aux PDF, nuages de points et maillages.
FiftyOne prend en charge les détections d'objets, les points clés, les polylignes et les schémas personnalisés.
FiftyOne est intégré au Hugging Face Hub afin que vous puissiez charger et partager des jeux de données FiftyOne directement depuis le Hub.
🚀 Essayez l'intégration FiftyOne 🤝 Hugging Face dans Colab !
Prérequis
Connectez-vous d'abord avec votre compte Hugging Face :
hf auth login
Assurez-vous d'avoir installé fiftyone>=0.24.0 :
pip install -U fiftyone
Chargement de jeux de données visuels depuis le Hub
Avec load_from_hub() des utilitaires Hugging Face de FiftyOne, vous pouvez charger :
- Tout jeu de données FiftyOne téléversé sur le hub
- La plupart des jeux de données basés sur des images et stockés dans des fichiers Parquet (ce qui est le standard pour les jeux de données téléversés sur le hub via la bibliothèque
datasets)
Chargement des jeux de données FiftyOne depuis le Hub
Tout jeu de données poussé sur le hub dans l’un des formats courants pris en charge par FiftyOne doit contenir toutes les informations de configuration nécessaires dans son dépôt de jeu de données sur le hub, vous permettant ainsi de charger le jeu de données en spécifiant son repo_id. À titre d’exemple, pour charger le jeu de données de détection 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)
Vous pouvez personnaliser le processus de téléchargement, y compris le nombre d'échantillons à télécharger, le nom de l'objet de jeu de données créé, ou s'il est persisté sur le disque ou non.
Vous pouvez lister tous les jeux de données FiftyOne disponibles sur le Hub en utilisant :
from huggingface_hub import HfApi
api = HfApi()
api.list_datasets(tags="fiftyone")Chargement de jeux de données Parquet depuis le Hub avec FiftyOne
Vous pouvez également utiliser la fonction load_from_hub() pour charger des jeux de données à partir de fichiers Parquet. Les conversions de types sont gérées pour vous, et les images sont téléchargées depuis les URL si nécessaire.
Grâce à cette fonctionnalité, vous pouvez charger l'un des éléments suivants :
- Jets de données de classification d'images compatibles FiftyOne, comme Food101 et ImageNet-Sketch
- Joues de données de détection d'objets compatibles FiftyOne comme CPPE-5 et WIDER FACE
- Joues de données de segmentation compatibles FiftyOne comme SceneParse150 et Sidewalk Semantic
- Joues de données de légendes d’images compatibles FiftyOne comme COYO-700M et New Yorker Caption Contest
- Jets de données de question-réponse visuelle compatibles FiftyOne comme TextVQA et ScienceQA
À titre d’exemple, nous pouvons charger les 1 000 premiers échantillons du jeu de données WikiArt dans FiftyOne avec :
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
)
Pousser des jeux de données FiftyOne vers le Hub
Vous pouvez pousser un jeu de données vers le hub avec :
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")Lorsque vous appelez push_to_hub(), le jeu de données est téléversé dans le dépôt portant le nom spécifié sous votre nom d’utilisateur, et le dépôt est créé si nécessaire. Une fiche de jeu de données est automatiquement générée et remplie avec les instructions pour charger le jeu de données depuis le hub. Vous pouvez téléverser une image ou un gif miniature pour qu’il s’affiche sur la fiche de jeu de données à l’aide de l’argument preview_path.
Voici un exemple utilisant de nombreux de ces arguments, qui téléverserait les trois premiers échantillons du jeu de données Quickstart Video de FiftyOne dans le dépôt privé username/my-quickstart-video-dataset avec des étiquettes, une licence MIT, une description et une image d’aperçu :
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>"
)📚 Ressources
- 🚀 Notebook Colab pas à pas
- 🗺️ Guide utilisateur pour les datasets FiftyOne
- 🤗 FiftyOne 🤝 Documentation de l'intégration avec le Hub
- 🤗 Documentation d’intégration FiftyOne 🤝 Transformers
- 🧩 Plugin FiftyOne pour Hugging Face Hub