YOLO ONNX и веса моделей

Что такое YOLO, .pt, ONNX, размеры моделей и opset

YOLO ONNX и веса моделей

YoloEase обучает YOLO-модели через Ultralytics и после запуска обучения конвертирует результат в ONNX. Сейчас основной поддерживаемый сценарий — detect, то есть детекция объектов прямоугольными рамками.

Что такое YOLO

YOLO — семейство моделей для детекции объектов. Такая модель получает изображение и возвращает список найденных объектов: класс, уверенность и рамку.

Для YoloEase основной сценарий — детекция объектов. Например:

  • tgt — цель на экране;
  • btn — кнопка, по которой не нужно кликать как по цели;
  • enemy, loot, hp_bar — любые другие классы, если вы обучили их сами.

Модели для сегментации, позы и классификации тоже могут называться YOLO, но у них другой тип выхода. Для авторазметки YoloEase и ML Search используйте модели детекции объектов.

Какие версии использовать

В Settings есть поле Yolo8/10+ base model. Туда можно указать имя базовой модели, например yolo11s.pt, или путь к локальному .pt.

Settings

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

Если не знаете, с чего начать, берите небольшую модель вроде yolo11s.pt: она обычно лучше nano, но еще достаточно быстрая для экспериментов.

Размеры моделей

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

  • n — nano, быстрее и легче, но может хуже видеть сложные объекты;
  • s — small, хороший стартовый баланс;
  • m — medium, больше качество и дольше обучение;
  • l и x — крупные модели, требуют больше VRAM и времени.

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

Что такое .pt

.pt — PyTorch-веса. Этот формат нужен для обучения, дообучения и работы через Ultralytics.

После запуска обучения обычно появляются:

  • best.pt — веса лучшей эпохи по проверочным метрикам;
  • last.pt — веса последней эпохи.

Если хотите продолжать эксперименты в YoloEase или Ultralytics, сохраняйте .pt.

Что такое ONNX

.onnx — переносимый формат модели для распознавания. YoloEase экспортирует ONNX после обучения, а EyeAuras использует именно этот файл в ML Search.

Model output files

ONNX удобен тем, что его можно загрузить в среду выполнения без Python-стека для обучения. Это и нужно для автоматизации: модель работает как часть сценария EyeAuras.

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

Совместимость

ТребованиеРекомендуемо
Тип задачиdetect, детекция объектов.
ЭкспортОбычный экспорт Ultralytics YOLO.
Формат запуска.onnx.
Opset17, если модель экспортирована YoloEase.
МетаданныеЖелательно наличие names, чтобы классы читались автоматически.
Входной размерСоответствует imgsz, например 640.
Программа запускаДолжна поддерживать разбор выхода YOLO и NMS, а не просто “любой ONNX”.

Opset

Opset — версия набора операций ONNX. YoloEase экспортирует модель с opset 17, потому что это хороший совместимый вариант для текущего ONNX Runtime и цепочки YoloDotNet.

Типовые проблемы с opset:

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

Если модель не загружается в EyeAuras, сначала проверьте, что это именно ONNX-модель для детекции объектов, экспортированная обычным экспортом Ultralytics.

Если модель скачана из интернета, но это segmentation, pose, classification или нестандартный экспорт, она может не подойти даже при расширении .onnx.

Метаданные и метки

ONNX-модель может содержать имена классов. Если имена есть, EyeAuras и редактор задачи смогут показать метки понятнее. Если метаданных нет или имена отличаются от меток проекта, используйте сопоставление меток в редакторе разметки.

Для EyeAuras выбирайте .onnx. .pt нужен для обучения и дообучения, но не для ML Search.

Где взять демо-веса

См. также: Trainer, EyeAuras интеграция, диагностика.