在 3D 重建中使用区域描述文件 (ADF)



我一直在探索使用谷歌的项目Tango进行3D扫描和重建。

到目前为止,我尝试过的一些应用程序,如Project Tango Constructor和Voxxlr,在短时间内做得很好(我很乐意获得其他潜在扫描应用程序的建议)。问题是,无论应用程序如何,如果我运行它的时间足够长,扫描就会累积如此多的漂移,最终一切都会错位并被破坏。

每当我将设备指向空白墙壁等无功能的空间时,或者当我将相机指向上方扫描天花板时,也会出现很高的漂移机会。设备会暂时迷失方向,从而破坏未来扫描的对齐方式。无论如何,让设备知道它在哪里以及它指向什么对我来说是一个问题。

我知道一些3D扫描应用程序在某种程度上使用区域学习,因为这些应用程序要求我允许在应用程序启动时进行区域学习。我认为这是为了帮助定位设备并稳定其姿势(如果这不准确,请纠正我)。

从我尝试过的应用程序中,我从未获得加载自己的 ADF 的选项。我的理解是,加载精心学习的功能丰富的 ADF 有助于更好地锚定设备姿势。缺乏允许用户加载其自制 ADF 的应用程序是否有原因?难/不可能做到吗?当前的应用程序是否已经最佳地利用区域学习进行本地化,我提供的自我录制的 ADF 是否无法做得更好?

我将不胜感激有关此主题的任何指示/说明 - 在3D扫描和重建中使用ADF的方法和功效没有明确记录。最终,我正在寻找一种使用Tango进行高质量3D扫描的方法。如果图片中不需要 ADF,那很好。如果答案是我正在努力完成一项不可能完成的任务,我也想知道。

如果现成的解决方案尚不可用,我也愿意尝试自己处理点云,尽管我有一种感觉,说起来容易做起来难。

不幸的是,Tango目前没有任何应用程序可以做到这一点,你需要为此开发自己的应用程序。如果您想知道如何在代码中执行此操作,请按照以下步骤操作:首先,应用程序的学习模式应该打开。当我们打开学习模式时,系统将开始记录 ADF,这允许应用程序查看它去过的现有区域。对于我们保存的每个点云,我们也应该保存与点关联的时间戳。

四处走动并收集点后,我们需要从 API 调用 TangoService_saveAreaDescription 函数。此步骤对系统中保存的每个关键姿势进行一些优化。保存完成后,我们需要使用点云保存的时间戳再次查询优化姿势,为此,我们使用functionTangoService_getPoseAtTime。完成此步骤后,您将看到点云设置为右侧变换,并且点将重叠在一起。

作为步骤的回顾:

  1. 在探戈配置中打开学习模式。

  2. 四处走动,保存点云以及与点云关联的时间戳。

  3. 调用保存TangoService_saveAreaDescription函数。

  4. 保存完成后,调用TangoServcie_getPoseAtTime,根据点云保存的时间戳查询优化后的姿势。

最新更新