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

Что такое датасет
Датасет — это набор изображений, на которых вручную отмечены объекты, которые должна распознавать нейросеть.
Именно качество датасета определяет качество будущей модели. Даже самая современная версия 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) выборки.
Исправление этих ошибок обычно повышает качество модели значительно сильнее, чем увеличение числа эпох обучения.






