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 — это инструмент с открытым исходным кодом для подготовки, визуализации и управления неструктурированными визуальными данными. Библиотека оптимизирует процессы, ориентированные на данные: от поиска предсказаний с низкой уверенностью до выявления образцов низкого качества и обнаружения скрытых закономерностей в данных. Библиотека поддерживает самые разные типы визуальных данных — от изображений и видео до PDF-файлов, облаков точек и мешей.

FiftyOne поддерживает обнаружение объектов, ключевые точки, полилинии и пользовательские схемы.

FiftyOne интегрирован с Hugging Face Hub, что позволяет загружать и делиться наборами данных FiftyOne непосредственно из Hub.

🚀 Попробуйте интеграцию FiftyOne 🤝 Hugging Face в Colab!

Предварительные требования

Сначала войдите в свой аккаунт Hugging Face:

hf auth login

Убедитесь, что у вас установлена версия fiftyone>=0.24.0:

pip install -U fiftyone

Загрузка визуальных наборов данных из Hub

С помощью load_from_hub() из утилит Hugging Face для FiftyOne можно загрузить:

  • Любой датасет FiftyOne, загруженный на хаб
  • Большинство наборов данных на основе изображений, хранящихся в файлах Parquet (стандарт для наборов данных, загруженных на хаб с помощью библиотеки datasets)

Загрузка наборов данных FiftyOne из Hub

Любой датасет, загруженный на хаб в одном из поддерживаемых 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)

FiftyOne VisDrone dataset

Вы можете настроить процесс загрузки, включая количество загружаемых образцов, имя создаваемого объекта набора данных или сохранение данных на диск.

Список всех доступных датасетов FiftyOne на Hub можно получить с помощью:

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

Загрузка наборов данных Parquet с Hub с помощью FiftyOne

Вы также можете использовать функцию load_from_hub() для загрузки наборов данных из файлов Parquet. Преобразование типов выполняется автоматически, а изображения при необходимости загружаются по URL.

С помощью этой функции можно загрузить любой из следующих объектов:

В качестве примера мы можем загрузить первые 1 000 образцов из набора данных WikiArt в 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
)

WikiArt Dataset

Загрузка наборов данных 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() набор данных будет загружен в репозиторий с указанным именем под вашим именем пользователя, а сам репозиторий будет создан при необходимости. Карточка набора данных будет автоматически сгенерирована и заполнена инструкциями по загрузке набора данных из хаба. Вы можете загрузить изображение или GIF для превью, которое будет отображаться на карточке набора данных, с помощью аргумента preview_path.

Вот пример с использованием многих из этих аргументов: он загрузит первые три образца набора данных Quickstart Video FiftyOne в приватный репозиторий username/my-quickstart-video-dataset с тегами, лицензией MIT, описанием и превью-изображением:

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

📚 Ресурсы

Update on GitHub