当前位置: 首页 > news >正文

yolo最终笔记

1.train.py

from ultralytics import YOLOif __name__ == '__main__':# 加载模型model = YOLO(r'D:/app/BGA/yolo11/ultralytics-main/ultralytics/cfg/models/11/yolo11n.yaml').load("D:/app/BGA/yolo11/ultralytics-main/my_program/yolo11n.pt")  # 使用预训练权重训练# 训练参数 ----------------------------------------------------------------------------------------------model.train(data=r'D:/app/BGA/yolo11/ultralytics-main/my_program/data.yaml',epochs=200,  # (int) 训练的周期数patience=50,  # (int) 等待无明显改善以进行早期停止的周期数batch=16,  # (int) 每批次的图像数量(-1 为自动批处理)iou=0.7,    # IoU 阈值conf=None, # 置信度阈值 默认值(通常为 0.001)imgsz=320,  # (int) 输入图像的大小,整数或w,hmulti_scale=True,  # 启用多尺度训练device=0,  # device=[0,1], # (int | str | list, optional) 运行的设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpuworkers=44,  # (int) 数据加载的工作线程数(每个DDP进程)optimizer='SGD',  # (str) 要使用的优化器,选择=[SGD,Adam,Adamax,AdamW,NAdam,RAdam,RMSProp,auto]verbose=True,  # (bool) 是否打印详细输出rect=True,  # (bool) 如果mode='train',则进行矩形训练,如果mode='val',则进行矩形验证cos_lr=True,  # (bool) 使用余弦学习率调度器close_mosaic=10,  # (int) 在最后几个周期禁用马赛克增强amp=True,  # (bool) 自动混合精度(AMP)训练,选择=[True, False],True运行AMP检查# 超参数 ----------------------------------------------------------------------------------------------lr0=0.01,  # (float) 初始学习率(例如,SGD=1E-2,Adam=1E-3)lrf=0.01,  # (float) 最终学习率(lr0 * lrf)hsv_h=0.015,  # (float) 图像HSV-Hue增强(分数) # 色调扰动hsv_s=0.7,  # (float) 图像HSV-Saturation增强(分数) # 饱和度扰动hsv_v=0.4,  # (float) 图像HSV-Value增强(分数) # 明度扰动(BGA反光明显,可适当降低)degrees=90.0,  # (float) 图像旋转(+/- deg) # 允许±90°旋转translate=0.1,  # (float) 图像平移(+/- 分数)scale=0.5,  # (float) 图像缩放(+/- 增益)shear=0.0,  # (float) 图像剪切(+/- deg)flipud=0.5,  # (float) 图像上下翻转(概率)fliplr=0.5,  # (float) 图像左右翻转(概率))
agnostic_nms=False, amp=True, augment=False, auto_augment=randaugment, 
batch=16, bgr=0.0, box=7.5, 
cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=True, cutmix=0.0, 
data=D:/app/BGA/yolo11/ultralytics-main/my_program/data.yaml, degrees=90.0, deterministic=True, device=0, dfl=1.5, dnn=False, dropout=0.0, dynamic=False, 
embed=None, epochs=200, erasing=0.4, exist_ok=False, 
fliplr=0.5, flipud=0.5, format=torchscript, fraction=1.0, freeze=None, 
half=False, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, 
imgsz=320, int8=False, iou=0.7, 
keras=False, kobj=1.0, 
line_width=None, lr0=0.01, lrf=0.01, 
mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=D:/app/BGA/yolo11/ultralytics-main/ultralytics/cfg/models/11/yolo11n.yaml, momentum=0.937, mosaic=1.0, multi_scale=True, 
name=train6, nbs=64, nms=False, 
opset=None, optimize=False, optimizer=SGD, overlap_mask=True, 
patience=50, perspective=0.0, plots=True, pose=12.0, pretrained=D:/app/BGA/yolo11/ultralytics-main/my_program/yolo11n.pt, profile=False, project=None, 
rect=True, resume=False, retina_masks=False, 
save=True, save_conf=False, save_crop=False, save_dir=runs\detect\train6, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, 
task)=detect, time=None, tracker=botsort.yaml, translate=0.1, 
val)=True, verbose=True, vid_stride=1, visualize=False,
warmup_bias_lr)=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=44, workspace=None

2.predict.py

from ultralytics import YOLOif __name__ == '__main__':# 加载模型model = YOLO(r'D:/app/BGA/yolo11/ultralytics-main/my_program/runs/detect/train5/weights/best.pt')  # YOLOv8n模型model.predict(source=r'D:/app/BGA/yolo11/ultralytics-main/VOCdevkit/train/images/', #修改为自己的图片路径及文件名conf=0.1,  # 置信度阈值iou=0.1,  # IoU 阈值imgsz=320,  # 图像大小device=0,  # 使用设备,None 表示自动选择,比如'cpu','0'augment=True,  # 启用推理时增强save=True,  # 保存推理结果save_txt=True,  # 保存检测结果到文本文件save_conf=True,  # 保存置信度到文本文件show_labels=True,  # 显示检测的标签show_conf=True,  # 显示检测置信度show_boxes=True,  # 显示检测框)

        训练过程参数

 GPU 显存占用(GPU_mem

        GPU_mem: 4.2G 表示当前显存占用 4.2GB

2. 损失函数值

(1) 边界框回归损失(box_loss)——越小越好
  • 含义:预测框与真实框之间的定位误差(基于 CIoU/DIoU 等损失函数计算)。

  • 作用:反映模型对目标位置的预测精度,值越低说明定位越准。

  • 典型范围:初始值较高(如 2.5),随着训练逐渐下降至 0.5 以下。

(2) 分类损失(cls_loss)——越小越好
  • 含义:预测类别与真实类别的交叉熵误差。

  • 作用:衡量模型分类能力,值越低说明分类越准。

  • 典型范围:从初始 1.0 左右下降至 0.1-0.3

(3) 分布焦点损失(dfl_loss
  • 含义:YOLOv11 引入的分布对齐损失(Distribution Focal Loss),用于优化锚框的离散分布。

  • 作用:提升小目标检测的稳定性,尤其在密集场景中。

  • 典型范围:从 1.5 逐渐下降至 0.3-0.7

3. 实例统计(Instances & Size

(1) Instances
  • 含义:当前批次(batch)中所有图像包含的目标实例总数。

  • 作用:监控数据加载是否正常(如突然降为 0 可能标注有问题)。

  • 示例Instances: 128 表示当前批次共有 128 个目标。

(2) Size
  • 含义:当前批次输入图像的尺寸(宽×高)。

  • 作用:验证多尺度训练是否生效(若启用 multi_scale,尺寸会动态变化)。

  • 示例Size: 640x480 表示图像被缩放到 640×480。

4. 验证集性能指标——边界框指标(Box(P R mAP50 mAP50-95)
  • P(Precision,精确率):——越大越好

    • 公式:P=TPTP+FPP=TP+FPTP​

    • 含义:预测为正样本中真实为正的比例,衡量误检率。

    • 目标:越高越好(理想值接近 1.0)。

  • R(Recall,召回率):——越大越好

    • 公式:R=TPTP+FNR=TP+FNTP​

    • 含义:真实正样本中被正确预测的比例,衡量漏检率。

    • 目标:越高越好(理想值接近 1.0)。

  • mAP50:——越大越好

    • 含义:IoU 阈值为 0.5 时的平均精度(mean Average Precision)。

    • 作用:通用检测性能指标,值越高说明模型综合性能越好。

    • 典型值:良好模型通常在 0.8 以上。

  • mAP50-95:——越大越好

    • 含义:IoU 阈值从 0.5 到 0.95(步长 0.05)的平均 mAP。

    • 作用:衡量模型对不同 IoU 阈值的鲁棒性,值越高说明定位越精准。

    • 典型值:良好模型在 0.5-0.7 之间。

使用yolo11针对含BGA的图像进行图像目标检测,使用预训练模型进行模型训练,需要调节的最重要的几个参数具体是哪几个?若模型训练结束,使用训练好的模型进行推理,需要调节的最重要的几个参数具体是哪几个?

一:使用预训练模型进行模型训练,需要调节的最重要的几个参数具体是哪几个?

1.数据增强参数

train:# 几何增强:处理不同角度的 BGAdegrees: 90.0   # 允许±90°旋转(BGA可能存在90°整数倍旋转)translate: 0.1  # 平移比例,避免目标移出视野scale: 0.7      # 缩放范围,适应不同大小的BGAshear: 5.0      # 剪切变换,模拟非正面视角# 色彩增强:提高光照鲁棒性hsv_h: 0.015    # 色调扰动hsv_s: 0.7      # 饱和度扰动hsv_v: 0.4      # 明度扰动(BGA反光明显,可适当降低)# 镜像增强:BGA通常对称,可启用fliplr: 0.5     # 左右翻转flipud: 0.0     # 上下翻转(根据实际情况调整)
2. 正负样本分配与损失函数
  # 正负样本分配阈值(关键参数)iou_t: 0.2      # 降低阈值,适应不同角度BGA的匹配# 损失函数权重box: 0.1        # 增大边界框权重,强化定位精度(BGA边缘检测重要)cls: 0.3        # 分类权重(根据BGA类型数量调整)obj: 0.7        # 目标置信度权重

二:使用训练好的模型进行推理,需要调节的最重要的几个参数具体是哪几个?

1. 检测阈值(直接影响结果)
detect:conf: 0.4           # 置信度阈值(过滤低置信度预测)iou: 0.3            # NMS IOU阈值(降低以减少重叠框,适合密集BGA)max_det: 1000       # 最大检测目标数(根据图像中BGA数量调整)
2. 后处理与输出控制
  agnostic_nms: False  # 类别无关NMS(根据BGA类型是否需要区分选择)line_thickness: 2    # 边界框线条粗细(可视化效果)
3. 输入尺寸与预处理
  img_size: 640        # 推理时的输入尺寸(与训练一致或成比例)half: True           # 半精度推理(加速,需GPU支持)

三:分析结果

  1. 分析推理结果

    • 若漏检多,降低 conf 或增大 box 权重。
    • 若误检多,提高 conf 或降低 iou_t
  2. 数据增强迭代

    • 若特定角度的 BGA 检测不佳,针对性增加旋转增强(如 degrees=120)。

总结

阶段关键参数推荐值 / 策略
训练degreesiou_tbox90°, 0.2, 0.1
推理confioumax_det0.4, 0.3, 1000

最佳实践:从上述参数开始,根据验证集结果逐步微调,避免同时调整多个参数导致问题定位困难。

相关文章:

  • 【node】Express创建服务器
  • 使用新一代达梦管理工具SQLark,高效处理 JSON/XML 数据!
  • linux快速入门-VMware安装linux,配置静态ip,使用服务器连接工具连接,快照和克隆以及修改相关配置信息
  • 通用前端框架项目静态部署到Hugging Face Space的实践指南
  • 2025.5.27学习日记 linux三剑客 sed与正则表达式
  • IEEE出版|2025人工智能驱动图像处理与计算机视觉技术国际学术研讨会 (AIPCVT 2025)
  • 自动生成提示技术突破:AUTOPROMPT重塑语言模型应用
  • Cesium添加点、线、面
  • threejs顶点UV坐标、纹理贴图
  • 三、web安全-信息收集
  • python 生成复杂表格,自动分页等功能
  • 【北京盈达科技】GEO优化:引领AI时代内容霸权,重塑行业生态
  • 【Redis】Redis使用规范
  • SAP Business One, Web Client Analytics-2
  • vllm server返回404的一种可能得解决方案
  • UE5 Mat HLSL - Load
  • LangGraph(七)——Workflows
  • Vue-02 (使用不同的 Vue CLI 插件)
  • C++数据结构 : map和set的使用
  • docker环境搭建与常用指令
  • wordpress加图标/武汉排名seo公司
  • 出口外贸网站建设/弹窗广告最多的网站
  • 洛阳市政建设集团网站/今日国际新闻大事
  • 购物网站建设工作流程/网站收录入口申请查询
  • 做网站业务员怎么样/百度一下官方网站
  • 微信外链网站/seo关键词搜索优化