Обзор наборов данных#
Ultralytics поддерживает различные наборы данных для задач компьютерного зрения, включая обнаружение объектов, сегментацию экземпляров, семантическую сегментацию, оценку глубины, классификацию, оценку позы и ориентированные ограничивающие рамки (OBB). Ниже перечислены основные наборы данных Ultralytics, а затем приведен обзор каждой задачи компьютерного зрения и соответствующих наборов данных. Режим отслеживания работает поверх моделей обнаружения, сегментации, оценки позы и OBB без обучения с учетом конкретного трекера; см. наборы данных для отслеживания.
Смотри: Обзор датасетов Ultralytics
Обнаружение объектов#
Обнаружение объектов с помощью ограничивающих рамок — это метод компьютерного зрения, который позволяет обнаруживать объекты на изображении и определять их местоположение, обводя каждый объект ограничивающей рамкой.
- African-wildlife: набор данных с изображениями африканских диких животных, включая буйволов, слонов, носорогов и зебр.
- Argoverse: набор данных с информацией об отслеживании объектов в 3D и прогнозировании движения в городской среде, содержащий подробную разметку.
- Brain-tumor: набор данных для обнаружения опухолей мозга, включающий снимки МРТ или КТ с информацией о наличии, расположении и характеристиках опухолей.
- COCO: COCO (Common Objects in Context) — крупномасштабный набор данных для обнаружения и сегментации объектов, а также создания подписей к изображениям; содержит 80 категорий объектов.
- COCO8: небольшой набор из первых 8 изображений COCO train2017: 4 для обучения и 4 для валидации; подходит для быстрых проверок.
- COCO8-Grayscale: версия COCO8 в градациях серого, созданная путем преобразования RGB-изображений; подходит для оценки моделей с одним каналом.
- COCO8-Multispectral: 10-канальная мультиспектральная версия COCO8, созданная интерполяцией длин волн RGB; подходит для оценки моделей, учитывающих спектральные характеристики.
- COCO12-Formats: тестовый набор из 12 изображений, охватывающий 12 поддерживаемых форматов изображений (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) для проверки конвейеров загрузки изображений.
- COCO128: небольшой набор из первых 128 изображений COCO train2017, подходящий для тестирования.
- Construction-PPE: набор изображений строительных площадок с разметкой основных средств защиты: касок, жилетов, перчаток, ботинок и очков, а также отсутствующего оборудования. Подходит для разработки моделей ИИ, проверяющих соблюдение требований и защищающих работников.
- Global Wheat 2020: набор изображений колосьев пшеницы для конкурса Global Wheat Challenge 2020.
- HomeObjects-3K: набор размеченных изображений помещений с 12 распространенными предметами домашнего обихода. Идеально подходит для разработки и тестирования моделей компьютерного зрения для систем умного дома, робототехники и дополненной реальности.
- KITTI: известный набор данных для автономного вождения с данными стереокамер, LiDAR и GPS/IMU; используется для обнаружения 2D-объектов в различных дорожных сценах.
- LVIS: крупномасштабный набор данных для обнаружения объектов и сегментации экземпляров, включающий 1 203 категории объектов.
- Medical-pills: набор данных с размеченными изображениями медицинских таблеток для таких задач, как контроль качества фармацевтической продукции, сортировка и проверка соответствия отраслевым стандартам.
- Objects365: высококачественный крупномасштабный набор данных для обнаружения объектов, включающий 365 категорий и более 1,7 миллиона размеченных изображений.
- OpenImagesV7: обширный набор данных Google с 1,7 млн изображений для обучения и 42 тыс. изображений для валидации.
- RF100: разнообразный бенчмарк обнаружения объектов, включающий 100 наборов данных из семи визуальных областей для всесторонней оценки моделей.
- Signature: набор изображений различных документов с разметкой подписей для исследований в области проверки документов и обнаружения мошенничества.
- SKU-110K: набор для обнаружения большого количества объектов в розничной торговле; содержит более 11 тыс. изображений и 1,7 млн ограничивающих рамок.
- TT100K: набор дорожных знаков Tsinghua-Tencent 100K, содержащий 16 817 изображений улиц и 221 категорию знаков.
- VisDrone: набор данных для обнаружения и отслеживания нескольких объектов на изображениях и видеозаписях с дронов; содержит более 10 тыс. изображений и видеопоследовательностей.
- VOC: набор данных Pascal Visual Object Classes (VOC) для обнаружения и сегментации объектов; содержит 20 классов и более 21 тыс. изображений.
- 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.
- Depth8: компактное подмножество SUN RGB-D из 8 изображений для быстрой проверки конвейеров.
- ARKitScenes: реальные RGB-D-данные для помещений, снятые с помощью LiDAR и Apple ARKit; крупнейший источник реальных данных для обучения.
- SUN RGB-D: реальные сцены помещений, снятые с помощью четырех разных RGB-D-сенсоров.
- DIODE: плотные данные о глубине в помещениях и на открытом воздухе, полученные с помощью лазерного сканера геодезического класса.
- Hypersim: фотореалистичные синтетические сцены помещений с точными данными о глубине для каждого пикселя.
- TartanAir: синтетические среды AirSim с плотными данными о глубине на расстоянии до ~80 м.
- Virtual KITTI 2: синтетическая реконструкция дорожных сцен KITTI с плотными данными о глубине.
- KITTI: реальные дорожные сцены на открытом воздухе для автономного вождения с данными о глубине от LiDAR Velodyne; также бенчмарк KITTI Eigen.
- ImageNet (псевдоразмеченный): изображения ImageNet-1K с псевдометками Depth Anything 3 для дистилляции.
- NYU Depth V2: стандартный бенчмарк глубины для помещений, снятых с помощью Microsoft Kinect v1.
- ETH3D: высокоточный бенчмарк с данными лазерного сканирования помещений и открытых пространств.
- Make3D: бенчмарк для открытых пространств кампуса с данными вне обучающего распределения.
- iBims-1: высококачественный бенчмарк для помещений, предназначенный для оценки границ глубины и плоских поверхностей.
Классификация#
Классификация изображений — это задача компьютерного зрения, заключающаяся в отнесении изображения к одному или нескольким заранее заданным классам или категориям на основе его визуального содержимого.
- 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.
Добавление новых наборов данных#
Чтобы новый набор данных хорошо вписался в существующую инфраструктуру, при его добавлении нужно выполнить несколько шагов. Ниже перечислены необходимые действия:
Смотри: Как внести вклад в датасеты Ultralytics
Шаги по добавлению нового набора данных#
-
Собери изображения: собери изображения, которые войдут в набор данных. Их можно получить из разных источников, например из общедоступных баз данных или собственной коллекции.
-
Разметь изображения: разметь изображения ограничивающими рамками, сегментами или ключевыми точками в зависимости от задачи.
-
Экспортируй разметку: преобразуй разметку в формат файлов YOLO
*.txt, который поддерживает Ultralytics. -
Организуй набор данных: размести файлы в правильной структуре папок. В корне должны находиться каталоги верхнего уровня
images/иlabels/, а в каждом из них — подкаталогиtrain/иval/.dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
Создай файл
data.yaml: в корневом каталоге набора данных создай файлdata.yamlс описанием набора данных, классов и другой необходимой информацией. -
Оптимизируй изображения (необязательно): если ты хочешь уменьшить размер набора данных, чтобы ускорить обработку, оптимизируй изображения с помощью приведенного ниже кода. Это необязательно, но рекомендуется для уменьшения размера набора данных и ускорения загрузки.
-
Архивировать датасет: Сожми всю папку датасета в ZIP-архив.
-
Документация и 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
# Задать каталог датасета
path = Path("path/to/dataset")
# Оптимизировать изображения в датасете (необязательно)
for f in path.rglob("*.jpg"):
compress_one_image(f)
# Заархивировать датасет в 'path/to/dataset.zip'
zip_directory(path)Следуя этим шагам, ты сможешь добавить новый датасет, который хорошо впишется в существующую структуру Ultralytics.
Часто задаваемые вопросы#
Ultralytics поддерживает множество датасетов для обнаружения объектов, в том числе:
- COCO: Крупномасштабный датасет для обнаружения объектов, сегментации и создания описаний, содержащий 80 категорий объектов.
- LVIS: Обширный датасет с 1 203 категориями объектов, предназначенный для более детализированного обнаружения объектов и сегментации.
- Argoverse: набор данных с информацией об отслеживании объектов в 3D и прогнозировании движения в городской среде, содержащий подробную разметку.
- VisDrone: Датасет с данными для обнаружения объектов и многократного сопровождения объектов на изображениях, снятых с дронов.
- SKU-110K: Датасет для обнаружения множества объектов в розничной торговле, включающий более 11 тысяч изображений.
Эти датасеты помогают обучать надежные модели Ultralytics YOLO для различных задач обнаружения объектов.
Чтобы добавить новый датасет, выполни несколько шагов:
- Собери изображения: Используй общедоступные базы данных или личные коллекции.
- Разметь изображения: В зависимости от задачи добавь ограничивающие рамки, сегменты или ключевые точки.
- Экспортируй разметку: Преобразуй разметку в формат YOLO
*.txt. - Организуй датасет: Используй структуру папок с каталогами
images/иlabels/, в каждом из которых есть подкаталогиtrain/иval/. - Создай файл
data.yaml: Добавь описание датасета, классы и другую важную информацию. - Оптимизируй изображения (необязательно): Уменьши размер датасета для повышения эффективности.
- Заархивируй датасет: Сожми датасет в ZIP-архив.
- Документация и PR: Опиши датасет и отправь Pull Request в соответствии с Руководством по внесению вклада в Ultralytics.
Подробное руководство см. в разделе Добавление новых датасетов.
Ultralytics Platform предлагает мощные инструменты для управления датасетами и их анализа, в том числе:
- Удобное управление датасетами: Загружай, упорядочивай и контролируй датасеты в одном месте.
- Мгновенная интеграция с обучением: Используй загруженные датасеты для обучения моделей без дополнительной настройки.
- Инструменты визуализации: Просматривай и визуализируй изображения и разметку датасета.
- Анализ датасета: Получай сведения о распределении данных и характеристиках датасета.
Платформа упрощает переход от управления датасетом к обучению модели и делает весь процесс эффективнее. Подробнее см. в разделе Датасеты Ultralytics Platform.
Модели Ultralytics YOLO предоставляют ряд уникальных возможностей для задач компьютерного зрения:
- Работа в реальном времени: Высокая скорость инференса и обучения для задач, чувствительных к задержкам.
- Универсальность: Поддержка обнаружения объектов, сегментации экземпляров, семантической сегментации, оценки глубины, классификации, оценки позы и задач с ориентированными ограничивающими рамками (OBB) в единой структуре.
- Предобученные модели: Высокопроизводительные предобученные модели для разных задач, позволяющие сократить время обучения.
- Широкая поддержка сообщества: Активное сообщество и подробная документация помогают решать проблемы и вести разработку.
- Простая интеграция: Удобный API для интеграции с существующими проектами и рабочими процессами.
Подробнее о моделях YOLO см. на странице Модели Ultralytics.
Чтобы оптимизировать и заархивировать датасет с помощью инструментов Ultralytics, воспользуйся этим примером кода:
Оптимизация и архивирование датасетаfrom pathlib import Path from ultralytics.data.utils import compress_one_image from ultralytics.utils.downloads import zip_directory # Задать каталог датасета path = Path("path/to/dataset") # Оптимизировать изображения в датасете (необязательно) for f in path.rglob("*.jpg"): compress_one_image(f) # Заархивировать датасет в 'path/to/dataset.zip' zip_directory(path)Этот процесс помогает уменьшить размер датасета, упростить хранение и ускорить загрузку. Подробнее об оптимизации и архивировании датасета.