LocalAugment
LocalAugment
本 python 包用于深度学习的本地数据增强。
Feature
- 不同于一般图像增广库,本
LocalAugment
库是先在本地图片上做增强,导出增强后的图片直接作为训练集使用,而不是加在网络的图像预处理部分。 LocalAugment
库采用矩形中心框与长宽的标签定位模式,支持在本地进行图像增强的同时,记录下标签变换后的位置与大小,能够保证图像在经过变换后,标签依然能够被正确地定位,省去转换后手动打标签的繁琐工作。
Install
pip install localAugment
Quickly Start
import LocalAugment as LA
source_dir = "dataset\\images"
output_dir = "dataset\\images\\tested"
label_dir = "dataset\\labels"
num_images = 30 # 需要增强的图片数量
LocalAugment
库提供随机抽取图片的randomTransformer()
类与可以指定图片列表的customTransFormer()
类,下面对两个类分别做介绍。两类均需要定义图片数据集路径、标签路径、转换后保存路径,并将其按顺序输入类中生成实例。
⤵️ randomTransformer(source_folder, target_folder, label_folder, img_number)
img_number
参数指定了需要从source_folder
中随机抽取img_number
张图片做数据增强。
⤵️ customTransFormer(source_folder, target_folder, label_folder, images_list)
images_list
参数指定了需要增广图片文件名列表,需要包含后缀名,目前支持.png
与.jpg
两种图片格式。该列表中文件要保证在source_folder
中存在,若不存在,程序会报错。
增广转换器
LocalAugment
提供了以下几种数据增广转换器
🔃 Crop(crop_size)
图像裁剪转换器
crop_size: tuple(int)
矩形裁剪的尺寸,具体到图像上的像素坐标,以 tuple 结构输入,依次存储为(x1, x2, y1, y2)
,采用矩形左上角和右下角的坐标定位。
经裁剪转换器处理后的图像会在其文件名后加入_c
标识。
🔃 Rotate(angle, shuffle=True)
图像旋转转换器,该转换器默认以图像中心作为旋转中心,支持自定义旋转角度或采用随机角度。
angle: int/tuple(int)
指定旋转角度,角度制,正数为顺时针旋转,负数为逆时针旋转shuffle: boolean
Bool 变量,指定是否采用随机角度值。当shuffle
为True
时,应将angle
指定为tuple
数组,规定随机角度的取值范围。随机角度值采取指定范围内的均匀分布。
经旋转转换器处理后的图像会在其文件名后加入_rot<angle>
标识。
🔃 flipHorizontal()
图像水平翻转转换器
经水平翻转转换器处理后的图像会在其文件名后加入_hf
标识。
🔃 randomFlipHorizontal(p)
图像随机水平翻转转换器,该转换器支持自定义翻转概率 p
。
p: float
指定翻转概率,取值范围为[0, 1]
,p=1
表示全部翻转,p=0
表示不翻转。
经水平翻转转换器处理后的图像会在其文件名后加入_hf
标识。
🔃 flipVertical()
图像垂直翻转转换器
经垂直翻转转换器处理后的图像会在其文件名后加入_vf
标识。
🔃 randomFlipVertical(p)
图像随机垂直翻转转换器,该转换器支持自定义翻转概率 p
。
p: float
指定翻转概率,取值范围为[0, 1]
,p=1
表示全部翻转,p=0
表示不翻转。
经垂直翻转转换器处理后的图像会在其文件名后加入_vf
标识。
🔃 randomGammaLight(dark,light)
图像亮度调整转换器
dark: tuple(float)
指定亮度调暗范围,取值范围为[0, 1]
,dark=(0.2, 0.8)
表示将亮度下调到0.2
到0.8
之间,视具体图片生成效果而定light: tuple(int)
指定亮度调亮范围,取值范围为[0, 10]
,light=(2, 8)
表示将亮度上调到2
到8
之间,视具体图片生成效果而定
经亮度调整转换器处理后的图像会在其文件名后加入_l
标识。
🔃 randomGaussionNoise(noise_scale)
图像高斯噪声随机添加转换器
noise_scale: tuple(int)
指定高斯噪声添加范围,默认为(10,20)
,具体视图片生成效果而定
经高斯噪声转换器处理后的图像会在其文件名后加入_n
标识。
🔃 randomResize(time, shuffle=True)
图像缩放转换器
time: int/float
图像缩放因子,>1
为放大比例系数,<1
为缩小比例系数shuffle: boolean
Bool 变量,指定是否采用随机缩放比例系数。当shuffle
为True
时,应将time
指定为tuple
数组,规定随机缩放因子的取值范围。随机缩放因子采取指定范围内的均匀分布。
经缩放转换器处理后的图像会在其文件名后加入_res
标识。
🔃 Sharpen()
图像锐化转换器,利用拉普拉斯算子对图像进行锐化处理。
经锐化转换器处理后的图像会在其文件名后加入_sh
标识。
转换器串联
Compose(func_list:list[func])
LocalAugment
提供了Compose()
函数用于各类转换器的串联
保存
Save()
在运行完所有转换器之后,需要加入Transformer.Save()
函数来保存增强后的图片。
图片可视化
Show(num_cols, num_rows)
LocalAugment
库提供了Show()
函数来可视化增强后的图像,以便观察标签的跟踪是否正确。
num_cols: int
显示图片列数num_rows: int
显示图片行数
注意输入的图片总数不得超过增强数据集中的图片数目。