Hub documentation
FiftyOne
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)
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:
- Conjuntos de dados de classificação de imagens compatíveis com FiftyOne, como Food101 e ImageNet-Sketch
- Conjuntos de dados de detecção de objetos compatíveis com FiftyOne, como CPPE-5 e WIDER FACE
- Conjuntos de dados de segmentação compatíveis com FiftyOne como SceneParse150 e Sidewalk Semantic
- Conjuntos de dados de legendas de imagens compatíveis com FiftyOne, como COYO-700M e New Yorker Caption Contest
- Conjuntos de dados de resposta a perguntas visuais compatíveis com FiftyOne, como TextVQA e ScienceQA
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
)
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
- 🚀 Notebook Colab para acompanhar o código
- 🗺️ Guia do usuário para conjuntos de dados do FiftyOne
- 🤗 Documentação da Integração FiftyOne 🤝 Hub
- 🤗 Documentação da Integração FiftyOne 🤝 Transformers
- 🧩 Plugin do FiftyOne para o Hugging Face Hub