Ultralytics yolo commands use the following syntax:
yolo TASK MODE ARGS
TASK
(optional) is one of (detect, segment, classify, pose)MODE
(required) is one of (train, val, predict, export, track)ARGS
(optional) are arg=value pairs like imgsz=640 that override defaults.See all ARGS in the full Configuration Guide or with the yolo cfg CLI command.
yolo val model=yolov8n.pt data=coco8.yaml batch=1 imgsz=640
这条命令是用来运行 YOLOv8 模型进行验证的。让我们逐个解析命令中的各个选项:
yolo val model= data= batch= imgsz=
yolo val
:
val
是验证模式的命令。model=yolov8n.pt
:
model
参数指定了要使用的模型文件路径。在这里,yolov8n.pt
是一个预训练的 YOLOv8 模型文件。yolov8n
表示的是 YOLOv8 的 nano 版本,这是一个较小的模型,适合快速推理和较小的数据集。data=coco8.yaml
:
data
参数指定了数据配置文件的路径。coco8.yaml
是一个 YAML 文件,包含了关于数据集的信息,比如类别名称、训练集路径、验证集路径等。这个文件告诉模型如何加载和使用数据集。batch=1
:
batch
参数指定了每个批次(batch)中图像的数量。这里设置为 1
,意味着每次只处理一张图像。imgsz=640
:
imgsz
参数指定了输入图像的大小。在这里,640
表示输入图像会被缩放至 640x640 的尺寸。这有助于标准化输入,使模型能够在相同的尺寸下进行推理。这条命令将使用预训练的 YOLOv8 nano 模型 (yolov8n.pt
) 对 COCO 数据集的一个验证集进行验证。它将使用单张图像作为每个批次的输入,并将输入图像的尺寸调整为 640x640。数据集的配置信息存储在 coco8.yaml
文件中。
如果你需要运行这条命令,确保你已经安装了 YOLOv8 的相应版本,并且拥有正确的模型文件和数据配置文件。如果你有任何疑问或需要进一步的帮助,请随时告诉我。
这条输出信息提供了关于YOLOv8模型在验证集上的性能指标,以及每张图像处理的速度。下面是各项指标的解释:
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 4/4 [00:02<00:00, 1.63it/s] person 3 10 1 0.449 0.555 0.279 dog 1 1 0.865 1 0.995 0.497 horse 1 2 0.771 1 0.995 0.747 elephant 1 2 1 0.912 0.995 0.415 umbrella 1 1 0.68 1 0.995 0.995 potted plant 1 1 0.871 1 0.995 0.895 yolo val model=yolov8n.pt data=coco8.yaml batch=1 imgsz=640yolo val model=yolov8n.pt data=coco8.yaml batch=1 imgsz=640Speed: 6.1ms preprocess, 125.9ms inference, 0.0ms loss, 20.8ms postprocess per image
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 4/4 [00:02<00:00, 1.63it/s]
Class
:表示类别名称。Images
:表示该类别在验证集中出现的图像数量。Instances
:表示该类别在验证集中出现的实例数量。Box
:表示针对该类别的检测结果。 Speed: 6.1ms preprocess, 125.9ms inference, 0.0ms loss, 20.8ms postprocess per image
preprocess
:表示对每张图像进行预处理所需的时间,这里是6.1毫秒。inference
:表示模型进行一次推理所需的时间,这里是125.9毫秒。loss
:在验证过程中,通常不会计算损失,这里显示为0.0毫秒,因为验证模式并不涉及反向传播。postprocess
:表示对模型输出进行后处理所需的时间,这里是20.8毫秒。不同IoU(Intersection over Union)阈值的平均精度均值(mAP,mean Average Precision)是评估目标检测算法性能的重要指标之一。mAP 是衡量检测算法在不同 IoU 阈值下平均精度的综合指标。下面详细介绍不同IoU阈值的mAP之间的区别:
在你提供的输出中,我们看到了不同类别的 mAP50 和 mAP50-95 的值。例如,对于 “person” 类别:
这表明 “person” 类别的 mAP50 和 mAP50-95 相同,这可能是因为该类别在所有 IoU 阈值下的 AP 值变化不大,或者模型在 IoU 高于 0.5 时的表现并不好。
对于 “dog” 类别:
这表明 “dog” 类别的 mAP50 很高,但 mAP50-95 较低,这可能是因为模型在 IoU 低于 0.5 时的性能很好,但在更高的 IoU 阈值下性能下降。
精度(Precision)和召回率(Recall)是评估分类器或信息检索系统性能的两个重要指标。它们分别衡量了分类器或检索系统的不同方面:
假设我们有一个垃圾邮件分类器,用于将邮件分类为垃圾邮件(正例)或非垃圾邮件(负例):