跳至内容

模型验证Ultralytics YOLO

Ultralytics YOLO 生态系统和集成

导言

验证是机器学习管道中的一个关键步骤,可让您评估训练模型的质量。Ultralytics YOLOv8 中的 Val 模式提供了一套强大的工具和指标,用于评估对象检测模型的性能。本指南是了解如何有效使用验证模式以确保模型准确可靠的完整资源。



观看: Ultralytics 模式教程:验证

为什么使用Ultralytics YOLO 进行验证?

以下是使用YOLOv8 Val 模式的优势所在:

  • 精确:获取 mAP50、mAP75 和 mAP50-95 等精确指标,全面评估模型。
  • 方便:利用可记忆培训设置的内置功能,简化验证过程。
  • 灵活性:使用相同或不同的数据集和图像尺寸验证模型。
  • 超参数调整:使用验证指标对模型进行微调,以提高性能。

Val 模式的主要功能

以上就是YOLOv8 Val 模式提供的显著功能:

  • 自动设置:模型会记住自己的训练配置,以便直接进行验证。
  • 多指标支持:根据一系列准确度指标评估模型。
  • CLI 和Python API:根据您的验证偏好,选择命令行界面或Python API。
  • 数据兼容性:可与训练阶段使用的数据集以及自定义数据集无缝兼容。

提示

  • YOLOv8 模型会自动记住它们的训练设置,因此您可以在相同的图像尺寸和原始数据集上轻松验证模型,只需 yolo val model=yolov8n.ptmodel('yolov8n.pt').val()

使用示例

在 COCO8 数据集上验证训练有素的YOLOv8n 模型的准确性。无需传递参数,因为 model 保留培训 data 和参数作为模型属性。有关导出参数的完整列表,请参阅下面的 "参数 "部分。

示例

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

YOLO 模型验证的论据

在验证YOLO 模型时,可以对几个参数进行微调,以优化评估过程。这些参数可控制输入图像大小、批处理和性能阈值等方面。以下是每个参数的详细说明,可帮助您有效地自定义验证设置。

论据 类型 默认值 说明
data str None 指定数据集配置文件的路径(如 coco8.yaml).该文件包括验证数据的路径、类名和类数。
imgsz int 640 定义输入图像的尺寸。所有图像在处理前都会调整到这一尺寸。
batch int 16 设置每批图像的数量。使用 -1 的自动批处理功能,可根据 GPU 内存可用性自动调整。
save_json bool False 如果 True此外,还可将结果保存到 JSON 文件中,以便进一步分析或与其他工具集成。
save_hybrid bool False 如果 True,保存混合版本的标签,将原始注释与额外的模型预测相结合。
conf float 0.001 设置检测的最小置信度阈值。置信度低于此阈值的检测将被丢弃。
iou float 0.6 设置非最大抑制 (NMS) 的交叉重叠 (IoU) 阈值。有助于减少重复检测。
max_det int 300 限制每幅图像的最大检测次数。在密度较高的场景中非常有用,可以防止检测次数过多。
half bool True 可进行半精度(FP16)计算,减少内存使用量,在提高速度的同时,将对精度的影响降至最低。
device str None 指定验证设备 (cpu, cuda:0等)。可灵活利用 CPU 或 GPU 资源。
dnn bool False 如果 True它使用 OpenCV DNN 模块进行ONNX 模型推断,为PyTorch 推断方法提供了一种替代方法。
plots bool False 当设置为 True此外,它还能生成并保存预测结果与地面实况的对比图,以便对模型的性能进行可视化评估。
rect bool False 如果 True该软件使用矩形推理进行批处理,减少了填充,可能会提高速度和效率。
split str val 确定用于验证的数据集分割 (val, testtrain).可灵活选择数据段进行性能评估。

这些设置中的每一个都在验证过程中起着至关重要的作用,可以对YOLO 模型进行可定制的高效评估。根据您的具体需求和资源调整这些参数,有助于实现准确性和性能之间的最佳平衡。

带参数的验证示例

下面的示例展示了YOLO 模型验证与Python 和CLI 中的自定义参数。

示例

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')

# Customize validation settings
validation_results = model.val(data='coco8.yaml',
                               imgsz=640,
                               batch=16,
                               conf=0.25,
                               iou=0.6,
                               device='0')
yolo val model=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


创建于 2023-11-12,更新于 2024-04-18
作者:glenn-jocher(9),Burhan-Q(1),RizwanMunawar(1)

评论