Ultralytics YOLO27:

Набор данных Roboflow 100#

Roboflow 100, спонсируемый компанией Intel, — революционный набор данных для бенчмаркинга обнаружения объектов. Он включает 100 разнообразных наборов данных. Этот бенчмарк специально разработан для проверки способности моделей компьютерного зрения, таких как модели Ultralytics YOLO, адаптироваться к различным предметным областям, включая здравоохранение, аэрофотосъёмку и видеоигры.

Roboflow 100 diverse object detection benchmark

Ключевые особенности#

  • Разнообразие предметных областей: включает 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 sample images with annotations

Разнообразие бенчмарка 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 охватывает семь разнообразных предметных областей, создающих уникальные задачи для моделей обнаружения объектов:

    1. Аэрофотосъёмка: 7 наборов данных (например, спутниковые снимки, изображения с дронов).
    2. Видеоигры: 7 наборов данных (например, объекты из различных игровых сред).
    3. Микроскопия: 11 наборов данных (например, клетки, частицы).
    4. Подводный мир: 5 наборов данных (например, морские животные, подводные объекты).
    5. Документы: 8 наборов данных (например, текстовые области, элементы форм).
    6. Электромагнитные данные: 12 наборов данных (например, радиолокационные сигнатуры, визуализации спектральных данных).
    7. Реальный мир: 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.

Комментарии