Обзор наборов данных
Ultralytics обеспечивает поддержку различных наборов данных для облегчения задач компьютерного зрения, таких как обнаружение, сегментация объектов, оценка позы, классификация и отслеживание нескольких объектов. Ниже приведен список основных наборов данных Ultralytics , а затем кратко описана каждая задача компьютерного зрения и соответствующие наборы данных.
Смотри: Ultralytics Обзор наборов данных
Ultralytics Исследователь
Заметка для сообщества ⚠️
По состоянию на ultralytics>=8.3.10
, поддержка Ultralytics explorer была упразднена. Но не волнуйся! Теперь ты можешь получить доступ к аналогичной и даже расширенной функциональности через Ultralytics HUBнаша интуитивно понятная платформа без кода, призванная оптимизировать твой рабочий процесс. С Ultralytics HUB ты сможешь продолжать исследовать, визуализировать и управлять своими данными без особых усилий, не написав ни строчки кода. Обязательно зацени его и воспользуйся его мощными возможностями!🚀
Создавай вкрапления для своего набора данных, ищи похожие изображения, выполняй SQL-запросы, проводи семантический поиск и даже поиск с помощью естественного языка! Ты можешь начать работу с нашим приложением с графическим интерфейсом или создать свое собственное, используя API. Узнать больше можно здесь.
- Попробуй демонстрацию графического интерфейса
- Узнай больше об API Explorer
Обнаружение объектов
Обнаружение объектов с помощью ограничительной рамки - это техника компьютерного зрения, которая предполагает обнаружение и локализацию объектов на изображении путем рисования ограничительной рамки вокруг каждого объекта.
- Argoverse: Набор данных, содержащий данные 3D-трекинга и прогнозирования движения в городской среде с богатыми аннотациями.
- COCO: Common Objects in Context (COCO) - это масштабный набор данных по обнаружению, сегментации объектов и созданию надписей, включающий 80 категорий объектов.
- LVIS: масштабный набор данных для обнаружения, сегментации и создания титров, включающий 1203 категории объектов.
- COCO8: меньшее подмножество первых 4 изображений из COCO train и COCO val, подходящее для быстрых тестов.
- COCO128: меньшее подмножество первых 128 изображений из COCO train и COCO val, подходящее для тестов.
- Global Wheat 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 тысяч цветных изображений 32х32 в 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) - метод в компьютерном зрении для обнаружения на изображениях объектов, расположенных под углом, с помощью повернутых ограничительных коробок, часто применяемый к аэро- и спутниковым снимкам.
- DOTA-v2: Популярный набор данных аэрофотосъемки OBB, содержащий 1,7 миллиона экземпляров и 11 268 изображений.
- DOTA8: меньшее подмножество первых 8 изображений из разделенного набора DOTAv1, 4 для обучения и 4 для проверки, подходящее для быстрых тестов.
Слежение за несколькими объектами
Многообъектное отслеживание - это техника компьютерного зрения, которая предполагает обнаружение и отслеживание нескольких объектов во времени в видеопоследовательности.
- Argoverse: Набор данных, содержащий данные 3D-слежения и прогнозирования движения в городской среде с богатыми аннотациями для задач слежения за несколькими объектами.
- VisDrone: Набор данных, содержащий данные по обнаружению объектов и отслеживанию многообъектного движения по снимкам, сделанным дронами, и включающий более 10 тысяч изображений и видеопоследовательностей.
Вносите новые данные
Внесение нового набора данных включает в себя несколько шагов, чтобы убедиться, что он хорошо сочетается с существующей инфраструктурой. Ниже перечислены необходимые шаги:
Шаги по созданию нового набора данных
- Собери изображения: Собери изображения, которые относятся к набору данных. Они могут быть собраны из разных источников, например, из публичных баз данных или твоей собственной коллекции.
- Аннотируй изображения: Аннотируй эти изображения ограничительными рамками, сегментами или ключевыми точками, в зависимости от задачи.
- Экспорт аннотаций: Преобразуй эти аннотации в YOLO
*.txt
формат файлов, который поддерживает Ultralytics . Организуй набор данных: Разложи свой набор данных в правильную структуру папок. У тебя должно быть
train/
иval/
каталоги верхнего уровня, а внутри каждого из них -images/
иlabels/
подкаталог.Создай
data.yaml
Файл: В корневом каталоге твоего набора данных создай папкуdata.yaml
файл, в котором описывается набор данных, классы и другая необходимая информация.- Оптимизируй изображения (необязательно): Если ты хочешь уменьшить размер набора данных для более эффективной обработки, то можешь оптимизировать изображения с помощью кода, приведенного ниже. Это не обязательно, но рекомендуется для уменьшения размера набора данных и повышения скорости загрузки.
- Zip Dataset: Сожми всю папку с набором данных в zip-файл.
- Документируй и пиарь: Создай страницу документации, описывающую твой набор данных и то, как он вписывается в существующий фреймворк. После этого отправь 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
*.txt
формат. - Организуй набор данных: Используй структуру папок с
train/
иval/
каталоги, каждый из которых содержитimages/
иlabels/
подкаталогов. - Создай
data.yaml
Файл: Включи описание набора данных, классов и другую необходимую информацию. - Оптимизируй изображения (опционально): Уменьши размер набора данных для повышения эффективности.
- Zip Dataset: Сожми набор данных в zip-файл.
- Документ и PR: Опиши свой набор данных и отправь Pull Request, следуя Ultralytics Contribution Guidelines.
Посетите раздел " Вносить новые данные ", чтобы получить исчерпывающее руководство.
Почему я должен использовать Ultralytics Explorer для своего набора данных?
Ultralytics Explorer предлагает мощные функции для анализа наборов данных, включая:
- Генерация эмбеддингов: Создавай векторные вкрапления для изображений.
- Семантический поиск: Ищи похожие изображения с помощью вкраплений или искусственного интеллекта.
- SQL-запросы: Выполняй продвинутые SQL-запросы для детального анализа данных.
- Поиск на естественном языке: Ищи с помощью запросов на простом языке для удобства использования.
Изучи Ultralytics Explorer, чтобы получить больше информации и попробовать демо-версию графического интерфейса.
В чем уникальные особенности Ultralytics YOLO моделей для компьютерного зрения?
Ultralytics YOLO Модели предоставляют несколько уникальных возможностей:
- Производительность в реальном времени: Высокоскоростные выводы и обучение.
- Универсальность: Подходит для задач обнаружения, сегментации, классификации и оценки позы.
- Предварительно обученные модели: Получи доступ к высокопроизводительным, предварительно обученным моделям для различных приложений.
- Обширная поддержка сообщества: Активное сообщество и исчерпывающая документация для устранения неполадок и разработки.
Узнай больше о сайте YOLO на Ultralytics YOLO странице.
Как оптимизировать и заархивировать набор данных с помощью инструментов 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)
Узнай больше о том, как оптимизировать и застегнуть набор данных.