数据增强基本流程
Resize
Resize步骤是指将输入图像按照某种规则将图片重新缩放到某一个尺寸,PaddleSeg支持以下3种resize方式:
-
Unpadding 将输入图像直接resize到某一个固定大小下,送入到网络中间训练。预测时同样操作。
-
Step-Scaling 将输入图像按照某一个比例resize,这个比例以某一个步长在一定范围内随机变动。预测时不对输入图像做处理。
-
Range-Scaling 将输入图像按照长边变化进行resize,即图像长边对齐到某一长度,该长度在一定范围内随机变动,短边随同样的比例变化。 预测时需要将长边对齐到另外指定的固定长度。
注:本文所有配置参数可在configs目录下您的yaml文件中进行设置。
图像翻转
PaddleSeg支持以下2种翻转方式:
-
左右翻转(Mirror) 以50%概率对图像进行左右翻转。
-
上下翻转(Flip) 以一定概率对图像进行上下翻转。
以上2种开关独立运作,可组合使用。故图像翻转一共有如下4种可能的情况:
Rich Crop
Rich Crop是PaddleSeg结合实际业务经验开放的一套数据增强策略,面向标注数据少,测试数据情况繁杂的分割业务场景使用的数据增强策略。流程如下图所示:
Rich Crop是指对图像进行多种变换,保证在训练过程中数据的丰富多样性,包含以下4种变换:
-
Blur
使用高斯模糊对图像进行平滑。 -
Rotation
图像旋转,旋转角度在一定范围内随机选取,旋转产生的多余的区域使用DATASET.PADDING_VALUE
值进行填充。 -
Aspect
图像长宽比调整,从图像中按一定大小和宽高比裁取一定区域出来之后进行resize。 -
Color jitter
图像颜色抖动,共进行亮度、饱和度和对比度三种颜色属性的调节。
Random Crop
随机裁剪图片和标签图,该步骤主要是通过裁剪的方式使得输入到网络中的图像在某一个固定大小。
Random crop过程分为3种情形:
- 当输入图像尺寸等于
CROP_SIZE
时,返回原图。 - 当输入图像尺寸大于
CROP_SIZE
时,直接裁剪。 - 当输入图像尺寸小于
CROP_SIZE
时,分别使用DATASET.PADDING_VALUE
值和DATASET.IGNORE_INDEX
值对图像和标签图进行填充,再进行裁剪。
TRAIN_CROP_SIZE
可以设置任意大小,具体如何设置根据数据集而定。
EVAL_CROP_SIZE
的设置需要满足以下条件,共有3种情形:
- 当
AUG.AUG_METHOD
为unpadding
时,EVAL_CROP_SIZE
的宽高应不小于AUG.FIX_RESIZE_SIZE
的宽高。 - 当
AUG.AUG_METHOD
为stepscaling
时,EVAL_CROP_SIZE
的宽高应不小于原图中最长的宽高。 - 当
AUG.AUG_METHOD
为rangescaling
时,EVAL_CROP_SIZE
的宽高应不小于缩放后图像中最长的宽高。