ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-11-18 23:26:55  阅读:243  来源: 互联网

标签:google-project-tango 3d-reconstruction drift android


我一直在探索使用Google的Tango项目进行3D扫描和重建的方法.

到目前为止,我尝试过的某些应用(例如Project Tango ConstructorVoxxlr)在较短的时间范围内做得很好(我很乐意为其他潜在的扫描应用获得建议).问题是,无论使用什么应用程序,如果我运行足够长的时间,扫描结果就会积累很多漂移,最终最终所有内容都会对齐并损坏.

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

我知道某些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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有