问题标签 [ransac]

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 回答
14509 浏览

image-processing - RANSAC 算法

谁能告诉我如何使用 RANSAC 算法在两个具有一定重叠部分的图像中选择共同特征点?问题来自基于特征的图像拼接。
替代文字 替代文字

0 投票
3 回答
2887 浏览

c++ - findHomography 与 RANSAC 错误异常值

我正在使用 features2d(ORB、SIFT 等)进行一些对象检测

我正在使用 RANSAC 进一步研究单应性。我发现许多好点被错误地标记为异常值。

对象内部有很多不应该是异常值的异常值(书)

我尝试将阈值提高到 10,但结果几乎相同。我可以做些什么来改善这种情况吗?

RANSAC 有什么问题吗?

0 投票
2 回答
1821 浏览

c++ - 测试opencv warpAffine异常值的数量

我正在使用 opencv 来估计两个图像之间的仿射变换(我们称之为 A 和 B,我想从 A 估计到 B),我需要实现 RANSAC 以获得可能的最佳估计。到目前为止,我的 RANSAC 框架(考虑到我已经有了两个图像的关键点以及它们之间的匹配):

1:选择3个随机匹配,将A和B的匹配点作为getAffineTransform函数的输入;

2:使用函数warpAffine对A的点进行warp,并将结果与​​B的点进行比较,得到异常值率:e;

3:考虑到我的样本大小是 3 个点(getAffineTransform 需要 3 个点才能找到变换),并且我有异常值 e 的比率,我可以找到我需要运行 RANSAC 的次数才能找到一个很高的概率好的估计,是N次;

4:重新运行第 1 步和第 2 步 N 次,保持具有最小异常值率的变换;

虽然基本的想法似乎很好,但我在执行时遇到了一些问题,特别是第 2 步。我的问题是,我不确定如何测试异常值的数量。我考虑过使用 warpAffine 将 A 的点映射到 B,但我几乎可以肯定它不会起作用,因为我相信该函数会解释我的点垫(这是一个 Mx2 垫,M 是点数,每个将点的坐标 x 和 y 列为图像,而不是我要映射的一组点。我怎样才能做到这一点?

我正在使用带有 c++ 的 opencv 2.4.2。

0 投票
1 回答
3524 浏览

algorithm - RANSAC算法参数设置

RANSAC算法已广泛应用于计算机视觉等工程领域。但是,如果我理解得很好,使用该算法时需要设置两个参数:一个与迭代次数有关,另一个与估计模型的阈值有关。以线性线估计问题为例:

在此处输入图像描述

图片中的蓝点代表离群点,而红点代表离群点。

迭代次数表明我们应该尝试多少次才能找到正确的线模型。我们尝试的越多,就越有可能获得正确的模型。但是,消耗时间也会增加。此外,迭代次数还与数据集中异常值的百分比有关。存在的异常值越少,我们可以预期的迭代就越少。

模型的阈值取决于手头的问题。如果设置得太严格,可以拟合模型的数据将变得无用,从而导致估计不准确。此外,严格的模型阈值也可能导致错误的模型。如果设置得太松,异常值可能会发挥作用。

暂时我对这两个参数的设置方案如下: 1)迭代次数:开始时粗略估计异常值的百分比,如果百分比高,则​​需要更多的迭代;否则,迭代次数设置相对较低。2)模型阈值:一开始设置一个比较大的阈值保持,然后根据它们与模型的接近程度给内点一个权重。如果异常值碰巧变成了异常值,它们不会显着影响模型估计。我想知道 RANSAC 参数设置是否存在其他解决方案。谢谢!

0 投票
1 回答
1438 浏览

3d - 用于样条拟合的 RANSAC

我想知道是否有任何方法可以创建可用于 RANSAC 方案的模型,其中可以从嘈杂的 3D 点云中确定样条线或折线。

我所拥有的是一个在每个 XY 平面中包含一组点的体积,在 Z 方向上有 400 个点,并且在简单地查看 3D 空间中的绘图数据时,样条形状会在视觉上出现。我已经有一个线拟合 RANSAC 方案,其中误差由简单的距离测量确定,但我不知道如何确定样条/折线的模型。

0 投票
1 回答
89 浏览

c#-4.0 - 通过评估视频源的视频流来确定视频源的位置

步骤是什么

a) 通过评估它的传感器数据(即深度流、视频流、音频流)来获取 kinect 的位置

b)通过评估其传感器数据(即视频流)来获取常规相机的位置

0 投票
2 回答
5606 浏览

opencv - OpenCV CV findHomography 断言错误 - 计数器 => 4

我目前正在完成我的兴趣点检测器评估工具。在最后的步骤中,我发现了一个令人困惑的错误。

srcPointsdstPoints是存储匹配关键点的vector<Points2f>对应点。到目前为止没有什么特别的 - 就像在教程中一样。

但是当我使用 RANSAC 并且vector<Points2f>在 [0, ... , 4] 范围内时,我得到一个断言错误,而不是计数器应该大于或等于四。

问题1:算法是否需要至少四个点来描述什么属于当前模型并创建共识?

问题 2:是否有关于此的任何文档?(我看了看文档教程。)

请注意,我已经看过这个问题。但对于 RANSAC 的行为,并没有令人满意的答案。还是我应该接受这种方法至少需要四个点才能找到单应性?

谢谢你的帮助。

0 投票
2 回答
14605 浏览

opencv - 如何检查获得的单应矩阵是否良好?

这个问题已经被问过了,但我还是不明白。我通过调用cv::findHomography一组点来获得一个单应矩阵。我需要检查它是否相关。
所提出的方法是计算内点的最大重投影误差并将其与阈值进行比较。但是经过这样的过滤后,我不断得到疯狂的变换,对象边界框几乎变成一条直线或一些奇怪的非凸四边形,带有自相交等。
可以使用哪些约束来检查单应矩阵本身是否足够?

0 投票
2 回答
11163 浏览

c++ - findHomography 返回的 mask 参数的值代表什么?

我将findHomographyOpenCV 的功能与 RANSAC 方法一起使用,以找到将与一组关键点链接的两个图像相关联的单应性。

主要问题是我无法在任何地方找到函数输出的掩码矩阵的值。

我知道的唯一信息是 0 值是异常值,非零值是异常值。但这意味着内部值是什么?有人知道吗?

我调用的一段代码findHomography

0 投票
2 回答
29551 浏览

opencv - 如何在 SURF、SIFT 和 ORB 匹配结果上应用 RANSAC

我正在研究图像处理。我想匹配 2D 特征,我在 SURF、SIFT、ORB 上做了很多测试。
如何在 OpenCV 的 SURF/SIFT/ORB 上应用 RANSAC?