手动创建用于机器学习植物类型分类和叶子分割的植物图像数据集

数据挖掘 深度学习 分类 数据集 计算机视觉
2022-02-10 21:47:13

我与之合作的一个小组想要创建自己的植物数据集,该数据集将用于多个项目,例如植物类型分类和初学者的叶子分割。
他们愿意提供创建此数据集所需的所有手段。一家合作农业公司愿意协助种植任何需要的东西,并X根据要求在每个持续时间内有人监控和捕捉图像。也需要不同的生长阶段。

我被要求写下如何获取图像的要求,但我自己不太确定。对于此类任务,应该了解哪些关键点?是否有任何已知的指南或教程可用于创建数据集?

请注意,目前对于此任务,每张图像中只会捕获 1 株植物,因为用于标记和分割图像的非学习方法仅支持每张图像 1 株植物。

我在想,根据特定植物完全生长所需的时间(大约是已知的),N应该每天拍摄X覆盖植物 360° 的图像。此外,要从不同的角度和距离捕获图像。

有些问题我想到了,我似乎还不能回答,

  • 图片数量越多越好,只要有差异?
  • 图像中(单个)植物的位置如何?它是至关重要的,还是可以在获取数据集后对其进行扩充?
  • 相机分辨率怎么样?任何像样的相机足以胜任这项任务还是应该是高端的?

我仍在研究还有哪些其他考虑因素,并希望能提供有关这方面的任何信息

2个回答

好吧,这一切都取决于你打算用这个数据集完成什么:

  • 如果您打算使用无人机在野外识别农作物,那么您应该使用无人机拍摄图像并在野外获取图像。(在野外我的意思是一个不同于实验室或类似环境的自由环境)

  • 如果您计划使用固定摄像机在受限环境中监控工厂,那么您应该在这种情况下收集图像。

正如 Rajat 指出的那样,您选择的相机需要能够捕捉识别所需的所有特征,也许机器学习方法可以识别出特征比人眼少得多的植物,但也许不能。无论哪种方式,您都应该咨询具有植物专业知识的人来决定您将使用哪种方法。

数字不会伤害:

好吧,他们可以给你一些额外的工作,但越多越好。您需要记住的一件事是,数据集必须具有足够的代表性,以使学习方法能够在现实世界中发挥作用。例如,如果计划训练一种算法来对来自上方的图像进行分类,则没有理由使用来自植物下方的图像来训练它。

如果您计划使用深度学习(即您有时间和资源来训练它),您应该收集大量图像或找到一种方法来通过有意义的转换来增强它们。一种方法是使用来自计算机渲染的模拟图像(例如在 UnityEyes 中使用),并可能使用 GAN 将其增强为更逼真。

简而言之,我的建议是正式确定你想要这个数据集的用途,考虑你可以保证对测试环境的哪些限制,这应该会给你一个创建训练数据集所需的列表。

是的,在深度学习(图像分类)中,越多越好,有几种方法可以做到这一点。如果您有足够的劳动力来完成此任务,您提到的每 X 天拍摄 N 张图像的方法是可以的。另一种方法是使用图像增强人为地炸毁您的数据集。这种增强将包括旋转植物、裁剪、模糊、缩放等等。有几个库可用于执行此任务,您可以多次增加数据集的大小。

图像内植物的位置很重要。如果图片中没有任何重要的东西,那么模型就不会从中获得任何好处。增强无用的图像将创建更多无用的图像。植物不需要位于图片的中心,但图片应该包含一些重要的东西,即有助于对该植物进行分类的特征。

只要分类不需要叶子或边缘上的图案等特征,任何体面的相机都足以完成这项任务。现在任何像样的现代相机都足以捕捉这些精细的细节。