Перейти к содержимому

Обзор наборов данных

Ultralytics обеспечивает поддержку различных наборов данных для облегчения задач компьютерного зрения, таких как обнаружение, сегментация объектов, оценка позы, классификация и отслеживание нескольких объектов. Ниже приведен список основных наборов данных Ultralytics , а затем кратко описана каждая задача компьютерного зрения и соответствующие наборы данных.



Смотри: Ultralytics Обзор наборов данных

НОВИНКА 🚀 Ultralytics Explorer

Создавай вкрапления для своего набора данных, ищи похожие изображения, выполняй SQL-запросы, проводи семантический поиск и даже поиск с помощью естественного языка! Ты можешь начать работу с нашим приложением с графическим интерфейсом или создать свое собственное, используя API. Узнать больше можно здесь.

Ultralytics Скриншот проводника

Обнаружение объектов

Обнаружение объектов с помощью ограничительной рамки - это техника компьютерного зрения, которая предполагает обнаружение и локализацию объектов на изображении путем рисования ограничительной рамки вокруг каждого объекта.

  • Argoverse: Набор данных, содержащий данные 3D-трекинга и прогнозирования движения в городской среде с богатыми аннотациями.
  • COCO: Common Objects in Context (COCO) - это масштабный набор данных по обнаружению, сегментации объектов и созданию надписей, включающий 80 категорий объектов.
  • LVIS: масштабный набор данных для обнаружения, сегментации и создания титров, включающий 1203 категории объектов.
  • COCO8: меньшее подмножество первых 4 изображений из 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 миллионом аннотированных объектов.
  • Roboflow 100: Разнообразный эталон обнаружения объектов со 100 наборами данных, охватывающими семь областей изображений, для всесторонней оценки моделей.
  • Опухоль головного мозга: Набор данных для обнаружения опухолей мозга включает в себя снимки МРТ или КТ с подробной информацией о наличии, расположении и характеристиках опухоли.
  • African-wildlife: Набор данных, содержащий изображения диких животных Африки, включая буйвола, слона, носорога и зебру.
  • Подпись: Набор данных, содержащий изображения различных документов с аннотированными подписями, поддерживающий исследования по проверке документов и выявлению мошенничества.

Сегментация экземпляров

Сегментация объектов - это техника компьютерного зрения, которая предполагает идентификацию и локализацию объектов на изображении на уровне пикселей.

  • COCO: масштабный набор данных, предназначенный для задач обнаружения объектов, сегментации и создания надписей и содержащий более 200 тысяч помеченных изображений.
  • COCO8-seg: меньший набор данных для задач сегментации экземпляров, содержащий подмножество из 8 изображений COCO с аннотациями к сегментации.
  • Crack-seg: Специально созданный набор данных для обнаружения трещин на дорогах и стенах, применимый как для задач обнаружения объектов, так и для сегментации.
  • Package-seg: специализированный набор данных для идентификации упаковок на складах или в промышленных условиях, подходящий как для обнаружения объектов, так и для сегментации.
  • Carparts-seg: целевой набор данных для идентификации деталей автомобиля, предназначенный для нужд дизайна, производства и исследований. Он служит как для задач обнаружения объектов, так и для сегментации.

Оценка позы

Оценка позы - это техника, используемая для определения позы объекта относительно камеры или мировой системы координат.

  • COCO: крупномасштабный набор данных с аннотациями поз человека, предназначенный для задач оценки позы.
  • COCO8-pose: меньший набор данных для задач оценки позы, содержащий подмножество из 8 изображений COCO с аннотациями поз человека.
  • Tiger-pose: компактный набор данных, состоящий из 263 изображений тигров, аннотированных 12 ключевыми точками на каждого тигра для задач оценки позы.

Классификация

Классификация изображений - это задача компьютерного зрения, которая заключается в отнесении изображения к одному или нескольким заранее определенным классам или категориям на основе его визуального содержания.

  • 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 полутоновых изображений рукописных цифр для задач классификации изображений.

Ориентированные граничные коробки (OBB)

Oriented Bounding Boxes (OBB) - метод в компьютерном зрении для обнаружения на изображениях объектов, расположенных под углом, с помощью повернутых ограничительных коробок, часто применяемый к аэро- и спутниковым снимкам.

  • DOTA-v2: Популярный набор данных аэрофотосъемки OBB, содержащий 1,7 миллиона экземпляров и 11 268 изображений.

Слежение за несколькими объектами

Многообъектное отслеживание - это техника компьютерного зрения, которая предполагает обнаружение и отслеживание нескольких объектов во времени в видеопоследовательности.

  • Argoverse: Набор данных, содержащий данные 3D-слежения и прогнозирования движения в городской среде с богатыми аннотациями для задач слежения за несколькими объектами.
  • VisDrone: Набор данных, содержащий данные по обнаружению объектов и отслеживанию многообъектного движения по снимкам, сделанным дронами, и включающий более 10 тысяч изображений и видеопоследовательностей.

Вносите новые данные

Внесение нового набора данных включает в себя несколько шагов, чтобы убедиться, что он хорошо сочетается с существующей инфраструктурой. Ниже перечислены необходимые шаги:

Шаги по созданию нового набора данных

  1. Собери изображения: Собери изображения, которые относятся к набору данных. Они могут быть собраны из разных источников, например, из публичных баз данных или твоей собственной коллекции.
  2. Аннотируй изображения: Аннотируй эти изображения ограничительными рамками, сегментами или ключевыми точками, в зависимости от задачи.
  3. Экспорт аннотаций: Преобразуй эти аннотации в YOLO *.txt формат файлов, который поддерживает Ultralytics .
  4. Организуй набор данных: Разложи свой набор данных в правильную структуру папок. У тебя должно быть train/ и val/ каталоги верхнего уровня, а внутри каждого из них - images/ и labels/ подкаталог.

    dataset/
    ├── train/
    │   ├── images/
    │   └── labels/
    └── val/
        ├── images/
        └── labels/
    
  5. Создай data.yaml Файл: В корневом каталоге твоего набора данных создай папку data.yaml файл, в котором описывается набор данных, классы и другая необходимая информация.

  6. Оптимизируй изображения (необязательно): Если ты хочешь уменьшить размер набора данных для более эффективной обработки, то можешь оптимизировать изображения с помощью кода, приведенного ниже. Это не обязательно, но рекомендуется для уменьшения размера набора данных и повышения скорости загрузки.
  7. Zip Dataset: Сожми всю папку с набором данных в zip-файл.
  8. Документируй и пиарь: Создай страницу документации, описывающую твой набор данных и то, как он вписывается в существующий фреймворк. После этого отправь 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'.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (9), RizwanMunawar (2), Burhan-Q (1), Laughing-q (1), abirami-vina (1), AyushExel (2)

Комментарии