Augmentor项目介绍
Augmentor是一个用于机器学习的Python图像增强库。它旨在成为一个独立的、与平台和框架无关的库,提供更便捷、更精细的图像增强控制,并实现最相关的现实世界增强技术。
主要特点
-
独立性: Augmentor是一个独立的库,不依赖于特定的机器学习框架。
-
灵活性: 它采用管道(Pipeline)的方式,允许用户将各种操作拼接在一起,创建自定义的增强流程。
-
丰富的操作: 提供了多种图像增强操作,包括旋转、缩放、扭曲、裁剪等。
-
概率控制: 每个操作都可以设置概率,灵活控制是否应用于图像。
-
多线程支持: 使用多线程加速图像生成过程。
-
真实世界相关: 实现了最相关的现实世界增强技术。
主要功能
弹性变形
Augmentor可以对图像进行弹性变形,生成真实可行且保持标签的新图像。这种变形不会改变原始图像的大小或宽高比。
透视变换
提供12种不同类型的透视变换,如左倾、右倾、前倾、后倾等。
保持大小的旋转
旋转操作默认会保持原始图像的文件大小,自动裁剪以去除黑色边框。
保持大小的剪切
剪切操作也会自动裁剪到正确区域,避免出现黑色空白或填充。
随机擦除
通过随机擦除图像的部分区域,提高模型对遮挡的鲁棒性。
管道式操作链
用户可以将多个操作链接在一起,从一张图像生成大量新的、保持标签的样本。
使用方法
- 创建Pipeline对象,指向图像所在目录
- 向Pipeline添加各种操作
- 使用sample()方法生成增强后的图像
与深度学习框架集成
Augmentor可以与Keras、PyTorch等深度学习框架集成,提供图像生成器功能。
结论
Augmentor为机器学习任务提供了强大而灵活的图像增强功能。它的独立性、丰富的操作和易用性,使其成为图像数据扩充的理想工具。