缩放同一对象的两个网格
Posted
技术标签:
【中文标题】缩放同一对象的两个网格【英文标题】:Scaling two meshes of the same object 【发布时间】:2019-10-10 10:30:21 【问题描述】:我使用 SfM 技术计算了一个网格,并且能够提取一个 3D 网格。但是,网格没有 SfM 技术所期望的规模。
为了缩放网格,我能够生成具有真实世界比例的平面。例如,
我尝试使用 ICP 来缩放和注册 SfM 网格以匹配平面的比例,但不是很成功。谁能指出我如何解决这个问题的正确方向?我想缩放 SfM 网格以匹配真实世界的比例。 (我不需要注册两个网格)
【问题讨论】:
网格和输入图像之间是否存在某种形式的对应关系? 不,但我正在考虑以某种形式计算它们。我正在研究使用 procrustes 来缩放和计算对齐网格。不确定这是否是正确的方法。任何指针都会有所帮助 【参考方案1】:您需要将模型中的一些距离与物理世界中的一些可测量距离联系起来。最简单的可能是地面以上的相机高度。如果没有,那么可能是床的高度或枕头的大小。
假设物理相机高度为 1.6m,并且在模型中相机距离地面平面 800 个长度单位,那么您需要应用的比例因子(获得 1 个长度单位 = 1 mm)为:
1600
scale_factor = ---- = 2.0
800
【讨论】:
我可以使用mesh lab按照您提到的方式进行缩放。我正在尝试寻找一种可以以编程方式执行此操作的方法,因为其中一个网格处于已知的世界范围内。 那么你有同一个物体的两个网格,一个具有已知比例? 是的,没错。正如您在上面的渲染中看到的那样【参考方案2】:我最终这样做了,希望这对某人有所帮助,或者如果有人有更好的建议,我会接受。
1) 我使用pyrender 来渲染两个世界中已知姿势的两个网格以获得精确的对应关系
2) 然后我使用 procustes 分析通过计算一个网格到另一个网格的转换来计算比例因子。您可以从here 获取
我能够检索到可接受范围内的比例因子。
【讨论】:
以上是关于缩放同一对象的两个网格的主要内容,如果未能解决你的问题,请参考以下文章