【问题标题】:Identify if an image contains any image (object) from a database识别图像是否包含数据库中的任何图像(对象)
【发布时间】:2015-02-19 02:31:59
【问题描述】:

尽管在谷歌上搜索了相当多的内容,但唯一出现在神经网络和使用现有 API 查找图像标签以及网络摄像头跟踪方面的东西。

我想做的是为一些对象创建我自己的数据集(一个包含产品图像(或每个图像的指纹)的数据库,以及有关产品的制造商信息),然后使用一些组合机器学习和对象检测,以查找给定图像是否包含我收集的数据中的任何产品。

例如,我想拍一张椅子的照片并将其与一些数据进行比较,以从我的数据库中的椅子中找出哪张椅子最有可能出现在照片中。

解决这个问题的方法是什么?我已经考虑过使用 OpenCV,并认为这是一个起点,可能我将如何检测对象,但我还没有找到如何使用它来解决我的问题。

【问题讨论】:

  • 您所说的是非常广泛的对象检测和识别领域。首先进行特征匹配和检测......众所周知,SIFT 和 SURF 可以提供良好的结果。一旦你拥有了这些功能,接下来就会使用某种机器学习。查看这篇文章开始:stackoverflow.com/questions/4658390/…

标签: c# image-processing object-detection


【解决方案1】:

我认为最终使用什么工具来解决问题并不重要。你可能需要某种机器学习。很难说哪种方法会导致最好的检测,为此我建议使用像weka 这样的工具。它是多种机器学习算法的集合,可让您轻松尝试最适合您的算法。

在开始尝试机器学习之前,您首先需要从数据集中提取一些特征。由于您几乎无法逐像素比较图像,这将导致巨大的计算工作量,甚至不一定提供所需的结果。尝试提取使您的图像独一无二的特征,例如平均颜色或亮度,也许尝试从图像中提取一些形状或大小。因此,最终您将只使用从图像中提取的特征而不是图像本身来提供算法。

很难定义哪些好的功能,这取决于您的特殊情况。通常,它不仅有一个,而且有多个覆盖图像完全不同方面的特征。要提取特征,您可以使用 openCV 或您喜欢的任何其他图像处理工具。获取数据集中所有图像的特征并开始使用机器学习。

【讨论】:

    【解决方案2】:

    据我了解,您想构建一个基于内容的图像检索系统。 有很多方法可以做到这一点。定义解决问题的最佳方法与什么有关:

    • 您要识别的对象类型,
    • 用于搜索对象的图像类型,
    • 系统的优先级(效率、稳健性等)。

    你举了一个识别椅子的例子。在您的系统中,哪个是选择最相似椅子的决定因素?椅子的颜色?椅子的形状?这些是您在选择方法之前必须回答的典型问题。

    无论哪种方式,解决此类问题最常用的方法之一是 词袋 模型(也称为特征袋)。我希望我能提供更多帮助,但为此我需要您更好地解释哪些是您工作/项目的最终目标。

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2019-08-13
      • 2010-10-02
      • 2018-11-19
      • 2017-12-14
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多