Обзор наборов данных
Ultralytics обеспечивает поддержку различных наборов данных для решения задач компьютерного зрения, таких как обнаружение, сегментация объектов, оценка позы, классификация и отслеживание нескольких объектов. Ниже приведен список основных наборов данных Ultralytics , а также краткое описание каждой задачи компьютерного зрения и соответствующих наборов данных.
Смотреть: Ultralytics Обзор наборов данных
Обнаружение объектов
Обнаружение объектов с помощью ограничительной рамки - это техника компьютерного зрения, которая позволяет обнаружить и локализовать объекты на изображении, нарисовав ограничительную рамку вокруг каждого объекта.
- Argoverse: Набор данных, содержащий данные 3D-слежения и прогнозирования движения в городской среде с богатыми аннотациями.
- COCO: Common Objects in Context (COCO) - это крупномасштабный набор данных по обнаружению, сегментации объектов и созданию надписей, включающий 80 категорий объектов.
- LVIS: крупномасштабный набор данных для обнаружения, сегментации и создания титров, содержащий 1203 категории объектов.
- COCO8: меньшее подмножество первых 4 изображений из COCO train и COCO val, подходящее для быстрого тестирования.
- COCO128: меньшее подмножество первых 128 изображений из COCO train и COCO val, подходящее для тестов.
- Глобальная пшеница 2020: Набор данных, содержащий изображения головок пшеницы для Глобального пшеничного вызова 2020.
- Objects365: Высококачественный крупномасштабный набор данных для обнаружения объектов, включающий 365 категорий объектов и более 600 тыс. аннотированных изображений.
- OpenImagesV7: обширный набор данных от Google с 1,7 млн обучающих и 42 тыс. проверочных изображений.
- SKU-110K: Набор данных для обнаружения плотных объектов в условиях розничной торговли, содержащий более 11 тыс. изображений и 1,7 млн ограничивающих рамок.
- VisDrone: Набор данных, содержащий данные по обнаружению и отслеживанию объектов на снимках, полученных с помощью дронов, с более чем 10 тыс. изображений и видеопоследовательностей.
- VOC: Набор данных Pascal Visual Object Classes (VOC) для обнаружения и сегментации объектов, включающий 20 классов объектов и более 11 тысяч изображений.
- xView: Набор данных для обнаружения объектов на снимках сверху, включающий 60 категорий объектов и более 1 миллиона аннотированных объектов.
- RF100: эталон обнаружения различных объектов со 100 наборами данных, охватывающими семь областей изображений, для всесторонней оценки моделей.
- Опухоль головного мозга: Набор данных для обнаружения опухолей мозга включает изображения МРТ или КТ с подробной информацией о наличии, расположении и характеристиках опухоли.
- African-wildlife: Набор данных, содержащий изображения диких животных Африки, включая буйволов, слонов, носорогов и зебр.
- Подпись: Набор данных, содержащий изображения различных документов с аннотированными подписями, поддерживающий исследования по проверке документов и выявлению мошенничества.
- Медицинские таблетки: Набор данных, содержащий маркированные изображения медицинских таблеток, предназначенный для решения таких задач, как контроль качества фармацевтической продукции, сортировка и обеспечение соответствия промышленным стандартам.
Сегментация экземпляров
Сегментация экземпляров - это техника компьютерного зрения, которая позволяет идентифицировать и локализовать объекты на изображении на уровне пикселей. В отличие от семантической сегментации, которая классифицирует только каждый пиксель, сегментация экземпляров различает разные экземпляры одного класса.
- 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: обширный набор данных, содержащий около 6 000 изображений собак, аннотированных 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. Всего в наборе содержится 160 изображений.
Ориентированные граничные коробки (OBB)
Oriented Bounding Boxes (OBB) - это метод компьютерного зрения для обнаружения угловых объектов на изображениях с помощью повернутых ограничительных рамок, часто применяемый к аэро- и спутниковым снимкам. В отличие от традиционных ограничивающих рамок, OBB может лучше соответствовать объектам с различной ориентацией.
- DOTA-v2: Популярный набор данных аэрофотосъемки OBB, содержащий 1,7 миллиона экземпляров и 11 268 изображений.
- DOTA8: меньшее подмножество первых 8 изображений из разделенного набора DOTAv1, 4 для обучения и 4 для проверки, подходящее для быстрого тестирования.
Слежение за несколькими объектами
Многообъектное отслеживание - это техника компьютерного зрения, которая включает в себя обнаружение и отслеживание нескольких объектов во времени в видеопоследовательности. Эта задача расширяет возможности обнаружения объектов, сохраняя их идентичность в разных кадрах.
- Argoverse: Набор данных, содержащий данные 3D-слежения и прогнозирования движения в городской среде с богатыми аннотациями для задач слежения за несколькими объектами.
- VisDrone: Набор данных, содержащий данные по обнаружению и отслеживанию объектов на снимках, полученных с помощью дронов, с более чем 10 тыс. изображений и видеопоследовательностей.
Предоставление новых наборов данных
Внесение нового набора данных включает в себя несколько шагов, чтобы убедиться, что он хорошо сочетается с существующей инфраструктурой. Ниже перечислены необходимые шаги:
Смотреть: Как вносить вклад в наборы данных Ultralytics 🚀
Шаги по созданию нового набора данных
- Соберите изображения: Соберите изображения, которые относятся к набору данных. Они могут быть собраны из различных источников, например из общедоступных баз данных или из вашей собственной коллекции.
- Аннотировать изображения: Аннотируйте изображения ограничительными рамками, сегментами или ключевыми точками, в зависимости от задачи.
- Экспорт аннотаций: Преобразуйте эти аннотации в YOLO
*.txt
формат файлов, который поддерживает Ultralytics . -
Упорядочить набор данных: Разложите набор данных в правильную структуру папок. У вас должно быть
train/
иval/
каталоги верхнего уровня, а внутри каждого -images/
иlabels/
подкаталог. -
Создайте
data.yaml
Файл: В корневом каталоге набора данных создайте файлdata.yaml
файл, описывающий набор данных, классы и другую необходимую информацию. - Оптимизация изображений (необязательно): Если вы хотите уменьшить размер набора данных для более эффективной обработки, вы можете оптимизировать изображения, используя приведенный ниже код. Это не обязательно, но рекомендуется для уменьшения размера набора данных и повышения скорости загрузки.
- Zip Dataset: Сжать всю папку с набором данных в zip-файл.
- Документация и PR: Создайте страницу документации, описывающую ваш набор данных и то, как он вписывается в существующую структуру. После этого отправьте Pull Request (PR). Более подробную информацию о том, как подать PR, см. на сайте Ultralytics Contribution Guidelines.
Пример кода для оптимизации и сжатия набора данных
Оптимизация и масштабирование набора данных
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 Dataset: Сжать набор данных в zip-файл.
- Документ и PR: Опишите свой набор данных и отправьте Pull Request в соответствии с Руководством по внесению вкладаUltralytics .
Посетите раздел "Внесение новых наборов данных", чтобы получить исчерпывающее руководство.
Почему я должен использовать Ultralytics HUB для своего набора данных?
Ultralytics HUB предлагает мощные функции для управления и анализа наборов данных, включая:
- Удобное управление наборами данных: Загружайте, упорядочивайте и управляйте наборами данных в одном месте.
- Интеграция с немедленным обучением: Используйте загруженные наборы данных непосредственно для обучения модели без дополнительных настроек.
- Инструменты визуализации: Исследуйте и визуализируйте изображения и аннотации к набору данных.
- Анализ наборов данных: Получите информацию о распределении и характеристиках вашего набора данных.
Платформа упрощает переход от управления набором данных к обучению модели, делая весь процесс более эффективным. Узнайте больше о наборе данныхUltralytics HUB.
В чем уникальность моделей Ultralytics YOLO для компьютерного зрения?
Модели Ultralytics YOLO предоставляют несколько уникальных возможностей для задач компьютерного зрения:
- Производительность в реальном времени: Высокоскоростные возможности вывода и обучения для чувствительных ко времени приложений.
- Универсальность: Поддержка задач обнаружения, сегментации, классификации и оценки положения в единой системе.
- Предварительно обученные модели: Доступ к высокопроизводительным, предварительно обученным моделям для различных приложений, что сокращает время обучения.
- Обширная поддержка сообщества: Активное сообщество и исчерпывающая документация для устранения неполадок и разработки.
- Простая интеграция: Простой API для интеграции с существующими проектами и рабочими процессами.
Узнайте больше о моделях YOLO на странице МоделиUltralytics .
Как оптимизировать и заархивировать набор данных с помощью инструментов 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)
Этот процесс помогает уменьшить размер набора данных для более эффективного хранения и повышения скорости загрузки. Узнайте больше о том, как оптимизировать и уменьшить размер набора данных.