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


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


34
2018-01-13 00:04


起源




答案:


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

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

特征:

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

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

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

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

enter image description here


8
2018-01-14 21:11





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

  1. 应用滤镜可以获得略微不同的图像,正如所说,您可以使用高斯模糊。

  2. 切橙子,把它放在不同的背景。

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

  4. 旋转图像。

  5. 制造合成烂橘子。

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

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


3
2018-01-13 01:32





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


2
2018-01-13 00:23





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


0
2018-01-19 05:32