YOLO Vision 2026:

使用 Ultralytics YOLO 进行模型基准测试#

Ultralytics YOLO ecosystem and integrations

基准测试可视化#

刷新浏览器

由于潜在的 cookie 问题,你可能需要刷新页面才能正确查看图表。

简介#

当你的模型训练和验证完成后,合乎逻辑的下一步就是在各种现实场景中评估其性能。Ultralytics YOLO26 中的 Benchmark 模式为此提供了一个强大的框架,用于评估你的模型在各种导出格式下的速度和准确率



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

为什么基准测试至关重要?#

  • 明智决策: 深入了解速度与准确率之间的权衡。
  • 资源分配: 了解不同的导出格式在不同硬件上的性能表现。
  • 优化: 学习哪种导出格式最适合你的特定使用场景。
  • 成本效益: 根据基准测试结果更高效地使用硬件资源。

基准测试模式中的关键指标#

  • **mAP50-95:**适用于目标检测、分割和姿态估计。
  • **accuracy_top1:**适用于图像分类
  • 推理时间: 每张图片所用的时间(毫秒)。

支持的导出格式#

  • ONNX: 实现最佳 CPU 性能
  • TensorRT: 实现最大 GPU 效率
  • OpenVINO: 针对 Intel 硬件优化
  • CoreML、TensorFlow SavedModel 等: 满足多样化的部署需求。
提示
  • 导出至 ONNX 或 OpenVINO 可实现高达 3 倍的 CPU 加速。
  • 导出至 TensorRT 可实现高达 5 倍的 GPU 加速。

使用示例#

推荐安装

在进行基准测试前,请安装带有导出依赖项的 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")

参数#

诸如 modeldataimgszquantizedeviceverboseformat 等参数让你可以灵活地针对特定需求微调基准测试,并轻松比较不同导出格式的性能。

默认值描述
modelNone指定模型文件的路径。同时接受 .pt.yaml 格式,例如用于预训练模型或配置文件时使用 "yolo26n.pt"
dataNone用于基准测试的数据集 YAML 路径,通常包括验证数据的路径和设置。示例:"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 之前,添加的一个微小的 epsilon(毫秒),用于防止除以零。很少需要更改。
format''仅对指定的导出格式进行基准测试(例如 format=onnx)。留空则会自动测试所有支持的格式。
独立 `benchmark()` 函数的默认设置

独立的 benchmark() 函数(from ultralytics.utils.benchmarks import benchmark)使用其自身的签名默认值,而不是上面的表格值,特别是 model="yolo26n.pt"imgsz=160;显式传递 imgsz 以匹配 yolo benchmark CLI。

导出格式#

基准测试将尝试在下面列出的所有可能导出格式上自动运行。或者,你也可以使用 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

查看完整的 export 详情,请访问 Export 页面。

常见问题解答#

  • 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, device=0)

    有关基准测试参数的更多详细信息,请访问参数部分。

  • 将 YOLO26 模型导出为各种格式(如 ONNXTensorRTOpenVINO)可以让你根据部署环境优化性能。例如:

    • ONNX: 提供高达 3 倍的 CPU 速度提升。
    • TensorRT: 提供高达 5 倍的 GPU 速度提升。
    • OpenVINO: 专为 Intel 硬件优化。

    这些格式增强了模型的速度和准确率,使其在各种现实应用中更高效。访问导出页面了解完整详情。

  • 对你的 YOLO26 模型进行基准测试至关重要,原因如下:

    • 知情决策: 了解速度与准确性之间的权衡。
    • 资源分配: 评估不同硬件选项的性能。
    • 优化: 确定哪种导出格式为特定用例提供最佳性能。
    • 成本效益: 根据基准测试结果优化硬件使用。

    mAP50-95、Top-1 准确率和推理时间等关键指标有助于进行这些评估。有关更多信息,请参考关键指标部分。

  • YOLO26 支持多种导出格式,每种格式都针对特定的硬件和用例进行了定制:

    • ONNX: CPU 性能表现最佳。
    • TensorRT: GPU 效率理想之选。
    • OpenVINO: 针对 Intel 硬件优化。
    • **CoreML 与 TensorFlow:**适用于 iOS 和通用 ML 应用。

    有关支持的格式及其各自优势的完整列表,请查看支持的导出格式部分。

  • 在运行基准测试时,可以自定义多个参数以满足特定需求:

    • model: 模型文件的路径(例如 "yolo26n.pt")。
    • **data:**数据集 YAML 的路径(例如 "coco8.yaml");分类任务则改为接收数据集目录或内置数据集名称(例如 imagenet10)。
    • **imgsz:**作为单个整数的正方形输入图像大小,例如 640。Benchmark 模式在 PyTorch 和导出的格式之间使用相同的正方形图像大小,以进行公平比较。
    • **quantize:**量化精度:16 表示 FP16,8 表示 INT8(对边缘设备有用);32/未设置表示 FP32。
    • device: 指定计算设备(例如 "cpu", "cuda:0")。
    • verbose: 控制日志记录的详细程度。

    有关参数的完整列表,请参考参数部分。

评论