Обзор наборов данных
Ultralytics обеспечивает поддержку различных наборов данных для облегчения задач компьютерного зрения, таких как детекция, сегментация экземпляров, семантическая сегментация, оценка позы, классификация и многообъектное отслеживание. Ниже приведен список основных наборов данных Ultralytics, за которым следует краткое описание каждой задачи компьютерного зрения и соответствующих наборов данных.
Watch: Ultralytics Datasets Overview
Детекция объектов
Детекция объектов с помощью ограничивающих рамок — это метод компьютерного зрения, который включает обнаружение и локализацию объектов на изображении путем отрисовки ограничивающей рамки вокруг каждого объекта.
- African-wildlife: Набор данных, содержащий изображения африканской дикой природы, включая буйволов, слонов, носорогов и зебр.
- Argoverse: Набор данных, содержащий данные 3D-отслеживания и прогнозирования движения в городских условиях с богатой разметкой.
- Brain-tumor: Набор данных для обнаружения опухолей мозга, который включает МРТ или КТ-сканы с детальной информацией о наличии, расположении и характеристиках опухоли.
- COCO: Common Objects in Context (COCO) — это крупномасштабный набор данных для детекции объектов, сегментации и описания изображений, включающий 80 категорий объектов.
- COCO8: Меньшее подмножество из первых 4 изображений COCO train и COCO val, подходящее для быстрых тестов.
- COCO8-Grayscale: Оттенки серого версии COCO8, созданные путем преобразования RGB в оттенки серого, полезные для оценки моделей с одним каналом.
- COCO8-Multispectral: 10-канальная мультиспектральная версия COCO8, созданная путем интерполяции длин волн RGB, полезна для спектрально-ориентированной оценки моделей.
- COCO128: Меньшее подмножество из первых 128 изображений COCO train и COCO val, подходящее для тестов.
- 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: Адаптированный набор данных для идентификации посылок на складах или в промышленных условиях, подходящий как для задач детекции объектов, так и для сегментации.
Семантическая сегментация
Семантическая сегментация присваивает метку класса каждому пикселю на изображении, создавая плотные карты сцен для таких приложений, как автономное вождение, разбор сцен и картирование земного покрова.
- Cityscapes: Набор данных семантической сегментации городских уличных сцен с 19 тренировочными классами.
- Cityscapes8: Компактное подмножество Cityscapes из 8 изображений для быстрых проверок конвейера семантической сегментации.
- ADE20K: Набор данных для разбора сцен с 150 семантическими классами.
Оценка позы
Оценка позы — это метод, используемый для определения позы объекта относительно камеры или мировой системы координат. Он включает идентификацию ключевых точек или суставов на объектах, особенно на людях или животных.
- COCO: Крупномасштабный набор данных с разметкой поз людей, разработанный для задач оценки позы.
- COCO8-pose: Меньший набор данных для задач оценки позы, содержащий подмножество из 8 изображений COCO с разметкой поз людей.
- Dog-pose: Комплексный набор данных, содержащий около 6 000 изображений с фокусом на собаках, размеченных 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
Шаги по добавлению нового набора данных
-
Сбор изображений: Собери изображения, которые относятся к набору данных. Их можно собрать из различных источников, таких как публичные базы данных или твоя собственная коллекция.
-
Разметка изображений: Разметь эти изображения ограничивающими рамками, сегментами или ключевыми точками, в зависимости от задачи.
-
Экспорт разметки: Преобразуй эту разметку в формат файла YOLO
*.txt, который поддерживает Ultralytics. -
Организация набора данных: Упорядочи свой набор данных в правильную структуру папок. У тебя должны быть директории верхнего уровня
images/иlabels/, а внутри каждой — поддиректорииtrain/иval/.dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
Создание файла
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.
Часто задаваемые вопросы (FAQ)
Какие наборы данных поддерживает 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 для своего набора данных?
Ultralytics Platform предлагает мощные функции для управления наборами данных и их анализа, включая:
- Удобное управление наборами данных: загружай, организуй и управляй своими наборами данных в одном месте.
- Мгновенная интеграция для обучения: используй загруженные наборы данных напрямую для обучения моделей без дополнительной настройки.
- Инструменты визуализации: исследуй и визуализируй изображения и аннотации твоего набора данных.
- Анализ наборов данных: получай информацию о распределении и характеристиках твоего набора данных.
Платформа упрощает переход от управления наборами данных к обучению моделей, делая весь процесс более эффективным. Узнай больше о наборах данных Ultralytics Platform.
Каковы уникальные особенности моделей Ultralytics YOLO для компьютерного зрения?
Модели Ultralytics YOLO предоставляют ряд уникальных функций для задач 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)Этот процесс помогает уменьшить размер набора данных для более эффективного хранения и увеличения скорости загрузки. Узнай больше о том, как оптимизировать и заархивировать набор данных.