Создание датасета для обучения YOLO

Создание датасета — первый и самый важный этап обучения нейросети. В этой статье вы узнаете, как подготовить изображения для обучения YOLO: извлечь кадры из видео, выполнить качественную разметку объектов в CVAT, сформировать правильную структуру датасета и проверить его готовность к обучению. Следуя этому руководству, вы сможете создать датасет, который станет надежной основой для получения точной и стабильной модели компьютерного зрения.

Администратор

ПоделитьсяВКонтактеTelegramMAX
Создание датасета для обучения YOLO

Что такое датасет

Датасет — это набор изображений, на которых вручную отмечены объекты, которые должна распознавать нейросеть.

Именно качество датасета определяет качество будущей модели. Даже самая современная версия YOLO не сможет хорошо работать, если изображения размечены неправильно или их слишком мало.

Общая схема процесса

Видео
      │
      ▼
Извлечение кадров (FFMPEG)
      │
      ▼
Разметка изображений (CVAT)
      │
      ▼
Экспорт в формате YOLO
      │
      ▼
Проверка структуры датасета
      │
      ▼
Создание data.yaml
      │
      ▼
Обучение YOLO
      │
      ▼
Получение модели best.pt

Что понадобится

Для подготовки датасета

Программа Назначение
FFMPEG Нарезка видео на кадры
CVAT Разметка объектов
Docker Desktop Запуск локального CVAT
WSL2 Необходим для Docker под Windows
Git Клонирование проектов

Для обучения

Программа Назначение
Python 3.10+ Среда выполнения
Anaconda Управление окружениями
Ultralytics Обучение YOLOv8
PyTorch + CUDA Использование видеокарты NVIDIA
OpenCV Работа с изображениями
VS Code Разработка и запуск кода

Шаг 1. Подготовка видео

Лучше использовать:

  • оригинальное видео;
  • максимальное разрешение;
  • хорошее освещение;
  • отсутствие сильного размытия.

Если видео длинное — ничего страшного. Из него будут извлечены только отдельные кадры.

Шаг 2. Извлечение кадров

Для нарезки используется FFMPEG.

Пример команды:

ffmpeg -i video.mp4 -vf fps=1.5 images/%05d.jpg

Она сохранит примерно полтора кадра в секунду.

Чем динамичнее объект, тем чаще стоит извлекать изображения.

Например:

  • медленный автомобиль — 1 кадр/сек;
  • FPV-дрон — 3–5 кадров/сек;
  • очень быстрые объекты — до 10 кадров/сек.

Шаг 3. Разметка изображений

Для разметки используется CVAT (Computer Vision Annotation Tool).

CVAT можно использовать:

  • через официальный облачный сервис;
  • локально на своем компьютере.

Для локальной установки потребуются:

  • Docker Desktop;
  • WSL2 (Windows).

Использование AI Tools

CVAT поддерживает интеллектуальную разметку.

Например:

  • SAM (Segment Anything Model)

Он позволяет автоматически выделять объект, после чего остается лишь немного скорректировать контур.

Это значительно ускоряет работу.

Шаг 4. Правила качественной разметки

Во время разметки необходимо соблюдать несколько правил.

Объект должен быть выделен полностью

✔ Правильно

┌────────────┐
│   ДРОН     │
└────────────┘

✖ Неправильно

┌──────┐
│ДРОН  │

Каждый объект должен быть размечен

Если на изображении присутствуют три FPV-дрона, необходимо отметить все три.

Не должно быть ложных объектов

Нельзя размечать:

  • тени;
  • отражения;
  • элементы фона.

Используйте одинаковые названия классов

Например:

Правильно

fpv

Неправильно

FPV
fpv_drone
drone
FPV Drone

Для нейросети это будут разные классы.

Шаг 5. Проверка качества датасета

Перед обучением обязательно убедитесь, что:

  • все изображения открываются;
  • нет пустых файлов;
  • все объекты размечены;
  • отсутствуют битые изображения;
  • нет ошибок в названиях классов;
  • изображения и файлы разметки совпадают по именам.

Шаг 6. Экспорт из CVAT

После окончания разметки экспортируйте проект в формате:

  • YOLO 1.1

или

  • COCO 1.0

Если экспортируется COCO, потребуется конвертация в формат YOLO.

Для этого можно использовать соответствующие скрипты конвертации.

Шаг 7. Структура датасета

Готовый датасет должен выглядеть так:

dataset/

images/
    train/
    val/

labels/
    train/
    val/

data.yaml

В папке images находятся изображения.

В папке labels — текстовые файлы разметки.

Шаг 8. Создание файла data.yaml

Минимальный пример:

path: dataset

train: images/train
val: images/val

names:
  0: fpv

Именно этот файл сообщает YOLO, где находятся изображения и какие классы используются.

Сколько данных необходимо

Минимально рекомендуемый объем:

Количество объектов Качество модели
до 500 Очень низкое
500–1000 Можно проводить эксперименты
3000–5000 Хорошее качество
10000+ Высокая точность

Важно не только количество изображений, но и разнообразие условий съемки.

Желательно включать:

  • разные расстояния;
  • разные погодные условия;
  • различные углы обзора;
  • дневную и ночную съемку;
  • разные типы фона.

Типичные ошибки

Самые распространенные ошибки при создании датасета:

  • слишком маленький объем данных;
  • все изображения сняты в одинаковых условиях;
  • неполная разметка объектов;
  • разные названия одного класса;
  • объекты занимают весь кадр;
  • отсутствие отрицательных примеров (изображений без целевого объекта);
  • дублирующиеся изображения;
  • попадание одинаковых кадров одновременно в обучающую (train) и проверочную (val) выборки.

Исправление этих ошибок обычно повышает качество модели значительно сильнее, чем увеличение числа эпох обучения.

ПоделитьсяВКонтактеTelegramMAX

Ещё в рубрике «Автонаведение»

Ещё в разделе «База знаний»

Все материалы