图像分类

图像分类 是三项任务中最简单的一项,涉及将整个图像分类为一组预定义类别中的一个。
图像分类器的输出是一个类别标签和一个置信度分数。当你只需要知道图像属于哪个类别,而不需要知道该类别对象的位置或其确切形状时,图像分类非常有用。
观看: 探索Ultralytics YOLO任务:使用Ultralytics HUB进行图像分类
Tip
YOLO11分类模型使用-cls后缀,例如yolo11n-cls.pt,并在ImageNet上进行了预训练。
模型
这里展示了YOLO11预训练的分类模型。检测、分割和姿态模型在COCO数据集上进行了预训练,而分类模型在ImageNet数据集上进行了预训练。
模型在首次使用时会自动从最新的Ultralytics 发布中下载。
| 模型 | 尺寸 (像素) |
准确率 top1 |
准确率 top5 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (百万) |
FLOPs (十亿)在640 |
|---|---|---|---|---|---|---|---|
| YOLO11n-cls | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 1.6 | 3.3 |
| YOLO11s-cls | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 5.5 | 12.1 |
| YOLO11m-cls | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 10.4 | 39.3 |
| YOLO11l-cls | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 12.9 | 49.4 |
| YOLO11x-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数据集上以图像大小64训练YOLO11n-cls模型100个epoch。有关可用参数的完整列表,请参阅配置页面。
Example
# 从YAML构建新模型并从头开始训练
yolo classify train data=mnist160 model=yolo11n-cls.yaml epochs=100 imgsz=64
# 从预训练的*.pt模型开始训练
yolo classify train data=mnist160 model=yolo11n-cls.pt epochs=100 imgsz=64
# 从YAML构建新模型,转移预训练权重并开始训练
yolo classify train data=mnist160 model=yolo11n-cls.yaml pretrained=yolo11n-cls.pt epochs=100 imgsz=64
数据集格式
YOLO分类数据集格式可以在数据集指南中找到详细信息。
验证
在MNIST160数据集上验证训练好的YOLO11n-cls模型的准确性。不需要参数,因为模型保留了训练数据和参数作为模型属性。
Example
预测
使用训练好的YOLO11n-cls模型对图像进行预测。
Example
在预测页面查看完整的predict模式详情。
导出
将YOLO11n-cls模型导出为不同的格式,如ONNX、CoreML等。
示例
下表列出了可用的YOLO11-cls导出格式。您可以使用format参数导出到任何格式,例如format='onnx'或format='engine'。您可以直接在导出的模型上进行预测或验证,例如yolo predict model=yolo11n-cls.onnx。导出完成后,将显示您的模型的使用示例。
| 格式 | format 参数 |
模型 | 元数据 | 参数 |
|---|---|---|---|---|
| PyTorch | - | yolo11n-cls.pt |
✅ | - |
| TorchScript | torchscript |
yolo11n-cls.torchscript |
✅ | imgsz, optimize, batch |
| ONNX | onnx |
yolo11n-cls.onnx |
✅ | imgsz, half, dynamic, simplify, opset, batch |
| OpenVINO | openvino |
yolo11n-cls_openvino_model/ |
✅ | imgsz, half, int8, batch |
| TensorRT | engine |
yolo11n-cls.engine |
✅ | imgsz, half, dynamic, simplify, workspace, int8, batch |
| CoreML | coreml |
yolo11n-cls.mlpackage |
✅ | imgsz, half, int8, nms, batch |
| TF SavedModel | saved_model |
yolo11n-cls_saved_model/ |
✅ | imgsz, keras, int8, batch |
| TF GraphDef | pb |
yolo11n-cls.pb |
❌ | imgsz, batch |
| TF Lite | tflite |
yolo11n-cls.tflite |
✅ | imgsz, half, int8, batch |
| TF Edge TPU | edgetpu |
yolo11n-cls_edgetpu.tflite |
✅ | imgsz |
| TF.js | tfjs |
yolo11n-cls_web_model/ |
✅ | imgsz, half, int8, batch |
| PaddlePaddle | paddle |
yolo11n-cls_paddle_model/ |
✅ | imgsz, batch |
| NCNN | ncnn |
yolo11n-cls_ncnn_model/ |
✅ | imgsz, half, batch |
在导出页面查看完整的export详情。
常见问题
YOLO11在图像分类中的目的是什么?
YOLO11模型,如yolo11n-cls.pt,旨在进行高效的图像分类。它们为整个图像分配一个单一的类别标签以及一个置信度分数。这对于只需要知道图像的特定类别而不需要识别图像中对象的位置或形状的应用特别有用。
如何训练YOLO11模型进行图像分类?
要训练YOLO11模型,您可以使用Python或CLI命令。例如,要在MNIST160数据集上以64的图像大小训练yolo11n-cls模型100个周期:
示例
有关更多配置选项,请访问配置页面。
在哪里可以找到预训练的YOLO11分类模型?
预训练的YOLO11分类模型可以在模型部分找到。像yolo11n-cls.pt、yolo11s-cls.pt、yolo11m-cls.pt等模型在ImageNet数据集上进行了预训练,可以轻松下载并用于各种图像分类任务。
如何将训练好的YOLO11模型导出为不同格式?
您可以使用Python或CLI命令将训练好的YOLO11模型导出为各种格式。例如,将模型导出为ONNX格式:
示例
有关详细的导出选项,请参阅导出页面。
如何验证训练好的YOLO11分类模型?
要在MNIST160等数据集上验证训练好的模型的准确性,您可以使用以下Python或CLI命令:
示例
有关更多信息,请访问验证部分。