你好
在 MVE 中是否有一种简单的方法可以将 scene2pset 的点云转换为场景坐标系。
我正在开发一种深度图重建算法并将这些图提供给 MVE 以创建点云,我使用恐龙数据集来测试重建效果很好,但它不在场景坐标中。 如果我将bounding Box arg 与scene2pset 一起使用,我会得到一个空的层文件。 否则,我得到了我的观点,这意味着我的云不在场景坐标中我该如何解决这个问题
注意:即使我使用 dmrecon 也会发生同样的事情
谢谢
scene2pset
应用程序在场景坐标系中导出点云。 不应用任何变换。 您可以通过在“场景检查”选项卡中加载 UMVE 中的点云和场景来进行检查。
不,我不这么认为。 我现在没有内置 UMVE,我稍后会检查。 但这是 scene2pset 输出。
这意味着所有点都不在 BB 中,因此它们不在场景坐标中
你的边界框,或者你如何指定边界框,一定是错误的。 scene2pset
在场景坐标系中输出,这是事实。 UMVE 还有一个边界框创建器,可以帮助您找到正确的参数。
边界框不是我的。 它实际上来自vision.Middelburry,我提出这个问题的原因是我将我的结果发送到Middlebury 进行评估,他们说我的点不在正确的坐标中,他们要求我使用他们的边界框和上图是结果。
同样根据您对问题 358 的回答:“所有结果都在 SfM 规定的坐标系中。如果你想要一个特定的场景坐标系,你必须自己转换它”。 这些点不在场景坐标系中
您是否在 Middleburry 数据集上运行 SfM? 这基本上将创建一个与米德尔伯里所期望的无关的任意场景坐标系。 如果你想正确地做到这一点,这就是你必须做的:
1) 使用在 Middleburry 数据集中指定的相机内在和外在,并将其用于视图,即将参数插入到meta.ini
文件中。
2) 在不实际运行 SfM 的情况下创建 SfM 特征。 这是棘手的部分,因为您想要检测、匹配、三角测量特征,然后运行不更改相机参数的优化。 我认为我们现在没有针对这种确切情况的代码。
3) 在生成的场景上运行您的代码,该场景位于 Middleburry 坐标系统中。
哦,好吧,这很奇怪,我看不出这个 XD 背后的逻辑。 我会照你说的做,但第 2 步会很困难-__-
最后一个问题,我会去睡觉 x') :如果我用这个 2 arg = true 运行sfmrecon
它会起作用吗?
不,因为您还必须修复外在因素。 增量 SfM 方法的性质不支持修复外在因素。
这些步骤有什么奇怪的? 第 1 步应该是不言自明的,您必须使用 Middleburry 提供的参数,因为这些“ground truth”相机参数比任何 SfM 可以产生的更好。 第 2 步是必需的,因为我们的 MVS需要 SfM 点才能工作。 如果你有一个不需要 SfM 点的 MVS 算法,你可以省略这一步。
感谢您提供的所有答案。 这真的很有帮助。
这不是奇怪的步骤。 但为什么 sfm 参数与实际情况相去甚远。 不,我不能省略第二步,因为我的工作是基于你的工作特别是 _dmrecon_ ,我还使用特征作为种子来估计深度和法线。 这就是为什么我要发布很多问题并提出很多问题^__^
SfM 重建具有 7 维模糊性,即相对于原始现实世界对象的位置、方向和比例。 通过做出一些任意决定,在第一个 SfM 步骤中解决了这种歧义。
因此,重建并不是“偏离”,只是在这种模糊性方面有所不同。
我添加了一个简单的工具,可以满足您的需求。 请阅读此页面。
https://github.com/simonfuhrmann/mve/wiki/Middlebury-Datasets
太感谢了 ,
最有用的评论
SfM 重建具有 7 维模糊性,即相对于原始现实世界对象的位置、方向和比例。 通过做出一些任意决定,在第一个 SfM 步骤中解决了这种歧义。
因此,重建并不是“偏离”,只是在这种模糊性方面有所不同。