发现一个python包Augmentor,专门用于数据扩充,链接:https://augmentor.readthedocs.io/en/master/userguide/install.html,就是开发手册,里面包含了安装,包内函数的介绍、扩展性等,这个模块主要包括了:随机旋转、随机裁剪、镜像、随机变形、随机亮度、随机颜色、随机对比度、随机擦除等等。应该能够满足要求了,不满足还可以自己加函数用它的壳子套上自己用。
1.这个包的使用比较简单,参数的具体解释可以在链接手册上查看,网上已经有很多介绍的了,下面copy一些代码来稍作说明
#导入数据增强工具
import Augmentor
p = Augmentor.Pipeline("test1") #test1为图像文件路径,最后的输出会在这个文件下新建一个output文件夹并存入
p.ground_truth("test2") #test2为标签文件路径
#图像旋转: 按照概率0.8执行,最大左旋角度10,最大右旋角度10
p.rotate(probability=0.8, max_left_rotation=10, max_right_rotation=10)
#图像左右互换: 按照概率0.5执行
p.flip_left_right(probability=0.5)
#图像放大缩小: 按照概率0.8执行,面积为原始图0.85倍
p.zoom_random(probability=0.3, percentage_area=0.85)
#最终扩充的数据样本数
p.sample(20)
注意:输出的结果都是一一对应的,只不过名字有点混乱,还需要自己写代码重新整理一下
2.下面就简单说一下扩展性。这个模块允许我们自己写一些扩充函数去补充已有函数的不足。
这里的FoldImage就是你自己写的扩充函数类,继承了Operation,perform_operation函数就你的具体实现,具体使用和其他自带函数一样的方式
3.手册中还有提到这个数据扩充和Keras一起使用喔