美文网首页
Google Tango API 系列之Area Learnin

Google Tango API 系列之Area Learnin

作者: 60916fc63567 | 来源:发表于2017-01-03 16:02 被阅读152次

Area Learning

How it works


With Motion Tracking alone, the device tracks its movement and orientation through 3D space and tells you where it is and which way it’s facing, but it retains no memory of what it sees. Area Learning gives the device the ability to see and remember the key visual features of a physical space—the edges, corners, other unique features—so it can recognize that area again later. To do this, it stores a mathematical description of the visual features it has identified inside a searchable index on the device. This allows the device to quickly match what it currently sees against what it has seen before without any cloud services.

通过单独的运动跟踪,设备通过3D空间跟踪其运动和方向,并告诉您它在哪里和它面对的方式,但它保留没有看到什么的记忆。 区域学习使设备能够查看和记住物理空间的关键视觉特征 - 边缘,角落和其他独特的特征 - 以便以后可以再次识别该区域。 为此,它存储其在设备上的可搜索索引内所识别的视觉特征的数学描述。 这允许设备快速匹配它目前看到的与之前看到的,没有任何云服务。

When a Tango device has learned an area, there are two key things it can do to improve upon the information provided by Motion Tracking alone:

Improve the accuracy of the trajectoryby performing "drift corrections."

Orient and position itself within a previously learned areaby performing "localization."

当Tango设备学习了一个区域时,它可以做两个关键的事情来改进由运动跟踪单独提供的信息:

通过执行“漂移校正”提高轨迹的准确性。

通过执行“本地化”定位和定位在先前学习的区域内。


Improving the trajectory

改进轨迹

As mentioned on the Motion Tracking Overview page, motion estimates become less accurate over time. The device corrects for some errors by orienting itself to gravity, but errors in other aspects of its pose cannot be detected through Motion Tracking alone.

With Area Learning turned on, the Tango device remembers the visual features of the area it has visited and uses them to correct errors in its understanding of its position, orientation, and movement. This memory allows the system to perform drift corrections (also called loop closures). When the device sees a place it knows it has seen earlier in your session, it realizes it has traveled in a loop and adjusts its path to be more consistent with its previous observations. These corrections can be used to adjust the device's position and trajectory within your application.

The illustration below shows an example of drift correction. As you begin walking through an area, there are actually two different trajectories occurring simultaneously—the path you are walking (the "real trajectory") and the path the device estimates that you are walking (the "estimated trajectory"). The green line is the real trajectory that the device is traveling; the red line shows how, over time, the estimated trajectory has drifted away from the real trajectory. When the device returns to the origin and realizes it has seen the origin before, it corrects the drift errors and adjusts the estimated trajectory to better match the real trajectory.

如“运动跟踪概述”页面上所述,运动估计随时间的推移变得不太准确。该装置通过将自身定向到重力来校正一些误差,但是不能通过单独的运动跟踪来检测其姿势的其它方面中的误差。

启用区域学习后,Tango设备会记住其访问过的区域的视觉特征,并使用它们来纠正其位置,方向和移动的错误。该存储器允许系统执行漂移校正(也称为环闭合)。当设备看到它在会话中早先已经看到的地方时,它意识到它已经在循环中行进,并且调整其路径以与其先前的观察更一致。这些校正可用于在应用程序中调整设备的位置和轨迹。

下图显示了漂移校正的示例。当你开始走过一个区域,实际上有两个不同的轨迹同时发生 - 你正在行走的路径(“真实轨迹”)和设备估计你正在行走的路径(“估计轨迹”)。绿线是设备正在行进的真实轨迹;红线示出了估计轨迹随时间如何偏离实际轨迹。当设备返回到原点并且实现它已经看到原点时,其校正漂移误差并且调整估计的轨迹以更好地匹配真实轨迹。

Without drift correction, a game or application using a virtual 3D space aligned with the real world may encounter inaccuracies in Motion Tracking after extended use. For example, if a door in a game world corresponds with a door frame in the real world, drift errors can cause the game door to appear in the middle of the real-world wall instead of in the door frame.

没有漂移校正,使用与真实世界对准的虚拟3D空间的游戏或应用可能在延长使用之后在运动跟踪中可能遇到不准确。 例如,如果游戏世界中的门对应于真实世界中的门框,则漂移误差可以导致游戏门出现在现实世界墙的中间,而不是在门框中。

Area descriptions and localization


After you have walked through an area with Area Learning turned on, you can save what the device has seen in an Area Description File (ADF). Learning an area and loading it as an ADF has a number of advantages; for example, you can use it to intentionally align the device's coordinate frame with a pre-existing coordinate frame so that content in a game or app always appears in the same physical location.

There are two ways to create an ADF. The simplest is to use an application likeTango Explorerto create the ADF, and then have your application load it. The second is to use the Tango APIs to handle the learning, saving, and loading all within your application.

If you want to create a consistent experience within the same mapped space, such as having virtual objects appear in the same location as the last time the user visited an area, you must performlocalization. This is a two-step process:

Load a previously saved ADF.

Move the device into the area that was saved in the ADF.

When the device "sees" that it is in the area covered by the ADF, it instantly knows where it is relative to the origin in the file (that is, the point where original learning started in the saved area)—this is localization. Without localizing to an area description, a device's starting point is lost every time you end the session.

在您浏览了启用区域学习的区域后,您可以保存设备在区域描述文件(ADF)中看到的内容。学习区域并将其装载为ADF具有许多优点;例如,您可以使用它来有意地将设备的坐标框架与预先存在的坐标框架对齐,以便游戏或应用程序中的内容始终显示在同一物理位置。

有两种方法来创建ADF。最简单的是使用像Tango Explorer这样的应用程序来创建ADF,然后让您的应用程序加载它。第二个是使用Tango API来处理在应用程序中学习,保存和加载。

如果要在同一映射空间中创建一致的体验,例如使虚拟对象显示在上次访问某个区域时所在的位置,则必须执行本地化。这是一个两步过程:

1、加载以前保存的ADF。

2、将设备移动到保存在ADF中的区域。

当设备“看到”它在ADF覆盖的区域中时,其立即知道它相对于文件中的原点(即,在保存的区域中开始的原始学习的点)的哪里 - 这是本地化。如果没有本地化到区域描述,设备的起始点将在每次结束会话时丢失。

Usability tips


Tango devices depend on the visual diversity of the area to localize. If you are in an area with many identical rooms or in a completely empty room with blank walls, it is difficult to localize.

An environment can look quite different from different angles and positions, and can change over time (furniture can be moved around, lighting will be different depending on the time of day). Localization is more likely to succeed if the conditions at the time you localize are similar to the conditions that existed when the ADF was created.

Because environments can and do change, you might create multiple ADFs for a single physical location under different conditions. This gives your users the option to select a file that most closely matches their current conditions. You could also append multiple sessions onto the same ADF to capture visual descriptions of the environment from every position and angle and under every variation of lighting or environmental change.

Our UX Best Practices page has additional tips on creating ADFs and using Area Learning.

Tango设备依赖于区域的视觉多样性来本地化。如果你在一个有许多相同房间的区域或在一个完全空的房间里有空白的墙壁,这是很难本地化。

环境可以看起来与不同的角度和位置完全不同,并且可以随时间改变(家具可以移动,照明将根据一天的时间而不同)。如果本地化时的条件与创建ADF时存在的条件相似,则本地化更有可能成功。

因为环境可以并且确实改变,您可以在不同的条件下为单个物理位置创建多个ADF。这使您的用户可以选择一个与其当前条件最匹配的文件。您还可以将多个会话附加到同一个ADF上,以从每个位置和角度以及在每个照明或环境变化的变化下捕获环境的视觉描述。

我们的UX最佳实践页面提供了有关创建ADF和使用区域学习的其他提示。

Common use cases


Multi-player experiences: Two or more users in the same physical location share an ADF through a cloud service and then localize to the same coordinate frame. This allows multiple people to interact in the same physical space where all of their relative positions are known. The Tango APIs do not natively support data sharing in the cloud, but you can implement this through Google Cloud Storage and the Google Play Games API.

Location-aware shopping or other activities: A retail store manager makes an ADF of their store and then makes the ADF publicly available. Customers load the ADF, localize, and then use the device to navigate directly to products they are interested in.

多玩家体验:在同一物理位置的两个或多个用户通过云服务共享ADF,然后本地化到相同的坐标系。 这允许多个人在相同的物理空间中交互,其中所有的他们的相对位置是已知的。 Tango API本身不支持云中的数据共享,但您可以通过Google云端存储和Google Play游戏API实现此功能。

位置感知购物或其他活动:零售店经理制作其商店的ADF,然后公开ADF。 客户加载ADF,本地化,然后使用设备直接导航到他们感兴趣的产品。

Area Learning and using area descriptions are powerful features and we’re excited to see what developers come up with for offering new user experiences.

区域学习和使用区域描述是强大的功能,我们很高兴看到开发人员提供了新的用户体验。

Using learning mode and loaded ADFs


The behavior of some aspects of the Tango APIs will vary depending on your settings for learning mode or whether you loaded an ADF.

In the table below, the two left columns specify whether you have learning mode on and whether you have loaded a previously stored ADF. You may or may not be able to save an ADF depending on the status of those two things. For example, if you don't have learning mode on, you cannot save an ADF. If you have learning mode on and have loaded an ADF, you can only save again after you have localized against the loaded ADF.

Also, if you aren't in learning mode and don't have an ADF loaded, you cannot get pose data using the TANGO_COORDINATE_FRAME_AREA_DESCRIPTION frame of reference. If you have an ADF loaded, you can get pose data from that frame of reference after the device localizes to the loaded ADF.

Tango API的某些方面的行为将根据学习模式的设置或是否加载了ADF而有所不同。

在下表中,左侧两列指定是否启用学习模式,以及是否已加载先前存储的ADF。 您可能会也可能不能保存ADF取决于这两件事情的状态。 例如,如果您没有启用学习模式,则无法保存ADF。 如果您已启用学习模式并装载了ADF,则只能在对加载的ADF进行本地化后再次保存。

此外,如果您未处于学习模式并且未加载ADF,则无法使用TANGO_COORDINATE_FRAME_AREA_DESCRIPTION框架获取姿势数据。 如果您装有ADF,您可以在设备本地化到加载的ADF之后从该参考帧获取姿势数据。

If tracking is lost, these frame of reference pairs will no longer be available. After service reset, the session functions as if learning mode is True and an ADF was loaded, where the area descriptions are those that were learned up to the loss of tracking. To continue using the area description frame of reference, you must localize against what you learned before the loss of tracking. You must also localize to include what you learned before tracking was lost when saving an ADF.

如果跟踪丢失,这些参考帧对将不再可用。 服务复位后,会话功能好像学习模式为True并且加载了ADF,其中区域描述是在跟踪丢失时学到的。 要继续使用区域描述参考框架,必须根据在跟踪丢失之前学习的内容进行本地化。 您还必须本地化以包括在保存ADF时跟踪丢失之前学习的内容。

源网页地址:https://developers.google.com/tango/overview/area-learning

相关文章

网友评论

      本文标题:Google Tango API 系列之Area Learnin

      本文链接:https://www.haomeiwen.com/subject/qgxnvttx.html