Skip to content

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

Ultralytics YOLO生态系统和集成

基准可视化

刷新浏览器

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

介绍

一旦您的模型经过训练和验证,下一个合乎逻辑的步骤就是评估其在各种真实场景中的表现。Ultralytics YOLO11中的基准测试模式正是为此目的而设计,它提供了一个强大的框架来评估速度和accuracy您的模型可以导出为多种格式。



观看:基准测试Ultralytics YOLO11模型 | 如何在不同硬件上比较模型性能?

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

  • 明智决策: 深入了解速度与准确性之间的权衡。
  • 资源分配: 了解不同导出格式在不同硬件上的表现。
  • 优化: 了解哪种导出格式能为您的特定用例提供最佳性能。
  • 成本效益:根据基准测试结果更高效地利用硬件资源。

关键指标(基准模式)

支持的导出格式

  • ONNX: 为获得最佳CPU性能
  • TensorRT: 为实现最大的 GPU 效率
  • OpenVINO: 用于英特尔硬件优化
  • CoreML、TensorFlow SavedModel 等:满足多样化的部署需求。

提示

  • 导出为ONNX或OpenVINO格式,可实现高达3倍的CPU加速。
  • 导出至TensorRT以获得高达5倍的GPU加速。

使用示例

在所有支持的导出格式上运行YOLO11n基准测试,包括ONNX、TensorRT等。有关导出参数的完整列表,请参阅下面的参数部分。

示例

from ultralytics.utils.benchmarks import benchmark

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

# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0

# Benchmark specific export format
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 format=onnx

论点

类似以下这model, data, imgsz, half, device, verboseformat为用户提供灵活性,以便根据其特定需求微调基准测试,并轻松比较不同导出格式的性能。

键名 默认值 描述
model None 指定模型文件的路径。接受.pt.yaml格式,例如,"yolo11n.pt"对于预训练模型或配置文件。
data None YAML 文件路径,用于定义基准测试的数据集,通常包括路径和设置validation data示例:"coco8.yaml".
imgsz 640 模型的输入图像尺寸。可以是单个整数用于正方形图像,或者是一个元组(width, height)对于非正方形,例如,(640, 480).
half False 启用 FP16(半精度)推理,减少内存使用,并可能在兼容的硬件上提高速度。使用half=True以启用。
int8 False 在支持的设备上激活 INT8 量化以进一步优化性能,特别适用于边缘设备。设置int8=True使用。
device None 定义用于基准测试的计算设备,例如"cpu"我理解了。我会以专业翻译的身份,将您提供的内容翻译或改写成简体中文,同时尊重原意并保持原有格式。我只会提供翻译或改写后的内容,不会添加任何解释、评论或额外文字。请提供您希望我翻译或改写的内容。"cuda:0".
verbose False 控制日志输出的详细程度。布尔值;设置verbose=True对于详细日志或用于错误阈值的浮点数。
format '' 对模型进行单一导出格式的基准测试。即format=onnx

导出格式

基准测试将尝试自动运行以下列出的所有可能导出格式。或者,您可以通过使用format参数,可接受以下任何一种格式。

Format format Argument Model Metadata Arguments
PyTorch - yolo11n.pt -
TorchScript torchscript yolo11n.torchscript imgsz, optimize, nms, batch, device
ONNX onnx yolo11n.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n.pb imgsz, batch, device
TF Lite tflite yolo11n.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n_paddle_model/ imgsz, batch, device
MNN mnn yolo11n.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolov8n_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n_rknn_model/ imgsz, batch, name, device

查看全文export细节在Export页面。

常见问题

如何使用Ultralytics对我的YOLO11模型性能进行基准测试?

Ultralytics YOLO11提供了一种基准测试模式,用于评估您的模型在不同导出格式下的性能。这种模式提供了以下关键指标的洞察:mean Average Precision(mAP50-95)、准确率和推理时间(以毫秒为单位)。您可以使用Python或CLI命令来运行基准测试。例如,要在GPU上进行基准测试:

示例

```python
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
```
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0

有关基准参数的更多详细信息,请访问Arguments章节。

将YOLO11模型导出为不同格式有什么好处?

将YOLO11模型导出为不同格式,例如ONNX, TensorRTOpenVINO允许您根据部署环境优化性能。例如:

  • ONNX:提供高达3倍的CPU加速。
  • TensorRT:提供高达5倍的GPU加速。
  • OpenVINO: 专门针对英特尔硬件进行优化。

这些格式既提高了模型的速度,又提升了其准确性,使其在各种实际应用中更加高效。访问Export请参阅完整页面以获取详细信息。

为什么基准测试在评估YOLO11模型中至关重要?

对YOLO11模型进行基准测试对于以下几个原因至关重要:

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

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

YOLO11支持哪些导出格式,它们各有什么优势?

YOLO11支持多种导出格式,每种格式都针对特定的硬件和使用场景进行了优化:

  • ONNX:最适合 CPU 性能。
  • TensorRT:GPU 效率的理想选择。
  • OpenVINO:针对英特尔硬件优化。
  • CoreML与TensorFlow对iOS和通用机器学习应用很有用。

要获取支持的格式完整列表及其各自的优势,请查看Supported Export Formats章节。

我可以使用哪些参数来微调我的YOLO11基准测试?

运行基准测试时,可以根据具体需求自定义以下几个参数:

  • model: 模型文件的路径(例如,"yolo11n.pt")。
  • data: YAML 文件路径,用于定义数据集(例如,"coco8.yaml")。
  • imgsz: 输入图像的尺寸,可以是单个整数或元组。
  • 半精度: 启用 FP16 推理以获得更好的性能。
  • int8: 为边缘设备激活INT8量化。
  • 设备: 指定计算设备(例如,"cpu"、"cuda:0")。
  • 详细程度: 控制日志记录的详细级别。

有关完整的参数列表,请参阅Arguments章节。

📅 Created 1 year ago ✏️ Updated 0 days ago

Comments