如何通过数据增强技术进一步提升YOLOv5/v8在矿山皮带检测中的准确率

6 阅读4分钟

在矿山皮带场景里,仅靠原始数据很难覆盖井下所有的光照、粉尘和遮挡变化,有针对性地做数据增强,是提高 YOLOv5/v8 准确率的关键手段之一。可以从“通用增强 + 矿山场景增强 + 对抗训练”三层来做。


一、先做通用的高质量增强(打好基础)

这些是任何场景下都能用的增强,先把模型的“基本功”练好。

  1. 几何变换

    • 随机缩放:皮带宽度不一,可用 scale=0.5~1.5放大缩小,让模型学会不同视野下的目标。
    • 随机裁剪:模拟皮带边缘截断或部分遮挡,提升鲁棒性。
    • 旋转 ±15°:皮带偶尔倾斜拍摄,小幅旋转能让模型适应姿态变化。
    • 翻转:水平翻转为主(皮带左右对称),垂直翻转慎用。
  2. 颜色与光照增强

    • 亮度/对比度/饱和度扰动:模拟井下忽明忽暗、灯老化等。
    • 色调偏移(Hue) :适应不同色温的照明。
    • Gamma 校正:改变整体明暗分布,让模型不依赖固定亮度。
  3. Mosaic & MixUp(YOLO 自带)

    • Mosaic:4 张图拼成一张,增加小目标、多目标组合出现的概率,对皮带上的小锚杆、小撕裂很有效。
    • MixUp:两张图按比例叠加,缓解类别不平衡,尤其适合“异物样本少”的情况。

二、针对矿山环境的场景化增强(提升实战表现)

通用增强之后,要专门模拟矿山特有的“脏乱差”。

  1. 粉尘 / 烟雾模拟

    • 做法:在图像上叠加半透明灰度噪点或纹理,模拟粉尘飘浮、镜头蒙尘。
    • 参数建议:透明度 10%~40%,颗粒大小和密度随场景调整。
    • 作用:提高模型对“目标被粉尘遮挡一部分”时的识别能力。
  2. 低光照增强

    • 做法:使用 CLAHE、Retinex 或自校准光照增强网络,把正常图像人为变暗,再用增强算法恢复。
    • 作用:让模型学会在低照度下依然能抓住皮带边缘、异物轮廓。
  3. 运动模糊模拟

    • 做法:沿皮带运动方向做线性模糊(核大小 5~15px)。
    • 作用:皮带速度快时画面容易拖影,这种增强能显著降低高速场景下的漏检。
  4. 阴影与反光模拟

    • 做法:添加不规则深色遮罩模拟支架、滚筒阴影;叠加高亮斑块模拟金属反光。
    • 作用:避免模型把阴影当成撕裂、把反光当成异物。
  5. 皮带纹理增强

    • 做法:随机调整皮带纹理对比度、周期重复模式,甚至合成不同花纹的皮带背景。
    • 作用:防止模型过度依赖某一种皮带花纹,提升对不同矿区皮带的泛化能力。

三、进阶:高级增强与对抗训练

当模型在常规增强下遇到瓶颈时,可以用这些手段进一步榨取性能。

  1. CutMix / Copy-Paste(针对异物样本少)

    • 做法:把锚杆、矸石等异物抠出来,随机贴到正常皮带图上,位置和大小随机。
    • 作用:低成本扩充异物样本,缓解类别极度不平衡。
  2. 随机擦除(Random Erasing)

    • 做法:随机遮挡图像的一块区域(可以是矩形或多边形)。
    • 作用:强迫模型不只靠局部特征做判断,提升对遮挡、污损的鲁棒性。
  3. 对抗训练(Adversarial Training)

    • 做法:在训练时对输入图像加微小扰动(FGSM/PGD),让模型学习抵抗干扰。
    • 作用:减少因粉尘边缘、反光等造成的误检,提升稳定性。

四、落地配置示例(YOLOv5/v8)

以 YOLOv5/v8 的 YAML 配置文件为例,可以这样组合增强策略:

# hyp.scratch.yaml(示意)
hsv_h: 0.015       # 色调扰动
hsv_s: 0.7         # 饱和度扰动
hsv_v: 0.4         # 亮度扰动
degrees: 15        # 旋转角度范围
translate: 0.1     # 平移
scale: 0.5         # 缩放下限
shear: 0.0         # 剪切(皮带场景一般不加)
perspective: 0.0   # 透视变换(可选关闭)
flipud: 0.0        # 垂直翻转禁用
fliplr: 0.5        # 水平翻转概率
mosaic: 1.0        # Mosaic 开启
mixup: 0.1         # MixUp 轻度开启
copy_paste: 0.1    # Copy-Paste 扩充异物样本
erasing: 0.4       # Random Erasing 概率

如果是自定义 Pipeline(如 Albumentations),可以在 train.py里接入粉尘叠加、运动模糊等自定义函数。


五、注意事项

  1. 增强要有“度”

    • 不要把皮带纹理完全破坏、不要把异物模糊到看不见,否则相当于引入噪声。
  2. 只在训练时用增强

    • 验证集、测试集必须用原始分布,否则指标虚高。
  3. 配合数据闭环

    • 部署后把现场的漏检、误检截图回收到训练集,再做一轮针对性增强训练,准确率提升会更明显。