3. 9月12日 YOLO训练与效果测试

必须建立在上一个实验已经正确完成的情况下

必须建立在上一个实验已经正确完成的情况下

必须建立在上一个实验已经正确完成的情况下

1. 模型训练

#coding:utf-8
from ultralytics import YOLO
 
# 加载预训练模型
model = YOLO("yolov8n.pt")
# Use the model
if __name__ == '__main__':
    # Use the model
    results = model.train(data=r'D:\yolo_test\test\data.yaml', epochs=300, batch=4)  # 训练模型

参数说明:

  • Epoch:训练过程中的迭代次数
  • GPU_mem:GPU内存使用情况,通常是以MB或GB为单位的数字
  • box_loss:模型预测的边界框与真实边界框之间的平均损失值
  • cls_loss:模型预测的对象类别与真实类别之间的平均损失值
  • dfl_loss:分布式焦距损失,用于提高边界框回归的精度
  • Instances:检测任务中每个图像包含的目标实例
  • Size:输入模型的图像的大小,通常是以像素为单位的宽度和高度。
  • Class:检测的目标类别
  • Images:测试集中包含该类别的图像数量

2.CPU与GPU

CPU,训练一轮预计40分钟,总计需要7天

PixPin_2024-09-11_20-12-43.png

GPU,训练一轮预计2分钟,总计需要10小时

image-argt.png

3. 结果参数

Yolov8在训练完成之后,会在runs/detect/train目录下把训练的过程一些参数与结果示意图保存下来,这里面包含是目标检测性能指标。

image-hnwf.png

  • weights: 包含best.pt以及last.pt,分布代表模型损失最低的结果以及最后一次训练完成后的结果
  • args.yaml: 训练时的保存的超参数

image-stnf.png

4. 模型效果验证

from ultralytics import YOLO
 
model = YOLO('best.pt')
if __name__ == '__main__':
    results = model.predict(source='test.jpg')
    results[0].show()

执行上述代码后,会将执行的结果直接标注在图片上,结果如下:

image-ujvf.png