问题标签 [fundamental-matrix]

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 投票
2 回答
4779 浏览

python - 我如何处理基本矩阵?

我正在尝试从多个 2d 图像重建 3d 形状。我已经计算了一个基本矩阵,但现在我不知道如何处理它。

我在堆栈溢出和学术论文上发现了多个相互矛盾的答案。例如,Here说您需要从基本矩阵计算旋转和平移矩阵。

这里说你需要找到相机矩阵。

这里说你需要找到单应性。

这里说你需要找到极线。

是哪个??(我该怎么做?我读过H&Z 的书,但我不明白。它说我可以在结果 9.14 中“轻松”使用“直接公式”,但结果 9.14 既不容易理解,也不直接理解。)

堆栈溢出需要代码,所以这是我目前所拥有的:

编辑:我不知道相机参数

0 投票
0 回答
769 浏览

python - 是否有来自运动/3d 重建的结构的最小、完整、工作示例?

就像问题说的那样,我正在寻找一个完整的、最小的、来自运动(又名 3d 重建)管道的结构的工作示例。

马上让我说我没有相机参数。我不知道焦距或相机内在特性。所以马上,90% 的示例/教程 都是 无效的。

关于这个主题有很多问题,但代码只是片段,而不是完整的 SfM 过程。许多指令相互矛盾,或者只是猜测,开源外部库很难遵循。

所以我正在寻找一个简短、完整、最小的工作示例。最重要的是工作要求,因为那里有这么多代码会产生不好的结果。

我用下面的代码做了一个尝试。我使用匹配对的合成数据,因此没有噪音或不良对应问题需要解决。目标是从 2 个视图重建一个立方体(8 个 3d 点),每个视图有 8 个 2d 点。然而,最终的结果很糟糕。没有立方体形状的外观。(我已经尝试对数据进行规范化和居中,这不是问题)。

任何可以提供更好的最小工作示例或指出我的尝试有什么问题的人都将受到赞赏。

基本事实: 在此处输入图像描述

我的结果:在此处输入图像描述

0 投票
0 回答
145 浏览

stereo-3d - 校正后图像的极线不平行

我计算了立体视图的基本矩阵,我使用该基本矩阵校正了两个图像,现在核线应该平行于 x 轴以证明这一点,我再次计算校正图像的基本矩阵以检查它是否给出 F= [i]x 表示与 i 的叉积的反对称矩阵

您可以在图像中清楚地看到标记点具有相同的 y(高度),但是极线不平行:

您可以在图像中清楚地看到标记点具有相同的 y(高度),但极线不平行。

我发现的 F 是:

0 投票
1 回答
92 浏览

opencv - 本质分解的稳定翻译

当使用单个相机实现单目 SLAM 或运动结构时,可以估计到未知尺度的平移。事实证明,如果没有任何其他外部信息,这个规模是无法确定的。但是,我的问题是:如何在所有子翻译中统一这个比例。例如,如果我们有 3 帧(Frame0、Frame1 和 Frame2),我们应用跟踪如下:

  • Frame0 -> Frame 1 : R01, T01 (R&T 可以使用 F Matrix 和 K 矩阵以及 Essential Matrix 分解来提取)
  • 框架 1-> 框架 2 : R12, T12

问题是 T01 和 T12 被归一化,因此它们的幅度为 1。但是,实际上,T01 幅度可能是 T12 的两倍。

如何恢复 T01 和 T12 之间的相对震级?

PS我不想知道究竟是T01还是T12。我只想知道|T01| = 2 * |T12|。

我认为这是可能的,因为单目 SLAM 或 SFM 算法已经存在并且运行良好。所以,应该有一些方法可以做到这一点。

0 投票
1 回答
84 浏览

python - 估计基于对极的姿势恢复的相机焦距

标题有点拗口,但基本上我有两张照片(我正在初始化一个场景图),我想恢复第二张照片的相对姿势。我知道如何从基本矩阵中恢复姿势,但这需要了解焦距(以像素为单位)和原点。原点很简单,但我如何去了解焦距。我要估计它并把它留在那里吗?我可以只使用基本矩阵而不是基本矩阵吗?或者我是否从 f 的估计开始并执行循环,直到来自两个相机的光线通过关键点会聚或它们的距离最小化?

TLDR;不知道如何找到 F 以从极地地理恢复姿势,感谢任何帮助

这是一些代码:

其中 K_l 是内在矩阵,pts_l 和 r 是通过 SIFT 找到的关键点

0 投票
1 回答
48 浏览

matlab - 是否可以从未经校准的校正图像对确定两个相机之间的基线?

目前,我正在从事一个关于立体视觉的短期项目。

我正在尝试创建风景的深度图。为此,我使用我的手机查看点并使用 Matlab 提供的以下代码/工作流程:https ://nl.mathworks.com/help/vision/ug/uncalibrated-stereo-image-rectification.html

按照此代码,我可以创建漂亮的视差图,但我现在想要深度(以米为单位)。为此,我需要基线、焦距和视差,如下所示:https ://www.researchgate.net/figure/Relationship-between-the-baseline-b-disparity-d-focal-length-f-and -深度-z_fig1_2313285

焦距和基线是已知的,但不是基线。我确定了基本矩阵的估计。有没有办法从基本矩阵到基线,或者通过做出一些假设来到达基本矩阵,然后从那里到基线。

如果有任何正确方向的提示,我将不胜感激!

0 投票
1 回答
75 浏览

python - 极线不通过同一图像中的点

我有以下代码通过将给定点乘以基本矩阵来计算和呈现核线:

最底部(在 for 循环内)应该显示原始图像上的极线,因此这些线必须像这样穿过这些点: 在此处输入图像描述

但是,有时线和点之间会发生“偏移”,例如: 橙色线移动

知道为什么会这样吗?

0 投票
0 回答
14 浏览

triangulation - 使用 N 个视图的基本矩阵进行 3D 重建?

使用 OpenCV,我计算了我拥有的每对相机的内在和外在参数。我的问题是,我可以使用所有这些参数从多个视图中 3D 重建一组点吗?我可以使用捆绑调整来细化外部参数,在这种情况下我什至需要使用捆绑调整吗?到目前为止,我已经尝试根据之前的相机计算相机的位置,除了位于世界框架中心的第一个相机(0.0,0.0,0.0)。

0 投票
0 回答
95 浏览

python - 使用对极几何和球体寻找对应关系(计算机视觉 strero)

我正在使用对极几何寻找立体对应。我正在使用 p^T * F p'= 0 * 平等,我知道基本垫的价值。基本上,我有 2 个校正图像,我正在尝试计算我从左图像中获取的点的匹配,使用右图像中同一行上的点,在这个相等性上。但是我没有从这个等式中得到“0”的结果。剩下

正确的

输入图像被纠正,它们之间只有翻译,我知道基本矩阵

我运行 ORB 检测器和 flann 匹配器,我得到了不同方法的对应关系。但是当我查看匹配点时,它们不在同一条线上,并且它们没有给出 0 结果,它给出的结果大于 ** p^t F p'相等的“0”。这是什么原因?

使用对极几何寻找对应关系时应该怎么做?

如果图像被纠正,我们不应该使用同一行来搜索对应关系吗?你认为使用这个等式是否正确?

0 投票
0 回答
35 浏览

python - 如何找到数据集的基本矩阵?

我想比较 openCV 中用于计算基本矩阵的不同算法。我已经使用下面的代码来找到对应图像对的基本矩阵。有没有办法在不使用 for 循环的情况下对数据集做同样的事情?