我想将一张图片(带有他的描述符)与数据库中的数千张图片进行比较,以便进行匹配。 (如果两张图片是一样的,也就是说是同一件事,但是可以旋转,有点模糊,比例不同等)。
例如:
我在 StackOverflaw 上看到,为每张图片计算描述符并将它们一一比较是一个非常漫长的过程。 我做了一些研究,发现我可以做一个基于词袋的算法。
我还不知 Prop 体是如何工作的,但看起来不错。但是仔细想想,我可能会误会,它只是检测它不是什么样的物体?
根据您的说法,我想知道使用它是否是一个很好的解决方案,可以使用 Sift 等描述符将一张图片与数千张图片进行比较。冲浪?
如果是,您对我如何做到这一点有什么建议吗?
谢谢
最佳答案
是的,这是可能的。您唯一需要注意的是计算要求,这可能有点让人不知所措。如果您可以缩小搜索范围,通常会有所帮助。
为了支持我的回答,我将从我们最近的工作中提取一些例子。我们旨在使用 SIFT + RANSAC 匹配识别博物馆墙上的一幅画。我们有一个包含博物馆中所有画作的数据库,以及每幅画的 SIFT 描述符。我们的目标是识别可以从不同视角(所有模板都是正面的)或在不同光照条件下录制的视频中的疼痛。这张图片应该给你一个想法:在左边你可以看到模板和当前框架。第二张图是SIFT匹配,第三张图是RANSAC后的结果。
一旦您的图像与数据库中的每个 SIFT 描述符匹配,您就可以计算重投影误差,即匹配点(在 RANSAC 之后)与关键点总数之间的比率。可以对每个图像重复此操作,并且可以将具有最低重投影误差的图像声明为匹配项。
我们将它用于绘画,但我认为它可以推广到每一种图像(我认为你在问题中发布的 android Logo 是一个很好的例子)。
希望这对您有所帮助!
关于C++ - 使用 Bag of Words 将图片匹配在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24650243/