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

FiftyOne VisDrone 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 :

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

WikiArt Dataset

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

Update on GitHub