【发布时间】:2016-05-20 19:50:05
【问题描述】:
这是我的第一个图像处理应用程序,所以请善待这个肮脏的农民。
应用程序:
我想实现一个快速应用程序(性能至关重要甚至超过准确性),其中给定包含电影海报的照片(由手机拍摄)在给定数据集中找到最相似的照片并返回相似度得分。数据集由相似的图片组成(手机拍摄,包含电影海报)。图像可以有不同的大小、分辨率,并且可以从不同的视点拍摄(但没有旋转,因为海报应该总是向右)。
任何关于如何实施此类应用程序的建议都被广泛接受。
OPENCV 中的功能描述:
我从未使用过 OpenCV,我读过 OpenCV 的 this tutorial about Feature Detection and Description。
据我了解,这些算法应该找到关键点(通常是角)并最终定义描述符(描述每个关键点并用于匹配两个不同的图像)。我使用“最终”,因为其中一些(例如 FAST)仅提供关键点。
最相似的图像问题和 LSH:
上述问题并没有解决“给定图像,如何快速找到数据集中最相似的图像”的问题。为了做到这一点,我们都可以使用任何先前算法获得的关键点和描述符。上面提到的问题似乎是nearest neighbor problem 和Locality Sensitive Hashing 是一种快速且流行的解决方案,可以在高维空间中找到该问题的近似解决方案。
问题:
我不明白的是如何在 LSH 中使用任何先前算法的结果(即关键点和描述符)。
有解决这个问题的方法吗?
【问题讨论】:
标签: c++ opencv image-processing nearest-neighbor locality-sensitive-hash