android-在3D重建中使用区域描述文件(ADF)
作者:互联网
我一直在探索使用Google的Tango项目进行3D扫描和重建的方法.
到目前为止,我尝试过的某些应用(例如Project Tango Constructor和Voxxlr)在较短的时间范围内做得很好(我很乐意为其他潜在的扫描应用获得建议).问题是,无论使用什么应用程序,如果我运行足够长的时间,扫描结果就会积累很多漂移,最终最终所有内容都会对齐并损坏.
每当我将设备对准空白墙等无特征的空间时,或者将相机指向上方扫描天花板时,也会有很大的漂移机会.设备暂时会迷失方向,从而破坏了以后扫描的对齐方式.无论如何,让设备知道它在哪里以及它指向什么对我来说是一个问题.
我知道某些3D扫描应用程序在某种程度上使用了区域学习,因为这些应用程序在启动应用程序时会要求我允许区域学习.我认为这是为了帮助定位设备并稳定其姿势(如果不准确,请纠正我).
从我尝试过的应用程序中,我从未获得过加载自己的ADF的选项.我的理解是,加载到经过仔细学习的功能丰富的ADF中有助于更好地固定设备的姿态.缺少此类允许用户加载其自制ADF的应用程序是否有原因?这很难/不可能吗?当前的应用程序是否已经最佳地利用了区域学习进行本地化,并且我提供的任何自记录ADF都无法做得更好吗?
我将不胜感激有关此主题的任何指示/说明-没有清楚地记录在3D扫描和重建中使用ADF的方法和效果.最终,我正在寻找一种使用Tango进行高质量3D扫描的方法.如果图片中不需要ADF,那很好.如果答案是我正在努力完成一项不可能的任务,那么我也想知道.
如果还没有现成的解决方案,我也愿意自己尝试处理点云,尽管我觉得它说起来容易做起来难.
解决方法:
不幸的是,Tango目前没有任何应用程序可以执行此操作,您将需要为此开发自己的应用程序.万一您想知道如何在代码中执行此操作,请按照以下步骤操作:
首先,应启用应用程序的学习模式.当我们打开学习模式时,系统将开始记录ADF,这使应用程序可以查看它曾经去过的现有区域.对于我们保存的每个点云,我们也应该保存与点关联的时间戳.
走动并收集点之后,我们将需要从API调用TangoService_saveAreaDescription函数.此步骤对系统中保存的每个关键姿势进行了一些优化.保存完成后,我们需要使用与点云一起保存的时间戳来再次查询以优化姿势,为此,我们使用了函数TangoService_getPoseAtTime.完成此步骤后,您将看到点云已设置为正确的变换,并且这些点将重叠在一起.
就像回顾一下步骤一样:
>在Tango配置中打开学习模式.
>四处走走,保存点云以及与点云相关的时间戳.
>调用保存TangoService_saveAreaDescription函数.
>保存完成后,调用TangoServcie_getPoseAtTime以根据点云保存的时间戳查询优化的姿势.
标签:google-project-tango,3d-reconstruction,drift,android 来源: https://codeday.me/bug/20191118/2031900.html