YOLO Vision 2026:

Обзор наборов данных#

Ultralytics поддерживает различные наборы данных для упрощения задач компьютерного зрения, таких как детекция, сегментация экземпляров, семантическая сегментация, оценка глубины, классификация, оценка позы и ориентированные ограничивающие рамки (OBB). Ниже приведен список основных наборов данных Ultralytics, за которым следует краткое описание каждой задачи компьютерного зрения и соответствующих наборов данных. Режим трекинга работает поверх моделей детекции, сегментации, позы и OBB без обучения, специфичного для трекера; см. наборы данных для трекинга.



Watch: Ultralytics Datasets Overview

Обнаружение объектов#

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

  • African-wildlife: набор данных с изображениями дикой природы Африки, включая буйволов, слонов, носорогов и зебр.
  • Argoverse: набор данных, содержащий данные 3D-трекинга и прогнозирования движения из городских условий с богатой разметкой.
  • Brain-tumor: набор данных для обнаружения опухолей головного мозга, включающий МРТ- или КТ-снимки с деталями о наличии, расположении и характеристиках опухоли.
  • COCO: Common Objects in Context (COCO) — это крупномасштабный набор данных для детекции, сегментации и описания объектов, содержащий 80 категорий объектов.
  • COCO8: меньшее подмножество из первых 4 изображений из выборок обучения и валидации COCO, подходящее для быстрых тестов.
  • COCO8-Grayscale: версия COCO8 в градациях серого, созданная путем преобразования RGB в оттенки серого, полезна для оценки одноканальных моделей.
  • COCO8-Multispectral: 10-канальная мультиспектральная версия COCO8, созданная путем интерполяции длин волн RGB, полезна для оценки моделей с учетом спектральных данных.
  • COCO128: меньшее подмножество из первых 128 изображений из COCO train2017, подходящее для тестов.
  • Construction-PPE: набор данных с изображениями строительных площадок, аннотированными основными средствами защиты, такими как каски, жилеты, перчатки, ботинки и защитные очки, а также метками отсутствующего оборудования, что помогает в разработке моделей ИИ для обеспечения соответствия нормам и защиты работников.
  • Global Wheat 2020: набор данных, содержащий изображения колосьев пшеницы для соревнований Global Wheat Challenge 2020.
  • HomeObjects-3K: набор данных с аннотированными интерьерами, содержащий 12 распространенных предметов домашнего обихода, идеально подходящий для разработки и тестирования моделей компьютерного зрения в системах умного дома, робототехнике и дополненной реальности.
  • KITTI New: известный набор данных для автономного вождения, включающий данные со стереокамер, лидаров и GPS/IMU, используемый для двумерной детекции объектов в различных дорожных условиях.
  • LVIS: крупномасштабный набор данных для обнаружения объектов, сегментации и создания описаний с 1203 категориями объектов.
  • Medical-pills: набор данных, содержащий размеченные изображения медицинских таблеток, созданный для помощи в таких задачах, как фармацевтический контроль качества, сортировка и проверка соответствия отраслевым стандартам.
  • Objects365: высококачественный крупномасштабный набор данных для обнаружения объектов, содержащий 365 категорий объектов и более 600 тыс. размеченных изображений.
  • OpenImagesV7: исчерпывающий набор данных от Google, содержащий 1,7 млн обучающих изображений и 42 тыс. проверочных изображений.
  • RF100: разнообразный бенчмарк детекции объектов, включающий 100 наборов данных из семи доменов изображений для комплексной оценки моделей.
  • Signature: набор данных с изображениями различных документов с размеченными подписями, поддерживающий исследования в области проверки документов и обнаружения мошенничества.
  • SKU-110K: набор данных для плотной детекции объектов в розничной торговле, содержащий более 11 тыс. изображений и 1,7 млн ограничивающих рамок.
  • VisDrone: набор данных, содержащий данные обнаружения и многообъектного трекинга из видеопоследовательностей и изображений, полученных с дронов, с более чем 10 тыс. изображений и видеофрагментов.
  • VOC: набор данных Pascal Visual Object Classes (VOC) для обнаружения и сегментации объектов, содержащий 20 классов объектов и более 11 тыс. изображений.
  • xView: набор данных для обнаружения объектов на аэрофотоснимках с 60 категориями объектов и более чем 1 миллионом размеченных объектов.

Сегментация экземпляров#

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

  • Carparts-seg: специализированный набор данных для идентификации деталей автомобилей, удовлетворяющий потребности проектирования, производства и исследований. Он используется как для задач детекции объектов, так и для сегментации.
  • COCO: крупномасштабный набор данных, созданный для задач детекции, сегментации и описания объектов, содержащий более 200 тыс. размеченных изображений.
  • COCO8-seg: небольшой набор данных для задач сегментации экземпляров, содержащий подмножество из 8 изображений COCO с аннотациями сегментации.
  • COCO128-seg: небольшой набор данных для задач сегментации экземпляров, содержащий подмножество из 128 изображений COCO с аннотациями сегментации.
  • Crack-seg: специально созданный набор данных для обнаружения трещин на дорогах и стенах, применимый как для задач детекции объектов, так и для сегментации.
  • Package-seg: адаптированный набор данных для идентификации упаковок на складах или в промышленных условиях, подходящий как для детекции объектов, так и для сегментации.

Семантическая сегментация#

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

  • Cityscapes: набор данных семантической сегментации городских уличных сцен с 19 обучающими классами.
  • Cityscapes8: компактное подмножество Cityscapes из 8 изображений для быстрой проверки пайплайнов семантической сегментации.
  • ADE20K: набор данных для разбора сцен со 150 семантическими классами.

Оценка глубины#

Монокулярная оценка глубины предсказывает карту глубины для каждого пикселя в метрах на основе одного RGB-изображения, что помогает в 3D-реконструкции сцен, навигации роботов и приложениях AR/VR.

  • NYU Depth V2: стандартный бенчмарк глубины в помещении, полученный с помощью Microsoft Kinect v1.
  • KITTI: реальные уличные сцены автономного вождения с данными глубины от лидара Velodyne.
  • Depth8: компактное подмножество SUN RGB-D из 8 изображений для быстрой проверки пайплайна.

Классификация#

Классификация изображений — это задача компьютерного зрения, которая заключается в отнесении изображения к одному или нескольким предопределенным классам или категориям на основе его визуального содержимого.

  • Caltech 101: набор данных, содержащий изображения 101 категории объектов для задач классификации изображений.
  • Caltech 256: расширенная версия Caltech 101 с 256 категориями объектов и более сложными изображениями.
  • CIFAR-10: набор данных из 60 тыс. цветных изображений размером 32x32 в 10 классах, по 6 тыс. изображений на класс.
  • CIFAR-100: расширенная версия CIFAR-10 со 100 категориями объектов и 600 изображениями на класс.
  • Fashion-MNIST: набор данных, состоящий из 70 000 черно-белых изображений одежды из 10 категорий для задач классификации изображений.
  • ImageNet: крупномасштабный набор данных для детекции объектов и классификации изображений, содержащий более 14 млн изображений и 20 тыс. категорий.
  • ImageNet-10: меньшее подмножество ImageNet с 10 категориями для более быстрого экспериментирования и тестирования.
  • Imagenette: меньшее подмножество ImageNet, содержащее 10 легко различимых классов для более быстрого обучения и тестирования.
  • Imagewoof: более сложное подмножество ImageNet, содержащее 10 пород собак для задач классификации изображений.
  • MNIST: набор данных из 70 000 черно-белых изображений рукописных цифр для задач классификации изображений.
  • MNIST160: первые 8 изображений каждой цифры (0-9) из обучающей и тестовой выборок MNIST. Всего набор данных содержит 160 изображений.

Оценка позы#

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

  • COCO: крупномасштабный набор данных с аннотациями поз человека, предназначенный для задач оценки позы.
  • COCO8-pose: небольшой набор данных для задач оценки позы, содержащий подмножество из 8 изображений COCO с аннотациями поз человека.
  • Dog-pose: комплексный набор данных, содержащий примерно 8 500 изображений собак, с 24 ключевыми точками на каждую собаку, адаптированный для задач оценки позы.
  • Hand-Keypoints: компактный набор данных, содержащий более 26 000 изображений человеческих рук, с 21 ключевой точкой на каждую руку, созданный для задач оценки позы.
  • Tiger-pose: компактный набор данных, состоящий из 263 изображений тигров, с 12 ключевыми точками на каждого тигра для задач оценки позы.

Ориентированные ограничивающие рамки (OBB)#

Ориентированные ограничивающие рамки (OBB) — это метод в компьютерном зрении для обнаружения объектов под углом на изображениях с использованием повернутых рамок, который часто применяется к аэрофотоснимкам и спутниковым изображениям. В отличие от традиционных ограничивающих рамок, OBB лучше подходят для объектов с различной ориентацией.

  • DOTA-v2: популярный набор данных аэрофотоснимков с ориентированными ограничивающими рамками (OBB), содержащий 1,7 млн экземпляров и 11 268 изображений.
  • DOTA8: меньшее подмножество первых 8 изображений из обучающего набора DOTAv1 (4 для обучения и 4 для валидации), подходящее для быстрых тестов.
  • DOTA128: подмножество набора данных DOTA из 128 изображений для обучения и валидации, обеспечивающее хороший баланс между размером и разнообразием для тестирования моделей OBB.

Внеси свой вклад в создание новых наборов данных#

Внесение вклада в виде нового набора данных включает несколько шагов, чтобы гарантировать его соответствие существующей инфраструктуре. Ниже приведены необходимые шаги:



Watch: How to Contribute to Ultralytics Datasets

Шаги для внесения вклада в новый набор данных#

  1. Сбор изображений: Собери изображения, которые относятся к набору данных. Их можно собрать из различных источников, таких как общедоступные базы данных или собственная коллекция.

  2. Аннотирование изображений: Проаннотируй эти изображения ограничивающими рамками, сегментами или ключевыми точками в зависимости от задачи.

  3. Экспорт аннотаций: конвертируй эти аннотации в формат файла YOLO *.txt, поддерживаемый Ultralytics.

  4. Организация набора данных: упорядочь свой набор данных в правильную структуру папок. У тебя должны быть корневые каталоги images/ и labels/, а внутри каждого из них — подкаталоги train/ и val/.

    dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/
  5. Создание файла data.yaml: в корневом каталоге твоего набора данных создай файл data.yaml, описывающий набор данных, классы и другую необходимую информацию.

  6. Оптимизация изображений (необязательно): Если ты хочешь уменьшить размер набора данных для более эффективной обработки, ты можешь оптимизировать изображения с помощью кода ниже. Это не обязательно, но рекомендуется для уменьшения размера набора данных и ускорения загрузки.

  7. Архивация набора данных: Сожми всю папку с набором данных в zip-файл.

  8. Документация и PR: создай страницу документации с описанием твоего набора данных и того, как он вписывается в существующий фреймворк. После этого отправь запрос на вытягивание (Pull Request, PR). Дополнительную информацию об отправке PR см. в Руководстве по внесению вклада Ultralytics.

Пример кода для оптимизации и архивации набора данных#

Оптимизация и архивация набора данных
   from pathlib import Path

   from ultralytics.data.utils import compress_one_image
   from ultralytics.utils.downloads import zip_directory

   # Define dataset directory
   path = Path("path/to/dataset")

   # Optimize images in dataset (optional)
   for f in path.rglob("*.jpg"):
       compress_one_image(f)

   # Zip dataset into 'path/to/dataset.zip'
   zip_directory(path)

Следуя этим шагам, ты сможешь внести вклад в новый набор данных, который хорошо интегрируется с существующей структурой Ultralytics.

FAQ#

  • Ultralytics поддерживает широкий спектр наборов данных для детекции объектов, в том числе:

    • COCO: крупномасштабный набор данных для детекции, сегментации и описания объектов, содержащий 80 категорий объектов.
    • LVIS: обширный набор данных с 1203 категориями объектов, созданный для более детальной детекции и сегментации объектов.
    • Argoverse: набор данных, содержащий данные 3D-трекинга и прогнозирования движения из городских условий с богатой разметкой.
    • VisDrone: набор данных с данными детекции и многообъектного отслеживания на основе снимков с дронов.
    • SKU-110K: содержит плотную детекцию объектов в условиях розничной торговли с более чем 11 тыс. изображений.

    Эти наборы данных способствуют обучению надежных моделей Ultralytics YOLO для различных задач детекции объектов.

  • Внесение вклада в новый набор данных включает несколько шагов:

    1. Сбор изображений: Собери изображения из общедоступных баз данных или личных коллекций.
    2. Аннотирование изображений: Нанеси ограничивающие рамки, сегменты или ключевые точки в зависимости от задачи.
    3. Экспорт аннотаций: конвертируй аннотации в формат YOLO *.txt.
    4. Организация набора данных: используй структуру папок с каталогами train/ и val/, каждый из которых содержит подкаталоги images/ и labels/.
    5. Создание файла data.yaml: включи описания набора данных, классы и другую соответствующую информацию.
    6. Оптимизация изображений (необязательно): Уменьши размер набора данных для эффективности.
    7. Архивация набора данных: Сожми набор данных в zip-файл.
    8. Документация и PR: опиши свой набор данных и отправь запрос на вытягивание в соответствии с Руководством по внесению вклада Ultralytics.

    Посети страницу Внесение вклада в новые наборы данных для получения подробного руководства.

  • Платформа Ultralytics предлагает мощные функции для управления наборами данных и их анализа, в том числе:

    • Бесшовное управление наборами данных: Загружай, организуй и управляй своими наборами данных в одном месте.
    • Мгновенная интеграция с обучением: Используй загруженные наборы данных напрямую для обучения моделей без дополнительной настройки.
    • Инструменты визуализации: Изучай и визуализируй изображения и аннотации твоего набора данных.
    • Анализ наборов данных: Получай ценную информацию о распределении и характеристиках твоего набора данных.

    Платформа упрощает переход от управления наборами данных к обучению моделей, делая весь процесс более эффективным. Узнай больше о наборах данных Платформы Ultralytics.

  • Модели Ultralytics YOLO предоставляют несколько уникальных функций для задач компьютерного зрения:

    • Производительность в реальном времени: Высокоскоростной инференс и возможности обучения для приложений, критичных ко времени.
    • Универсальность: Поддержка задач детекции, instance segmentation, семантической сегментации, оценки глубины, классификации и оценки позы в едином фреймворке.
    • Предобученные модели: Доступ к высокопроизводительным предобученным моделям для различных приложений, что сокращает время обучения.
    • Широкая поддержка сообщества: Активное сообщество и исчерпывающая документация для решения проблем и разработки.
    • Легкая интеграция: Простой API для интеграции с существующими проектами и рабочими процессами.

    Узнай больше о моделях YOLO на странице Модели Ultralytics.

  • Чтобы оптимизировать и заархивировать набор данных с помощью инструментов Ultralytics, воспользуйся этим примером кода:

    Оптимизация и архивация набора данных
    from pathlib import Path
    
    from ultralytics.data.utils import compress_one_image
    from ultralytics.utils.downloads import zip_directory
    
    # Define dataset directory
    path = Path("path/to/dataset")
    
    # Optimize images in dataset (optional)
    for f in path.rglob("*.jpg"):
        compress_one_image(f)
    
    # Zip dataset into 'path/to/dataset.zip'
    zip_directory(path)

    Этот процесс помогает уменьшить размер набора данных для более эффективного хранения и увеличения скорости загрузки. Узнай больше о том, как оптимизировать и заархивировать набор данных.

Комментарии