问题标签 [structure-from-motion]

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 投票
0 回答
589 浏览

python - 使用 OpenCV 在 python 中创建具有 3d 点的 .OBJ 文件

我是 python 新手,我正在尝试使用 OpenCV 中的 python 对象的一系列图像来实现 Motion 管道中的结构。我已经实现了几乎整个管道,但现在我无法在 MS 的 3DViewer 应用程序中可视化 3d 对象(.OBJ 文件)(我的 PC 运行速度太慢,无法运行 Meshlab)。在应用程序的统计部分,当我打开 .obj 文件时,它说我有 0 个三角形和 0 个顶点。任何人都可以帮助我从 3d 点数组正确创建一个 .OBJ 文件。

这是我创建带有顶点的 .OBJ 文件的代码:

这是我实现 SfM 管道的主要功能:

提前致谢。

0 投票
1 回答
501 浏览

computer-vision - 因子图优化和捆绑调整有什么区别?

我看到在 SLAM 文献中,经常使用因子图优化。在 Motion 文献中的结构中,通常使用捆绑调整。这两种方法有什么区别?

此外,我们可以用库实现另一种方法吗?例如,使用 g2o 实现捆绑调整,或使用 ceres 求解器实现因子图优化?

提前致谢!

0 投票
0 回答
22 浏览

computer-vision - 智能手机相机运动估计 - 检测退化情况

我有一个系统,它使用智能手机摄像头视频作为输入来重建物体的 3D 模型(我会注意到我可以在物体旁边放置已知大小的标记)。

我想检测视频中没有足够运动的扫描,对于 3d 重建实际上退化的情况,例如纯旋转的情况。最初的想法是执行SFM并计算实际完成了多少运动,但这里有一个问题,因为从一开始这些都是执行 SFM 有问题的情况(退化情况)。

你会推荐我做什么?

我还会注意到我使用智能手机,所以我也可以选择它的 IMU。

谢谢

0 投票
1 回答
26 浏览

python - 如何为 3D 点云着色

我尝试使用多个图像进行 3d 重建,并且我也有我的相机内在参数。我在 Matlab 中使用 SFM 3D 点是相同的颜色,我想知道如何将 3D 点以它们自己的颜色可视化,类似于图像中的颜色。任何帮助将非常感激。此外,如果您知道在 Matlab 或 Python 中从多个图像进行 3d 重建的一些实现,请推荐。非常感谢您。

0 投票
0 回答
15 浏览

object-detection - 移动相机 3d 检测。我做对了吗?

我正在研究移动单目相机 3d 检测问题。到目前为止,它有两个主要组件:

  1. 使用卷积网络(F-RCNN、SSD、YOLO)检测图像平面(2d)中的对象。我能够在移动相机上的至少两帧中检测到相同的物体
  2. 通过三角测量找到检测到的物体的 3d 位置。为此,我正在构建类似于此处的本地捆绑调整过程的(简化)版本。我的步骤是:
    • 初始化。从前两帧中提取特征(ORB,SWIFT),匹配它们(FLANN),找到 EssentialMatrix,找到第二帧相机矩阵(R|t)并将匹配三角化为 3d。
    • 对于每个连续的帧:提取特征,与前一个匹配,找到已经有相应 3d 点的匹配,找到帧相机矩阵(通过 PnP),然后对没有 3d 点的匹配进行三角剖分以创建新的 3d 点。之后,我运行本地捆绑优化(在谷神星上)来调整最后 n 个摄像机(帧)的姿势和 3d 点。
    • 我得到的结果:

我当前结果的正交视图

有人可以验证我正在做的事情是否有意义?我跳过了一些重要的事情吗?这可以做得更简单吗?有没有类似的例子?谢谢!

0 投票
0 回答
24 浏览

computer-vision - SfM: 2 View 三角剖分是否达到比例因子?

几个月来,我一直试图从运动进入结构世界。

1)拥有相机的内在和外在参数,是否可以在只有2张图像的比例上进行三角测量?

2)你知道有什么书可以很好地理解如何优化合并多个图像的过程吗?

查看一些项目,其中提到了视图图。

感谢您的回答。

0 投票
0 回答
65 浏览

opencv - 如何正确使用 OpenCV triangulatePoints 和 GPS 数据?

我试图从 2 帧估计世界坐标的 3D 位置。这些帧是用同一台相机从不同位置捕获的。问题是,估计是错误的。

我有

为了获得旋转矩阵,我使用 了基于http://www.tobias-weis.de/triangulate-3d-points-from-3d-imagepoints-from-的https://stackoverflow.com/a/56666686/16432598移动相机/。使用上述数据,我计算外部参数和投影矩阵如下。

现在,我在两幅图像中选择相同的点进行三角测量 p2d_1(205,806) and p2d_2(116,813) 对于这个特定点的 3D 位置,我期望类似; [353143.7, 482130.3, 40.80] 而我计算 [549845.5109014747, -417294.6070425579, -201805.410744677]

我知道我的内在参数和 GPS 数据非常准确。

谁能告诉我这里缺少什么或我做错了什么?

谢谢

0 投票
0 回答
334 浏览

photogrammetry - Meshroom Meshing 节点因“深度图融合给出空结果”而失败

我在 Meshroom 中有一个摄影测量管道(对默认值进行了轻微修改)。管道在 Meshing 节点上失败,并出现错误“深度图融合给出空结果”。

我的 StructureFromMotion 节点从 731 张图像中找到了 3,172,414 个点。我的系统只有 16 GB 的 RAM,因此我将 Meshing 节点上的 Max Input Points 减少到 5,000,000,Max Points 减少到 800,000。

谁能告诉我“深度图融合给出空结果”的错误是什么意思,可以做些什么来解决它?

0 投票
0 回答
31 浏览

kinect - 计算图 slam 的信息矩阵

我是 SLAM 的新手。我正在研究图形大满贯,我需要进行姿势图优化。对于这个要求,在已经使用迭代最近点计算变换的两条边之间需要信息矩阵。我使用 Open3D 库来计算这个以及信息矩阵。但是我不知道什么是信息矩阵以及如何计算两个节点之间的转换。

0 投票
0 回答
19 浏览

computer-vision - 给定在线数据集的多项式三角剖分?

我正在做一个 3d 重建项目,我想在一些带有地面实况投影矩阵和基本矩阵的图像上尝试多项式三角剖分

我在网上找到了这个https://github.com/alicevision/dataset_buddha 这是一个数据集,收集了 67 张放在桌子上的佛头图像,图像覆盖了整个物体,并给出了每个图像的投影矩阵,但不是基本的矩阵

多项式三角剖分需要基本矩阵,并且要获得仅给定两个投影矩阵的基本矩阵,我需要第二个图像的极点

F = [e'] P sudo_inv(P')

为了获得第二张图像的极点,我需要基本矩阵

e'=空空间(F)

所以基本上我正在寻找一种从两个投影矩阵中获取基本矩阵的方法,或者寻找同一对象但具有不同方向和位置的图像数据,并为每个图像给出每连续两个图像之间的投影矩阵和基本矩阵。