ultralytics
验证模式#
验证模式:用于验证模型性能的训练后检查点。
验证是机器学习流水线中的关键步骤,它允许你评估训练模型的质量。Ultralytics YOLO11的验证模式提供了一套强大的工具和指标,用于评估你的目标检测模型的性能。
import set_env
验证在 COCO8 数据集上训练的 YOLOv11n 模型的准确性。由于模型保留了其训练数据和参数作为模型属性,因此不需要额外的参数。
from ultralytics import YOLO
model = YOLO("path/to/best.pt") # load a custom model
# 验证模型
metrics = model.val() # 无需额外参数,数据集及设置已被记忆。
直接使用官方模型:
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # 加载官方模型
metrics = model.val(data="coco8.yaml")
print(metrics.box.map) # map50-95
print(metrics.box.map50) # map50 (IoU 阈值为 0.5 时的平均精度平均值)
print(metrics.box.map75) # map75 (在 IoU 临界值为 0.75 时的平均平均精度)
metrics.box.maps # mAP50-95(从 0.5 到 0.95 的多个 IoU 阈值的平均精度平均值)
Ultralytics 8.3.28 🚀 Python-3.12.2 torch-2.5.0 CUDA:0 (NVIDIA GeForce RTX 3090, 24250MiB)
YOLO11n summary (fused): 238 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs
all 4 17 0.57 0.85 0.847 0.632
person 3 10 0.557 0.6 0.585 0.272
dog 1 1 0.548 1 0.995 0.697
horse 1 2 0.53 1 0.995 0.674
elephant 1 2 0.37 0.5 0.516 0.257
umbrella 1 1 0.568 1 0.995 0.995
potted plant 1 1 0.844 1 0.995 0.895
Speed: 0.3ms preprocess, 8.8ms inference, 0.0ms loss, 2.0ms postprocess per image
Results saved to runs/detect/val5
0.6316492891584533
0.8469102486563518
0.6918055555555555
val: Scanning /media/pc/data/lxw/datasets/coco8/labels/val.cache... 4 images, 0 backgrounds, 0 corrupt: 100%|██████████| 4/4 [00:00<?, ?it/s]
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 8.80it/s]
array([ 0.27239, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.6965, 0.67398, 0.63165, 0.63165, 0.25652, 0.63165, 0.63165, 0.63165,
0.63165, 0.995, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165,
0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.8955, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165,
0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165, 0.63165])
YOLO 模型验证的参数#
在验证YOLO模型时,可以对多个参数进行微调以优化评估过程。这些参数控制诸如输入图像大小、批处理和性能阈值等方面。下面详细分析每个参数,帮助您有效地自定义验证设置。
以下是翻译后的中文版本:
参数 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
指定数据集配置文件的路径(例如, |
|
|
|
定义输入图像的大小。所有图像在处理前都会调整到这个尺寸。 |
|
|
|
设置每批图像的数量。使用 |
|
|
|
如果为 |
|
|
|
如果为 |
|
|
|
设置检测的最小置信度阈值。低于此阈值的检测将被丢弃。 |
|
|
|
设置非极大值抑制(NMS)的交并比(IoU)阈值。有助于减少重复检测。 |
|
|
|
限制每张图像的最大检测数量。在密集场景中非常有用,以防止过度检测。 |
|
|
|
启用半精度(FP16)计算,减少内存使用,同时可能通过最小影响准确性来提高速度。 |
|
|
|
指定用于验证的设备(如 |
|
|
|
如果为 |
|
|
|
如果设置为 |
|
|
|
如果为 |
|
|
|
确定用于验证的数据集分割( |
|
|
|
项目目录的名称,验证输出保存在此目录下。 |
|
|
|
验证运行的名称。用于在项目文件夹内创建一个子目录,其中存储验证日志和输出。 |
这些设置中的每一个都在验证过程中起着至关重要的作用,可以对YOLO 模型进行可定制的高效评估。根据您的具体需求和资源调整这些参数,有助于实现准确性和性能之间的最佳平衡。
带参数的验证示例#
下面的示例展示了YOLO 模型验证自定义参数
from ultralytics import YOLO
# 加载模型
model = YOLO("yolo11n.pt")
# 自定义验证参数
validation_results = model.val(data="coco8.yaml", imgsz=640, batch=16, conf=0.25, iou=0.6, device="0")
Ultralytics 8.3.28 🚀 Python-3.12.2 torch-2.5.0 CUDA:0 (NVIDIA GeForce RTX 3090, 24250MiB)
YOLO11n summary (fused): 238 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs
all 4 17 0.694 0.65 0.698 0.51
person 3 10 0.667 0.4 0.578 0.347
dog 1 1 1 1 0.995 0.697
horse 1 2 1 1 0.995 0.71
elephant 1 2 0.5 0.5 0.622 0.311
umbrella 1 1 1 1 0.995 0.995
potted plant 1 1 0 0 0 0
Speed: 0.2ms preprocess, 17.9ms inference, 0.0ms loss, 5.0ms postprocess per image
Results saved to runs/detect/val6
val: Scanning /media/pc/data/lxw/datasets/coco8/labels/val.cache... 4 images, 0 backgrounds, 0 corrupt: 100%|██████████| 4/4 [00:00<?, ?it/s]
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 4.57it/s]