2

语境:

我有来自 Kinect 的 RGB-D 视频,它直接对准桌子。有一个包含大约 12 个对象的库,我需要一次识别一个或多个对象。我一直在从 RGB 图像中提取和检测 SURF,在应用 SURF 之前通过缩小到 320x240、灰度、拉伸对比度和平衡直方图进行预处理。我构建了一个套索工具,用于在视频图像静止图像中检测到的关键点中进行选择。然后这些关键点用于构建对象描述符,用于识别实时视频馈送中的对象。

问题:

SURF 示例显示成功识别具有大量类似文本的特征细节的对象,例如。标志和图案。我需要识别的对象相对简单,但具有独特的几何形状。在我的剧照中发现的 SURF 特征有时是一致的,但大多是不重要的表面特征。例如,假设我有一个木制立方体。SURF 在一张面上检测到一些颗粒,然后在其他面上失败。我需要检测(类似的东西)有四个等距和直角的角。我的所有物品都没有太多图案,但都有独特的对称几何形状和颜色。想想手机、棒棒糖、刀、保龄球。我的想法是,我可以为对象的每个显着不同的方向构建对象描述符,例如。保龄球瓶的两个描述符:一个站着,一个躺着。对于手机,一个放在前面,一个放在后面。我的识别器需要旋转不变性和一定程度的尺度不变性,以防对象堆叠。处理一些遮挡的能力是可取的(SURF 表现得足够好),但不是最重要的特征。倾斜不变性会更可取,并且 SURF 可以很好地处理我的对象的纸质打印输出。

问题:

我是否使用错误的 SURF 参数来查找错误比例的特征?这种物体识别有更好的算法吗?有没有像 SURF 一样容易使用的东西,它使用来自 Kinect 的深度数据以及或代替 RGB 数据?

4

1 回答 1

2

我正在为一个项目做类似的事情,最终使用了一种超级简单的对象识别方法,即使用 OpenCV blob 检测,并根据对象的区域识别对象。显然,这种方法需要有足够的方差才能起作用。

你可以在这里看到我的结果:http: //portfolio.jackkalish.com/Secondhand-Stories

我知道还有其他方法,一种可能的解决方案可能是 approxPolyDP,如下所述: 如何使用 OpenCV 检测简单的几何形状

很想听听你在这方面的进展!

于 2014-02-06T02:46:12.827 回答