简介
YOLOv11是由Ultralytics团队在2024年9月30日发布的最新一代目标检测和图像分割模型。它在前代版本的基础上引入了多项新功能和改进,以提高性能和灵活性。YOLOv11不仅在目标检测方面表现出色,还支持图像分类、姿态估计和对象跟踪等多样化的计算机视觉任务。本文将详细介绍如何使用YOLOv11进行图像分类任务的训练与预测。
YOLOv11的关键特性
- 增强的特征提取:YOLOv11采用了改进的骨干和颈部架构,增强了特征提取能力,提高了物体检测的精确度和复杂任务的表现。
- 优化的效率和速度:引入精炼的架构设计和优化的训练流程,实现更快的处理速度,同时保持精度和性能之间的最佳平衡。
- 更高的准确性与更少的参数:YOLOv11m在COCO数据集上实现了更高的均值平均精度(mAP),同时使用比YOLOv8m少22%的参数,使其在不妥协准确性的情况下更加计算高效。
- 环境适应性强:YOLOv11可以无缝部署在各种环境中,包括边缘设备、云平台以及支持NVIDIA GPU的系统。
- 支持广泛的任务:YOLOv11支持多种计算机视觉任务,如物体检测、实例分割、图像分类、姿态估计和定向物体检测(OBB)。
环境配置
在开始之前,确保你的计算环境中安装了所有必要的依赖项,包括PyTorch和其他必需的库。你可以通过以下命令安装Ultralytics YOLOv11:
pip install ultralytics
数据集准备
对于图像分类任务,你需要准备一个标注好的数据集。数据集应该包含图像文件和对应的标签。标签可以是简单的类别索引,也可以是one-hot编码的向量。确保你的数据集已经划分为训练集和验证集。
训练YOLOv11模型
使用YOLOv11进行图像分类训练的步骤如下:
-
下载预训练模型:你可以从Ultralytics的GitHub仓库下载预训练的YOLOv11分类模型。例如,使用以下命令下载
yolo11n-cls.pt
模型:wget https://github.com/ultralytics/yolov11/releases/download/v1.0/yolo11n-cls.pt
-
准备数据集配置文件:创建一个YAML格式的配置文件,指定训练和验证图像的路径、类别数量和类别名称。例如:
# 数据集路径 path: ../dataset # 训练集和验证集的图像路径 train: ./train/images val: ./val/images # 类别信息 nc: 2 names: 0: soil 1: unsoil
-
编写训练脚本:创建一个Python脚本,使用Ultralytics YOLOv11 API进行模型训练。例如:
from ultralytics import YOLO if __name__ == '__main__': model = YOLO("yolo11n-cls.pt") # 加载预训练模型 model.train(data="data.yaml", # 数据集配置文件 epochs=100, imgsz=640, batch=16, device='0') # 使用GPU训练
-
运行训练脚本:在终端中运行训练脚本:
python train.py
训练过程中,模型会自动保存在指定的目录下,包括每个epoch的权重文件和最佳权重文件best.pt
。
模型预测
训练完成后,你可以使用训练好的模型对新的图像进行分类预测。以下是使用Python脚本进行预测的示例:
from ultralytics import YOLO
model = YOLO("runs/train/exp/weights/best.pt") # 加载训练好的模型
results = model.predict(source='path/to/image.jpg', # 推理图像路径
save=True,
show=True)
这将对指定的图像进行分类预测,并将结果保存在指定的目录下。
总结
YOLOv11是一个功能强大、灵活且易于使用的模型,适用于各种计算机视觉任务,包括图像分类。通过上述步骤,你可以轻松地使用YOLOv11进行图像分类任务的训练和预测。希望这个教程能帮助你快速上手YOLOv11,并在你的项目中实现高效的图像分类功能。