在矿山皮带场景里,仅靠原始数据很难覆盖井下所有的光照、粉尘和遮挡变化,有针对性地做数据增强,是提高 YOLOv5/v8 准确率的关键手段之一。可以从“通用增强 + 矿山场景增强 + 对抗训练”三层来做。
一、先做通用的高质量增强(打好基础)
这些是任何场景下都能用的增强,先把模型的“基本功”练好。
-
几何变换
- 随机缩放:皮带宽度不一,可用
scale=0.5~1.5放大缩小,让模型学会不同视野下的目标。 - 随机裁剪:模拟皮带边缘截断或部分遮挡,提升鲁棒性。
- 旋转 ±15°:皮带偶尔倾斜拍摄,小幅旋转能让模型适应姿态变化。
- 翻转:水平翻转为主(皮带左右对称),垂直翻转慎用。
- 随机缩放:皮带宽度不一,可用
-
颜色与光照增强
- 亮度/对比度/饱和度扰动:模拟井下忽明忽暗、灯老化等。
- 色调偏移(Hue) :适应不同色温的照明。
- Gamma 校正:改变整体明暗分布,让模型不依赖固定亮度。
-
Mosaic & MixUp(YOLO 自带)
- Mosaic:4 张图拼成一张,增加小目标、多目标组合出现的概率,对皮带上的小锚杆、小撕裂很有效。
- MixUp:两张图按比例叠加,缓解类别不平衡,尤其适合“异物样本少”的情况。
二、针对矿山环境的场景化增强(提升实战表现)
通用增强之后,要专门模拟矿山特有的“脏乱差”。
-
粉尘 / 烟雾模拟
- 做法:在图像上叠加半透明灰度噪点或纹理,模拟粉尘飘浮、镜头蒙尘。
- 参数建议:透明度 10%~40%,颗粒大小和密度随场景调整。
- 作用:提高模型对“目标被粉尘遮挡一部分”时的识别能力。
-
低光照增强
- 做法:使用 CLAHE、Retinex 或自校准光照增强网络,把正常图像人为变暗,再用增强算法恢复。
- 作用:让模型学会在低照度下依然能抓住皮带边缘、异物轮廓。
-
运动模糊模拟
- 做法:沿皮带运动方向做线性模糊(核大小 5~15px)。
- 作用:皮带速度快时画面容易拖影,这种增强能显著降低高速场景下的漏检。
-
阴影与反光模拟
- 做法:添加不规则深色遮罩模拟支架、滚筒阴影;叠加高亮斑块模拟金属反光。
- 作用:避免模型把阴影当成撕裂、把反光当成异物。
-
皮带纹理增强
- 做法:随机调整皮带纹理对比度、周期重复模式,甚至合成不同花纹的皮带背景。
- 作用:防止模型过度依赖某一种皮带花纹,提升对不同矿区皮带的泛化能力。
三、进阶:高级增强与对抗训练
当模型在常规增强下遇到瓶颈时,可以用这些手段进一步榨取性能。
-
CutMix / Copy-Paste(针对异物样本少)
- 做法:把锚杆、矸石等异物抠出来,随机贴到正常皮带图上,位置和大小随机。
- 作用:低成本扩充异物样本,缓解类别极度不平衡。
-
随机擦除(Random Erasing)
- 做法:随机遮挡图像的一块区域(可以是矩形或多边形)。
- 作用:强迫模型不只靠局部特征做判断,提升对遮挡、污损的鲁棒性。
-
对抗训练(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里接入粉尘叠加、运动模糊等自定义函数。
五、注意事项
-
增强要有“度”
- 不要把皮带纹理完全破坏、不要把异物模糊到看不见,否则相当于引入噪声。
-
只在训练时用增强
- 验证集、测试集必须用原始分布,否则指标虚高。
-
配合数据闭环
- 部署后把现场的漏检、误检截图回收到训练集,再做一轮针对性增强训练,准确率提升会更明显。