SURF 指标
我正在寻找 SURF 的可用指标。就像一幅图像与另一幅图像在比例上的匹配程度,让我们说 0 到 1,其中 0 表示没有相似性,1 表示相同的图像。
SURF 提供以下数据:
- 查询图像中的兴趣点(及其描述符)(设置Q)
- 使用最近邻算法对的目标图像(集合 T)中的兴趣点(及其描述符)
- 可以从上面的两个集合中创建
我到目前为止正在尝试一些东西,但似乎没有什么效果太好:
度量使用不同集合的大小:d = N / min(size(Q), size(T)) 其中 N 是匹配的兴趣点的数量。对于非常相似的图像,这给出了相当低的评级,例如 0.32,即使从 Q 中的大约 600 个兴趣点和 T 中的 200 个兴趣点匹配了 70 个兴趣点。我认为 70 是一个非常好的结果。我正在考虑使用一些对数缩放,因此只有非常低的数字才会得到较低的结果,但似乎找不到正确的方程。使用 d = log(9*d0+1) 时,我得到的结果是 0.59,这相当不错,但它仍然破坏了 SURF 的威力。
使用对内距离的度量:我做了一些事情,比如找到 K 个最佳匹配并添加它们的距离。距离越小,两幅图像越相似。这样做的问题是,我不知道兴趣点描述符元素的最大值和最小值是多少,从中计算距离,因此我只能相对地找到结果(从许多输入中这是最好的)。正如我所说,我想将指标精确地置于 0 和 1 之间。我需要这个来将 SURF 与其他图像指标进行比较。
这两者最大的问题是排除对方。一个不考虑比赛的数量,另一个不考虑比赛之间的距离。我迷路了。
编辑:对于第一个,log(x*10^k)/k 等式(其中 k 为 3 或 4)在大多数情况下给出了不错的结果,最小值不好,它可以在某些极少数情况下,使 d 大于 1,否则会返回较小的结果。
I'm searching for a usable metric for SURF. Like how good one image matches another on a scale let's say 0 to 1, where 0 means no similarities and 1 means the same image.
SURF provides the following data:
- interest points (and their descriptors) in query image (set Q)
- interest points (and their descriptors) in target image (set T)
- using nearest neighbor algorithm pairs can be created from the two sets from above
I was trying something so far but nothing seemed to work too well:
metric using the size of the different sets: d = N / min(size(Q), size(T)) where N is the number of matched interest points. This gives for pretty similar images pretty low rating, e.g. 0.32 even when 70 interest points were matched from about 600 in Q and 200 in T. I think 70 is a really good result. I was thinking about using some logarithmic scaling so only really low numbers would get low results, but can't seem to find the right equation. With
d = log(9*d0+1)
I get a result of 0.59 which is pretty good but still, it kind of destroys the power of SURF.metric using the distances within pairs: I did something like find the K best match and add their distances. The smallest the distance the similar the two images are. The problem with this is that I don't know what are the maximum and minimum values for an interest point descriptor element, from which the distant is calculated, thus I can only relatively find the result (from many inputs which is the best). As I said I would like to put the metric to exactly between 0 and 1. I need this to compare SURF to other image metrics.
The biggest problem with these two are that exclude the other. One does not take in account the number of matches the other the distance between matches. I'm lost.
EDIT: For the first one, an equation of log(x*10^k)/k where k is 3 or 4 gives a nice result most of the time, the min is not good, it can make the d bigger then 1 in some rare cases, without it small result are back.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以轻松创建一个指标,该指标是两个指标的加权和。使用机器学习技术来学习适当的权重。
您所描述的内容与基于内容的图像检索领域密切相关,这是一个非常丰富且多样化的领域。谷歌搜索会给你带来很多点击。虽然 SURF 是一种优秀的通用中低级特征检测器,但它还远远不够。 SURF 和 SIFT(SURF 的来源)非常适合重复或接近重复的检测,但在捕获感知相似性方面却不太擅长。
性能最佳的 CBIR 系统通常利用通过某些训练集优化组合的功能集合。一些值得尝试的有趣检测器包括 GIST(快速且廉价的检测器,最适合用于检测人造环境与自然环境)和对象库(基于直方图的检测器本身由数百个物体检测器输出)。
You can easily create a metric that is the weighted sum of both metrics. Use machine learning techniques to learn the appropriate weights.
What you're describing is related closely to the field of Content-Based Image Retrieval which is a very rich and diverse field. Googling that will get you lots of hits. While SURF is an excellent general purpose low-mid level feature detector, it is far from sufficient. SURF and SIFT (what SURF was derived from), is great at duplicate or near-duplicate detection but is not that great at capturing perceptual similarity.
The best performing CBIR systems usually utilize an ensemble of features optimally combined via some training set. Some interesting detectors to try include GIST (fast and cheap detector best used for detecting man-made vs. natural environments) and Object Bank (a histogram-based detector itself made of 100's of object detector outputs).