YOLO (You Only Look Once) — это одна из самых популярных архитектур для задачи обнаружения объектов (Object Detection). Её основной особенностью является высокая скорость и точность, что делает её подходящей для работы в реальном времени.
В этой статье мы рассмотрим основные шаги, которые, вероятно, будут актуальны для работы с любыми версиями YOLO, включая YOLO11. Мы сделаем упор на практическое использование библиотеки, настройку под свои данные и развертывание модели.
1. Установка библиотеки YOLO
Если YOLO11 основывается на PyTorch или TensorFlow, как и предыдущие версии, то для работы вам потребуется установить библиотеку через pip. Предположим, что YOLO11 доступен через репозиторий:
pip install yolo
Или
pip install ultralytics-v11
Если это кастомная версия, опубликованная на GitHub, вам нужно будет клонировать репозиторий и установить зависимости:
git clone https://github.com/username/yolov11.git
cd yolov11
pip install -r requirements.txt
2. Основы работы с YOLO
YOLO — это одноэтапная архитектура обнаружения объектов. Она предсказывает классы объектов и их координаты (границы) за один прогон через сеть. Основные этапы работы:
- Инференс (Inference): Использование предобученной модели для предсказания объектов на изображении или видео.
- Тренировка (Training): Обучение модели на пользовательских данных.
- Тонкая настройка (Fine-tuning): Дообучение модели для улучшения производительности на специфических данных.
3. Использование предобученной модели YOLO11
Предобученные модели YOLO поставляются с весами, обученными на популярных датасетах, таких как COCO. Чтобы использовать их для предсказаний:
Инференс на изображении
from yolov11 import YOLO
# Загрузка предобученной модели
model = YOLO(‘yolov11-coco.pt’)# Загрузка изображения
image_path = ‘image.jpg’# Предсказание
results = model.predict(image_path)# Отображение результатов
results.show() # Показывает изображение с предсказанными объектами
results.save(«output.jpg») # Сохраняет результат
Инференс на видео
# Предсказание на видео
video_path = ‘video.mp4’
results = model.predict(video_path)# Сохранение выходного видео
results.save(«output_video.mp4»)
4. Тренировка модели на своих данных
Подготовка данных
Для обучения YOLO вам нужно подготовить датасет в формате, совместимом с библиотекой. Обычно используется формат YOLO TXT:
- Каждое изображение имеет файл аннотаций с таким же именем, как и изображение, но с расширением
.txt
. - Внутри файла аннотаций каждая строка описывает объект:
<class_id> <x_center> <y_center> <width> <height>
, где координаты нормализованы (от 0 до 1).
Пример структуры файлов:
dataset/
├── images/
│ ├── train/
│ │ ├── img1.jpg
│ │ ├── img2.jpg
│ └── val/
│ ├── img3.jpg
├── labels/
│ ├── train/
│ │ ├── img1.txt
│ │ ├── img2.txt
│ └── val/
│ ├── img3.txt
Теперь перейдем к обучению модели YOLO11 на ваших данных.
Шаг 1: Настройка конфигурации
Создайте файл конфигурации для вашего датасета. Пример файла конфигурации:
train: /path/to/train/images
val: /path/to/val/images
test: /path/to/test/imagesnc: 80 # Количество классов
names: [‘class1’, ‘class2’, …] # Имена классов
Шаг 2: Запуск процесса обучения
Запустите процесс обучения с помощью следующей команды:
python train.py —img 640 —batch 16 —epochs 50 —data /path/to/your/config.yaml —cfg yolov11.yaml —weights yolov11.pt
Либо через функции модели:
model = YOLO(«yolo11n.pt»)model.train(data=»data.yaml», epochs=30, save=True, save_dir=’/run’)
--img
— размер изображений.--batch
— размер батча.--epochs
— количество эпох (обычно берут 100 эпох на нормальном железе).--data
— путь к файлу конфигурации датасета.--cfg
— файл конфигурации модели.--weights
— начальные веса модели (можно использовать предобученные веса).
Оценка модели
После завершения обучения оцените вашу модель на тестовом наборе данных. YOLO11 предоставляет удобные метрики для оценки, такие как mAP (mean Average Precision).
python val.py —data /path/to/your/config.yaml —weights /path/to/trained/weights.pt
Зачастую все данные находятся в папке runs после обучения модели — эта настройка идет по умолчанию.
Модели можно найти тут:
https://github.com/ultralytics/
Датасеты здесь:
https://universe.roboflow.com
Официальная документация:
https://docs.ultralytics.com/ru/models/yolo11/
Заключение
Обучение работы с YOLO11 может показаться сложным, но следуя приведенным шагам, вы сможете подготовить данные, настроить и обучить мощную модель для детекции объектов. YOLO11 предлагает значительные улучшения в производительности и точности, делая его отличным выбором для приложений в реальном времени.
Не забывайте обновлять свои навыки и следить за новыми версиями и улучшениями, чтобы оставаться на передовой в области компьютерного зрения. Удачи в ваших проектах!