Обзор наборов данных
Ultralytics обеспечивает поддержку различных наборов данных для облегчения задач компьютерного зрения, таких как обнаружение, сегментация экземпляров, оценка позы, классификация и отслеживание нескольких объектов. Ниже приведен список основных наборов данных Ultralytics, за которым следует краткое описание каждой задачи компьютерного зрения и соответствующих наборов данных.
Смотреть: Обзор наборов данных Ultralytics
Обнаружение объектов
Обнаружение объектов с помощью ограничивающих рамок — это метод компьютерного зрения, который включает в себя обнаружение и локализацию объектов на изображении путем рисования ограничивающей рамки вокруг каждого объекта.
- Argoverse: Набор данных, содержащий данные 3D-трекинга и прогнозирования движения из городских сред с богатой аннотацией.
- COCO: Common Objects in Context (COCO) — это масштабный набор данных для обнаружения объектов, сегментации и создания подписей с 80 категориями объектов.
- LVIS: Масштабный набор данных для обнаружения объектов, сегментации и создания подписей с 1203 категориями объектов.
- COCO8: Уменьшенный набор, состоящий из первых 4 изображений из COCO train и COCO val, подходит для быстрой проверки.
- COCO8-Grayscale: Оттенки серого версия COCO8, созданная путем преобразования RGB в оттенки серого, полезна для оценки одноканальных моделей.
- COCO8-Multispectral: 10-канальная мультиспектральная версия COCO8, созданная путем интерполяции длин волн RGB, полезна для оценки моделей, учитывающих спектральные характеристики.
- COCO128: Уменьшенный набор, состоящий из первых 128 изображений из COCO train и COCO val, подходит для тестов.
- Global Wheat 2020: Набор данных, содержащий изображения колосьев пшеницы для Global Wheat Challenge 2020.
- Objects365: Высококачественный, масштабный набор данных для обнаружения объектов с 365 категориями объектов и более 600 тыс. аннотированных изображений.
- OpenImagesV7: Обширный набор данных от Google с 1,7 млн обучающих изображений и 42 тыс. изображений для проверки.
- SKU-110K: Набор данных, предназначенный для плотного обнаружения объектов в розничной торговле, содержит более 11 тыс. изображений и 1,7 млн ограничивающих рамок.
- HomeObjects-3K New 🚀: Набор данных аннотированных сцен в помещении, включающий 12 распространенных предметов домашнего обихода, идеально подходит для разработки и тестирования моделей компьютерного зрения в системах умного дома, робототехнике и дополненной реальности.
- VisDrone: Набор данных, содержащий данные об обнаружении объектов и отслеживании нескольких объектов, полученные с помощью изображений, снятых с дронов, с более чем 10 тыс. изображений и видеопоследовательностей.
- VOC: Набор данных Pascal Visual Object Classes (VOC) для обнаружения и сегментации объектов с 20 классами объектов и более 11 тыс. изображений.
- xView: Набор данных для обнаружения объектов на изображениях сверху с 60 категориями объектов и более 1 миллиона аннотированных объектов.
- RF100: Разнообразный эталон для обнаружения объектов, включающий 100 наборов данных, охватывающих семь областей изображений для всесторонней оценки модели.
- Brain-tumor: Набор данных для обнаружения опухолей головного мозга включает изображения МРТ или КТ с подробной информацией о наличии, местоположении и характеристиках опухоли.
- African-wildlife: Набор данных с изображениями африканской дикой природы, включая буйволов, слонов, носорогов и зебр.
- Signature: Набор данных с изображениями различных документов с аннотированными подписями, поддерживающий проверку документов и исследования по обнаружению мошенничества.
- Medical-pills: набор данных, содержащий размеченные изображения медицинских таблеток, предназначенный для помощи в таких задачах, как контроль качества фармацевтической продукции, сортировка и обеспечение соответствия отраслевым стандартам.
Сегментация экземпляров
Сегментация экземпляров — это метод компьютерного зрения, который включает в себя идентификацию и локализацию объектов на изображении на уровне пикселей. В отличие от семантической сегментации, которая только классифицирует каждый пиксель, сегментация экземпляров различает разные экземпляры одного и того же класса.
- COCO: Масштабный набор данных, предназначенный для задач обнаружения объектов, сегментации и создания подписей с более чем 200 тыс. размеченных изображений.
- COCO8-seg: Небольшой набор данных для задач сегментации экземпляров, содержащий подмножество из 8 изображений COCO с аннотациями сегментации.
- COCO128-seg: Небольшой набор данных для задач сегментации экземпляров, содержащий подмножество из 128 изображений COCO с аннотациями сегментации.
- Crack-seg: Специально разработанный набор данных для обнаружения трещин на дорогах и стенах, применимый как для задач обнаружения объектов, так и для сегментации.
- Package-seg: Специализированный набор данных для идентификации пакетов на складах или в промышленных условиях, подходящий как для обнаружения объектов, так и для сегментации.
- Carparts-seg: Специально созданный набор данных для идентификации автомобильных деталей, предназначенный для нужд проектирования, производства и исследований. Он служит как для задач обнаружения объектов, так и для сегментации.
Оценка позы
Определение позы - это метод, используемый для определения позы объекта относительно камеры или мировой системы координат. Это включает в себя идентификацию ключевых точек или суставов на объектах, особенно на людях или животных.
- COCO: Масштабный набор данных с аннотациями позы человека, предназначенный для задач оценки позы.
- COCO8-pose: Небольшой набор данных для задач оценки позы, содержащий подмножество из 8 изображений COCO с аннотациями позы человека.
- Tiger-pose: Компактный набор данных, состоящий из 263 изображений, посвященных тиграм, с аннотациями 12 ключевых точек на тигра для задач оценки позы.
- Hand-Keypoints: Краткий набор данных, содержащий более 26 000 изображений, посвященных человеческим рукам, с аннотациями 21 ключевой точки на руку, предназначенный для задач оценки позы.
- Dog-pose: Обширный набор данных, содержащий около 6000 изображений, посвященных собакам, с аннотациями 24 ключевых точек на собаку, предназначенный для задач оценки позы.
Классификация
Классификация изображений — это задача компьютерного зрения, которая включает в себя отнесение изображения к одному или нескольким предопределенным классам или категориям на основе его визуального содержания.
- 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 для валидации, подходящий для быстрых тестов.
Отслеживание нескольких объектов
Отслеживание нескольких объектов — это метод компьютерного зрения, который включает в себя обнаружение и отслеживание нескольких объектов с течением времени в видеопоследовательности. Эта задача расширяет обнаружение объектов, поддерживая согласованную идентификацию объектов в разных кадрах.
- Argoverse: Набор данных, содержащий данные 3D-трекинга и прогнозирования движения из городских сред с богатой аннотацией для задач отслеживания нескольких объектов.
- VisDrone: Набор данных, содержащий данные об обнаружении объектов и отслеживании нескольких объектов, полученные с помощью изображений, снятых с дронов, с более чем 10 тыс. изображений и видеопоследовательностей.
Добавить новые наборы данных
Добавление нового набора данных включает в себя несколько шагов, чтобы обеспечить его соответствие существующей инфраструктуре. Ниже приведены необходимые шаги:
Смотреть: Как внести свой вклад в наборы данных Ultralytics 🚀
Этапы добавления нового набора данных
- Сбор изображений: Соберите изображения, которые принадлежат набору данных. Их можно собрать из различных источников, таких как общедоступные базы данных или ваша собственная коллекция.
- Аннотирование изображений: Аннотируйте эти изображения с помощью ограничивающих рамок, сегментов или ключевых точек, в зависимости от задачи.
- Экспорт аннотаций: Преобразуйте эти аннотации в формат
*.txt
файлов YOLO, который поддерживает Ultralytics. -
Организация набора данных: Разместите свой набор данных в правильной структуре папок. У вас должно быть
train/
иval/
каталога верхнего уровня, и внутри каждого из них —images/
иlabels/
подкаталог.dataset/ ├── train/ │ ├── images/ │ └── labels/ └── val/ ├── images/ └── labels/
-
Создайте
data.yaml
Файл: В корневом каталоге вашего набора данных создайтеdata.yaml
файл, который описывает набор данных, классы и другую необходимую информацию. - Оптимизация изображений (необязательно): Если вы хотите уменьшить размер набора данных для более эффективной обработки, вы можете оптимизировать изображения, используя код ниже. Это не обязательно, но рекомендуется для уменьшения размеров набора данных и увеличения скорости загрузки.
- Архивация набора данных: Сжать всю папку набора данных в zip-файл.
- Документация и 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.
Часто задаваемые вопросы
Какие наборы данных поддерживает Ultralytics для обнаружения объектов?
Ultralytics поддерживает широкий спектр наборов данных для обнаружения объектов, включая:
- COCO: Масштабный набор данных для обнаружения объектов, сегментации и создания подписей, содержащий 80 категорий объектов.
- LVIS: Обширный набор данных с 1203 категориями объектов, предназначенный для более точного обнаружения и сегментации объектов.
- Argoverse: Набор данных, содержащий данные 3D-трекинга и прогнозирования движения из городских сред с богатой аннотацией.
- VisDrone: Набор данных с информацией об обнаружении объектов и отслеживании нескольких объектов, полученной с изображений, снятых с дронов.
- SKU-110K: Содержит данные для плотного обнаружения объектов в розничной торговле, включает более 11 тысяч изображений.
Эти наборы данных облегчают обучение надежных моделей Ultralytics YOLO для различных приложений обнаружения объектов.
Как добавить новый набор данных в Ultralytics?
Вклад в создание нового набора данных включает несколько этапов:
- Сбор изображений: Соберите изображения из общедоступных баз данных или личных коллекций.
- Аннотирование изображений: Примените ограничивающие рамки, сегменты или ключевые точки в зависимости от задачи.
- Экспорт аннотаций: Преобразуйте аннотации в формат YOLO
*.txt
. - Организация набора данных: Используйте структуру папок с
train/
иval/
каталогами, каждый из которых содержитimages/
иlabels/
подкаталоги. - Создайте
data.yaml
Файл: Включите описания набора данных, классы и другую релевантную информацию. - Оптимизация изображений (необязательно): Уменьшите размер набора данных для повышения эффективности.
- Архивирование набора данных: Сжать набор данных в zip-файл.
- Документирование и PR: Опишите свой набор данных и отправьте Pull Request, следуя Руководству по внесению вклада Ultralytics.
Посетите страницу Внести новые наборы данных для получения подробного руководства.
Почему мне следует использовать Ultralytics HUB для моего набора данных?
Ultralytics HUB предлагает мощные функции для управления и анализа наборов данных, в том числе:
- Удобное управление набором данных: Загружайте, систематизируйте и управляйте своими наборами данных в одном месте.
- Немедленная интеграция обучения: Используйте загруженные наборы данных непосредственно для обучения модели без дополнительной настройки.
- Инструменты визуализации: Изучайте и визуализируйте изображения и аннотации вашего набора данных.
- Анализ набора данных: Получите представление о распределении и характеристиках вашего набора данных.
Платформа упрощает переход от управления набором данных к обучению модели, делая весь процесс более эффективным. Узнайте больше о наборах данных Ultralytics HUB.
В чем уникальные особенности моделей Ultralytics YOLO для компьютерного зрения?
Модели Ultralytics YOLO предоставляют несколько уникальных функций для задач компьютерного зрения:
- Производительность в реальном времени: Высокоскоростные возможности инференса и обучения для приложений, чувствительных ко времени.
- Универсальность: Поддержка задач обнаружения, сегментации, классификации и оценки позы в унифицированной структуре.
- Предварительно обученные модели: Доступ к высокопроизводительным, предварительно обученным моделям для различных приложений, сокращающий время обучения.
- Обширная поддержка сообщества: Активное сообщество и всеобъемлющая документация для устранения неполадок и разработки.
- Простая интеграция: Простой 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)
Этот процесс помогает уменьшить размер набора данных для более эффективного хранения и увеличения скорости загрузки. Узнайте больше о том, как оптимизировать и архивировать набор данных.