【问题标题】:Data augmentation for Deep learning深度学习的数据增强
【发布时间】:2017-10-20 23:46:46
【问题描述】:

我正在使用 CNN 进行杂草检测。我目前有 2 节课,每节课有 18 张图片。我可以应用数据增强方法来增加数据集以使用 CNN 吗?多少数据就足够了?

另外,我可以将哪些方法与 CNN 进行比较,以显示 CNN 比其他方法更好的性能?

【问题讨论】:

  • 我认为你应该使用其他方法,而不是用这么小的数据集尝试 CNN,你只会陷入过度拟合你的数据而没有其他验证准确率低的问题。我建议您为此尝试使用 haar 和级联方法,您可以在其中提取特征并输入分类器。 Haar 和 cascades 是可靠的方法,具有相当的准确性。希望这会有所帮助!
  • 最好上传一些图片。无论如何,您将牢记图像的亮度或其他变化。

标签: neural-network computer-vision deep-learning conv-neural-network


【解决方案1】:

如果您想直接使用深度学习,通常您计划按班级 (http://www.deeplearningbook.org/) 拥有 5.000 张图像。您可以通过使用微调(中等样本数 ~1000)或迁移学习(低样本数 ~100)来减少这个数字。这些是使用增强之前的数字。

当然,您可以使用扩充来增加数据集的有效大小,但这与拥有至少 100 张图像不同。深度学习是数据密集型的,因此不太适合 18 张图像。

其他方法大多是手工制作的。你可以做一些像猪特征一样的事情,并使用任何类型的其他 ML 技术作为分类,如 SVM/Boosting/Bagging/等。

【讨论】:

  • 好吧,关于数据集,我理解的是至少有 100-200 张图像,然后应用数据增强。但在他之前的评论中,他提到与 CNN 相比,with hog 是在进行投注……这可能吗?
  • 如果你只有 18 个图像 hog 和 svm 可能会获得更好的性能。我之前确实在神经网络中使用了 hog 特征,在 10 个类的 40.000 个训练示例上,我得到了大约 45% 的准确率,而不是当前深度学习模型的 90% 以上。现在,如果我只使用 100 个左右的训练样例,准确率可能只有 30% 左右。
  • 不,它已应用于每个类别中 14000 张图像的增强数据..
  • 我无法证明 CNN 比传统方法更好,这就是为什么我使用了一个我自己的实验示例,我尝试将它们相互比较,结果 CNN 工作得更好。
  • HoG 和 Svm 在处理少量(不那么多样化)的数据时效果更好是否正确?
【解决方案2】:
  • 只有 18 张图像,CNN 可以很好地工作,但不会取得出色的效果
  • 对于 18 张图像,CNN 可能会过度拟合训练数据,因此您将使用哪种 CNN 模型可能会很棘手
  • 我建议使用 HOG+SVM 来解决这个问题,它们的性能会非常好
  • 但是,如果您确实使用了数据增强,那么您的 CNN 将取得出色的结果
  • 您可以使用keras.preprocessing.image.ImageDataGenerator 为您生成数据。您只需指定要生成多少张图片
  • 您还可以翻转 18 张图像并旋转图像并自行翻译图像以增强数据
  • 如需更复杂的图像增强,您可以参考此link

【讨论】:

    猜你喜欢
    • 2021-01-30
    • 2020-07-22
    • 2018-11-05
    • 2020-06-30
    • 2017-05-06
    • 2021-05-05
    • 2022-01-17
    • 2016-10-24
    • 2019-10-20
    相关资源
    最近更新 更多