本节摘要:数据增强让有限数据变多。本节讲 Mosaic、MixUp、CutMix、色彩扰动等增强——检测器泛化能力的"放大器"。
阅读完本节,你应当能够:
标注数据有限,模型易过拟合。数据增强通过对训练图像做变换,扩充数据多样性,提升泛化。检测增强要同步变换框标注。
数据增强相当于免费的额外训练样本:一张行人照片左右翻转后,模型就多学了一种"行人朝右走"的模式;调暗亮度后,就多学了一种"夜间行人"的模式。增强不是让模型背下更多图像,而是让模型学到对无关变化(翻转、光照、遮挡)的不变性。检测相比分类多了一层约束:几何变换必须同步修改标注框,否则增强引入的是错误标签。
对图像做几何变换,同步调整框:
| 增强 | 操作 | 注意 |
|---|---|---|
| 随机裁剪 | 裁剪子区域 | 框可能被截断或丢失 |
| 随机翻转 | 水平/垂直翻转 | 框坐标同步翻转 |
| 缩放 | 改变尺寸 | 框尺寸同步 |
| 旋转 | 旋转角度 | 框旋转(检测少用,框变方向) |
| 平移 | 平移图像 | 框坐标同步 |
# 水平翻转 + 框同步 img = img[:, ::-1] # 水平翻转 boxes[:, [0,2]] = w - boxes[:, [2,0]] # 框 x 坐标翻转
旋转在检测里要谨慎:目标框默认是轴对齐矩形,旋转后框需要重新算最小外接矩形,且 90 度以外的旋转容易让"上下颠倒"的语义混入。多数检测流水线只用水平翻转 + 缩放 + 平移,性价比最高。
改变图像色彩,不影响框,提升光照鲁棒性:
YOLOv5 用 HSV 色彩空间增强。色彩增强让模型对光照、白平衡、显示器色偏不敏感,特别适合户外监控、车载摄像头这类光照变化大的场景。因为是逐像素变换,不需要动标注框,实现简单。

YOLOv4 首创,把 4 张图拼成 1 张训练:
Mosaic 是 YOLOv4 性能提升的关键之一。它把 4 张图各裁一块拼成新图,新图里目标数量变多、尺度变小,相当于每张训练样本都带"小目标混合增强"效果。还顺带解决了小 batch 下 BN 统计不稳的问题——一张 Mosaic 图涵盖 4 张图的信息,等效 batch 变大。
两张图按比例线性混合:\tilde{x} = \lambda x_1 + (1-\lambda) x_2,标签也混合。提升平滑性。
MixUp 让模型在样本之间做线性插值,学到更平滑的决策边界,对噪声标签也更有韧性。
从一张图裁剪区域贴到另一张,标签按面积加权。比 MixUp 保留更多局部信息。
CutMix 保留了原图的大部分局部结构(不像 MixUp 那样整体透明叠加),目标区域仍然清晰可见,检测任务里表现通常优于 MixUp。
随机遮挡图像区域,强制模型看全局而非局部显著区域,提升遮挡鲁棒性。
YOLOv5 默认增强:
# YOLOv5 训练时增强开关示例 augment_args = dict( hsv_h=0.015, # 色调偏移幅度 hsv_s=0.7, # 饱和度 hsv_v=0.4, # 亮度 fliplr=0.5, # 水平翻转概率 mosaic=1.0, # Mosaic 概率 mixup=0.0, # MixUp 概率(默认关) )
这些参数直接写在 YOLOv5 的 hyp 文件中,调参时按数据特点微调即可。
增强强度需要按数据试:数据量大可以增强轻一些,数据量小可以增强重一些;但 Mosaic 这类强增强在训练后期要逐步关闭,否则模型一直在"看拼接图",对真实分布的拟合变差。
工业项目里,先做数据体检:统计每类样本数、小目标占比、遮挡情况。然后针对性增强:
Copy-Paste 把目标从一张图"抠"出来贴到另一张图,能显著扩充稀有类和小目标样本,实例分割里尤其有效。它本质是"数据合成",比单纯变换更主动地制造多样性。
⚠️ 常见坑:几何增强忘了同步框——图像翻转了框没翻,标注错位,模型学坏。所有几何变换必须同步处理框。
💡 关键直觉:数据增强是泛化放大器。几何增强(裁剪/翻转/缩放)同步框,色彩增强不影响框,混合增强(Mosaic/MixUp/CutMix)是检测关键创新。Mosaic 4 图拼接是 YOLOv4 性能提升利器。末期关闭强增强。
第 2 章结束。下一章讲两阶段检测器。