Набор данных Roboflow 100#
Roboflow 100, спонсируемый компанией Intel, — революционный набор данных для бенчмаркинга обнаружения объектов. Он включает 100 разнообразных наборов данных. Этот бенчмарк специально разработан для проверки способности моделей компьютерного зрения, таких как модели Ultralytics YOLO, адаптироваться к различным предметным областям, включая здравоохранение, аэрофотосъёмку и видеоигры.
Ключевые особенности#
- Разнообразие предметных областей: включает 100 наборов данных в семи отдельных предметных областях: аэрофотосъёмка, видеоигры, микроскопия, подводный мир, документы, электромагнитные данные и реальный мир.
- Масштаб: бенчмарк включает 224 714 изображений в 805 классах, что соответствует более чем 11 170 часам работы по разметке данных.
- Стандартизация: все изображения предварительно обработаны и изменены до размера 640x640 пикселей для единообразной оценки.
- Чистая оценка: основное внимание уделяется устранению неоднозначности классов и фильтрации недостаточно представленных классов для более чистой оценки модели.
- Аннотации: включает ограничивающие рамки объектов, подходящие для обучения и оценки моделей обнаружения объектов с использованием таких метрик, как mAP.
Структура датасета#
Набор данных Roboflow 100 организован в семь категорий, каждая из которых содержит уникальную коллекцию наборов данных, изображений и классов:
- Аэрофотосъёмка: 7 наборов данных, 9 683 изображения, 24 класса.
- Видеоигры: 7 наборов данных, 11 579 изображений, 88 классов.
- Микроскопия: 11 наборов данных, 13 378 изображений, 28 классов.
- Подводный мир: 5 наборов данных, 18 003 изображения, 39 классов.
- Документы: 8 наборов данных, 24 813 изображения, 90 классов.
- Электромагнитные данные: 12 наборов данных, 36 381 изображение, 41 класс.
- Реальный мир: 50 наборов данных, 110 615 изображений, 495 классов.
Эта структура обеспечивает разнообразную и масштабную среду для тестирования моделей обнаружения объектов, отражая широкий спектр реальных сценариев применения, представленных в различных решениях Ultralytics.
Бенчмаркинг#
Бенчмаркинг наборов данных включает оценку производительности моделей машинного обучения на конкретных наборах данных с использованием стандартизированных метрик. К распространённым метрикам относятся точность, средняя точность (mAP) и F1-мера. Подробнее об этом можно узнать в нашем руководстве «Метрики производительности YOLO».
Каждый результат группируется в одном каталоге runs/<task>/multitrain/: каждый набор данных дообучается в собственном подкаталоге (со своим results.png), а метрики для отдельных наборов данных и средние метрики записываются в multitrain_results.json вместе со столбчатой диаграммой multitrain_results.png. Вызов model.train() также возвращает словарь {dataset: metrics} для программного доступа.
Приведённый ниже скрипт загружает перечисленные в datasets_links.txt наборы данных Roboflow из Roboflow, а затем дообучает одну базовую модель (например, YOLO26n) на всей коллекции одним вызовом model.train(). Передача списка наборов данных последовательно дообучает базовую модель на каждом из них и автоматически визуализирует результаты по разным наборам данных.
import re
from pathlib import Path
from roboflow import Roboflow
from ultralytics import YOLO
from ultralytics.utils import ASSETS_URL, LOGGER, YAML
from ultralytics.utils.downloads import safe_download
# Download the RF100 datasets (requires a Roboflow API key)
rf = Roboflow(api_key="YOUR_ROBOFLOW_API_KEY")
safe_download(f"{ASSETS_URL}/datasets_links.txt") # list of RF100 dataset links
datasets = []
for line in Path("datasets_links.txt").read_text().splitlines():
try:
_, _url, workspace, project, version = re.split("/+", line.strip())
location = f"rf-100/{project}-{version}"
rf.workspace(workspace).project(project).version(version).download("yolov8", location=location)
yaml = Path(location) / "data.yaml"
cfg = YAML.load(yaml) # point train/val at the downloaded image folders
cfg["train"], cfg["val"] = "train/images", "valid/images"
YAML.save(yaml, cfg)
datasets.append(str(yaml))
except Exception as e:
LOGGER.warning(f"Failed to prepare dataset from {line!r}: {e}")
# Fine-tune one base model across all RF100 datasets and visualize the cross-dataset results
model = YOLO("yolo26n.pt")
results = model.train(data=datasets, epochs=100, imgsz=640) # {dataset: metrics}
# Per-dataset runs, multitrain_results.json (per-dataset + mean), and multitrain_results.png are saved
# together under runs/detect/multitrain. Read results in-memory or from the JSON for custom post-processing.
for dataset, metrics in results.items():
if metrics: # None if that dataset failed to train
print(f"{dataset}: mAP50-95 = {metrics['metrics/mAP50-95(B)']:.4f}")Применения#
Roboflow 100 незаменим для различных приложений, связанных с компьютерным зрением и глубоким обучением. Исследователи и инженеры могут использовать этот бенчмарк, чтобы:
- Оценивать производительность моделей обнаружения объектов в условиях нескольких предметных областей.
- Проверять способность моделей адаптироваться к реальным сценариям и их робастность за пределами распространённых бенчмарков наборов данных, таких как COCO или PASCAL VOC.
- Сравнивать возможности моделей обнаружения объектов на разнообразных наборах данных, включая специализированные области, такие как здравоохранение, аэрофотосъёмка и видеоигры.
- Сравнивать производительность моделей на разных архитектурах нейронных сетей и с использованием различных методов оптимизации.
- Выявлять специфичные для предметной области проблемы, которые могут потребовать специализированных советов по обучению моделей или подходов к дообучению, таких как трансферное обучение.
Дополнительные идеи и вдохновение для реальных приложений ты найдёшь в наших руководствах по практическим проектам, а Ultralytics Platform поможет упростить обучение моделей и развёртывание.
Использование#
Набор данных Roboflow 100, включая метаданные и ссылки для скачивания, доступен в официальном репозитории Roboflow 100 на GitHub. Ты можешь напрямую получить доступ к набору данных и использовать его для своих задач бенчмаркинга. После загрузки и подготовки наборов данных, как показано выше, модели Ultralytics можно дообучить на всей коллекции одним вызовом model.train(), передав список YAML-файлов наборов данных.
Примеры данных и аннотаций#
Roboflow 100 состоит из наборов данных с разнообразными изображениями, снятыми под разными углами и в различных предметных областях. Ниже приведены примеры аннотированных изображений из бенчмарка RF100, демонстрирующие разнообразие объектов и сцен. Такие методы, как аугментация данных, могут дополнительно повысить разнообразие во время обучения.
Разнообразие бенчмарка Roboflow 100 представляет собой значительный шаг вперёд по сравнению с традиционными бенчмарками, которые часто сосредоточены на оптимизации одной метрики в ограниченной предметной области. Такой комплексный подход способствует разработке более робастных и универсальных моделей компьютерного зрения, способных хорошо работать в самых разных сценариях.
Цитирование и благодарности#
Если ты используешь набор данных Roboflow 100 в исследовательской или разработческой работе, укажи оригинальную статью:
@misc{rf100benchmark,
Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
Year = {2022},
Eprint = {arXiv:2211.13523},
url = {https://arxiv.org/abs/2211.13523}
}Мы выражаем благодарность команде Roboflow и всем участникам за значительный вклад в создание и поддержку набора данных Roboflow 100 как ценного ресурса для сообщества компьютерного зрения.
Если ты хочешь изучить дополнительные наборы данных для улучшения своих проектов по обнаружению объектов и машинному обучению, загляни в нашу подробную коллекцию наборов данных, которая включает множество других наборов данных для обнаружения.
Часто задаваемые вопросы#
Набор данных Roboflow 100 — это бенчмарк для моделей обнаружения объектов. Он включает 100 разнообразных наборов данных, охватывающих такие области, как здравоохранение, аэрофотосъёмка и видеоигры. Его значение заключается в предоставлении стандартизированного способа проверки способности моделей адаптироваться к различным реальным сценариям и сохранять робастность, выходя за рамки традиционных бенчмарков, часто ограниченных одной предметной областью.
Набор данных Roboflow 100 охватывает семь разнообразных предметных областей, создающих уникальные задачи для моделей обнаружения объектов:
- Аэрофотосъёмка: 7 наборов данных (например, спутниковые снимки, изображения с дронов).
- Видеоигры: 7 наборов данных (например, объекты из различных игровых сред).
- Микроскопия: 11 наборов данных (например, клетки, частицы).
- Подводный мир: 5 наборов данных (например, морские животные, подводные объекты).
- Документы: 8 наборов данных (например, текстовые области, элементы форм).
- Электромагнитные данные: 12 наборов данных (например, радиолокационные сигнатуры, визуализации спектральных данных).
- Реальный мир: 50 наборов данных (широкая категория, включающая повседневные объекты, сцены, розничную торговлю и т. д.).
Это разнообразие делает RF100 отличным ресурсом для оценки обобщающей способности моделей компьютерного зрения.
При использовании набора данных Roboflow 100 укажи оригинальную статью, чтобы отдать должное создателям. Ниже приведена рекомендуемая ссылка BibTeX:
Цитата@misc{rf100benchmark, Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz}, Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark}, Year = {2022}, Eprint = {arXiv:2211.13523}, url = {https://arxiv.org/abs/2211.13523} }Для дальнейшего изучения посетить нашу подробную коллекцию наборов данных или просмотреть другие наборы данных для обнаружения, совместимые с моделями Ultralytics.