EasyAR Target 配置

EasyAR中的Target

EasyAR提供一个灵活的target管理接口,简单易用。你可以在运行时生成EasyAR的target,无需登录网站上传下载很多数据。

EasyAR通过两个步骤来管理target。

第一步是加载配置来设置target。关于target的详细说明和加载/卸载可以参考TargetImageTarget(C++)或是TargetImageTarget(Unity),Unity中在Editor中的配置可以参考ImageTargetBaseBehaviourImageTarget Prefab

第二步是将target加载进入tracker中用以跟踪。EasyAR通过异步方式加载卸载target到tracker,不会阻塞调用线程,因而可以动态增量加载。

加载进tracker的target会在Augmenter::newFrame调用中被传入Frame,并最终成为AugmentedTarget的一部分。

Target的Json配置

EasyAR target的灵活性不仅仅表现在加载和卸载的接口上,配置文件也非常灵活。

你可以只从图像本身生成target,或者通过更为细致的配置来生成target。EasyAR使用json格式来存储target的配置。完整的数据集接口示例如下

{
  "images" :
  [
    {
      "image" : "idback.jpg",
      "name" : "idback",
      "size" : [8.56, 5.4],
      "uid" : "uid-string"
    }
  ]
}
                    

上面的json包含了所有可以被EasyAR使用的配置项:target图像路径、target名字、target大小以及target的uid。这里面只有target图像路径是必需的。所以下面这个json也是可接受的。

{
  "images" :
  [
    {
      "image" : "argame00.jpg",
      "name" : "argame"
    }
  ]
}
                    

当然这个也可以。

{
  "images" :
  [
    {
      "image" : "argame00.jpg"
    }
  ]
}
                    

你可以将多个target放入json文件中然后一起或分别加载。

{
  "images" :
  [
    {
      "image" : "argame00.jpg",
      "name" : "argame"
    },
    {
      "image" : "idback.jpg",
      "name" : "idback",
      "size" : [8.56, 5.4],
      "uid" : "uid-string"
    }
  ]
}
                    
{
  "images" :
  [
    {
      "image" : "sightplus/argame01.jpg",
      "name" : "argame01"
    },
    {
      "image" : "sightplus/argame02.jpg",
      "name" : "argame02"
    },
    {
      "image" : "sightplus/argame03.jpg",
      "name" : "argame03"
    }
  ]
}
                    

有时你并不太关心像图像大小或名字这样细节的配置,只需要加载很多图像并生成target。因此我们也提供了简化的配置方式。

{
  "images": [
    "argame00.jpg"
  ]
}
                    

如上,你只需要写一行图像路径就可以了。当有很多图像的时候,写法如下,

{
  "images": [
    "argame00.jpg",
    "argame01.jpg",
    "argame02.jpg",
    "argame03.jpg",
    "argame04.jpg",
    "argame05.jpg"
  ]
}
                    

当然,你也可以将上面这些配置组合进一个json文件。下面这个示例演示了一个组合,并使用了不同的路径书写方式。路径书写需要确保是unix方式的(即使用 / 来分隔路径元素)。当前版本的EasyAR不支持非ASCII字符的路径,不支持中文路径。

{
  "images": [
    "path/to/argame00.jpg",
    "path/to/argame01.png",
    "argame02.jpg",
    {
      "image" : "path/to/argame03.jpg"
    },
    {
      "image" : "argame04.png",
      "name" : "argame"
    },
    {
      "image" : "idback.jpg",
      "name" : "idback",
      "size" : [8.56, 5.4],
      "uid" : "uid-string"
    },
    "c:/win/absolute/path/to/argame05.png",
    "/unix/absolute/path/to/argame06.jpg"
  ]
}