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

Ger*_*rza 5 opencv surf neural-network

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

\n\n

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

\n\n

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

\n\n

我应该使用 \xc2\xbf64 吗?每个 SURF 点的值作为 ANN 的输入,以及每个(例如 5 个乘积)作为输出?这意味着一个对象内的所有点(不相似)将产生相同的输出。

\n\n

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

\n\n

抱歉,如果我没有解释得很好,如果有些事情不够清楚,我会尽力澄清。

\n

cyb*_*ker 3

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

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

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