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 é um toolkit de código aberto para curadoria, visualização e gerenciamento de dados visuais não estruturados. A biblioteca simplifica fluxos de trabalho centrados em dados, desde a identificação de previsões de baixa confiança até a detecção de amostras de baixa qualidade e a descoberta de padrões ocultos nos seus dados. A biblioteca suporta todos os tipos de dados visuais, de imagens e vídeos a PDFs, nuvens de pontos e malhas.

O FiftyOne suporta detecção de objetos, pontos-chave, polilinhas e esquemas personalizados.

O FiftyOne é integrado ao Hugging Face Hub para que você possa carregar e compartilhar conjuntos de dados do FiftyOne diretamente do Hub.

🚀 Experimente a integração FiftyOne 🤝 Hugging Face no Colab!

Pré-requisitos

Primeiro faça login com sua conta do Hugging Face:

hf auth login

Certifique-se de que você tenha fiftyone>=0.24.0 instalado:

pip install -U fiftyone

Carregando Conjuntos de Dados Visuais do Hub

Com load_from_hub() dos utilitários do Hugging Face do FiftyOne, você pode carregar:

  • Qualquer dataset do FiftyOne enviado ao hub
  • A maioria dos conjuntos de dados baseados em imagens armazenados em arquivos Parquet (que é o padrão para conjuntos de dados enviados ao hub por meio da biblioteca datasets)

Carregando conjuntos de dados do FiftyOne do Hub

Qualquer conjunto de dados enviado ao hub em um dos formatos comuns suportados da FiftyOne deve ter todas as informações de configuração necessárias em seu repositório de conjunto de dados no hub, para que você possa carregar o conjunto de dados especificando seu repo_id. Como exemplo, para carregar o conjunto de dados de detecção 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

Você pode personalizar o processo de download, incluindo o número de amostras a serem baixadas, o nome do objeto de dataset criado ou se ele será persistido em disco.

Você pode listar todos os conjuntos de dados do FiftyOne disponíveis no Hub usando:

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

Carregando Conjuntos de Dados Parquet do Hub com FiftyOne

Você também pode usar a função load_from_hub() para carregar conjuntos de dados de arquivos Parquet. As conversões de tipo são tratadas para você, e as imagens são baixadas de URLs, se necessário.

Com esse recurso, você pode carregar qualquer um dos seguintes:

Como exemplo, podemos carregar os primeiros 1.000 amostras do conjunto de dados WikiArt no FiftyOne com:

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

Enviando conjuntos de dados do FiftyOne para o Hub

Você pode enviar um conjunto de dados para o hub com:

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

Quando você chama push_to_hub(), o dataset será enviado para o repositório com o nome de repositório especificado sob seu nome de usuário, e o repositório será criado, se necessário. Um Dataset Card será gerado automaticamente e preenchido com instruções para carregar o dataset a partir do hub. Você pode enviar uma imagem/gif de miniatura para aparecer no Dataset Card com o argumento preview_path.

Aqui está um exemplo usando muitos desses argumentos, que enviaria os três primeiros amostras do conjunto de dados Quickstart Video da FiftyOne para o repositório privado username/my-quickstart-video-dataset com tags, uma licença MIT, uma descrição e uma imagem de pré-visualização:

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

📚 Recursos

Update on GitHub