数据增强 ======================= Albumentations是一个用于图像增强的Python库,它提供了多种增强技术,包括随机裁剪、旋转、缩放、翻转、变形、颜色变换、模糊等操作。使用Albumentations库可以快速、高效地对图像数据进行增强。 下面将从变换、模糊变换、几何变换、裁剪变换四个部分介绍albumentations增强方法。 变换 --------- 1. clahe 对输入图像应用对比度限制自适应直方图均衡化。 .. list-table:: :widths: 14 20 10 8 8 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - clip_limit - 对比度限制的上限阈值 - int - 1 - 1-100 - clip_limit=(3, 7) * - tile_grid_size - 直方图均衡的网格大小 - int - 1 - 1-100 - tile_grid_size=(8, 8) 注: 如果clip_limit是单个浮点值,则范围为(1, clip_limt)。 1. 通道打乱/channel_shuffle 随机重新排列输入RGB图像的通道。 1. 色彩抖动/color_jitter 随机改变输入图像的亮度、对比度和饱和度. .. list-table:: :widths: 10 16 8 8 8 24 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - brightness - 亮度抖动程度 - float - 0.01 - 0.01-10.00 - brightness=(0.01, 4.25) * - contrast - 对比度抖动程度 - float - 0.01 - 0.01-10.00 - contrast=(0.01, 3.07) * - saturation - 饱和度抖动程度 - float - 0.01 - 0.01-10.00 - saturation=(0.01, 2.51) * - hue - 色调抖动程度 - float - 0.01 - 0.01-10.00 - hue=(-0.5, 0.5) 注: 亮度因子是从[max(0, 1-亮度),1+亮度]或给定的[min, max]中均匀选择的,对比度和饱和度与亮度因子类似。 色调因子是从[-hue, hue]或给定的[min, max]中均匀选择的。其中0 <= hue <= 0.5 or -0.5 <= min <= max <= 0.5。 4. 降质/downscale 降低输入图像的质量。 .. list-table:: :widths: 10 10 10 6 10 20 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - scale - 图像比例 - float - 0.01 - 0.01-0.99 - scale=(0.18,0.56) 5. 浮雕/emboss 浮雕输入图像并将结果与原始图像叠加。 .. list-table:: :widths: 13 22 13 8 10 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - alpha - 浮雕图像的可见性的范围 - float - 0.01 - 0-1.00 - alpha=(0.12, 0.27) * - strength - 浮雕的强度范围 - float - 0.01 - 0-10.00 - strength=(0.53, 3.39) 注: alpha在0时, 表示只有原始图像可见, 在1.0时, 表示只有其浮雕版本可见。strength默认值: (0.2, 0.7)。 6. 直方图均衡化/equalize 对输入图像直方图均衡化。 .. list-table:: :widths: 12 40 10 6 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 参数范围 - 示例值 * - mode - 直方图均衡化的两种方法(OpenCV或Pillow) - string - cv, pil - mode="cv" * - by_channels - 控制是否对每个通道单独执行直方图均衡化 - bool - False,True - by_channels=True 注: 如果by_channels为True,将对每个通道分别执行直方图均衡化,如果为False,则对整个图像的亮度进行直方图均衡化,而不考虑通道。 7. FancyPCA 使用FancyPCA增强输入RGB图像。 .. list-table:: :widths: 8 30 8 8 8 12 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - alpha - 对特征向量和vals进行扰动/缩放 - float - 0.01 - 0-10.00 - alpha=3.22 注: alpha尺度是来自高斯分布的样本(μ=0, sigma=alpha)。 8. 高斯噪声/gauss_noise 对输入图像应用高斯噪声。 .. list-table:: :widths: 10 16 8 8 16 24 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - var_limit - 噪声的方差范围 - float - 0.01 - 0-500.00 - var_limit=(10.01, 50.02) * - mean - 噪音的平均值 - float - 0.01 - -100.00-100.00 - mean=0 注: 如果var_limit是浮点数, 则范围将为(0, var_limit)。默认值: (10.0, 50.0)。mean默认值为0。 9. hue_saturation_value 随机改变输入图像的色调、饱和度和数值。 .. list-table:: :widths: 16 16 10 8 14 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - hue_shift_limit - 色调的改变范围 - int - 1 - -100-100 - hue_shift_limit=(-20, 20) * - sat_shift_limit - 饱和度的改变范围 - int - 1 - -100-100 - sat_shift_limit=(-30, 30) * - val_shift_limit - 更改值的范围 - int - 1 - -100-100 - val_shift_limit=(-20, 20) 注: 如果hue_shift_limit是int数据类型,则范围将是(-hue_shift_limit, hue_shift_limit),默认值: (-20, 20)。sat_shift_limit和val_shift_limit与hue_shift_limit类似,sat_shift_limit默认值: (-30, 30)。 10. 图像压缩/image_compression 压缩输入的图像。 .. list-table:: :widths: 10 10 10 8 10 8 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - quality - 图像质量 - int - 1 - 0-100 - w 注: jpeg的quality 应在[0, 100]范围内,webp应在[1, 100]范围。 11. 反转变换/invert_img 通过从255减去像素值来反转输入图像。 12. 传感器噪声/iso_noise 对输入图像应用相机传感器噪声。 .. list-table:: :widths: 12 35 10 9 10 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - color_shift - 控制噪声的颜色偏移,其大小代表颜色偏移程度 - float - 0.01 - 0-1.00 - color_shift=(0.01, 0.05) * - intensity - 控制噪声强度的乘法因子 - float - 0.01 - 0-2.00 - intensity=(0.10, 0.50) 13. 乘性噪声/multiplicative_noise 将图像乘以随机数或数字数组。 .. list-table:: :widths: 12 20 10 8 10 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - multiplier - 乘数(浮点或浮点元组) - float - 0.01 - 0.10-5.00 - multiplier=(0.9,1.1) * - per_channel - 通道值选择 - bool - - False,True - per_channel=False * - elementwise - 相乘值选择 - bool - - False,True - elementwise=False 注: multiplier如果是单个浮动图像将乘以这个数字。如果是浮点乘法器的元组,将在范围[multiplier[0], multiplier[1])。 per_channel如果为False,则将对所有通道使用相同的值。如果为True,则对每个通道使用采样值。默认为False。 elementwise如果为False,则将图像中的所有像素与采样一次的随机值相乘。如果True ,将图像像素与按像素随机采样的值相乘。默认值: False。 14. 色调分层/posterize 减少每个颜色通道的比特数。 .. list-table:: :widths: 12 20 8 8 8 14 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - num_bits_r - red通道高位的数量 - int - 1 - 0-8 - num_bits_r=4 * - num_bits_g - green通道高位的数量 - int - 1 - 0-8 - num_bits_g=4 * - num_bits_b - blue通道高位的数量 - int - 1 - 0-8 - num_bits_b=4 15. 随机亮度/random_brightness 随机改变输入图像的亮度。 .. list-table:: :widths: 10 12 10 8 12 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - limit - 亮度的范围 - float - 0.01 - -1.00-1.00 - limit=(-0.2,0.2) 16. 随机亮度对比度/random_brightness_contrast 随机改变输入图像的亮度和对比度。 .. list-table:: :widths: 10 8 10 8 2 2 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - brightness_limit - 改变亮度的因子范围 - float - 0.01 - -1.00-1.00 - brightness_limit=(-0.2,0.2) * - contrast_limit - 改变对比度的因子范围 - float - 0.01 - -1.00-1.00 - contrast_limit=(-0.2,0.2) * - brightness_by_max - 亮度调整的参数 - bool - - False,True - brightness_by_max=True 注: brightness_by_max如果为True,则按图像数据中的最大像素值来调整亮度。为False时,则按照整体平均亮度来进行亮度调整 17. 雾效果/random_fog 为图像模拟雾。 .. list-table:: :widths: 12 14 8 8 8 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - fog_coef - 雾强度系数 - float - 0.01 - 0-1.00 - fog_coef=(0.1, 0.2) * - alpha_coef - 雾圈的透明度 - float - 0.01 - 0-1.00 - alpha_coef=0.08 18. 下雨效果/random_rain 增加下雨效果。 .. list-table:: :widths: 20 10 10 10 10 10 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - slant_lower - 雨滴和正常值的偏差 默认值:随机 - int - 1 - -20-20 - slant_lower=-10 * - slant_upper - 雨滴和正常值的偏差 默认值:随机 - int - 1 - -20-20 - slant_upper=10 * - drop_length - 雨滴长度 默认值:20(像素) - int - 1 - 0-100 - drop_length=20 * - drop_width - 雨滴宽度 默认值:1(像素) - int - 1 - 1-5 - drop_width=1 * - blur_value - 模糊值 - int - 1 - 1-15 - blur_value=7 * - brightness_coefficient - 亮度系数 - float - 0.01 - 0-1.00 - brightness_coefficient=0.7 * - rain_type - 雨的种类 - string - - [None,"drizzle","heavy","torrential"] - rain_type=none 19. 阴影效果/random_shadow 模拟图像的阴影。 .. list-table:: :widths: 14 30 10 10 10 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - shadow_roi_x - 阴影区域相对于原始图像宽度的x坐标范围 - float - 0.01 - 0-1 - shadow_roi_x=[0,1] * - shadow_roi_y - 阴影区域相对于原始图像宽度的y坐标范围 - float - 0.01 - 0-1 - shadow_roi_y=[0.5,1] * - num_shadows - 在图像中生成的阴影数量 - int - 1 - 0-100 - num_shadows=[1,2] * - shadow_dimension - 生成的阴影维度 - int - 1 - 0-100 - shadow_dimension=5 20. 雪效果/random_snow 漂白出一些模拟雪的像素值。 .. list-table:: :widths: 18 18 10 8 10 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - snow_point - 雪花的数量和密度 - float - 0.01 - 0-1.00 - snow_point=[0.1,0.3] * - brightness_coeff - 雪花亮度效果系数 - float - 0.01 - 0-5.00 - brightness_coeff=2.5 21. Gamma变换/random_gamma 对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系。 .. list-table:: :widths: 18 14 13 8 13 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - gamma_limit - gamma值的范围 - int - 1 - 0-200 - gamma_limit=(0, 60) 22. 随机改变色调/random_tone_curve 通过操纵色调曲线随机改变图像的亮区和暗区之间的关系。 .. list-table:: :widths: 10 20 10 8 10 12 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - scale - 色调曲线的变化幅度 - float - 0.01 - 0-1.00 - scale=0.1 23. RGB平移/rgb_shift 随机偏移输入RGB图像的每个通道的值。 .. list-table:: :widths: 10 20 8 10 8 12 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - r_shift_limit - 红色通道值的范围 - int - 1 - -255-255 - r_shift_limit=(-20, 20) * - g_shift_limit - 绿色通道值的范围 - int - 1 - -255-255 - g_shift_limit=(-20, 20) * - b_shift_limit - 蓝色通道值的范围 - int - 1 - -255-255 - b_shift_limit=(-20, 20) 24. 锐化/sharpen 锐化输入图像并将结果与原始图像叠加。 .. list-table:: :widths: 12 24 8 8 8 22 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - alpha - 锐化图像的可见性的范围 - float - 0.01 - 0-1.00 - alpha=(0.2, 0.5) * - lightness - 锐化图像的亮度的范围 - float - 0.01 - 0-10.00 - lightness=(0.5, 1.0) 注: alpha在0时,只有原始图像可见,在1.0时,只有其锐化版本可见。 25. 大于阈值反转/solarize 反转高于阈值的所有像素值。 .. list-table:: :widths: 12 20 8 8 8 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - threshold - 反转阈值的范围 - int - 1 - 0-255 - threshold=128 注: 如果threshold是单个值,则范围为[threshold, threshold]。默认值: 128。 26. 超像素/superpixels 将图像部分/完全转换为超像素表示。 .. list-table:: :widths: 16 25 8 8 8 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - p_replace - 定义线段内的像素被其平均颜色替换的概率 - float - 0.01 - 0-1.00 - p_replace=0.1 * - n_segments - 预生成超级像素的粗略目标数 - int - 1 - 1-1000 - n_segments=100 * - max_size - 执行增强时的最大图像大小 - int - 1 - 32-256 - max_size=128 * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: p_replace未定义时像素不会更改;算法可能偏离n_segments, n_segments值越低,则超级像素越粗糙; 如果图像的宽度或高度超过max_size, 则在增强之前缩小, 使得最长边与“max_size”匹配。这样做是为了加快进程。最终输出图像具有与输入像相同的大小。注意, 在“p_replace”低于“1.0”的情况下, 缩小/放大也会影响未被替换的像素。使用“none”不应用缩小/放大。 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_CUBIC, cv2.INTER_AREA, cv2.INTER_LANCZOS4.。默认值: cv2.INTER_LINEAR。 27. 灰度变换/to_gray 将输入的RGB图像转换为灰度。 28. 滤镜变换/to_sepia 对输入的RGB图像应用sepia滤镜. 模糊变换 --------- 1. 模糊/blur 使用随机大小的内核模糊输入图像。 .. list-table:: :widths: 12 40 10 10 10 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - blur_limit - 模糊输入图像的最大内核大小 默认值:(3,7) - int - 1 - 1-100 - blur_limit=[3, 7] 2. 高斯模糊/gaussian_blur 使用随机内核大小的高斯滤波器模糊输入图像。 .. list-table:: :widths: 12 20 8 8 12 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - blur_limit - 模糊输入图像的最大高斯核大小 - int - 1 - 1-100 - blur_limit=[3, 7] * - sigma_limit - 高斯核标准差 - float - 0.01 - 0-100.00 - sigma_limit=0.5 注: blur_limit必须为零或奇数,并且在[0, inf)范围内。如果设置为0,则将根据西格玛计算如“round(sigma*(3 if img.dtype==np.uint8 else 4)*2+1)+1"。如果设置单个值“blur_limit”,则该值将在范围(0, blur_limit.)内。默认值: (3, 7)。 sigma_limit必须在范围[0, inf)内。如果设置单个值“sigma_limit”, 则该值将在范围(0, sigma_limit)内。如果设置为0, sigma将被计算为“sigma=0.3*(ksize-1)*0.5-1)+0.8”。默认值: 0。 3. 玻璃模糊/glassBlur .. list-table:: :widths: 12 30 7 8 12 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - sigma - 高斯核标准差 - float - 0.01 - 0.01-100.00 - sigma=0.7 * - max_delta - 交换的像素之间的最大距离 - int - 1 - 0-100 - max_delta=4 * - iterations - 重复次数 默认值:(2) - int - 1 - 1-100 - iterations=2 * - mode - 计算模式:快速或精确 默认值:快速 - string - - fast,exact - mode="fast" 4. 中值模糊/median_blur 使用中值滤波器与随机孔径线性大小模糊输入图像。 .. list-table:: :widths: 12 30 8 8 8 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - blur_limit - 模糊输入图像的最大孔径线性大小 - int - 2 - 3-100 - blur_limit=7 注: blur_limit必须是奇数并且在[3, inf)范围内。默认值: (3, 7)。 5. 运动模糊/motion_blur 使用随机大小的内核对输入图像应用运动模糊。 .. list-table:: :widths: 12 30 8 8 8 15 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - blur_limit - 模糊输入图像的最大内核大小 - int - 1 - 3-100 - blur_limit=7 注: blur_limit应在范围[3, inf)内。默认值: (3, 7)。 几何变换 --------- 1. 翻转/Flip Ⅰ.水平翻转/HorizontalFlip flip_h 沿y轴水平翻转输入图像。 Ⅱ.垂直翻转/VerticalFlip flip_v 沿x轴垂直翻转输入图像。 2. 旋转/Rotate Ⅰ.旋转90°/Rotate_90 rotate_90 将输入图像旋转90度。 Ⅱ.旋转180°/Rotate_180 rotate_180 将输入图像旋转180度。 Ⅲ.旋转270°/Rotate_270 rotate_270 将输入图像旋转270度。 Ⅳ.任意角度/FreeRotate free_rotate 将输入图像旋转给定的角度。 .. list-table:: :widths: 15 40 10 10 10 15 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - limit - 旋转角度的范围 最大范围在[-360,360] 默认范围[-90,90] - int - 1 - -360-360 - limit=45 1. 调整大小/resize 调整输入到给定的高度和宽度。 .. list-table:: :widths: 16 14 8 8 8 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - width - 给定的输出宽度 - int - 1 - 0-图像最大宽度 - width=100 * - height - 给定的输出高度 - int - 1 - 0-图像最大高度 - height=100 * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_CUBIC, cv2.INTER_AREA, cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。 4. 随机缩放/randomScale 随机调整输入的大小。输出图像大小与输入图像大小不同。 .. list-table:: :widths: 16 18 10 10 18 26 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - scale_limit - 缩放因子范围 - float - 0.01 - -0.90-2.00 - scale_limit=[-0.1, 0.1] * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: 如果scale_limit是单个浮点值, 则范围为(-scale_limit, scale_limt)。请注意, scale_limit将被偏置1。如果scale_limit是元组, 如(low, high), 则将从范围(1+low, 1+high)进行采样。默认值: (-0.1, 0.1)。 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST,cv2.INTER_LINEAR,cv2.INTER_CUBIC,cv2.INTER_AREA,cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。 5. smallest_max_size 重新缩放图像,使最小边等于max_size,保持初始图像的纵横比。 .. list-table:: :widths: 16 22 10 10 10 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - max_size - 变换后图像最小边的最大值 - int - 1 - 1-1024 - max_size=200 * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: max_size使用列表时,最大值将从列表中的值中随机选择。 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST,cv2.INTER_LINEAR,cv2.INTER_CUBIC,cv2.INTER_AREA,cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。 6. longest_max_size 重新缩放图像,使最大边等于max_size,保持初始图像的纵横比。 .. list-table:: :widths: 16 22 10 10 10 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - max_size - 变换后图像最大边的最大值 - int - 1 - 1-1024 - max_size=200 * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: max_size使用列表时,最大值将从列表中的值中随机选择。 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST,cv2.INTER_LINEAR,cv2.INTER_CUBIC,cv2.INTER_AREA,cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。 7. 边界填充/pad_if_needed 填充图像边缘到指定尺寸。(若图像大小大于指定尺寸,不进行任何操作,返回原图)。 .. list-table:: :widths: 20 15 20 20 10 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - min_height - 结果图像高度最小值 - int - 1 - 1-2048 - min_height=200 * - min_width - 结果图像宽度最小值 - int - 1 - 1-2048 - min_width=200 * - position - 图像位置 - string - - center, top_left, top_right, bottom_left, bottom_right - position="center" 注: position应为以下之一: PositionType.CENTER or PositionType.TOP_LEFT or PositionType.TOP_RIGHT or PositionType.BOTTOM_LEFT or PositionType.BOTTOM_RIGHT. or PositionType.RANDOM。 默认值: PositionType.CENTER。 1. 透视变换/perspective 对输入图像执行随机的四点透视变换。 .. list-table:: :widths: 16 22 10 10 10 18 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - scale - 正态分布的标准差 - float - 0.01 - 0-2.00 - scale=(0.05, 0.1) * - pad_mode - OpenCV边界模式 - int - 1 - 0-4 - pad_mode=0 * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: scale用于采样子图像的角与完整图像的角的随机距离。如果scale是单个浮点值, 则范围为(0, scale)。默认值: (0.05, 0.1)。 插值算法主要有cv2.BORDER_CONSTANT,cv2.BORDER_REFLECT等(用数字0~4表示)。默认为cv2.BORDER_CONSTANT(0)。 9. 仿射变换/shift_scale_rotate 对输入图像随机应用仿射变换:平移,缩放和旋转。 .. list-table:: :widths: 16 26 10 10 10 26 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - shift_limit - 高度和宽度的偏移因子范围 - float - 0.01 - -1.00-1.00 - shift_limit=[-0.17, 0.3] * - scale_limit - 缩放因子范围 - float - 0.01 - -2.00-2.00 - scale_limit=[-1.13, 0.93] * - rotate_limit - 旋转范围 - int - 1 - -180-180 - rotate_limit=[-45,45] * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: 如果shift_limit是单个浮点值, 范围为(-shift_limit, shift_limit)。下限和的绝对值上限应该在[0,1]的范围内。默认值: (-0.0625, 0.0625)。 如果scale_limit是单个浮点值, 则范围为(-scale_limit, scale_limt)。请注意, scale_limit将被偏置1。如果scale_limit是元组, 如(low, high), 则将从范围(1+low, 1+high)进行采样。默认值: (-0.1, 0.1)。 如果rotate_limit是单个int值,则范围将为(-ristate_limit, rotate_limit)。默认值: (-45, 45)。 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST,cv2.INTER_LINEAR,cv2.INTER_CUBIC,cv2.INTER_AREA,cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。 10. 转置/transpose 通过交换行和列来调换输入图像。 裁剪变换 --------- 1. 裁剪/crop 将输入图像按指定区域裁剪。 .. list-table:: :widths: 10 12 10 10 18 10 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - x_limit - 对输入图像裁剪时,裁剪区域x坐标的取值范围 - int - 1 - 0-图像最大宽度 - x_limit=(0, 100) * - y_limit - 对输入图像裁剪时,裁剪区域y坐标的取值范围 - int - 1 - 0-图像最大高度 - y_limit=(0, 100) 2. 中心裁剪/center_crop 对输入图像中心部分进行裁剪。 .. list-table:: :widths: 8 16 12 10 18 16 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - width - 裁剪的宽度 - int - 1 - 0-图像最大宽度 - width=100 * - height - 裁剪的高度 - int - 1 - 0-图像最大高度 - height=100 3. 随机裁剪/random_crop 对输入图像任意部分进行裁剪。 .. list-table:: :widths: 8 16 12 10 18 16 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - width - 裁剪的宽度 - int - 1 - 0-图像最大宽度 - width=100 * - height - 裁剪的高度 - int - 1 - 0-图像最大高度 - height=100 4. 随机裁剪缩放/random_sized_crop 裁剪输入图像的随机部分,并将其重新缩放到某个大小。 .. list-table:: :widths: 16 26 10 10 18 20 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - min_max_height - 裁剪大小限制 - int - 1 - 0-图像最大高度 - min_max_height=(1, 100) * - width - 裁剪和调整大小后的宽度 - int - 1 - 0-图像最大宽度 - width=100 * - height - 裁剪和调整大小后的高度 - int - 1 - 0-图像最大高度 - height=100 * - w2h_ratio - 裁剪的纵横比 - float - 0.01 - 0.10-1.00 - w2h_ratio=0.38 * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST,cv2.INTER_LINEAR,cv2.INTER_CUBIC,cv2.INTER_AREA,cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。 5. 随机宽高比裁剪/random_resized_crop 裁剪输入图像的随机部分,并将其重新缩放到某个大小。 .. list-table:: :widths: 16 26 10 10 18 20 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - width - 裁剪和调整大小后的宽度 - int - 1 - 0-图像最大宽度 - width=100 * - height - 裁剪和调整大小后的高度 - int - 1 - 0-图像最大高度 - height=100 * - w2h_ratio - 裁剪的纵横比 - float - 0.01 - 0.10-1.00 - w2h_ratio=0.38 * - scale - 裁剪的原始大小的范围 - float - 0.01 - 0.01-1.00 - scale=(0.08, 1.0) * - ratio - 裁剪的原始纵横比范围 - float - 0.01 - 0.10-10.00 - ratio=(0.75, 1.0) * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST,cv2.INTER_LINEAR,cv2.INTER_CUBIC,cv2.INTER_AREA,cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。 6. 随机裁剪缩放BBOX/random_sized_bbox_safe_crop 裁剪输入的随机部分,并在不丢失BBox的情况下将其重新缩放到某个大小。 .. list-table:: :widths: 16 26 10 10 18 20 :header-rows: 1 * - 参数名称 - 参数描述 - 参数类型 - 步长 - 参数范围 - 示例值 * - width - 裁剪和调整大小后的宽度 - int - 1 - 0-图像最大宽度 - width=100 * - height - 裁剪和调整大小后的高度 - int - 1 - 0-图像最大高度 - height=100 * - erosion_rate - 侵蚀率 - float - 0.01 - 0-0.50 - erosion_rate=0 * - interpolation - 插值算法 - int - 1 - 0-4 - interpolation=1 注: erosion_rate用于控制裁剪后可能丢失原始边界框的面积,应用于裁剪前的输入图像高度。 插值算法应为以下之一(用0~4数字表示): cv2.INTER_NEAREST,cv2.INTER_LINEAR,cv2.INTER_CUBIC,cv2.INTER_AREA,cv2.INTER_LANCZOS4。默认值: cv2.INTER_LINEAR。