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

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



Watch: Ultralytics Datasets Overview

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

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

  • African-wildlife: Набор данных, содержащий изображения африканской дикой природы, включая буйволов, слонов, носорогов и зебр.
  • Argoverse: Набор данных, содержащий данные 3D-трекинга и прогнозирования движения в городских условиях с богатой аннотацией.
  • Brain-tumor: Набор данных для обнаружения опухолей головного мозга, включающий МРТ или КТ-сканы с информацией о наличии, расположении и характеристиках опухоли.
  • COCO: Common Objects in Context (COCO) — это крупномасштабный набор данных для обнаружения, сегментации и описания объектов, содержащий 80 категорий объектов.
  • COCO8: Небольшая подвыборка из первых 4 изображений из наборов train и val COCO, подходящая для быстрой проверки.
  • COCO8-Grayscale: Градации серого версии COCO8, полученная путем преобразования RGB в оттенки серого, полезна для оценки одноканальных моделей.
  • COCO8-Multispectral: 10-канальная мультиспектральная версия COCO8, созданная путем интерполяции длин волн RGB, полезна для оценки моделей, чувствительных к спектру.
  • COCO128: Небольшая подвыборка из первых 128 изображений из наборов train и val COCO, подходящая для тестов.
  • Construction-PPE: Набор данных изображений строительных площадок, аннотированных с указанием ключевых средств защиты, таких как каски, жилеты, перчатки, ботинки и защитные очки, а также меток об отсутствии оборудования, что помогает в разработке моделей ИИ для обеспечения безопасности и защиты рабочих.
  • Global Wheat 2020: Набор данных, содержащий изображения колосьев пшеницы для конкурса Global Wheat Challenge 2020.
  • HomeObjects-3K: Набор данных аннотированных интерьеров, включающий 12 распространенных предметов домашнего обихода, идеально подходит для разработки и тестирования моделей компьютерного зрения в системах «умного дома», робототехнике и дополненной реальности.
  • KITTI New: Известный набор данных для автономного вождения, включающий данные стереокамер, LiDAR и GPS/IMU, используемый для 2D-обнаружения объектов в различных дорожных условиях.
  • 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: Адаптированный набор данных для идентификации посылок на складах или в промышленных условиях, подходящий как для задач обнаружения, так и сегментации объектов.

Оценка позы

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

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

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

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

  • 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 000 категорий.
  • ImageNet-10: Небольшая подвыборка ImageNet из 10 категорий для более быстрого экспериментирования и тестирования.
  • Imagenette: Небольшая подвыборка ImageNet, содержащая 10 легко различимых классов для более быстрого обучения и тестирования.
  • Imagewoof: Более сложная подвыборка ImageNet, содержащая 10 категорий пород собак для задач классификации изображений.
  • MNIST: Набор данных из 70 000 изображений в градациях серого рукописных цифр для задач классификации изображений.
  • MNIST160: Первые 8 изображений каждой категории MNIST из набора данных MNIST. Набор данных содержит всего 160 изображений.

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

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

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

Отслеживание нескольких объектов

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

  • Argoverse: Набор данных, содержащий данные 3D-трекинга и прогнозирования движения в городских условиях с богатой аннотацией для задач отслеживания нескольких объектов.
  • VisDrone: Набор данных, содержащий данные обнаружения и отслеживания нескольких объектов, полученные с помощью дронов, с более чем 10 тысячами изображений и видеопоследовательностей.

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

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



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). Обратись к Руководству по внесению вклада в Ultralytics для получения более подробной информации о том, как отправить PR.

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

Оптимизация и архивирование набора данных
   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 для обнаружения объектов?

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

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

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

Как мне добавить новый набор данных в Ultralytics?

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

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

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

Почему мне стоит использовать платформу Ultralytics для своего набора данных?

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

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

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

Каковы уникальные особенности моделей YOLO от Ultralytics для компьютерного зрения?

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

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

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

Как я могу оптимизировать и заархивировать набор данных с помощью инструментов 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)

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

Комментарии