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

栏目: 编程工具 · 发布时间: 6年前

内容简介:在也不完全是。我们知道,这个时候,

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

datagen = ImageDataGenerator()

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

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

datagen.fit(train)

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

X_batch, y_batch = datagen.flow(train, train, batch_size=32)

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

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到底怎样,试试看…

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

expert one-on-one J2EE Development without EJB 中文版

expert one-on-one J2EE Development without EJB 中文版

[美] Rod Johnson、Juergen Hoeller / JavaEye / 电子工业出版社 / 2005-9 / 59.80元

乍一看这本书的名字,Expert one on one J2EE development without EJB并没有给人带来太冲击。毕竟关于J2EE的书太多了,而without EJB看上去有点象是故意挑衅EJB的感觉。一本J2EE的书怎么可能会给人带来信念或思维的冲击呢?但是它做到了,它不仅使自己变成了不朽的经典,也使Rod Johnson成为了我最近一年的新偶像。           ......一起来看看 《expert one-on-one J2EE Development without EJB 中文版》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具