34

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

回答

7

这是提高你约会的数量非常好的方式。你会做什么取决于你的数据。例如,如果您正在对从传感器获取的数据进行培训,则可能需要向培训数据添加一些噪音,以便增加数据集。毕竟,您可以预期稍后传感器会产生一些噪音。

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

特点:

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

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

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

  • 轻松所有随机范围转换为确定性值,以增大 图像的不同批次中完全相同方式 (例如图像和它们的热图)。

enter image description here

2

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

3

数据增强是你正在寻找。在你的情况下,你可以做不同的事情:

  1. 应用过滤器来获得稍微不同的图像,如上所述,你可以使用高斯模糊。

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

  3. 用不同比例因子来缩放桔子。

  4. 旋转图像。

  5. 制造合成烂桔子。

  6. 混合前面提到的所有不同组合。借助这种增强功能,您可以轻松创建数千种不同的桔子。

我不喜欢的东西,与12.000图像的数据集,我能创造630.000样品

0

数据隆胸是真的,但还是不错的方法来提高训练集不足以培养出深层网络的端到端自身因为它会过度拟合的可能性。您应该查看域调整,您可以使用像imagenet数据集一样训练的预训练模型,并根据您的问题对其进行微调。由于您只需要学习用于分类用例的参数,因此可以通过相对较少的培训数据获得较高的准确度。我用这种技术举办了分类演示here。试试看你的数据集,看看它是否有帮助。该演示会照顾预训练模型以及您将上传的数据集的数据增强。