模型验证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.pt
或model('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 模型验证的论据
在验证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 , test 或 train ).可灵活选择数据段进行性能评估。 |
这些设置中的每一个都在验证过程中起着至关重要的作用,可以对YOLO 模型进行可定制的高效评估。根据您的具体需求和资源调整这些参数,有助于实现准确性和性能之间的最佳平衡。
带参数的验证示例
下面的示例展示了YOLO 模型验证与Python 和CLI 中的自定义参数。
示例