改变训练的图像来训练神经网络

时间:2017-01-13 00:04:29

标签: machine-learning computer-vision neural-network conv-neural-network training-data

我目前正在尝试制作一个程序,仅根据其外观区分腐烂的橙子和可食用的橙子。为此,我计划使用卷积神经网络训练腐烂的橙子和普通的橙子。经过一番搜索,我只能找到一个约数据库。黑色背景上的150个烂橙子和150个普通橙子(http://www.cofilab.com/downloads/)。显然,机器学习模型至少需要几千个橙子才能达到90%左右的精度。但是,我可以用某种方式改变这150种橙子来制作更多的橙子照片吗?通过改变,我的意思是在柑橘类水果上加入不同浓度的橙色,制成一种不同的橙色。"这是训练神经网络的有效方法吗?

4 个答案:

答案 0 :(得分:9)

这是增加日期数量的好方法。你要做什么取决于你的数据。例如,如果您正在训练从传感器获得的数据,您可能需要在训练数据中添加一些噪音,以便增加数据集。毕竟,您可以预期传感器会产生一些噪音。

假设您将在图像上训练它,这里有一个非常好的github存储库,它提供了使用这些技术的方法。这个python库可以帮助您为机器学习项目扩充图像。它将一组输入图像转换为一组新的,更大的略微改变的图像。 链接:https://github.com/aleju/imgaug

特点:

  • 大多数标准增强技术可用。

  • 技术可以应用于图像和关键点/地标 图片。在开始时定义一次增强序列 实验,然后多次应用。

  • 为每次增强定义灵活的随机范围,例如: “旋转 每个图像的值在-45到45度之间“或”每个旋转 图像是从正态分布N(0,5.0)“。

  • 中采样的值
  • 轻松将所有随机范围转换为确定性值 以完全相同的方式增加不同批次的图像 (例如图像及其热图)。

enter image description here

答案 1 :(得分:3)

您正在寻找数据扩充。在你的情况下,你可以做不同的事情:

  1. 应用过滤器以获得稍微不同的图像,正如所说的那样,您可以使用高斯模糊。

  2. 将橙色切成不同的背景。

  3. 使用不同比例因子缩放橙色。

  4. 旋转图像。

  5. 制作合成烂橘子。

  6. 混合前面提到的所有不同组合。通过这种增强,您可以轻松创建数千种不同的橙子。

  7. 我用12.000个图像的数据集做了类似的事情,我可以创建630.000个样本

答案 2 :(得分:2)

这确实是增加数据集的好方法。例如,您可以对图像应用高斯模糊。它们会变得模糊,但与原版不同。您也可以反转图像。或者,在最后一种情况下,寻找新的图像并应用引用的技术。

答案 3 :(得分:0)

数据增加是提升训练集的真正好方法,但仍然不足以自行训练深度网络,因为它可能会过度拟合。您应该查看域适应,其中您采用初始模型(如初始模型),该模型在imagenet数据集上进行训练并针对您的问题进行微调。由于您只需要学习对用例进行分类所需的参数,因此可以通过相对较少的可用训练数据获得良好的精度。我用这种技术here主持了一个分类演示。尝试使用您的数据集,看看它是否有帮助。该演示负责预先训练的模型以及要上传的数据集的数据增强。