图像分类模型YOLO11的使用指南

图像分类是计算机视觉领域的一项基础任务,目的是将输入的图像分配到预定义的类别中。不同于目标检测和实例分割,图像分类不需要识别图像中具体对象的位置或形状,仅需确定图像属于哪个类别。例如,一个图像分类模型可能会将一张图片识别为“猫”或“狗”,但不会指出图片中猫或狗的具体位置。

YOLO11是Ultralytics公司推出的一系列图像分类模型,它们在ImageNet数据集上进行了预训练,能够以较高的准确率对图像进行分类。这些模型以文件后缀-cls结尾,例如yolo11n-cls.pt,意味着这是一个用于分类的YOLO11模型。这些模型在不同的硬件上展现出了优异的速度和准确性,适合各种规模的图像分类任务。

模型的性能指标包括准确率(acc top1和acc top5),以及在不同硬件上的处理速度。例如,YOLO11n-cls模型在CPU上的ONNX格式处理速度为5.0毫秒,而在T4 TensorRT10上的处理速度为1.1毫秒。这些指标可以帮助用户根据实际需求选择合适的模型。

模型训练

训练一个YOLO11模型是一个相对简单的过程。首先,需要准备一个标注好的数据集,例如MNIST160。然后,可以使用Python或命令行界面(CLI)来训练模型。以下是一个使用Python进行模型训练的示例代码:

from ultralytics import YOLO # 加载模型 model = YOLO("yolo11n-cls.yaml") # 从YAML构建新模型并加载预训练权重 model = YOLO("yolo11n-cls.pt") # 开始训练模型 results = model.train(data="mnist160", epochs=100, imgsz=64)

在训练过程中,可以指定训练的轮数(epochs)、图像的大小(imgsz)等参数。训练完成后,模型将自动保存,可以使用这些模型进行后续的验证、预测或导出操作。

模型验证

模型验证是评估模型性能的重要步骤。在YOLO11模型训练完成后,可以使用以下Python或CLI命令来验证模型在MNIST160数据集上的准确率:

from ultralytics import YOLO # 加载模型 model = YOLO("yolo11n-cls.pt") # 验证模型 metrics = model.val() # 输出top1和top5准确率 print(metrics.top1) print(metrics.top5)

验证过程不需要额外的参数,因为模型会自动使用训练时的数据集和设置。通过比较top1和top5准确率,可以了解模型在不同阈值下的性能表现。

模型预测

使用训练好的YOLO11模型进行图像预测是一个直接的过程。可以使用Python或CLI命令来加载模型,并对其指定的图像进行分类预测。以下是一个使用Python进行模型预测的示例代码:

from ultralytics import YOLO # 加载模型 model = YOLO("yolo11n-cls.pt") # 使用模型进行预测 results = model("https://ultralytics.com/images/bus.jpg")

在预测过程中,只需提供待预测图像的URL或文件路径,模型将输出预测结果。这些结果可以用于各种应用场景,如图像内容审核、自动化分类等。

模型导出

YOLO11模型支持导出到多种格式,如ONNX、CoreML等,以便于在不同的平台和设备上使用。以下是一个使用Python将模型导出为ONNX格式的示例代码:

from ultralytics import YOLO # 加载模型 model = YOLO("yolo11n-cls.pt") # 将模型导出为ONNX格式 model.export(format="onnx")
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485