使用SURF描述符来检测对象的多个实例。 (在OpenCV中)

时间:2013-06-28 04:29:29

标签: opencv neural-network surf

我在OpenCV中编写程序,该程序应该检测场景中的对象,即超市中的产品。

我打算为此目的使用SURF描述符,但是到目前为止我发现的所有内容都与在场景中找到一个对象(通常是最近邻居匹配)有关,而我发现对于检测对象一无所知在具有同一对象的多个实例的场景中(NN显然不起作用,因为每个点的最佳匹配可能在不同的实例中)。

我还需要使用像人工神经网络这样的分类器,它可能更有助于查找对象的多个实例,但我不明白如何使用关键点的ANN(或任何其他分类器)。 / p>

我应该使用¿64吗?每个SURF点的值作为ANN的输入,并且每个产品,例如5个产品,作为输出?意味着一个对象内的所有点(不相似)都会产生相同的输出。

我已经知道这是要走的路,但我不知道它是如何工作的,因为一个对象中的所有关键点可能(并且应该)具有不同的特征。但我想不出任何其他办法。

很抱歉,如果我没有很好地解释,我会尽量澄清一些事情是否不够清楚。

1 个答案:

答案 0 :(得分:3)

我有类似的问题。我所做的是以下内容:

  • 使用滑动窗口。在整个图像中扫描各种尺寸的ROI。 ROI的大小应该大于预期对象的大小。
  • 对于每个补丁,检测功能并进行匹配。如果检测到对象,请在主图像中将区域设置为零。
  • 转到下一个补丁并重复。

但是对于SURF来说它可能有点慢(如果你有很多ROI要扫描),所以我使用了FAST特征检测器和BRISK描述符来加速这个过程。它运作良好。