前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图像数据不足时,你可以试试数据扩充

图像数据不足时,你可以试试数据扩充

作者头像
云水木石
发布2019-07-01 11:39:29
1.8K0
发布2019-07-01 11:39:29
举报

EZDL到底怎样,试试看…中,我们谈到百度的在线AI设计工具EasyDL不需要调整任何参数,对于用户而言就是一个吃数据的黑盒子。也许系统会选择最优的参数和算法来训练出一个好的模型,如果此时准确率仍然达不到我们的需求,我们是否就完全束手无策了呢?

也不完全是。我们知道,丰富的高质量数据是训练出好的机器学习模型的关键。但是良好的数据不会从天上掉下来,靠人工收集数据是一个非常费时费力的工作,关键是,在特定的领域,有效的数据很难获取,比如医学影像数据。

这个时候,采用一些程序手段扩充数据集就成为了解决数据缺乏的一种方法,它可以将训练集的大小增加10倍或更多。更让人鼓舞的是,这样训练出的模型通常会更加健壮,减少过拟合。

数据扩充(Data Augmentation) 是指根据一些先验知识,在保持特定信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果。这个其实很好理解,一张猫的图片,对其进行旋转、缩放等变换,我们人类还是能辨认出。具体到图像分类任务中,在保持图像类别不变的前提下,可以对训练集中的每幅图像进行一下变换:

  1. 一定程度内的随机旋转、平移、缩放、裁剪、填充、左右翻转等,这些变换对应着同一个目标在不同角度的观察结果。
  2. 对图像中的像素添加噪声扰动,比如椒盐噪声、高斯白噪声等。
  3. 颜色变换。
  4. 改变图像的亮度、清晰度、对比度、锐度等。

如果你对图像处理并不是那么熟悉,不用慌张,对于万能的python而言,只要有需求,总有人提供程序库,github上就有一个imgaug的python库,下面展示一些图像扩充的样例:

通过数据扩充,我们可以将原来的数据集规模扩大64倍。

这个imgaug库,功能相当强大,文档也还算比较全。如果你觉得引入第三方库太麻烦,也可以考虑keras提供的数据扩充API。

keras图像扩充API

与Keras的其他部分一样,图像增强API简单而强大。

Keras提供了ImageDataGenerator类,提供如下功能:

  • 样本标准化
  • 功能标准化
  • ZCA增白
  • 随机旋转,移位,剪切和翻转。
  • 尺寸重组
  • 将增强的图像保存到磁盘。

以下代码创建ImageDataGenerator

代码语言:javascript
复制
datagen = ImageDataGenerator()

API不是在内存中对整个图像数据集执行操作,而是训练模型的迭代过程中实时创建增强的图像数据,这可以减少内存开销,但会增加一些额外的训练时间成本。

创建并配置ImageDataGenerator后,必须将其应用到数据集上,这将计算实际执行图像数据转换所需的信息,该操作通过调用数据生成器上的fit()函数并将其传递给训练数据集来完成。

代码语言:javascript
复制
datagen.fit(train)

数据生成器本身实际上是一个迭代器,在请求时返回批量的图像样本。我们可以通过调用flow()函数来配置批量大小并获取批量图像。

代码语言:javascript
复制
X_batch, y_batch = datagen.flow(train, train, batch_size=32)

最后,我们可以使用数据生成器,必须调用fit_generator()函数并传入数据生成器和每个轮次的样本数以及要训练的轮次总数,而不是在我们的模型上调用fit()函数。

代码语言:javascript
复制
fit_generator(datagen, samples_per_epoch=len(train), epochs=100)

更多关于keras图像扩充API的信息,还请参考官方文档:https://keras.io/preprocessing/image/。

参考
  1. 百面机器学习 - 算法工程师带你去面试,诸葛越主编,人民邮电出版社
  2. https://keras.io/preprocessing/image/
  3. https://github.com/aleju/imgaug
  4. https://machinelearningmastery.com/image-augmentation-deep-learning-keras/
往期回顾

提高模型性能,你可以尝试这几招…

百度推出EZDL,编程小白也可训练AI

EZDL到底怎样,试试看…

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云水木石 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • keras图像扩充API
  • 参考
  • 往期回顾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档