Искусственный интеллект

Как установить и обучить YOLO26: пошаговая инструкция

Пошаговая установка Ultralytics YOLO26 на Windows, macOS и Linux: датасет, разметка, обучение, проверка метрик, инференс и экспорт ONNX.

Автор
3 мин чтения

Эта инструкция проведёт от пустой папки до собственной модели YOLO26: установим Ultralytics в отдельное Python-окружение, проверим запуск на тестовом изображении, подготовим датасет, обучим детектор, оценим метрики и экспортируем модель в ONNX. Команды подходят для Windows, macOS и Linux; мощная видеокарта желательна, но для проверки процесса не обязательна.

Актуально на 22 июня 2026 года. Примеры сверены с документацией YOLO26 и режимами Train, Val, Predict и Export. Интерфейс пакета может измениться — перед рабочим проектом фиксируйте версию зависимостей.

Что получится в конце

  • изолированное Python-окружение с пакетом ultralytics;
  • рабочий запуск YOLO26 на изображении;
  • датасет с разметкой в формате YOLO и файлом dataset.yaml;
  • веса best.pt, выбранные по результату валидации;
  • предсказания на новых фото и видео;
  • экспортированная ONNX-модель для дальнейшего развёртывания.
Пять этапов работы с YOLO: сбор данных, разметка, обучение, проверка и экспорт
Практический процесс состоит из пяти этапов. Не переходите к настройке гиперпараметров, пока не получили честный базовый результат.

Какую версию и размер YOLO выбрать

Название YOLO используют разные исследовательские команды, поэтому номера версий не образуют одну непрерывную официальную линию. В этой инструкции используется Ultralytics YOLO26: официальный пакет предоставляет единый CLI и Python API для обучения, проверки, предсказания и экспорта. По данным проекта, YOLO26 по умолчанию выполняет end-to-end-детекцию без отдельного NMS и поддерживает размеры n, s, m, l и x.

МодельКогда выбиратьПрактический совет
yolo26n.ptПервый эксперимент, CPU, edge-устройствоНачните с неё: быстрее обнаружите ошибки данных
yolo26s.ptНужен следующий уровень точности при умеренных ресурсахСравнивайте с nano на одном test-наборе
yolo26m.ptЕсть GPU и важнее качество, чем скоростьКонтролируйте VRAM и задержку
yolo26l.pt, yolo26x.ptСерверный GPU, сложная задача, проведён базовый экспериментНе начинайте с них: цикл обучения и отладки дороже

YOLO11 и YOLOv8 остаются разумным выбором для проектов с уже проверенным кодом и экспортом. Для нового учебного проекта начните с yolo26n.pt, а решение о переходе на более крупную модель принимайте по метрикам на собственном независимом test-наборе и скорости на целевом устройстве.

Что нужно перед установкой

  • Python: используйте поддерживаемую пакетами версию Python и отдельное виртуальное окружение. Команда python --version должна выполняться без ошибки.
  • Диск: оставьте запас под Python-зависимости, веса, датасет и каталог runs. Реальный объём зависит от числа и разрешения изображений.
  • GPU: NVIDIA CUDA заметно ускоряет обучение; Apple Silicon может использовать MPS. CPU подходит для проверки установки и небольшого эксперимента, но обучение обычно будет медленным.
  • Данные: изображения должны законно использоваться в проекте и отражать реальные условия эксплуатации.

Шаг 1. Создайте папку и виртуальное окружение

Изоляция не даёт зависимостям YOLO конфликтовать с другими Python-проектами. На macOS или Linux откройте Terminal:

mkdir yolo-project
cd yolo-project
python3 -m venv .venv
source .venv/bin/activate

На Windows откройте PowerShell:

mkdir yolo-project
cd yolo-project
py -m venv .venv
.venv\Scripts\Activate.ps1

Если PowerShell запрещает запуск скрипта активации, не отключайте защиту для всей системы. Разрешите скрипты только для текущего процесса и повторите активацию:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.venv\Scripts\Activate.ps1

Шаг 2. Установите Ultralytics

Обновите pip, установите пакет из PyPI и выведите фактически установленную версию:

python -m pip install --upgrade pip
python -m pip install ultralytics
python -c "import ultralytics; print(ultralytics.__version__)"
yolo checks
Команды создания Python-окружения и установки Ultralytics YOLO
Демонстрационный терминал: пакет устанавливается в отдельное окружение, после чего команда yolo checks проверяет среду.

Для Linux-сервера без графического интерфейса официальная инструкция предлагает headless-вариант, который не тянет GUI-зависимости OpenCV:

python -m pip install ultralytics-opencv-headless

Шаг 3. Проверьте CPU, CUDA или MPS

python -c "import torch; print('PyTorch:', torch.__version__); print('CUDA:', torch.cuda.is_available()); print('MPS:', hasattr(torch.backends, 'mps') and torch.backends.mps.is_available())"
  • CUDA: True — PyTorch видит совместимый NVIDIA GPU;
  • MPS: True — на совместимом Mac можно указать device=mps;
  • оба значения False — YOLO запустится на CPU, если явно не задано другое устройство.
Материал по теме:  Исторический рубеж: боты впервые обогнали людей по объему веб-трафика

Если CUDA не определяется, сначала выполните nvidia-smi. Ошибка на этом этапе обычно связана не с датасетом, а с драйвером, сборкой PyTorch или окружением.

Шаг 4. Запустите YOLO26 на тестовом изображении

Первый запуск автоматически загрузит предобученные веса. Эта проверка отделяет проблемы установки от будущих проблем разметки:

yolo detect predict model=yolo26n.pt \
  source="https://ultralytics.com/images/bus.jpg" \
  imgsz=640 conf=0.25 save=True

На Windows можно выполнить ту же команду одной строкой. Ultralytics сохраняет результаты в каталоге runs/detect/predict или в следующей папке с номером, если такой запуск уже был.

Шаг 5. Определите классы и соберите изображения

Запишите правило для каждого класса до разметки. Например, для контроля средств защиты: person, helmet, vest. Решите, размечать ли частично видимые каски, отражения, изображения на плакатах и объекты минимального размера. Если разметчики трактуют класс по-разному, увеличение числа изображений не исправит противоречивые метки.

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

Шаг 6. Разметьте данные в формате YOLO

Для детекции каждому изображению соответствует TXT-файл с тем же базовым именем. Одна строка описывает один объект:

class_id x_center y_center width height

Координаты центра, ширина и высота рамки нормализованы относительно размера изображения и лежат в диапазоне от 0 до 1. Нумерация классов начинается с нуля. Полный формат описан в документации Ultralytics по detection datasets.

Структура папок images и labels и пример строки разметки YOLO
Изображение 001.jpg и разметка 001.txt должны находиться в соответствующих разделах и иметь одинаковое базовое имя.

Шаг 7. Разделите датасет без утечки данных

Практический стартовый вариант — 70–80% изображений для train, 10–20% для val и оставшаяся часть для test. Это не универсальный закон: важнее независимость выборок. Кадры одной сцены, камеры или короткого видео распределяйте группами, иначе почти одинаковые изображения попадут и в обучение, и в проверку, а метрики окажутся завышенными.

Материал по теме:  Сознание и искусственный интеллект: 7 фактов о пробуждении ИИ в 2025 году

Шаг 8. Создайте dataset.yaml

Создайте файл dataset.yaml в корне проекта:

path: ./dataset
train: images/train
val: images/val
test: images/test

names:
  0: person
  1: helmet
  2: vest

Проверьте, что список names совпадает с идентификаторами в TXT-файлах. Если класса 2 в YAML нет, строка, начинающаяся с 2, некорректна.

Шаг 9. Запустите базовое обучение

Начните с предобученной nano-модели и стандартных параметров. Такой baseline быстрее покажет ошибки путей, классов и разметки:

yolo detect train model=yolo26n.pt data=dataset.yaml \
  epochs=100 imgsz=640 patience=20 \
  project=runs name=helmet-baseline
  • epochs=100 — верхняя граница числа эпох, а не обещание, что нужны все 100;
  • patience=20 — ранняя остановка, если качество долго не улучшается;
  • imgsz=640 — размер входа; повышение увеличивает расход памяти и не гарантирует улучшение;
  • project и name — предсказуемое место для результатов.

Ultralytics автоматически использует доступный GPU или CPU. Явный выбор устройства:

# NVIDIA GPU 0
yolo detect train model=yolo26n.pt data=dataset.yaml epochs=100 device=0

# Apple Silicon
yolo detect train model=yolo26n.pt data=dataset.yaml epochs=100 device=mps

# Только CPU
yolo detect train model=yolo26n.pt data=dataset.yaml epochs=30 device=cpu
Пример команды обучения YOLO26 и последующей валидации best.pt
Демонстрационный журнал обучения: итоговые числа зависят от датасета и оборудования, поэтому здесь показана только форма вывода.

Шаг 10. Продолжите прерванное обучение

Не запускайте новый эксперимент поверх старого. Для продолжения используйте сохранённый last.pt и параметр resume:

yolo detect train resume \
  model=runs/helmet-baseline/weights/last.pt

Шаг 11. Проверьте best.pt на валидации

yolo detect val \
  model=runs/helmet-baseline/weights/best.pt \
  data=dataset.yaml plots=True
МетрикаЧто показываетЧто проверить при низком значении
PrecisionКак часто обнаружение модели верноЛожные срабатывания, похожий фон, неверные рамки
RecallКакую долю реальных объектов модель находитПропущенная разметка, малые и закрытые объекты
mAP50Средняя точность при менее строгом пороге IoUОбщее распознавание классов
mAP50–95Более строгая оценка качества рамок на наборе пороговТочность границ и согласованность разметки

Откройте confusion_matrix.png, results.png и примеры предсказаний в каталоге запуска. Общая mAP может скрывать провал редкого, но важного класса, поэтому смотрите показатели по каждому классу и вручную разбирайте ложные срабатывания и пропуски.

Шаг 12. Запустите модель на своих фото и видео

# Одно изображение
yolo detect predict model=runs/helmet-baseline/weights/best.pt \
  source="test-images/frame.jpg" conf=0.25 save=True

# Видео
yolo detect predict model=runs/helmet-baseline/weights/best.pt \
  source="test-video.mp4" conf=0.25 save=True

# Веб-камера 0
yolo detect predict model=runs/helmet-baseline/weights/best.pt \
  source=0 show=True

Порог conf выбирайте по цене ошибки. Повышение порога уменьшает часть ложных срабатываний, но может увеличить число пропусков. Подбирайте его на отдельной выборке, а не на одном удачном кадре.

Шаг 13. Используйте модель через Python

from ultralytics import YOLO

model = YOLO("runs/helmet-baseline/weights/best.pt")
results = model.predict(
    source="test-images/frame.jpg",
    conf=0.25,
    save=True,
)

for result in results:
    print(result.boxes.xyxy)
    print(result.boxes.conf)
    print(result.boxes.cls)

Шаг 14. Экспортируйте YOLO в ONNX

yolo export \
  model=runs/helmet-baseline/weights/best.pt \
  format=onnx imgsz=640 simplify=True

ONNX удобен как переносимый базовый формат. Для NVIDIA часто используют TensorRT, для Intel — OpenVINO, для Apple — Core ML. Экспорт не завершает проверку: сравните предсказания экспортированной модели с best.pt и измерьте задержку на том устройстве, где система действительно будет работать.

yolo benchmark \
  model=runs/helmet-baseline/weights/best.pt \
  data=dataset.yaml imgsz=640 device=0

Частые ошибки и рабочие решения

FileNotFoundError или dataset images not found

Проверьте, откуда запускается команда, значение path в dataset.yaml и регистр букв в именах папок. На Linux Images и images — разные пути.

Материал по теме:  Essential AI запустила революционную модель Rnj-1: компактный ИИ превзошёл гигантов в программировании

CUDA out of memory

Сначала уменьшите batch, затем imgsz или размер модели. Закройте процессы, занявшие VRAM, и проверьте их через nvidia-smi. Не меняйте сразу все параметры — иначе не узнаете причину.

yolo detect train model=yolo26n.pt data=dataset.yaml \
  epochs=100 imgsz=640 batch=4 device=0

Модель ничего не находит

Временно снизьте conf и посмотрите сырые предсказания. Затем проверьте порядок классов, координаты разметки, пропущенные объекты и отличие новых кадров от обучающих. Низкий порог — инструмент диагностики, а не автоматическое решение.

Высокая mAP, но плохая работа в реальности

Чаще всего это утечка между train и val, однообразные данные или domain shift. Сформируйте test-набор из другой камеры, дня, помещения или партии продукции и не используйте его для подбора параметров.

Команда yolo не найдена

Активируйте окружение и проверьте python -m pip show ultralytics. Если CLI всё ещё недоступен, убедитесь, что python и pip относятся к одному окружению.

Лицензия: что учесть до коммерческого запуска

Репозиторий и модели Ultralytics доступны по AGPL-3.0 и отдельной Enterprise-лицензии. «Открытый исходный код» не означает отсутствие обязательств. До включения модели в закрытый продукт проверьте условия конкретного репозитория, весов и способа распространения; юридически значимое решение лучше согласовать со специалистом по лицензиям.

FAQ

Можно ли обучить YOLO без видеокарты?

Да. CPU подходит для проверки конвейера и небольшого эксперимента, но обучение обычно идёт значительно дольше. Для серьёзного датасета практичнее совместимый GPU или облачная среда.

Сколько изображений нужно?

Универсального числа нет. Сложность классов, разнообразие условий и качество разметки важнее голого объёма. Начните с небольшого, но разнообразного набора, обучите baseline и собирайте данные именно для найденных ошибок.

Почему используется best.pt, а не last.pt?

best.pt соответствует лучшему результату по критерию валидации в ходе запуска, а last.pt хранит состояние последней эпохи и нужен прежде всего для продолжения обучения.

YOLOv8, YOLO11 или YOLO26?

Для существующего продукта сохраняйте проверенную версию, пока новый вариант не прошёл тесты экспорта, скорости и качества. Для нового проекта YOLO26 — актуальная линия Ultralytics на дату статьи; YOLO11 и YOLOv8 полезны, если нужная интеграция уже отлажена именно с ними.

Как понять, что модель готова к эксплуатации?

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

Вывод

Рабочий путь к собственной YOLO-модели начинается не с большой архитектуры, а с воспроизводимого baseline. Установите Ultralytics в отдельное окружение, проверьте yolo26n.pt, аккуратно разделите данные, обучите модель, изучите ошибки и только затем меняйте размер сети или гиперпараметры. Так каждый эксперимент отвечает на конкретный вопрос, а итоговую модель можно объективно сравнить и безопаснее перенести в производство.

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

Комментарии к статье

Оставьте комментарий

Ваш email-адрес не будет опубликован. Обязательные поля помечены *

Прокрутить наверх