ultralytics 基准模式#

基准模式:在不同的部署环境中分析模型的速度和准确性。

一旦你的模型训练和验证完成,下一步就是评估它在不同实际场景中的性能。Ultralytics YOLO11 提供的基准模式正是为此目的而设计的,它提供了强大的框架来评估你的模型在多种导出格式下的速度和准确性。

基准测试为何至关重要?

  • 明智决策:深入了解速度与准确性之间的权衡。

  • 资源分配:了解不同导出格式在不同硬件上的性能。

  • 优化:了解哪种导出格式能为您的特定用例提供最佳性能。

  • 成本效益:根据基准测试结果,更有效地利用硬件资源。

基准模式下的关键指标

  • mAP50-95: 用于目标检测、分割 和动作估计。

  • accuracy_top5: 用于图像分类.

  • 推理时间:每个图像所需推理的时间,以毫秒为单位。

import set_env

示例:

from ultralytics.utils.benchmarks import benchmark

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

参数#

诸如 model, data, imgsz, half, deviceverbose 用户可以灵活地根据自己的具体需求对基准进行微调,并轻松比较不同导出格式的性能。

Key

Default Value

Description

model

None

Specifies the path to the model file. Accepts both .pt and .yaml formats, e.g., "yolo11n.pt" for pre-trained models or configuration files.

data

None

Path to a YAML file defining the dataset for benchmarking, typically including paths and settings for validation data. Example: "coco8.yaml".

imgsz

640

The input image size for the model. Can be a single integer for square images or a tuple (width, height) for non-square, e.g., (640, 480).

half

False

Enables FP16 (half-precision) inference, reducing memory usage and possibly increasing speed on compatible hardware. Use half=True to enable.

int8

False

Activates INT8 quantization for further optimized performance on supported devices, especially useful for edge devices. Set int8=True to use.

device

None

Defines the computation device(s) for benchmarking, such as "cpu", "cuda:0", or a list of devices like "cuda:0,1" for multi-GPU setups.

verbose

False

Controls the level of detail in logging output. A boolean value; set verbose=True for detailed logs or a float for thresholding errors.

将YOLOv11模型导出为不同格式(如ONNX、TensorRT和OpenVINO)有哪些好处?#

将YOLOv11模型导出为不同格式,可以根据您的部署环境优化性能。例如:

  • ONNX:提供高达3倍的CPU加速。

  • TensorRT:提供高达5倍的GPU加速。

  • OpenVINO:专门为英特尔硬件优化。

这些格式提高了模型的速度和准确性,使它们在各种实际应用中更加高效。