Hub documentation
FiftyOne
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 на Hub можно получить с помощью:
from huggingface_hub import HfApi
api = HfApi()
api.list_datasets(tags="fiftyone")Загрузка наборов данных Parquet с Hub с помощью FiftyOne
Вы также можете использовать функцию load_from_hub() для загрузки наборов данных из файлов Parquet. Преобразование типов выполняется автоматически, а изображения при необходимости загружаются по URL.
С помощью этой функции можно загрузить любой из следующих объектов:
- Наборы данных для классификации изображений, совместимые с FiftyOne, такие как Food101 и ImageNet-Sketch
- Наборы данных для обнаружения объектов, совместимые с FiftyOne, такие как CPPE-5 и WIDER FACE
- Сегментационные наборы данных, совместимые с FiftyOne, такие как SceneParse150 и Sidewalk Semantic
- Наборы данных для описания изображений, совместимые с FiftyOne, такие как COYO-700M и New Yorker Caption Contest
- Наборы данных для визуального вопросно-ответного взаимодействия, совместимые с FiftyOne, такие как TextVQA и ScienceQA
В качестве примера мы можем загрузить первые 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
)
Загрузка наборов данных 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>"
)📚 Ресурсы
- 🚀 Ноутбук Colab с пошаговым кодом
- 🗺️ Руководство пользователя для FiftyOne Datasets
- 🤗 FiftyOne 🤝 Документация по интеграции с Hub
- 🤗 Документация по интеграции FiftyOne 🤝 Transformers
- 🧩 Плагин FiftyOne для Hugging Face Hub