Тестирование производительности моделей с помощью Ultralytics YOLO
Визуализация результатов тестирования
Возможно, тебе потребуется обновить страницу, чтобы корректно отобразить графики из-за проблем с куки-файлами.
Введение
После обучения и валидации модели следующим логическим шагом будет оценка её производительности в различных реальных сценариях. Режим тестирования (Benchmark) в Ultralytics YOLO26 служит этой цели, предоставляя надежную базу для оценки скорости и точности твоей модели для различных форматов экспорта.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
Почему тестирование так важно?
- Обоснованные решения: Получи представление о балансе между скоростью и точностью.
- Распределение ресурсов: Пойми, как разные форматы экспорта работают на разном оборудовании.
- Оптимизация: Узнай, какой формат экспорта обеспечивает наилучшую производительность для твоего конкретного случая использования.
- Экономическая эффективность: Используй аппаратные ресурсы более эффективно на основе результатов тестирования.
Ключевые метрики в режиме тестирования
- mAP50-95: Для обнаружения объектов, сегментации и оценки позы.
- accuracy_top5: Для классификации изображений.
- Время инференса: Время, затраченное на каждое изображение в миллисекундах.
Поддерживаемые форматы экспорта
- 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, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")Аргументы
Такие аргументы, как model, data, imgsz, half, device, verbose и format, дают пользователям гибкость в настройке тестирования под свои нужды и позволяют легко сравнивать производительность различных форматов экспорта.
| Ключ | Значение по умолчанию | Описание |
|---|---|---|
model | None | Указывает путь к файлу модели. Принимает форматы .pt и .yaml, например, "yolo26n.pt" для предобученных моделей или файлов конфигурации. |
data | None | Путь к YAML-файлу, определяющему набор данных для тестирования, обычно включая пути и настройки для валидационных данных. Пример: "coco8.yaml". |
imgsz | 640 | Размер входного изображения для модели. Может быть целым числом для квадратных изображений или кортежем (width, height) для прямоугольных, например, (640, 480). |
half | False | Включает инференс FP16 (половинной точности), сокращая использование памяти и потенциально увеличивая скорость на совместимом оборудовании. Используй half=True для включения. |
int8 | False | Активирует квантование INT8 для еще более оптимизированной производительности на поддерживаемых устройствах, что особенно полезно для периферийных устройств (edge devices). Установи int8=True для использования. |
device | None | Определяет вычислительное устройство (устройства) для тестирования, например "cpu" или "cuda:0". |
verbose | False | Управляет уровнем детализации вывода логов. Установи verbose=True для подробных логов. |
format | '' | Тестирует только указанный формат экспорта (например, format=onnx). Оставь пустым для автоматического тестирования всех поддерживаемых форматов. |
Форматы экспорта
Тесты будут автоматически запущены для всех возможных форматов экспорта, перечисленных ниже. Кроме того, ты можешь запустить тесты для конкретного формата, используя аргумент format, который принимает любой из упомянутых ниже форматов.
| Формат | Аргумент format | Модель | Метаданные | Аргументы |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
Смотри полные сведения об export на странице Экспорт.
Часто задаваемые вопросы (FAQ)
Как мне протестировать производительность моей модели YOLO26 с помощью Ultralytics?
Ultralytics YOLO26 предлагает режим тестирования (Benchmark) для оценки производительности твоей модели для различных форматов экспорта. Этот режим дает представление о ключевых метриках, таких как средняя точность (mAP50-95), точность и время инференса в миллисекундах. Чтобы запустить тестирование, ты можешь использовать команды Python или CLI. Например, для запуска на GPU:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Для получения дополнительной информации об аргументах тестирования посети раздел Аргументы.
В чем преимущества экспорта моделей YOLO26 в различные форматы?
Экспорт моделей YOLO26 в различные форматы, такие как ONNX, TensorRT и OpenVINO, позволяет оптимизировать производительность в зависимости от среды развертывания. Например:
- ONNX: Обеспечивает ускорение на CPU до 3 раз.
- TensorRT: Предлагает ускорение на GPU до 5 раз.
- OpenVINO: Специально оптимизирован для оборудования Intel.
Эти форматы улучшают скорость и точность твоих моделей, делая их более эффективными для различных реальных приложений. Посети страницу Экспорт для получения подробной информации.
Почему тестирование крайне важно при оценке моделей YOLO26?
Тестирование твоих моделей YOLO26 необходимо по нескольким причинам:
- Обоснованные решения: Пойми компромиссы между скоростью и точностью.
- Распределение ресурсов: Оцени производительность для различных аппаратных опций.
- Оптимизация: Определи, какой формат экспорта предлагает лучшую производительность для конкретных задач.
- Экономическая эффективность: Оптимизируй использование оборудования на основе результатов тестов.
Ключевые метрики, такие как mAP50-95, точность Top-5 и время инференса, помогают сделать эти оценки. Обратись к разделу Ключевые метрики для получения дополнительной информации.
Какие форматы экспорта поддерживает YOLO26 и в чем их преимущества?
YOLO26 поддерживает множество форматов экспорта, каждый из которых адаптирован под специфическое оборудование и варианты использования:
- ONNX: Лучший выбор для производительности на CPU.
- TensorRT: Идеально подходит для эффективности на GPU.
- OpenVINO: Оптимизирован для оборудования Intel.
- CoreML и TensorFlow: Полезны для iOS и общих ML-приложений.
Полный список поддерживаемых форматов и их соответствующих преимуществ смотри в разделе Поддерживаемые форматы экспорта.
Какие аргументы я могу использовать для точной настройки тестов YOLO26?
При запуске тестирования можно настроить ряд аргументов в соответствии с конкретными потребностями:
- model: Путь к файлу модели (например, "yolo26n.pt").
- data: Путь к YAML-файлу, определяющему набор данных (например, "coco8.yaml").
- imgsz: Размер входного изображения, либо одно целое число, либо кортеж.
- half: Включение инференса FP16 для повышения производительности.
- int8: Активация квантования INT8 для периферийных устройств.
- device: Укажи вычислительное устройство (например, "cpu", "cuda:0").
- verbose: Управление уровнем детализации логирования.
Полный список аргументов смотри в разделе Аргументы.