algorithm - 冲浪指标

标签 algorithm math image-processing computer-vision surf

我正在搜索 SURF 的可用指标。比如一张图片与另一张图片在比例上的匹配程度,假设为 0 到 1,其中 0 表示没有相似之处,1 表示相同的图片。

SURF 提供以下数据:

  • 查询图像(集合 Q)中的兴趣点(及其描述符)
  • 目标图像(集合 T)中的兴趣点(及其描述符)
  • 使用最近邻算法可以从上面的两个集合中创建对

到目前为止我一直在尝试一些东西,但似乎没有什么效果太好:

  1. 使用不同集合大小的度量:d = N/min(size(Q), size(T)) 其中 N 是匹配兴趣点的数量。这给出了非常相似的图像非常低的评级,例如0.32 即使从 Q 的大约 600 和 T 的 200 中匹配了 70 个兴趣点。我认为 70 是一个非常好的结果。我在考虑使用一些对数缩放,所以只有非常低的数字才会得到低结果,但似乎找不到正确的方程式。使用 d = log(9*d0+1) 我得到了 0.59 的结果,这是相当不错的,但它仍然有点破坏了 SURF 的力量。

  2. 使用对内距离的度量:我做了一些事情,比如找到 K 个最佳匹配并添加它们的距离。两幅图像相似的距离最小。这个问题是我不知道兴趣点描述符元素的最大值和最小值是多少,距离是从中计算出来的,因此我只能相对地找到结果(从许多输入中最好的)。正如我所说,我想将该指标精确地设置在 0 和 1 之间。我需要它来将 SURF 与其他图像指标进行比较。

这两者最大的问题是排斥对方。一个不考虑比赛的数量,另一个不考虑比赛之间的距离。我迷路了。

编辑:对于第一个,log(x*10^k)/k 的方程式(其中 k 为 3 或 4)在大多数情况下给出了不错的结果,但最小值并不好, 在极少数情况下,它可以使 d 大于 1,否则返回的结果很小。

最佳答案

您可以轻松创建一个指标,它是两个指标的加权和。使用机器学习技术学习适当的权重。

您所描述的内容与基于内容的图像检索领域密切相关,这是一个非常丰富多样的领域。谷歌搜索会给你带来很多点击。虽然 SURF 是一种出色的通用中低级特征检测器,但它还远远不够。 SURF 和 SIFT(SURF 的派生来源)在重复或近似重复检测方面表现出色,但在捕捉感知相似性方面表现不佳。

性能最佳的 CBIR 系统通常利用通过某些训练集优化组合的特征集合。一些值得尝试的有趣检测器包括 GIST (最适合用于检测人造环境与自然环境的快速且便宜的检测器)和 Object Bank (基于直方图的检测器本身由 100 个对象检测器输出组成)。

关于algorithm - 冲浪指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365634/

相关文章:

python - 在python中更改数组的内容

python - 在不改变图像大小的情况下屏蔽 ROI

algorithm - 插入缩写词

python - 优化乘法模一个小质数

0 和任何其他 x 的算法

python - 使用 openCV 和 python 检测对象

c++ - STL 算法如何识别容器?

c# - 多线程BigInteger操作

C++收集算法?

php - 计算排列的因子秩(N 选择 K)