问题标签 [3d-reconstruction]
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.
image-processing - 用于 3D 重建的图割算法类型
我已经阅读了几篇关于使用图形切割进行3D 重建的论文,我注意到似乎有两种替代方法可以解决这个问题。
一种方法是体积方法,它描述了体素的 3D 区域,图切割用于推断每个体素的二进制标记(包含或不包含感兴趣的对象)。采用这种方法的论文包括Multi-View Stereo via Volumetric Graph Cuts and Occlusion Robust Photo-Consistency和A Surface Reconstruction Using Global Graph Cut Optimization。
第二种方法是 2D 的,它试图用投影到那里的 3D 点的深度来标记参考图像的每个像素。采用这种方法的论文包括Computing Visual Correspondence with Occlusions via Graph Cuts。
我想了解每种方法的优点/缺点,以及在选择使用哪种方法时最重要的。到目前为止,我了解第一种方法的一些优点是:
- 这是一个二元问题,因此完全可以使用 Max-Flow 算法解决。
- 提供简单的遮挡建模方法。
第二种方法的一些优点是:
- 图的每个节点的较小邻居集。
- 更容易建模平滑度(但它会提供更好的结果吗?)。
此外,我会对选择一种或另一种表示方式更好的情况以及原因感兴趣。
vtk - 如何将两个点云或多边形数据集合并为一个?(合并不附加)
我正在开发一个实时扫描仪,我可以在其中实时扫描表面。到目前为止,我可以扫描表面的一小块并可以保存它。一个补丁意味着仅对表面(点云或三角形)进行 1 次扫描。
我想要的是,我想实时扫描多个补丁。为此,我必须将前一个补丁与当前补丁合并。但我不知道合并两个补丁的标准方式或算法是什么,也不知道哪一个是最好的合并方式,例如,在三角剖分之前(点云合并),或者在三角剖分之后(网格合并)。合并意味着删除重叠的点或三角形
我的想法:如果有两个点云,源和目标然后使用VTK,从目标点云中找到一个最近的点,然后选择一个点,另一个被丢弃。这是一种合并的方法吗?这只是我的想法?但问题是,源和目标中的点数会有所不同。
如何使用 VTK 合并两个补丁,请指导我?
还建议我实现实时扫描任务的标准和最佳方式是什么。
案例#1:
i)点云采集
ii) 注册
iii) 合并
iv) 三角测量
案例#2:
i) 点云采集
ii) 注册
iii) 三角测量
iv) 合并
案例#3:
i) 点云采集
ii) 三角测量
iii)注册
iv) 合并
请指导我。谢谢。
c++ - 从一些没有校准的图像中重建 3D?
我想在不使用棋盘校准的情况下从多个图像进行 3D 重建。我正在使用 OpenCV 并研究从 30 张图像中获取模型 3D 的方法,而无需使用棋盘图案校准相机。
这可能吗?我在哪里可以获得外部参数?
我可以在不校准的情况下进行 3D 重建吗?
opencv - 隧道状结构中的运动结构(SfM)?
我有一个非常具体的应用程序,我想在其中尝试从运动中获取结构以获得 3D 表示。目前,我从运动中找到的所有软件/代码示例都是这样的:“从各个角度拍摄的固定物体以创建 3D”。这不是我的情况。
在我的例子中,摄像机在走廊中间移动并向前看。有时,相机可以看向其他方向(左、右、上、下)。相机永远不会后退或回头,它总是向前移动。由于走廊很小,几乎所有东西都可以看到(没有隐藏点)。走廊有时会很长。
我已经尝试过这个软件,但它在我的特定情况下不起作用(但在正常使用时非常棒)。有人可以向我推荐一个可以针对我的特定需求的库/软件/工具/论文吗?或者你是否曾经需要实现类似的东西?欢迎任何帮助!
谢谢!
matlab - 如何测试基本矩阵?
在我的应用程序中,我使用 2 个摄像头进行 3D 对象重建。为了校准相机,我使用 2 组图像计算基本矩阵,以找到相机姿势(旋转和平移)。我使用 SVD 来查找 R 和 T。但是当我尝试检查矩阵的准确性时,它根本不起作用:重建点的位置与真实位置不符。
如何检查我是否以正确的方式进行?
这是我使用的 Matlab 代码:
谢谢你。
opencv - 来自相应图像的相机运动
我正在尝试根据相应图像的运动来计算新的相机位置。图像符合针孔相机模型。
事实上,我没有得到有用的结果,所以我尝试描述我的程序并希望有人可以帮助我。
我用 SIFT 匹配相应图像的特征,用 OpenCV 的 FlannBasedMatcher 匹配它们,并用 OpenCV 的 findFundamentalMat(方法 RANSAC)计算基本矩阵。
然后我通过相机内在矩阵(K)计算本质矩阵:
我用奇异值分解将基本矩阵分解为旋转和平移:
然后我尝试通过三角测量找到正确的解决方案。(这部分来自http://www.morethantechnical.com/2012/01/04/simple-triangulation-with-opencv-from-harley-zisserman-w-code/所以我认为应该可以正常工作)。
然后使用以下公式计算新位置:
其中 new_pos & old_pos 是向量 (3x1),R 是旋转矩阵 (3x3),t 是平移向量 (3x1)。
不幸的是,我没有得到有用的结果,所以也许有人知道可能出了什么问题。
以下是一些结果(以防万一有人可以确认其中任何一个肯定是错误的):
matrix - 你能推荐一个基本矩阵计算的参考数据来源吗
具体来说,理想情况下,我希望图像具有点对应关系以及 F 和左右极点的“黄金标准”计算值。我也可以使用基本矩阵以及内在和外在的相机属性。
我知道我可以从两个投影矩阵构造 F,然后从 3D 实际点生成左右投影点坐标并应用高斯噪声,但我真的很想使用其他人的参考数据,因为我正在尝试测试功效我的代码并编写更多代码来测试第一批(可能是坏的)代码似乎并不聪明。
谢谢你的帮助
问候戴夫
kinect - Kinect Fusion - 数据格式 - 对象分割
我最近开始为我的 3D 重建项目使用 Kinect Fusion。我在这个领域有两个问题:
.STL 文件里面有什么?它是场景中不同对象的顶点吗?
如何在重建文件中分割特定对象(例如我的手)?有没有办法使用 Kinect Fusion 来做到这一点?
先感谢您!
3d-reconstruction - 通过校准矩阵进行 3D 重建
我有一对图像和从未校准的相机拍摄的相应点。我也有相机的校准矩阵。是否可以将 2D 图像坐标乘以校准矩阵的倒数并像校准情况一样进行重建过程?(本质矩阵等)