YOLO Vision 2026:

Тестирование производительности моделей с помощью Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Визуализация тестов#

Введение#

Когда твоя модель обучена и проверена, следующим логическим шагом будет оценка её производительности в различных реальных сценариях. Режим Benchmark в Ultralytics YOLO26 служит этой цели, предоставляя надежный фреймворк для оценки скорости и accuracy твоей модели в различных форматах экспорта.



Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?

Почему тестирование так важно?#

  • Обоснованные решения: Получай представление о компромиссах между скоростью и точностью.
  • Распределение ресурсов: Понимай, как различные форматы экспорта работают на разном оборудовании.
  • Оптимизация: Узнай, какой формат экспорта обеспечивает наилучшую производительность для твоего конкретного случая использования.
  • Экономическая эффективность: Эффективнее используй аппаратные ресурсы на основе результатов тестирования.

Основные метрики в режиме тестирования#

  • mAP50-95: Для object detection, сегментации и оценки позы.
  • accuracy_top1: Для image classification.
  • Время вывода: Время, затраченное на каждое изображение, в миллисекундах.

Поддерживаемые форматы экспорта#

  • ONNX: Для оптимальной производительности на CPU
  • TensorRT: Для максимальной эффективности на GPU
  • OpenVINO: Для оптимизации под оборудование Intel
  • CoreML, TensorFlow SavedModel и другие: Для разнообразных потребностей развертывания.
Совет
  • Экспортируй в ONNX или OpenVINO для ускорения работы на CPU до 3 раз.
  • Экспортируй в TensorRT для ускорения работы на GPU до 5 раз.

Примеры использования#

Рекомендуемая установка

Установи Ultralytics вместе с зависимостями для экспорта перед началом тестирования, чтобы избежать проблем с отсутствующими пакетами.

pip install ultralytics[export]

Запусти тесты YOLO26n для всех поддерживаемых форматов экспорта (ONNX, TensorRT и т.д.). Смотри раздел Аргументы ниже для получения полного списка опций экспорта.

Пример
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")

Аргументы#

Такие аргументы, как model, data, imgsz, quantize, device, verbose и format, дают тебе гибкость для точной настройки бенчмарков под твои конкретные нужды и легкого сравнения производительности различных форматов экспорта.

КлючЗначение по умолчаниюОписание
modelNoneУказывает путь к файлу модели. Принимает форматы .pt и .yaml, например, "yolo26n.pt" для предобученных моделей или файлов конфигурации.
dataNoneПуть к файлу YAML датасета для бенчмаркинга, обычно включающий пути и настройки для validation data. Пример: "coco8.yaml". Для классификации вместо этого используется каталог датасета или встроенное имя датасета (например, imagenet10).
imgsz640Размер входного изображения для модели. Должен быть одним целым числом для квадратных изображений (например, 640); benchmark() поддерживает только квадратные размеры изображений.
quantizeNoneТочность квантования: 16 (FP16) или 8 (INT8/PTQ; требуется калибровка data/fraction); 32/не задано — это FP32. Заменяет устаревшие флаги half/int8.
device'cpu'Определяет вычислительное устройство (или устройства) для бенчмаркинга, такие как "cpu" или "cuda:0".
verboseFalseУправляет уровнем детализации в выводе логирования. Установи verbose=True для подробных логов.
eps0.001Малое эпсилон (в миллисекундах), добавляемое к времени инференса на одно изображение перед конвертацией в FPS, для предотвращения деления на ноль. Меняется редко.
format''Тестирует только указанный формат экспорта (например, format=onnx). Оставь поле пустым, чтобы протестировать каждый поддерживаемый формат автоматически.
Значения по умолчанию для отдельной функции `benchmark()`

Автономная функция benchmark() (from ultralytics.utils.benchmarks import benchmark) использует свои собственные значения сигнатуры по умолчанию вместо значений таблицы выше, в частности model="yolo26n.pt" и imgsz=160; передай imgsz явно, чтобы соответствовать CLI yolo benchmark.

Форматы экспорта#

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

ФорматАргумент formatМодельМетаданныеАргументы
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

Смотри полную информацию об export на странице Экспорт.

FAQ#

  • Ultralytics YOLO26 предлагает режим Benchmark для оценки производительности твоей модели в различных форматах экспорта. Этот режим дает представление о ключевых метриках, таких как mean Average Precision (mAP50-95), точность и время инференса в миллисекундах. Чтобы запустить бенчмарки, ты можешь использовать Python или команды CLI. Например, для запуска бенчмарка на GPU:

    Пример
    from ultralytics.utils.benchmarks import benchmark
    
    # Benchmark on GPU
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

    Для получения более подробной информации об аргументах бенчмарка посети раздел Arguments.

  • Экспорт моделей YOLO26 в различные форматы, такие как ONNX, TensorRT и OpenVINO, позволяет оптимизировать производительность в зависимости от твоего среды развертывания. Например:

    • ONNX: Обеспечивает ускорение CPU до 3 раз.
    • TensorRT: Предлагает ускорение GPU до 5 раз.
    • OpenVINO: Специально оптимизирован для оборудования Intel.

    Эти форматы повышают как скорость, так и точность твоих моделей, делая их более эффективными для различных реальных приложений. Посети страницу Export для получения полных сведений.

  • Бенчмаркинг моделей YOLO26 необходим по нескольким причинам:

    • Принятие взвешенных решений: Понимание баланса между скоростью и точностью.
    • Распределение ресурсов: Оценка производительности на различных вариантах оборудования.
    • Оптимизация: Определение формата экспорта с лучшей производительностью для конкретных случаев использования.
    • Экономическая эффективность: Оптимизация использования оборудования на основе результатов бенчмарков.

    Ключевые метрики, такие как mAP50-95, Top-1 accuracy и время инференса, помогают в проведении этих оценок. Обратись к разделу Key Metrics для получения дополнительной информации.

  • YOLO26 поддерживает множество форматов экспорта, каждый из которых адаптирован под конкретное оборудование и задачи:

    • ONNX: Лучший выбор для производительности CPU.
    • TensorRT: Идеально подходит для эффективности GPU.
    • OpenVINO: Оптимизирован для оборудования Intel.
    • CoreML & TensorFlow: Полезно для iOS и общих приложений машинного обучения.

    Полный список поддерживаемых форматов и их преимуществ ты найдешь в разделе Supported Export Formats.

  • При запуске бенчмарков можно настроить несколько аргументов в соответствии с твоими потребностями:

    • model: Путь к файлу модели (например, "yolo26n.pt").
    • data: Путь к YAML-файлу датасета (например, "coco8.yaml"); для классификации вместо этого указывается каталог датасета или встроенное имя датасета (например, imagenet10).
    • imgsz: Размер квадратного входного изображения в виде единого целого числа, такого как 640. Режим Benchmark использует одинаковый размер квадратного изображения в PyTorch и экспортированных форматах для честного сравнения.
    • quantize: Точность квантования: 16 для FP16, 8 для INT8 (полезно для периферийных устройств); 32/не задано — это FP32.
    • device: Указание вычислительного устройства (например, "cpu", "cuda:0").
    • verbose: Управление уровнем детализации логирования.

    Полный список аргументов смотри в разделе Arguments.

Комментарии