用谷歌探戈区域学习标记对象



区域学习完成后,数据存储在ADF文件中,有什么方法可以标记ADF文件中的对象。 例如,假设应用程序学习一个包含咖啡机的区域。

我可以用一些文字"咖啡机"标记咖啡机吗,以便下次识别/本地化该区域时,我可以看到标记"咖啡机">

您可以做的是使用 SDK 中 Unity 示例中的区域学习功能,在加载的 ADF 上放置标记。这些标记保存在 XML 文件中,您可以在其中检查该标记的坐标。这些坐标保存在 Unity 坐标系中。(见[这里][1] - y和z与探戈坐标相比反转(

因此,例如,如果您在咖啡机上放置标记,则可以获取坐标并在这些坐标处放置标签。

坐标是从 ADF 起点开始的三个轴上的以米为单位的值。此起点 (0,0,0( 是按"学习"创建新的 ADF 时设备的位置。

除此之外,现在没有简单的方法来进行动态对象识别,这是2018年的一个有趣的问题。

首先,您应该判断您使用的是Unity,C++还是Java。在Unity下,从Tango示例中的AreaLearningInGameController中,在文件的最后,您可以看到它们保存在XML文件中的数据结构。保存的结构只需要可序列化,字符串是可序列化的,因此在您的情况下,您可以执行以下操作:

/// <summary>
/// Data container for Objects.
/// 
/// Used for serializing/deserializing objects to xml.
/// </summary>
[System.Serializable]
public class ObjectData
{
[XmlElement("tag")]
public string m_tag;
[XmlElement("position")]
public Vector3 m_position;
[XmlElement("orientation")]
public Quaternion m_orientation;
}

然后,您所要做的就是保存并加载带有相关标签的对象。在我链接的示例中,执行此操作的方法非常清楚。

最新更新