按轮廓与特征识别对象

时间:2014-01-13 16:22:58

标签: opencv kinect openframeworks object-recognition

上下文

我有来自Kinect的RGB-D视频,它直接瞄准桌子。我需要识别一个大约12个对象的库,一次一个或多个。我一直在使用RGB图像中的SURF提取和检测,通过缩小到320x240进行预处理,灰度,拉伸对比度并平衡直方图,然后再应用SURF。我构建a lasso tool以在视频图像的静止中选择检测到的关键点。然后,这些关键点用于构建对象描述符,用于标识实时视频源中的对象。

问题:

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

问题:

我是否使用错误的SURF参数来查找错误比例的功能?这种对象识别有更好的算法吗?有没有像SURF一样可以使用Kinect的深度数据和RGB数据一起使用的东西?

1 个答案:

答案 0 :(得分:2)

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

您可以在此处查看我的结果:http://portfolio.jackkalish.com/Secondhand-Stories

我知道还有其他方法,一个可能的解决方案可能是aboutPolyDP,这里描述: How to detect simple geometric shapes using OpenCV

很想知道你在这方面取得的进展!