分类任务

分类任务#

分类任务涉及将图像划分到不同的类别中。YOLOv11可以基于图像的内容进行分类。它采用 EfficientNet 架构的一种变体来执行分类工作。

图像分类器的输出是单一的类别标签和置信度分数。当你只需要知道图像属于哪个类别,而无需了解该类别对象的具体位置或确切形状时,图像分类非常有用。

小技巧

YOLOv11分类模型使用-cls后缀,例如yolo11n-cls.pt,这些模型在ImageNet数据集上进行了预训练。

模型#

这里展示了YOLOv11预训练的分类模型。检测、分割和姿态模型是在COCO数据集上预训练的,而分类模型则是在ImageNet数据集上预训练的。

模型 会在首次使用时自动从最新的Ultralytix 发布 下载。

模型

尺寸(像素)

top1准确率

top5准确率

CPU ONNX速度(毫秒)

T4 TensorRT10速度(毫秒)

参数量(百万)

FLOPs(十亿次运算)在640解析度下

YOLOv11n-cls

224

70.0%

89.4%

5.0 ± 0.3

1.1 ± 0.0

1.6

3.3

YOLOv11s-cls

224

75.4%

92.7%

7.9 ± 0.2

1.3 ± 0.0

5.5

12.1

YOLOv11m-cls

224

77.3%

93.9%

17.2 ± 0.4

2.0 ± 0.0

10.4

39.3

YOLOv11l-cls

224

78.3%

94.3%

23.2 ± 0.3

2.8 ± 0.0

12.9

49.4

YOLOv11x-cls

224

79.5%

94.9%

41.4 ± 0.9

3.8 ± 0.0

28.4

110.4

  • acc 值是在ImageNet数据集验证集上的模型准确率。通过 yolo val classify data=path/to/ImageNet device=0 重现

  • 速度 是使用 Amazon EC2 P4d 实例在ImageNet验证图像上的平均速度。通过 yolo val classify data=path/to/ImageNet batch=1 device=0|cpu 重现

训练#

在 MNIST160 数据集上对 YOLOv11n-cls 进行 100 个训练周期(epoch),图像尺寸为 64

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-cls.yaml")  # build a new model from YAML
model = YOLO("yolo11n-cls.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-cls.yaml").load("yolo11n-cls.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="mnist160", epochs=100, imgsz=64)

验证#

验证在MNIST160数据集上训练的YOLOv11n-cls模型的准确性。由于model保留了其训练数据和参数作为模型属性,因此无需额外提供参数。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-cls.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.top1  # top1 accuracy
metrics.top5  # top5 accuracy

预测#

使用训练好的YOLOv11n-cls模型对图像进行预测。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-cls.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image