确定图像是否包含数据库中的任何图像(对象)

时间:2015-02-17 09:42:46

标签: c# image-processing object-detection

尽管谷歌搜索量相当大,但唯一出现在神经网络上并利用现有API查找图像标签和网络摄像头跟踪的内容。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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

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

无论哪种方式,解决此类问题最常用的方法之一是 Bag-of-Words 模型(也称为特色包)。我希望我能提供更多帮助,但为此我需要你更好地解释它,这是你工作/项目的最终目标。