Odm: 在align_submodels期间,每个子模型仅对齐一个局部重建

创建于 2020-03-02  ·  5评论  ·  资料来源: OpenDroneMap/ODM

您是如何安装OpenDroneMap的? (Docker,本来就是...)?

码头工人

您的浏览器和操作系统是什么? (复制/粘贴https://www.whatismybrowser.com/的输出)

Linux上的Chrome 79

问题是什么?

生成部分重建时,重建对齐输出中似乎存在问题。
根据OpenSfM的资料,来自每个子模型的每个局部重建都将陷入一个大束调整问题中,然后作为一组相似变换输出,该变换应用于每个局部重建,然后保存到对齐的重建文件中。
但是实际上,似乎只更新了一次局部重建。 我似乎无法弄清楚为什么。

预期的行为应该是什么? 如果这是一项功能要求,请详细描述您认为应该对代码进行的更改,并在可能的情况下引用文件和行进行更改。

我希望每个局部重建中的每个点和镜头都至少在1e-6量级上被修改,但这似乎仅对于每个子模型中的单个局部重建才是正确的。 在对每个镜头和每个点进行并排比较时,所有其他部分重建都相同。

(作为一个旁注,我很想了解为什么会生成相似性变换以创建刚性变换,而不是仅将束输出应用于整个重建。我希望这会在子模型之间创建更平滑的边界?离群值处理?)

我们怎样才能重现这一点? (您采取了哪些措施来触发问题?正在使用哪些参数进行处理?如果可能的话,请提供在Google云端硬盘或Dropbox上上传的数据集的副本。详细信息)

在分割为多个子模型的数据集上触发OpenSfM中的align_submodels阶段,该子模型还包含多个部分重构。 通过减少最小要素数量并在具有足够条目数量的数据集上设置拆分,应该可以轻松实现这一点。

bug help wanted

最有用的评论

没问题! 这是一个有趣的代码库。 :礼物:
现在合并在OpenDroneMap / OpenSfM和mapillary / OpenSfM中,因此关闭。 :)

所有5条评论

我认为这可能是错误而不是增强。
从源头来看,所有部分重构都应该始终对齐,但我不一定要说甚至是我们现在在拆分/合并中使用的索引0部分,实际上在对齐中已进行了更新-这意味着我们在这些情况下可能会看到合并导致未对齐的云。

找到了。 显然,必须将OpenSfM中apply_transformations(transformations)中使用的itertools.groupby方法传递给已排序的列表,否则它将无法正确地对条目进行分组。 由于重建是为每个组加载的,因此未对齐的重建将被重新加载并覆盖任何先前对齐的组件。

稍后向099和mapillary OpenSfM提交PR。 :tada:

极好的! 感谢您关注此@linusmartensson

没问题! 这是一个有趣的代码库。 :礼物:
现在合并在OpenDroneMap / OpenSfM和mapillary / OpenSfM中,因此关闭。 :)

此页面是否有帮助?
0 / 5 - 0 等级