2011-11-09 42 views
6

我想要获取用相机拍摄的图像中某个对象的位置。在这种情况下,模板匹配不会执行,因为我需要一个比例/旋转不变的解决方案。使用关键点计算对象的相似度

所以我现在使用的从OpenCV的快速算法来检测我的形象,这似乎是工作好关键点。

但接下来呢?我有我想要检测的对象的“模板图像”。我可以想象,我也必须检测此模板图像的关键点,然后将它与相机拍摄的图像进行比较。这是我接下来要做的,如果是这样,我可以使用哪些功能? (我使用的OpenCV)

还是有这样做的另一种方式?

那么我怎样才能使用关键点来检测我的形象有一定的对象?

+1

你可以看看这个页面的最后3个教程,也许他们可以使用你:http://opencv.itseez.com/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html – Adrian

+0

@AdrianPopovici谢谢,我试过“Features2D + Homography找到一个已知的物体”,它的效果非常好。缺点是它的速度极慢。但那可能是因为我在iphone上。我会试试最后一个,看看是否更快。无论如何,谢谢你指出我正确的方向! – w00

回答

6

您正在使用FAST用于检测关键点,这没关系。

现在,下一个步骤是使用描述Extractator。什么是描述符提取器?是一种生成关键点描述的算法,该关键点使得该关键点可通过匹配器识别。着名的描述符是SIFT,FREAK ...

在模板图像和查询图像中找到描述符后,您将需要一个匹配器。匹配器会告诉你哪些描述符是相同的。

注意,SIFT需要基于欧几里德距离的匹配器(FLANN),但FREAK或其他二进制描述符需要基于汉明距离匹配。

1

尝试ORB功能来代替。它们被设计得更快。
另外,请看CARD descriptors

+0

我试图实现ORB方法,但每次尝试时都会崩溃。当我尝试做一场比赛时,它不断崩溃。 - 暴力方法:http://pastebin.com/BvnFQgcY --- flannBased:http://pastebin.com/1RrCv0QL - 任何想法可能是什么问题? – w00