我目前正在尝试开发一个程序,通过橙子的外观来区分腐烂的橙子和可食用的橙子。为此,我计划使用卷积神经网络来训练识别腐烂的橙子和正常的橙子。经过一番搜索,我只找到一个包含大约150个腐烂橙子和150个正常橙子的数据库,这些橙子是在黑色背景下拍摄的(http://www.cofilab.com/downloads/)。显然,机器学习模型需要至少几千个橙子才能达到90%以上的准确率。然而,我可以以某种方式修改这些150个橙子来生成更多的橙子照片吗?这里的“修改”是指在柑橘果实上添加不同深浅的橙色,以制造出“不同的橙子”。这种方法能有效地训练神经网络吗?
回答:
这是一个增加数据量的好方法。你具体要怎么做取决于你的数据。例如,如果你是在用传感器获取的数据进行训练,你可能需要在训练数据中加入一些噪声,这样可以扩充你的数据集。毕竟,你可以预期传感器在后续使用中会产生一些噪声。
假设你将使用图像进行训练,这里有一个非常好的GitHub仓库,提供了使用这些技术的方法。这个Python库可以帮助你在机器学习项目中增强图像。它将一组输入图像转换为一组新的、数量大得多的略有改动的图像。链接:https://github.com/aleju/imgaug
功能:
-
提供大多数标准的增强技术。
-
这些技术可以应用于图像以及图像上的关键点/地标。在实验开始时定义你的增强序列,然后可以多次应用它。
-
为每种增强定义灵活的随机范围,例如“将每张图像旋转-45到45度之间的值”或“将每张图像旋转从正态分布N(0, 5.0)中采样的值”。
-
轻松将所有随机范围转换为确定性值,以完全相同的方式增强不同批次的图像(例如图像及其热图)。