【问题标题】:Using machine learning to detect images based on single learning image基于单一学习图像使用机器学习检测图像
【发布时间】:2019-06-22 01:31:12
【问题描述】:

我有一个用例,我有 300 个不同项目中的大约 300 个图像。我需要机器学习来检测一个项目大约每分钟一次。

我一直在使用 Keras 和 Sequential 来检测图像,但我想知道当我有 300 个标签并且每个标签只有一张图像用于学习时,我应该考虑什么。

简而言之:

1) 你能用每个标签一张学习图像进行机器学习图像检测吗?

2) 有什么特别需要考虑的吗?

【问题讨论】:

  • 1) 不可能
  • @Primusa 当然是可能,但它可能很难且无效。 :)
  • 不适用于我们当前的型号。任何机器学习都无法根据训练数据的单个图像正确学习识别任何事物。

标签: python machine-learning keras artificial-intelligence sequential


【解决方案1】:

如果这是一种特殊情况——例如,100 个班级中的一个班级由一张训练图像表示——那么你可能会侥幸成功。但是,每个班级都有一个独特的图像是自找麻烦。

神经网络通过迭代校正进行学习,找出哪些特征和组合在区分类别时是重要的,哪些不重要。训练从一个与研究有一些相似之处的混乱过程开始:查看可用数据,形成假设,然后针对现实世界进行测试。

在 NN 中,“假设”是它开发的各种内核。每个内核都是一种模式,用于识别对辨别过程很重要的东西。如果您缺少足够的示例让模型对每个类别进行概括和区分,那么您就有可能(实际上,您有可能)模型得出对一个输入图像有效但对同一输入图像无效的结论类。

例如,我的一位熟人使用他自己的照片制作了典型的猫或狗模型,展示了他自己家中的宠物和几个朋友的宠物。该模型训练得很好,在测试数据上以 100% 的准确率识别了猫和狗,并且他将其用于工作......

...失败的地方,准确率约为 65%(随机猜测为 50%)。他做了一些分析,发现了问题:他的朋友有室内猫,但他们喜欢的狗照片是户外的。很简单,该模型学会了识别不是猫与狗,而是沙发和厨柜与户外植物。主要过滤器之一是大的、有纹理的、绿色的区域。是的,狗是一种大型的、有纹理的、绿色的生物。 :-)


一次性训练有效的唯一方法是,如果您的每张训练图像都经过专门设计,恰好包含了将此类与其他 299 个类别区分开来的那些特征,并且不 其他视觉信息。不幸的是,要确定这些特征可能是什么,并提供规范的训练照片,您必须提前知道模型需要选择哪些模式。

这完全违背了深度学习和模型训练的用例。

【讨论】:

    【解决方案2】:

    如果您只在该图像上训练一次,它可能还无法检测到它。如果你对它进行更多训练,它可能会过度拟合并且只能识别一张图像。如果那是你想要做的,那么你应该制定一个算法来搜索屏幕上的图像(它会更有效)。

    【讨论】:

      【解决方案3】:

      1) 由于缺乏训练集,您的模型泛化可能会遇到问题。换句话说,您的模型不会“学习”该类。

      2) 最好有更好的训练集以创建更好的模型。

      【讨论】:

        猜你喜欢
        • 2013-02-04
        • 1970-01-01
        • 2015-08-31
        • 2019-05-06
        • 2017-07-20
        • 2021-12-06
        • 2017-09-04
        • 2017-03-26
        • 2021-05-12
        相关资源
        最近更新 更多