4

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

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

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

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

我读过这就是要走的路,但我看不出它是如何工作的,因为一个对象中的所有关键点可能(并且应该)具有不同的特征。但我想不出任何其他方法来做到这一点。

抱歉,如果我没有很好地解释它,如果有什么不够清楚,我会尽力澄清。

4

1 回答 1

3

我有一个类似的问题。我所做的如下:

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

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

于 2013-06-28T20:15:20.623 回答