ImageTarget Extension Tracking
Note
支持:Android / iOS
说明:因VOID SLAM技术需要使用惯性测量单元(简称IMU),故目前仅支持移动平台(Android、iOS)运行,云识别暂时不支持。
一、简介
在使用“图像识别”识别Marker成功后,采用“VOID SLAM"技术进行跟踪。
二、阅读指南
本教程主要介绍如何在Unity环境下进行操作。
默认读者您拥有一定的软件使用、应用开发经验。
教程中只会对Unity的基础使用进行简要说明,有关Unity使用的更多信息,请访问Unity官网查看。
三、搭建环境
在进行具体操作前,您需要安装下列软件,准备如下环境:
操作系统
- Windows 7 或更高版本
- OS X 10.10 或更高版本
Unity版本支持
| Unity 3D版本 | 太虚AR SDK功能 |
|---|---|
| 5.6.x | 全部支持 |
| 2017.x | 全部支持 |
| 2018.x | 全部支持 |
| 2019.1.x | 全部支持 |
| 2019.2.0 | 全部支持 |
Note
本教程中使用的Unity版本为:Unity 2017.4.13
Unity 3D下载地址:https://unity3d.com/cn/get-unity/download/archive
四、实现流程
第一步、新建Unity工程
打开Unity,新建一个工程。填写Project name为“ImageExtension”、选择保存的位置,点击[ Create project ]。

第二步、导入太虚AR SDK
选中[ Assets ] -> [ Import Package ] -> [ Custom Package... ],导入太虚AR SDK。

选择下载好的SDK文件(.unitypackage),点击[ 打开 ]按钮。

弹出界面,点击[ Import ],导入过程需要耐心等待一段时间。

如果弹出“API Update Required”界面,请点击[ I Made a Backup, Go Ahead! ]。

第三步、删除Main Camera
Note
Unity3D打开时默认是新的Scene,新的Scene自带一个Main Camera和Directional Light对象,我们需要用SDK的ARCamera,故将默认的Camera删除。
右键选中场景中自带的“Main Camera”,点击[ Delete ]删除。

第四步、拖入预制件“ARCamera”、“ImageExtensionTarget”
展开[ Assets ] -> [ VoidAR ] -> [ Prefabs ]目录,
将预制件“
ARCamera”和“ImageExtensionTarget”分别拖至场景中。

操作成功后显示如下。

第五步、设置ARCamera
选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
设置MarkerType= "ImageExtension"

第六步、设置App License Key
打开云平台网址,注册账号并登录。

进入云平台,左侧点击[ 创建SLAM应用 ]。

点击[ 创建应用 ]。

弹出界面填写AppId,填写完成后点击[ 保存 ]。
Note
因AppId属于唯一值,所以此处请您自行设置AppId,比如 "com.VOIDAR.ImageExtension"
Warning
打包时设置的Bundle Identifier,必须与此处设置的AppId相同,否则后续当您需要移除水印时,将无法正常进行。

完成后,获得“AppKey”。

返回Unity,选中ARCamera,查看右侧的Inspector栏,继续完成“App License Key”的设置。

第七步、设置识别图(Marker)
选中ImageExtensionTarget,查看右侧的“Inspector”栏,设置“Image Extension Behaviour (Script)”组件属性。
设置Image File Path = "Panda.jpg",填写时需要包括“文件名”+“后缀jpg”设置Marker Width = "0.2258",填入Marker的真实宽度(米)
Warning
Marker图片文件,必须放在[ Assets ] -> [ StreamingAssets ]文件夹内,本教程使用的是SDK的内置图片。

设置完成后,显示如下。

第八步、设置模型
Note
识别后显示的模型,需要放在ImageExtensionTarget下。
右键选中场景中的“ImageExtensionTarget”,添加一个3D模型“Cube”。

选中“Cube”,调整模型的位置和大小。

第九步、保存场景
选中[ File] -> [ Save Scenes ] ,进行场景保存。

设置文件名为“ImageExtension”,点击[ 保存 ]按钮。

第十步、打包发布
打包流程分为“Android”、“iOS”。
Android
打包Android,需要将Unity切换至Android平台,点击[ File ] -> [ Build Settings... ]。

选中Android标签,如果左下的[ Switch Platform ]按钮为灰色,需要下载Unity Android Support,请点击右侧的[ Open Download Page ]按钮,下载并安装。

点击[ Switch Platform ]按钮,完成Android平台的切换。

切换完成后,先关闭Build Settings界面,继续搭建打包环境。
选中[ Edit ] -> [ Preferences... ],设置参数。

弹出界面选中“External Tools”选项,设置Android SDK和JDK。
Note
如果本地没有SDK和JDK,可以点击后方的[ Download ],在弹出的网页上进行下载即可。
也可以用链接下载安装:
SDK(要科学上网才能打开):https://developer.android.com/studio/index.html
JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装完成后,设置好SDK和JDK的路径就可以了。

选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
设置Camera= "后置摄像头"

选中[ File ] -> [ Build Settings... ],取消默认场景前方的勾选。然后点击[ Add Open Scenes ],添加当前的场景。

添加完成后,如下所示。

设置属性参数
点击[ Player Settings... ]按钮,查看右侧的“Inspector”栏,设置属性参数,您可以自定义。
设置Company= "VOIDAR"设置Product Name= "ImageExtension"-
Important
取消“Multithreaded Rendering”的勾选!
-
Important
设置Bundle Identifier= "com.VOIDAR.ImageExtension"(必须与第六步设置的AppId相同,否则后续当您需要移除水印时,将无法正常进行)

完成设置后,点击[ Build ]按钮。

设置文件名为“ImageExtension”,点击[ 保存 ]按钮,开始打包。

打包过程需要耐心等待一段时间。

完成后,将生成一个“ImageExtension.apk”文件,安卓打包完成。
iOS
iOS打包需要在Mac OS系统中完成,需要准备Mac设备(如MacBook Pro、MacBook、iMac、Mac mini等)。
在Unity中,将开发平台切换至iOS,然后Build生成Xcode工程。
Warning
推荐使用Mac设备的Unity软件来生成Xcode工程。如果之前是在Windows环境下编辑的,可以将Unity工程输出成unitypackage,或拷贝至Mac电脑中进行编辑处理。
启动Unity,打开之前保存的、或者拷贝过来的ImageExtension工程文件(工程已经打开的,跳过这步)

点击[ Open ]按钮打开工程。

将Unity切换至iOS平台,点击[ File ] -> [ Build Settings... ]。

选中iOS标签,如果左下的[ Switch Platform ]按钮为灰色,需要下载Unity iOS Support,请点击右侧的[ Open Download Page ]按钮,下载并安装。

点击[ Switch Platform ]按钮,完成iOS平台的切换。

切换完成后,点击[ Player Settings... ]按钮。

Important
取消“Multithreaded Rendering”的勾选!

关闭Build Settings界面,选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
设置Camera= "后置摄像头"

选中[ File ] -> [ Build Settings... ],取消默认场景前方的勾选。然后点击[ Add Open Scenes ],添加当前的场景。

添加完成后,如下所示。

完成设置后,点击[ Build ]按钮。

准备生成Xcode工程,命名为“Output”,点击[ Save ]。

打开生成的Xcode文件。

设置属性参数
填写配置,将自己的证书、iOS适应版本都正确选上:
左侧点击[ Unity-iPhone ],配置参数,您可以自定义。
设置Display Name= "VOIDAR_Test"-
Important
设置Bundle Identifier= "com.VOIDAR.ImageExtension"(必须与第六步设置的AppId相同,否则后续当您需要移除水印时,将无法正常进行) 设置Version= "1.0"设置Build= “1.0”设置Team= “您自己的证书”设置Deployment Target= “8.1”

添加Accelerate.framework
General页面往下拉,在Linked Frameworks and Libraries中,点击“+”。

弹出界面,选中“Accelerate.framework”,点击[ Add ]。

添加完成,Linked Frameworks and Libraries下方出现“Accelerate.framework”。

添加摄像机权限
选中“Info”标签,点击Supported interface orientations后面的“+”。在弹出列表中选中“Privacy - Camera Usage Description”。


设置Enable Bitcode = “No”
选中”Build Settings”标签,设置Enable Bitcode = “No”。

打包取消armv7
选中“Build Settings”标签,展开Architectures,选择 “Other...”。

弹出界面,选中“armv7”后点击“-”。

取消后显示如下即可。

数据线连接iphone或者ipad,点击[ 运行 ],即可打包。

完成后,iphone或者ipad上,将生成一个“VOIDAR_Test”的APP,iOS打包完成。
至此,ImageTarget Extension Tracking制作完成。