使用深度学习数据增强图像分类应用程序
在MATLAB数据增加实现
图像数据增加可以以两种方式实现[5]:- 离线增大:由执行转换的图片(可能使用MATLAB的批量图像处理功能[6])并将结果保存在磁盘上,从而增加了数据集的大小等于转换的数量表现的一个因素。这可以接受较小的数据集。
- 在线增加或动态增强:由mini-batches上执行转换,将美联储模型在训练。这种方法更适合更大的数据集,以避免潜在的爆炸性增加存储需求。
- augmentedImageDatastore:生成批次的新图像,经过预处理的原始训练图像使用旋转等操作,翻译,剪切,调整,或反射(翻转)。
- imageDataAugmenter:用于配置选中的图像数据增强的预处理操作。
- 旋转
- 反映在X(左右翻转)或Y轴(倒翻转)
- 横向和纵向扩展
- 水平和垂直剪切
- 水平和垂直的翻译
- 当你初始化imageDataAugmenter变量,您可以选择一个或多个选项,例如,只有X和Y反射和横向和纵向扩展,如下面代码片段。
imageAugmenter = imageDataAugmenter (…“RandXReflection”,真的,…“RandXScale”, [1, 2],……“RandYReflection”,真的,…“RandYScale”, [1, 2]);
- 的值作为参数传递给的一些选项(例如,X和Y的(1 2)扩展上图)是为了代表范围的值从一个随机样品将在预处理步骤,如果转换应用到一个图像。
- 还有一个选项imageDataAugmenter提供一个函数,确定为一个特定的参数值的范围,例如随机旋转之间的5和5度(见下面的代码片段)。
imageAugmenter = imageDataAugmenter (RandRotation, @() 5 + 10 *兰德);
- 有两种方法来访问实际的预处理图像(例如,检查和显示):
- 从R2018a,有读/预览上的方法augmentedImageDatastore允许您获得一个示例批处理的图片(请参见下面的代码片段,并产生一种平铺的图像如在图1中,使用花分类示例:[8])
imageAugmenter = imageDataAugmenter (RandRotation, @() -20 + 40 *兰德);augImds =…augmentedImageDatastore(图象尺寸、imd DataAugmentation, imageAugmenter);%预览扩增结果batchedData =预览(augImds);imshow (imtile (batchedData.input))
- 从R2018b开始,添加了一个新的方法(增加)imageDataAugmenter,有两个目的:它的功能作为一个独立的函数对象以及一个配置对象augmentedImageDatastore(见下面的代码片段,它可能* *产生左右翻转图像等的图2)。
在= imread ((' peppers.png '));8月= imageDataAugmenter (“RandXReflection”,真正的);=增加(8月);图中,蒙太奇({,})
* *自随机应用到输入图像翻转操作,你可能需要多次运行代码片段,直到一个实际发生翻转。
图1所示。预览图像增强处理随机旋转-20至20度。
图2所示。随机反射的例子(RandXReflection)在垂直轴。
的augmentedImageDatastore和imageDataAugmenter工作流集成神经网络的训练,这包括[7]:- 选择你的训练图像,您可以存储作为一个ImageDatastore,对象用于管理图像文件的集合,其中每个个体形象适合在内存中,但是整个集合的图片不一定适合。这个功能,可用R2015b以来,是为了读批次更快的处理图像的机器学习和计算机视觉应用。
- 选择和配置所需的图像预处理选项(例如,旋转角度范围,在度,或翻译水平距离范围,以像素为单位,从特定的值将被随机)并创建一个imageDataAugmenter对象初始化和适当的语法。
- 创建一个augmentedImageDatastore,指定训练图像,输出图像的大小,和imageDataAugmenter要使用。输出图像的大小必须符合预期的大小的输入层网络。
- 训练网络,指定augmentedImageDatastore作为数据源trainNetwork函数。为每个迭代的训练,增强图像数据存储训练数据的生成一个mini-batch应用随机变换的基础数据的原始图像augmentedImageDatastore了(见图3)。
引用
- [1]p . y . Simard d . Steinkraus和j·c·普拉特“卷积神经网络应用于视觉的最佳实践文档分析,“2013年12日国际会议文档分析和识别,卷2。IEEE计算机协会,2003年,页958 - 958。
- [2]d . c . Ciresan迈耶,l . m . Gambardella,的和j。施密德胡贝尔表示“深大,简单的神经网络的手写数字识别,”神经计算,22卷,没有。12日,第3220 - 3207页,2010年。
- [3]n . v .拉k·w·鲍耶l . o .大厅,和w·p·Kegelmeyer“击杀:少数over-sampling合成技术,人工智能研究学报,16卷,没有。1,第357 - 321页,2002。
- [4]王j·l·佩雷斯,“数据有效性的增强图像分类使用深度学习”,2017。https://arxiv.org/pdf/1712.04621.pdf
- [5]b . Raj数据增加|如何使用深度学习当你有有限的数据——第2部分。https://medium.com/nanonets/how-to-use-deep-learning-when-you-have-limited-data-part-2-data-augmentation-c26971dc8ced
- [6]Mathworks。“使用图像批处理器应用批处理”。//www.tatmou.com/help/images/batch-processing-using-the-image-batch-processor-app.html
- [7]Mathworks。“预处理图像深度学习”。//www.tatmou.com/help/nnet/ug/preprocess-images-for-deep-learning.html
- [8]o .品牌“图像分类使用数据扩充版本1.1.0”,MATLAB文件交换中心,2019年。//www.tatmou.com/matlabcentral/fileexchange/68728-image-classification-using-data-augmentation
- 类别:
- 深度学习
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。