问题标签 [surf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
812 浏览

java - 特征/斑点相关性和直方图分析

我正在开发一个草图搜索引擎,该引擎将某人的草图与数据库中的图片相关联(数据库现在只有大约 40 张图片)。我这样做主要是为了好玩,所以我不太精通计算机成像技术。

首先,关于如何创建直方图(bin 大小、范围等)是否有任何经验法则?我正在使用在http://www.scribd.com/doc/6194304/Histograms找到的一些直方图代码(但已移植到 JavaCV)。有时我得到好结果,有时我得到坏结果,大多数时候我得到“meh”的结果。我一直在用 bin 大小和范围试验 TON,我想知道比较高维直方图是否可能是这里的答案。

其次,在我当前的直方图设置中,黑色似乎非常重要(即使是一个黑点也会改变整个结果集)。这应该预期吗?还是我搞砸了什么?示例: 在此处输入图像描述 在点之后: 在此处输入图像描述 注意我已经将“earthrise”的图片作为“接近”匹配。

我还想知道应该使用什么方法进行 blob 或特征分析。我认为像 SURF 这样的东西可能有点矫枉过正,因为我只想广泛比较 blob,而不是准确地映射模板。有什么方法可以在通过 Canny 过滤器后比较边缘?(如果可能的话,低复杂度): 在此处输入图像描述

例如,在这里,我希望两个笑脸位于顶部,因为针状笑脸“blob”与笑脸形状的关系比与一堆百香果或银河更密切相关。

长长的问题。如果您想亲自试用引擎,请访问http://skrch.dvt.name/(无耻插件,我知道,我知道 - 仅适用于 FF/Chrome/Safari)。也许更有经验的计算机视觉人员可以根据结果提出建议。哦,我CV_COMP_BHATTACHARYYA在比较直方图时使用了距离(似乎它给出了最好的结果,尽管卡方也不错)。

0 投票
1 回答
754 浏览

image-processing - 与 SURF 匹配(概念)

我正在使用 surf 将 n 个图像匹配在一起。通过在匹配阶段去除异常值来找到基本矩阵。令人惊讶的是,即使匹配点完全错误,我也找到了基本矩阵。我的问题是我应该使用什么标准或静态来避免此类问题。问候,

0 投票
1 回答
2785 浏览

sift - OpenCV SURF 和 OpenSURF 的区别?

我正在尝试使用 (SURF(opencv); [OPENSURF c++;OPENSURFC#] OPensurf http://www.chrisevansdev.com/computer-vision-opensurf.html )、SIFT 进行图像匹配。

  1. 我感觉 SIFT 在成本上比 SURF(OpenCV) 更准确。

  2. OpenSURF 比 OpenCV SURF 花费更多时间

  3. SURF/OpenSURF/SIFT 的任何准确性测试?

你试过吗?你的结果是什么?哪个更好?为什么?

0 投票
3 回答
32583 浏览

matlab - SIFT和SURF特征提取使用MATLAB实现

我正在使用matlab做一个古钱币识别系统。到目前为止我所做的是:

  1. 转换为灰度
  2. 使用高斯滤波器去除噪声
  3. 对比度增强
  4. 使用canny边缘检测器进行边缘检测。

现在我想提取特征进行分类。我想选择的特征是圆度、面积、颜色、SIFT 和 SURF。我的问题是如何将 SIFT 和 SURF 算法应用到我的项目中。我找不到两者的内置函数。

0 投票
2 回答
4135 浏览

matlab - SIFT 和 SURF 实现库

在我的最后一个问题中,我询问了 MATLAB 源代码中的 SIFT 和 SURF 实现,并收到了几个链接。谢谢大家。现在,我还有一个问题。这些 SIFT 实现就像我们正在使用的库(例如,在编写 c++ 编程时,我们包括 iostream 库。但我们不必更改该库中的任何代码)对吗?所以,我可以将这些 SIFT 实现用作库,而不需要为我的图像更改任何代码,对吧?这意味着 sift 实现适用于任何图像?有人可以帮帮我吗?

0 投票
2 回答
711 浏览

c++ - C ++比较冲浪描述符算法匹配中断一些时间

我编写了一个 c++ 应用程序,它比较来自图像的点匹配(OpenSurf C++),但有时,来自数千个“getUniqueMatches”的 1 个,应用程序在“getUniqueMatches”内的某个点中断。我有这个日志:

这是代码:

只有几次在这里休息。我不知道发生了什么,也许有问题?执行此函数时,应用程序仅使用 1 个线程。提取点时使用 10 个线程。

在 Centos5 (VPS) 上使用它。2 Gb RAM 使用 20% hd 使用 g++(性能模式)编译,IDE 使用 Netbeans。OpenCV,库库尔。

0 投票
3 回答
7789 浏览

c++ - OpenCV 2.2 SURF 特征匹配问题

右上角无内容匹配

我修改了 OpenCV 演示应用程序“matching_to_many_images.cpp”,以从网络摄像头(右)查询图像(左)到帧。第一张图片的右上角出了什么问题?

我们认为这与我们遇到的另一个问题有关。我们从一个空数据库开始,我们只添加唯一的(与我们数据库中的特征不匹配的特征)但是在只添加了三个特征之后,我们得到了所有新特征的匹配......

我们正在使用: SurfFeatureDetector surfFeatureDetector(400,3,4); SurfDescriptorExtractor surfDescriptorExtractor; FlannBasedMatcher flannDescriptorMatcher;

完整代码可在以下网址找到:http: //www.copypastecode.com/71973/

0 投票
1 回答
710 浏览

iphone - 在 iphone ios 4 上显示来自 opencv 的关键点


,我正在尝试在 iphone(冲浪和筛选)中实现特征检测器算法。我已经设法收集了我用 OpenCV 处理的原始视频流。问题是我的函数返回我想在屏幕上绘制的关键点值 (x,y)。现在我的问题是如何将它们绘制在 AVCaptureVideoPreviewLayer 之上?

0 投票
2 回答
408 浏览

descriptor - 如何从 SURF 描述符中获取子图像的大小

我想复制由 SURF 描述符描述的图像部分。我知道 surf 中的 9x9 过滤器的比例为 1.2。因此,例如,如果我有一个比例为 1.2 的描述符,那么我可以在描述符点周围复制 9x9 像素吗?如果我的比例为 1.6,我会用“9 / 1.2 * 1.6 = 12”计算部分吗?子图像会比 12x12 像素吗?另一方面,我在 OpenSURF 文档中读到了这个:

“提取 SURF 描述符的第一步是在兴趣点周围构建一个方形窗口。这个窗口包含将在描述符向量中形成条目的像素,大小为 20 秒,其中 s 指的是检测到的比例。”

所以如果我在描述符点周围取 20*scale 像素,也许我会得到子图像?我不知道为什么它应该是20!?我猜第一个解决方案更清楚......谢谢!

0 投票
1 回答
1416 浏览

algorithm - SURF 指标

我正在寻找 SURF 的可用指标。就像一张图像在比例上与另一张图像的匹配程度一样,假设为 0 到 1,其中 0 表示没有相似性,1 表示相同的图像。

SURF 提供以下数据:

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

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

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

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

这两个最大的问题是排除另一个。一个不考虑匹配的数量,另一个不考虑匹配之间的距离。我迷路了。

编辑:对于第一个,log(x*10^k)/k 的方程,其中 k 为 3 或 4,大多数情况下给出了很好的结果,最小值不好,它可以使 d 大于 1一些罕见的情况,没有它,小结果又回来了。