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_h,hsv_s,hsv_v。 - 如果数据光照环境稳定,可以适当减少
hsv_s和hsv_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 关闭时间,让训练后期使用更真实的图片。你可以根据数据集的特点进行微调,以获得最佳效果。