YOLOv11 自定义目标检测模型训练
训练还是挺快的,比yolov5快不少~~
参考博客:https://blog.csdn.net/qq_67105081/article/details/143402823
样本标注
样本标注请参考前面的文章《YOLOv5 实例分割-Labelme标注与json文件转txt》
准备好标注的好的并且已经转换的txt文件,目录结构如下:
# jpg图片目录
ultralytics-main\datasets\coco128\images\train2017
# txt文件目录
ultralytics-main\datasets\coco128\labels\train2017
我们训练的是目标检测,不是实例分割,所以需要修改如下文件:
修改文件:ultralytics-main\Ultralytics\cfg\datasets\coco128.yaml,其他的都可以屏蔽掉。
path: datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
names:
0: person
修改文件:ultralytics-main\Ultralytics\cfg\models\11\yolo11.yaml,将nc改成你的模型数量,我这边就一个“person”,所以改成1就行了。

新建my_train.py文件,添加训练代码:
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')
model.load('weights/yolo11n.pt') #注释则不加载
results = model.train(
data='ultralytics/cfg/datasets/coco128.yaml', #数据集配置文件的路径
epochs=200, #训练轮次总数
batch=16, #批量大小,即单次输入多少图片训练
imgsz=640, #训练图像尺寸
workers=8, #加载数据的工作线程数
device= 0, #指定训练的计算设备,无nvidia显卡则改为 'cpu'
optimizer='SGD', #训练使用优化器,可选 auto,SGD,Adam,AdamW 等
amp= True, #True 或者 False, 解释为:自动混合精度(AMP) 训练
cache=False # True 在内存中缓存数据集图像,服务器推荐开启
)
然后就运行上面代码进行训练了,训练结果如下:

注意:
如果发现文件采集路径不对可以修改提示信息里面的settings.json文件,修改一下路径

修改如下:

训练结果如下:
