跳转至

2 YOLO 调整参数 数据增强

在 YOLOv8 训练过程中,数据增强(Data Augmentation)是提高模型泛化能力的关键部分。你目前的配置使用了 马赛克增强(Mosaic)颜色变换翻转随机擦除 等策略。

1. 数据增强相关参数

hsv_h: 0.015
hsv_s: 0.7
hsv_v: 0.4
degrees: 0.0
translate: 0.1
scale: 0.5
shear: 0.0
perspective: 0.0
flipud: 0.0
fliplr: 0.5
mosaic: 1.0
mixup: 0.0
copy_paste: 0.0
auto_augment: randaugment
erasing: 0.4

2. 具体参数调整

以下是各个数据增强方法的作用以及调整建议:

(1)颜色变换

hsv_h: 0.015  # 色调调整幅度(默认 ±1.5%)
hsv_s: 0.7    # 饱和度调整幅度(默认 ±70%)
hsv_v: 0.4    # 亮度调整幅度(默认 ±40%)
  • 作用:通过改变色调(Hue)饱和度(Saturation)亮度(Value) 来模拟不同光照条件,提高模型鲁棒性。

  • 调整建议

  • 如果数据集中颜色变化较大(如户外场景、不同光照),可以增大 hsv_hhsv_shsv_v
  • 如果数据光照环境稳定,可以适当减少 hsv_shsv_v,避免过度扰动颜色。

(2)几何变换

degrees: 0.0   # 旋转角度(默认 0,不旋转)
translate: 0.1 # 平移范围(默认 ±10%)
scale: 0.5     # 缩放范围(默认 50% 到 150%)
shear: 0.0     # 剪切变换(默认 0,关闭)
perspective: 0.0  # 透视变换(默认 0,关闭)
  • 作用

  • 旋转(degrees):对目标进行随机旋转,但不适合方向敏感任务(如行人检测)。

  • 平移(translate):随机移动目标,提高模型对目标位移的适应能力。
  • 缩放(scale):模拟目标远近变化。
  • 剪切(shear):对图像进行倾斜变换,但不适合大多数检测任务。
  • 透视变换(perspective):模拟透视失真。

  • 调整建议

  • 行人/车辆检测

    • degrees: 0.0(不旋转,避免行人倒置)
    • translate: 0.2(允许 20% 平移)
    • scale: 0.5(允许 50% 缩放)
  • 通用物体检测

    • degrees: 10(允许 ±10° 旋转)
    • translate: 0.2(适当增加平移)
    • shear: 2.0(轻微剪切变换)

(3)翻转

flipud: 0.0  # 上下翻转(默认关闭)
fliplr: 0.5  # 左右翻转(默认 50% 概率)
  • 作用
  • 上下翻转(flipud):适用于对称目标(如人脸识别),但对行人、车辆等任务不适用
  • 左右翻转(fliplr):对大多数物体检测都有效(默认 50% 概率)。
  • 调整建议
  • 行人/车牌/文字检测flipud: 0.0(禁止上下翻转)
  • 通用目标检测flipud: 0.1(适当增加)
  • 对称目标(如人脸):flipud: 0.5

(4)马赛克 & Mixup

mosaic: 1.0  # 马赛克增强(默认开启)
mixup: 0.0   # Mixup(默认关闭)
  • 作用

  • 马赛克增强(mosaic):将 4 张图片混合,模拟目标密集场景,提高对小目标的检测能力。

  • Mixup:将两张图片进行线性混合,增强样本多样性,但不适用于目标检测。

  • 调整建议

  • 小目标检测(如行人、车牌)

    • mosaic: 1.0(保持开启)
    • mixup: 0.0(关闭)
  • 大目标检测(如车辆)

    • mosaic: 0.5(减少马赛克)
    • mixup: 0.0

关闭马赛克的时机

close_mosaic: 10
  • 训练 10 轮后自动关闭马赛克增强,让模型收敛时使用原始比例图片,提高精度。

(5)目标级增强

copy_paste: 0.0  # 目标级复制粘贴
copy_paste_mode: flip  # 粘贴模式
auto_augment: randaugment  # 自动增强策略
erasing: 0.4  # 随机擦除(默认 40% 概率)
  • 作用

  • Copy-Paste:将检测框内目标复制并粘贴到其他图片,适合实例分割任务,但对目标检测影响较小。

  • AutoAugment:自动选择最佳数据增强策略(randaugment 随机增强)。
  • Erasing(随机擦除):随机遮挡部分目标,提升鲁棒性。

  • 调整建议

  • 人脸/行人检测

    • copy_paste: 0.0(禁用)
    • erasing: 0.2(适当降低擦除概率)
  • 通用目标检测

    • copy_paste: 0.5(适当启用)
    • erasing: 0.4(保持默认)

3. 综合调整建议

如果你想提高小目标检测能力(如行人/车牌)

hsv_h: 0.02  # 增加色调扰动
hsv_s: 0.8   # 增强饱和度
hsv_v: 0.5   # 增强亮度扰动
translate: 0.2  # 增大平移
scale: 0.7  # 允许更大尺度变化
fliplr: 0.5  # 维持左右翻转
mosaic: 1.0  # 保持马赛克
mixup: 0.0  # 关闭Mixup
copy_paste: 0.0  # 关闭目标粘贴
auto_augment: randaugment  # 启用随机增强
erasing: 0.3  # 适当降低随机擦除

如果你想检测大目标(如车辆、货物)

degrees: 10  # 允许 ±10° 旋转
scale: 0.3  # 限制缩放范围
flipud: 0.1  # 允许 10% 上下翻转
mosaic: 0.5  # 降低马赛克增强
copy_paste: 0.5  # 启用目标复制粘贴
erasing: 0.2  # 适当减少擦除

4. 结论

你的数据增强策略已经比较完整,主要可以调整颜色变换、缩放和平移范围,并适当降低 mosaic 关闭时间,让训练后期使用更真实的图片。你可以根据数据集的特点进行微调,以获得最佳效果。