问题标签 [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 回答
1051 浏览

matlab - RANSAC 估计仿射变换

对于图像马赛克应用程序,我获取了描述符的匹配并将其存储在一个矩阵匹配 2xM 中。我现在想用仿射应用 Ransac,所以我的随机样本是 2x3 矩阵,然后我尝试应用代码

[tform,inlier1,inlier2] =estimateGeometricTransform(sample(1,:),sSample(2,:),'仿射');

这似乎不起作用,因为它要求我的列为 2,将其转换为 3x2 也不起作用,因为对于仿射我需要 3 个对应点。

Matches 也只返回匹配描述符的索引,我如何提取它的坐标并将其应用于我的 tform 转换?

0 投票
1 回答
830 浏览

c++ - 如何在设备上运行推力::count_if?(库达)

我想实施 RANSAC。我生成了 60k 点和 500 个平面,我想计算每个平面,它们附近有多少点。然后选择具有最大值的那个。

在我生成向量 ( d_vec) 和平面 ( d_pl) 并将它们传输到 GPU 后,我使用thrust::transform和在其中thrust:count_if计算关闭点的数量。

不幸的是,我收到了这个错误:

怎么可能从设备代码调用thrust::count_if?我错了什么?这是完整的代码:

0 投票
1 回答
793 浏览

python - 关键点描述符匹配:如何计算每个模板的拟合优度?

我不确定这是否属于 stackoverflow 或其他 stackexchange 站点 - 非常欢迎在这里输入。

我使用 python OpenCV 将目标图像的 BRISK 关键点描述符与三个不同的模板进行匹配。

什么是确定哪个模板是最合适的模板的实用、稳健、统计合理的方法?

现在我计算cv2.RANSAC返回的内点数cv2.findHomography(顺便说一下,它不会返回拟合优度统计数据)并采用具有最高数字的模板。

我查看了描述符距离的直方图,它似乎总是以高斯为中心(奇怪地)在大约 105(单位?)。

https://en.wikipedia.org/wiki/Random_sample_consensus似乎很有用。

非常感谢指导 - 谢谢!

0 投票
1 回答
974 浏览

plane - 激光雷达数据的 Ransac 地平面分割

我想使用 ransac 算法分割地平面激光雷达环,我使用 python-pcl 来做到这一点,但我得到了错误的结果,如下图所示。

众所周知,激光雷达数据有许多地平面环,它找不到正确的地平面,但它找到了地平面以上的平面。我可以猜测的原因可能是激光雷达的地面非常稀疏,而地面以上的平面上的点数比地面多,因此算法找到了错误的结果。代码可以列出如下:

不确定是否是我猜测的问题,所以如果有人以前遇到过问题,请告诉我。而且我不知道如何解决这个问题,关于激光雷达环分割的信息很少,有人知道如何解决吗?

还有其他方法可以进行激光雷达地面分割,我可以得到代码吗?

在此处输入图像描述

0 投票
0 回答
26 浏览

python - 两个相似部分的二维相关性

我必须解决以下问题:

我有两个具有相同部分的图像,但该部分在第二个图像中旋转、缩放和平移(没有剪切)。这部分具有可用于相互比较的特征点。

问题是:第二部分可能包含一个或多个错误(不要太多)。

我需要计算旋转、缩放和平移矩阵(这不是问题本身),因此第一张图像的特征点与第二张图像的点的累积距离最小。

我正在使用python,但第一个近似值是蛮力的,我得到了每个im1点到点的最小距离im2ransac可以用or做到这一点flann吗?处理它的最佳或正确方法是什么?我认为是一个 MLE 问题,最小化的函数是到每对点的累积距离。

稍后,我会给每个image1特征点分配最近的image2点,因为如果不清楚,直到现在我们都不知道对应是什么。

0 投票
2 回答
380 浏览

python - 如何检测数据在 DataFrame 中线性变化的连续跨度?

我正在尝试检测相关变量在 DataFrame 中的某些数据内线性变化的连续跨度。满足这一点的数据中可能有许多跨度。我开始使用ransac基于使用 RANSAC 的稳健线性模型估计的方法。但是,我在将示例用于我的数据时遇到了问题。

客观的

检测相关变量在数据中线性变化的连续跨度。要检测的跨度由20多个连续的数据点组成。所需的输出将是放置连续跨度的范围日期。

玩具示例

在下面的玩具示例代码中,我生成随机数据,然后设置数据的两个部分以创建线性变化的连续跨度。然后我尝试将线性回归模型拟合到数据中。我使用的其余代码(此处未显示)只是使用 RANSAC页面的稳健线性模型估计中的其余代码。但是我知道我需要更改剩余的代码才能达到目标。

对于这个玩具示例代码,所需的输出(我还不能编码)将是这样的 DataFrame:

生成的图表如下所示: 生成的数据

错误代码

但是,当执行第 6 步时,出现以下错误:

ValueError: Expected 2D array, got 1D array instead: ... 重塑您的数据,如果您的数据具有单个特征,则使用 array.reshape(-1, 1) 或 array.reshape(1, -1) 如果它包含单个特征样本。

我希望能够在这个例子中检测到相关变量线性变化的两个连续跨度(line1line2)。但我无法实现ransac 代码示例中所述的示例

问题

我应该在我的代码中修改什么才能继续?而且,是否有更好的方法来检测相关变量线性变化的连续跨度

0 投票
1 回答
1709 浏览

c++ - PCL:使用 RANSAC 访问 pcl::ModelCoefficients::Ptr 的字段以进行线模型近似

我正在尝试使用点云库提供的 RANSAC 方法来估计通过点云点的线。我可以创建对象,并毫无问题地估计线模型,如下所示:

我现在尝试访问模型参数,但我太笨了……根据API,应该有六个可访问的参数:

线的六个系数由线上的一个点和线的方向给出:[point_on_line.x point_on_line.y point_on_line.z line_direction.x line_direction.y line_direction.z]

因此,我试图这样访问它们:

但是,这不起作用。我不断收到错误:

“pcl::ModelCoefficients”中没有名为“line_direction”的成员。

我真的不知道我做错了什么......有人有任何想法吗?提前致谢!

0 投票
0 回答
670 浏览

python - 在python中检测一组平面

根据那篇 Detecting set of planes from point cloud 我也在做同样的事情,但我不知道如何在 python 中继续使用该算法。有人会为python中的算法指出一个伪代码吗?或者使用任何帮助库,如 scipy ?

我正在尝试检测两个平面(两个有边缘的墙),我需要它们的法线

提到的算法:

0 投票
0 回答
36 浏览

matlab - 在使用 RANSAC 算法之前,我们如何消除不属于目标区域的特征?

在匹配 SIFT 特征点时,会出现很多不匹配的情况。RANSAC算法可以通过寻找这些特征点的变换矩阵来去除不匹配。但是当数据空间包含很多不匹配时,找到正确的变换矩阵将非常困难。更重要的是,找到错误模型的概率非常大。为了解决这个问题,我想使用改进的 RANSAC 算法。在使用 RANSAC 算法之前,我想通过消除不属于目标区域的特征来去除部分错误特征点。为此,我想计算包含特征点的区域周围每个点的数量。当数量小于我们设置的阈值时,我们认为该点不属于目标区域并将其移除。

0 投票
1 回答
96 浏览

algorithm - 了解 RANSAC 优化

我已经阅读了维基百科的文章并观看了一些关于 RANSAC 的视频。

如果我理解正确,优化 RANSAC 的众多方法之一如下:

  1. 根据wikipedia,它的最大迭代次数:

在此处输入图像描述

  1. 根据这个网站,在寻找适合数据的线的示例中,我可以使用以下公式而不是根据所有数据样本检查我的模型,并找到允许我确定 2选点不错。

在此处输入图像描述,

其中 N = 样本数

e = 一个点是异常值的概率

s = 样本中的点数

p = 我们得到一个好的样本的期望概率

我对第二次优化最感兴趣,因为我找不到太多关于它的信息。这个对吗?它叫什么名字?