如何用YOLOv27训练自定义目标检测教程(手把手教你训练自己的yolo模型-适合小白入门)
基于YOLOv27的自定义目标检测教程本教程将指导您使用Ultralytics的YOLOv11 Nano模型创建一个用于检测猫眼的自定义目标检测器。我们将涵盖从数据收集和标注到微调预训练YOLOv11 Nano模型的完整流程。环境设置首先创建一个Python 3.9的conda环境conda create-nyolov11python3.9conda activate yolov11安装必要的包pip3installtorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pipinstallultralytics pipinstallopencv-python数据集准备收集图像我从互联网上收集了猫的图像。标注图像使用LabelImg工具对图像进行标注。免费标注软件数据集结构数据集文件夹结构如下dataset/ ├── train/ │ ├── images/ │ └── labels/ ├── valid/ │ ├── images/ │ └── labels/ └── test/ ├── images/ └── labels/•images/包含.jpg图像文件。•labels/包含 YOLO 格式的.txt文件存储边界框坐标。标签格式每个.txt文件对应一张图像包含 YOLO 格式的边界框坐标。例如## class_id x_center y_center width height 0 0.532 0.654 0.120 0.098 1 0.412 0.389 0.095 0.077所有值归一化到 0 到 1 之间class_id表示对象类别例如0 表示猫眼。data.yaml 文件定义数据集路径和类别名称train:./dataset/train/imagesval:./dataset/valid/imagestest:./dataset/test/imagesnc:1# 类别数量names:[cateyes]训练YOLOv11 Nano模型修改并使用以下脚本train.py训练模型fromultralyticsimportYOLO# 加载模型if__name____main__:modelYOLO(yolo11n.pt)# 使用YOLOv11 Nano模型data_pathrF:/path/to/dataset/data.yaml# data.yaml路径# 训练模型train_resultsmodel.train(datadata_path,# 数据集YAMLepochs100,# 训练轮数imgsz640,# 图像尺寸device0# GPU设备0或cpu)训练完成后模型将保存在./runs文件夹中。测试模型训练完成后运行以下脚本test.py进行推理fromultralyticsimportYOLOimporttorch# 检查GPU可用性print(GPU available: ,torch.cuda.is_available())# 加载训练好的模型checkpoint./runs/detect/train/weights/best.ptinput_image./dataset/test/images/image (95).jpgmodelYOLO(checkpoint)# 运行检测resultsmodel(sourceinput_image,conf0.3,showTrue,saveTrue)# 打印结果print(Results: ,results)print(Boxes: ,results[0].boxes)print(Done!)•conf0.3设置置信度阈值。•showTrue显示检测结果图像。•saveTrue将结果保存到磁盘默认路径./runs/detect/predict。在这里插入图片描述导出模型为ONNX格式如果需要将训练好的模型导出为ONNX格式可以使用以下代码pathmodel.export(formatonnx)# 返回导出模型的路径YOLOv11模型对比以下是YOLOv11系列模型的性能对比模型尺寸像素mAPval 50-95CPU ONNX速度msT4 TensorRT10速度ms参数量MFLOPsBYOLO11n64039.556.1 ± 0.81.5 ± 0.02.66.5YOLO11s64047.090.0 ± 1.22.5 ± 0.09.421.5YOLO11m64051.5183.2 ± 2.04.7 ± 0.120.168.0YOLO11l64053.4238.6 ± 1.46.2 ± 0.125.386.9YOLO11x64054.7462.8 ± 6.711.3 ± 0.256.9194.9更多使用示例请参考Detection Docs这些模型已在COCO数据集上预训练包含80个预训练类别。