跳到主要内容

数据增强

可根据数据集的特性、任务目标去设置数据增强,目前支持添加的数据增强类型有:调整图像大小、随机裁剪、随机旋转、随机翻转、随机调整亮度、随机调整对比度、随机JPG编码等。

调整图像大小 (Resize)

每个项目会有一个默认的数据增强,调整图像大小(Resize),否者无法启动训练。其作用是让所有图片都变成一样大,模型才能批量处理,因此训练时通常图片不保持宽高比。

  • 检测默认的数据增强为调整图像大小(Resize):640X640
  • 分类默认的数据增强为调整图像大小(Resize):224
  • 语义分割模型使用 dvt 部署时必须要选择 32 的倍数。不考虑部署或使用 dvp、dvo 部署时不强制使用 32 的倍数,但是使用 32 的倍数仍然是更好的选择。

alt text

随机比例缩放 (RandomRescale)

在训练时以随机比例对图像进行缩放,用于模拟产线上物体距离镜头的远近变化。核心作用是让模型学会识别“同一个物体在不同距离”的样子。但不要过度缩放,缩放比例低于0.5会让物体过于模糊,超过2.0会造成信息丢失。

随机旋转 (DlcvRandomRotate)

使用随机旋转后面必须要有随机裁剪,旋转后的图像可能因几何变换导致尺寸变化(例如,矩形旋转后需要外接矩形才能保持完整内容,但会扩大图像尺寸)。随机裁剪能强制将图像恢复到固定尺寸,同时保留关键特征。

image-3..png

  • 对于圆形产品,可将旋转角度设置成0-360°,因为相机拍摄圆形产品时,产品在流水线上的角度是完全随机的。训练数据覆盖 0-360° 的所有可能性有助于模型学习。

image-4.png

  • 对于只有轻微角度旋转的产品,可将旋转角度设置成0-15°。在实际生产过程中,由于机械振动、产品放置偏差、拍照角度微小变化,会有几度到十几度的微小转动,0-15° 就是为了模拟这种正常范围内的安装或拍摄误差,且小角度旋转可以大大提升模型的角度鲁棒性。

image-5.png

固定角度旋转 (RandomFixedRotate)

随机固定角度旋转,通常是将图像按照0°、90°、180°、270°角度进行旋转。

当产品是方形或圆形等对称物体,且缺陷绝对朝向不重要时,可以增加随机固定角度旋转。

image-6.png

image-7.png

随机裁剪 (RandomCrop)

随机裁剪:通常随机裁剪略小于“调整图像大小中”的目标尺寸(80%)。

如果检测目标与背景对比度较低,尺寸偏小,对模型的检出能力要求高,可以尝试使用更小尺寸的随机裁剪增加检出能力(如 320× 320)。

image-8.png

随机翻转 (RandomFlip)

按设置的概率,将图像沿水平轴、垂直轴或两个轴同时翻转。在分类、检测、分割任务中,添加随机翻转是有效的,其能显著提升模型泛化能力。 不适用于图像中含有文字的任务,翻转会改变文本含义,如6→9,b→d,其他文字无法识别。

随机调整亮度 (Brightness)

对图像的像素值进行线性或非线性调整,使整体变亮或变暗。适用于光照有变化的场景

提高亮度:

image-9.png

降低亮度:

image-10.png

随机调整对比度 (Contrast)

改变图像像素值的分布范围:高对比度使暗者更暗、亮者更亮;低对比度使整体向中间灰度靠拢。适用于光照有变化的场景

提高对比度:

image-11.png

降低对比度:

image-12.png

随机JPG编码 (RandomJPGEncode)

随机 JPG 编码适用于输入图像可能会被不同压缩率存储或传输的任务。通常训练数据里有BMP、JPG、JPEG格式图像,可以增加随机JPG编码,让模型看到不同质量因子的图像。

选择合适的数据增强

  • 随机裁剪可以增加模型的泛化性能,减少过拟合,裁剪比例在原图的 80% 左右。
  • 随机翻转适用于分类和检测任务,但某些场景可能不适用,比如文字检测不适合使用随机翻转,避免把6翻转为9。
  • 随机调整亮度、对比度,适用于光照有变化的场景。