【太虚AR_v0.1】使用教程 | 云识别(图像识别)
太虚AR(VOID AR)
官方QQ群:277574712
技术支持:ar@voidar.net
商务合作:bd@voidar.net
微信公众号:voidar
![](https://img.haomeiwen.com/i6882610/051e55d06e09008a.png)
一、简介
云识别(图像识别)是将识别数据(识别图和显示资源)存放在云服务器上,在云端运行识别算法,实现进行精准识别及跟踪的AR效果。
二、阅读指南
本教程主要介绍如何在Unity环境下进行操作。
默认读者您拥有一定的软件使用、应用开发经验。
本教程只会对Unity的基础使用进行简要说明,如果希望更深入的了解,您可以访问Unity官网查看更加详细的教程。
三、搭建环境
在进行具体操作前,您需要安装下列软件,准备如下环境:
操作系统
- Windows 7 或更高版本
- OS X 10.10 或更高版本
Unity版本
支持Unity 3D版本为:5.2.x - 5.6.x(32位或者64位)、2017.1
推荐使用5.4以后的版本(渲染效果提升)
下载地址:https://unity3d.com/cn/get-unity/download/archive
本教程中使用的Unity版本为:5.5.2(64位)
太虚AR SDK
下载地址:https://www.voidar.net/downloads.php
四、实现流程
第一步、注册并登录云平台
先打开云平台网址,注册账号并登录。网站地址:http://cloud.voidar.net
![](https://img.haomeiwen.com/i6882610/a48ec47ec01581bf.png)
第二步、创建开发者云数据库
进入云平台,新注册用户需要先创建数据库,创建开发者自己的识别库以后,才能管理识别资源。
点击[ 创建数据库 ],每个账号只允许创建1个数据库。
![](https://img.haomeiwen.com/i6882610/175dc6ac2d0c624a.png)
弹出界面填写数据库名称(支持中文),本教程中将数据库名称定为“VOID SLAM”,填写完成后点击[ 保存 ]。
![](https://img.haomeiwen.com/i6882610/aa3ac4fdeff23c31.png)
完成后,即可获得“Accsess Key”和“Secret Key”,这两个Key,在下文Unity中设置属性时会用到。
![](https://img.haomeiwen.com/i6882610/51e8b6f2fc8e67ff.png)
第三步、管理云资源数据
点击云数据库列表中的名称“VOID SLAM”,进入云资源管理界面。
![](https://img.haomeiwen.com/i6882610/b4b3caaa535f0c03.png)
新注册用户没有数据。点击[ 上传图片 ]按钮可以添加数据。
![](https://img.haomeiwen.com/i6882610/ec22b6dfdce13864.png)
添加新资源窗口如下
![](https://img.haomeiwen.com/i6882610/50350a7bfb9c585e.png)
1 云资源名称(必填,支持中文)
2 自定义数据(针对云视频播放,本教程跳过)
3 上传识别图片,仅支持jpg格式
4 选择assetbundle所属的平台(ios / android/ windows / mac)
5 上传对应平台的assetbundle文件
注:先在本地实现图像识别,进行调试后,再将识别资源上传云平台。
下文以“图像识别(单目标)”为内容,创建本地识别。如果您已经熟悉该内容,请直接从“实现流程中的第十二步”开始查看。
第四步、新建Unity工程
打开Unity,新建一个工程。填写Project name为“VOID CLOUD”、选择保存的位置,点击[ Create project ]。
![](https://img.haomeiwen.com/i6882610/e3336dfec0be00e2.png)
第五步、导入太虚AR SDK
选中[ Assets ] -> [ Import Package ] -> [ Custom Package... ],导入太虚AR SDK。
![](https://img.haomeiwen.com/i6882610/e33414d77d5fc4b6.png)
选择下载好的SDK文件(.unitypackage),点击[ 打开 ]按钮。
![](https://img.haomeiwen.com/i6882610/41fb0894c0e58c90.png)
弹出界面,点击[ Import ],导入过程需要耐心等待一段时间。
![](https://img.haomeiwen.com/i6882610/2c22ba421cc05507.png)
如果弹出“API Update Required”界面,请点击[ I Made a Backup, Go Ahead! ]。
![](https://img.haomeiwen.com/i6882610/299d37aac1ec60e3.png)
第六步、删除Main Camera
Unity3D打开时默认是新的Scene,新的Scene自带一个Main Camera和Directional Light对象,我们需要用SDK的ARCamera,故将默认的Camera删除。
右键选中场景中自带的“Main Camera”,点击[ Delete ] 删除。
![](https://img.haomeiwen.com/i6882610/48113a74666e9539.png)
第七步、拖入预制件“ARCamera”、“ImageTarget”
展开[ Assets ] -> [ VoidAR ] -> [ Prefabs ]目录,将预制件“ARCamera”和“ImageTarget”分别拖至场景中。
![](https://img.haomeiwen.com/i6882610/d0dddf528afc1046.png)
操作成功后显示如下。
![](https://img.haomeiwen.com/i6882610/5edd49e667c05586.png)
第八步、设置ARCamera
选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
- 设置MarkerType = "Image",代表识别类型为图像
- 设置Simultaneous Tracking = "1",代表同时跟踪的识别Marker数量为1个
![](https://img.haomeiwen.com/i6882610/38da73f481a47213.png)
第九步、设置识别图(Marker)
选中ImageTarget,查看右侧的“Inspector”栏,设置“Image Target Behaviour (Script)”组件属性。
- 设置Image File Path = "1yuan.jpg",填写时需要包括“文件名”+“后缀jpg”
注:Marker图片文件,必须放在[ Assets ] -> [ StreamingAssets ]文件夹内,本教程使用的是SDK的内置图片。
![](https://img.haomeiwen.com/i6882610/ce24043bfe3e4176.png)
![](https://img.haomeiwen.com/i6882610/62eade438b7e54d3.png)
第十步、设置模型
识别后显示的模型,需要放在ImageTarget下。
右键选中场景中的“ImageTarget”,添加一个3D模型“Cube”。
![](https://img.haomeiwen.com/i6882610/97973938a5e761c9.png)
选中“Cube”,调整模型的位置和大小。
![](https://img.haomeiwen.com/i6882610/d7de552c7a574925.png)
第十一步、进行调试
确保您的PC已经连接了摄像头,然后点击[ 运行 ]按钮。
![](https://img.haomeiwen.com/i6882610/0a3e2dce3915817c.png)
识别成功,完成调试。
![](https://img.haomeiwen.com/i6882610/02b571328eb63fe7.png)
第十二步、设置云识别参数
选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
- 勾选“Use Cloud”
- AccessKey:云管理平台中开发者数据库accessKey对应的值(详见第二步)
- SecretKey:云管理平台中开发者数据库secretKey对应的值(详见第二步)
![](https://img.haomeiwen.com/i6882610/3753a47fa23eab00.png)
再次选中“ARCamera”,点击[ Add Compoent ],添加“Cloud Controller”脚本。
![](https://img.haomeiwen.com/i6882610/4c92827964d133ae.png)
脚本绑定成功后,显示如下。
![](https://img.haomeiwen.com/i6882610/30e6a5516ff15b5b.png)
第十三步、生成Assetbundle
在本地单目标识别调试完成的前提下,利用Unity3D的AssetBundle功能,将本地识别资源ImageTarget打包,生成AssetBundle文件,上传至太虚AR提供的云平台,即可实现云识别功能。
首先,需要将ImageTarget生成Prefab。
选中[ Assets ] 目录。
![](https://img.haomeiwen.com/i6882610/1bdf2f253cb5af87.png)
Hierarchy下方选中“ImageTarget”,将起拖入Assets文件夹中。
![](https://img.haomeiwen.com/i6882610/2e4edb2547156c30.png)
选中刚生成的“ImageTarget.prefab”,点击[ VoidAR ] -> [ AssetBundleBuilder ]。
![](https://img.haomeiwen.com/i6882610/048a4134015fb361.png)
弹出界面中,点击[ BuildAssetBundles ],不同平台的AsssetsBundle包不一致,本教程中全部勾选。
![](https://img.haomeiwen.com/i6882610/028fccad961ee8c5.png)
生成过程需要一定时间,请耐心等待。
![](https://img.haomeiwen.com/i6882610/57cc9b523625f8f3.png)
生成完成后,请关闭该界面。
将在StreamingAssets下生成“Assetbundle资源”,每个平台对应一个同名的子文件夹,如下图:
![](https://img.haomeiwen.com/i6882610/df9ab2bd8c3006b4.png)
第十四步、上传云识别资源
返回第三步的“上传图片”界面,设置并上传相关资源。
- 设置图片名称 = "1yuan"
- 上传图片资源
- 设置assetbundle的平台 = “windows”(第十六步中,将在windows系统下实现云识别。)
- 上传assetbundle文件
其中,"图片资源"和"assetbundle文件"的路径,可以在Unity中选中相关资源,右键点击,选择[ show in Explorer ]查看。查找Windows的assetbundle文件路径,如下所示:
![](https://img.haomeiwen.com/i6882610/28227d38f245b82c.png)
上传完成后,点击[ 保存 ]按钮。
![](https://img.haomeiwen.com/i6882610/48d5471a58eec887.png)
上传完成,云资源库中新添加了一条记录,“识别评分”项值越高,识别图品质越好。此外,添加了资源的平台名称被点亮。
![](https://img.haomeiwen.com/i6882610/2a2ddca1276d15fe.png)
因为已将ImageTarget生成的“assetbundle”上传至云平台,所以在Unity工程文件中删掉ImageTarget。
![](https://img.haomeiwen.com/i6882610/fdaef9791c7b33f3.png)
第十五步、保存场景
选中[ File] -> [ Save Scenes ] ,进行场景保存。
![](https://img.haomeiwen.com/i6882610/4afaae375d64dca1.png)
设置文件名为“VOID CLOUD”,点击[ 保存 ]按钮。
![](https://img.haomeiwen.com/i6882610/1cc417487ea405cd.png)
第十六步、Windows系统实现云识别
确保您的Windows电脑已经连接了摄像头,然后点击[ 运行 ]按钮。
![](https://img.haomeiwen.com/i6882610/e11e061ec8ad5caa.png)
舞台上出现模型,Hierarchy中出现“ImageTarget(Clone)”,即识别成功。
![](https://img.haomeiwen.com/i6882610/6ef08bba27e2dc28.png)
第十七步、打包Android或iOS
打包流程分为“Android打包”、“iOS打包”。
- Android打包
返回云识别后台,设置并上传相关资源。
针对“1yuan”识别图进行操作,点击[ 修改 ]按钮。
![](https://img.haomeiwen.com/i6882610/4d7d896bddd2870f.png)
弹出如下界面。
![](https://img.haomeiwen.com/i6882610/0bd0859319234536.png)
- 设置assetbundle的平台 = “android”
- 上传assetbundle文件
"assetbundle文件"的路径,可以在Unity中选中相关资源,右键点击,选择[ show in Explorer ]查看。
查找Android的assetbundle文件路径,如下所示:
![](https://img.haomeiwen.com/i6882610/c3ed33e8e94108c4.png)
上传完成后,点击[ 保存 ]按钮。
![](https://img.haomeiwen.com/i6882610/e525ed9943bbd5e6.png)
上传完成,添加了资源的“Android平台名称”被点亮。
![](https://img.haomeiwen.com/i6882610/ee725d4e9aca2aaf.png)
打包Android,需要将Unity切换至Android平台,点击[ File ] -> [ Build Settings... ]。
![](https://img.haomeiwen.com/i6882610/e48911a656ee586a.png)
选中Android标签,如果左下的[ Switch Platform ]按钮为灰色,需要下载Unity Android Support,请点击右侧的[ Open Download Page ]按钮,下载并安装。
![](https://img.haomeiwen.com/i6882610/2cf3841ff9ce6e11.png)
点击[ Switch Platform ]按钮,完成Android平台的切换。
![](https://img.haomeiwen.com/i6882610/e6ee7f0d033d49a9.png)
切换完成后,先关闭Build Settings界面,继续搭建打包环境。
选中[ Edit ] -> [ Preferences... ],设置参数。
![](https://img.haomeiwen.com/i6882610/a498dcceabb9647f.png)
弹出界面选中“External Tools”选项,设置Android SDK和JDK。
如果本地没有SDK和JDK,可以点击后方的[ Download ],在弹出的网页上进行下载即可。
也可以用链接下载安装:
SDK(要科学上网才能打开):https://developer.android.com/studio/index.html#Other
JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装完成后,设置好SDK和JDK的路径就可以了。
![](https://img.haomeiwen.com/i6882610/eaaf056d0c9622a3.png)
选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
- 设置Camera = "后置摄像头"
![](https://img.haomeiwen.com/i6882610/99d79d8027901542.png)
选中[ File ] -> [ Build Settings... ],取消默认场景前方的勾选。然后点击[ Add Open Scenes ],添加当前的场景。
![](https://img.haomeiwen.com/i6882610/7e87ba2b1a6ff723.png)
添加完成后,如下所示。
![](https://img.haomeiwen.com/i6882610/77e240e7ed21f2a4.png)
点击[ Player Settings... ]按钮,查看右侧的“Inspector”栏,设置属性参数,您可以自定义。
- 设置Company = "VOIDAR"
- 设置Product Name = "VOID CLOUD"
- 设置Bundle Identifier= "com.VOIDAR.CLOUD"
注:Bundle Identifier不能使用默认值,否则无法打包。
![](https://img.haomeiwen.com/i6882610/ed95ea0a67b082ab.png)
完成设置后,点击[ Build ]按钮。
![](https://img.haomeiwen.com/i6882610/dca431e00cc346bc.png)
设置文件名为“VOID CLOUD”,点击[ 保存 ]按钮,开始打包。
![](https://img.haomeiwen.com/i6882610/4d0b9f2894118a9a.png)
打包过程需要耐心等待一段时间。
![](https://img.haomeiwen.com/i6882610/4e4f42c4a91ccab6.png)
完成后,将生成一个“VOID CLOUD.apk”文件,安卓打包完成。
- iOS打包
iOS打包需要在Mac OS系统中完成,需要准备Mac设备(如MacBook Pro、MacBook、iMac、Mac mini等)。
在Unity中,将开发平台切换至iOS,然后Build生成Xcode工程。
注:推荐使用Mac设备的Unity软件来生成Xcode工程。如果之前是在Windows环境下编辑的,可以将Unity目录下的整个工程文件,拷贝至Mac电脑中进行编辑处理。
启动Unity,打开之前保存的、或者拷贝过来的VOID CLOUD工程文件(工程已经打开的,跳过这步)
![](https://img.haomeiwen.com/i6882610/ea764d7315f3221a.png)
点击[ Open ]按钮打开工程。
![](https://img.haomeiwen.com/i6882610/e946713f35302171.png)
返回云识别后台,设置并上传相关资源。
针对“1yuan”识别图进行操作,点击[ 修改 ]按钮。
![](https://img.haomeiwen.com/i6882610/02fc37e37bd2ebe6.png)
弹出如下界面。
![](https://img.haomeiwen.com/i6882610/140b4c170a582048.png)
- 设置assetbundle的平台 = “ios”
- 上传assetbundle文件
"assetbundle文件"的路径,可以在Unity中选中相关资源,右键点击,选择[ show in Explorer ]查看。
查找iOS的assetbundle文件路径,如下所示:
![](https://img.haomeiwen.com/i6882610/2da115300446f7ed.png)
上传完成后,点击[ 保存 ]按钮。
![](https://img.haomeiwen.com/i6882610/96ed15a56ea436b7.png)
上传完成,添加了资源的“iOS平台名称”被点亮。
![](https://img.haomeiwen.com/i6882610/e749987df822ff77.png)
将Unity切换至iOS平台,点击[ File ] -> [ Build Settings... ]。
![](https://img.haomeiwen.com/i6882610/59cca1e78254ea9a.png)
选中iOS标签,如果左下的[ Switch Platform ]按钮为灰色,需要下载Unity iOS Support,请点击右侧的[ Open Download Page ]按钮,下载并安装。
![](https://img.haomeiwen.com/i6882610/93cba9e4d2242d9b.png)
点击[ Switch Platform ]按钮,完成iOS平台的切换。
![](https://img.haomeiwen.com/i6882610/0fb1107b81174070.png)
切换完成后,先关闭Build Settings界面。
选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
- 设置Camera = "后置摄像头"
![](https://img.haomeiwen.com/i6882610/4f6021b6bf94afc6.png)
选中[ File ] -> [ Build Settings... ],取消默认场景前方的勾选。然后点击[ Add Open Scenes ],添加当前的VOID CLOUD场景。
![](https://img.haomeiwen.com/i6882610/e1909dfbeabcbf82.png)
添加完成后,如下所示。
![](https://img.haomeiwen.com/i6882610/9e0a84cc6c801328.png)
完成设置后,点击[ Build ]按钮。
![](https://img.haomeiwen.com/i6882610/22d43afbd9c3e7d8.png)
准备生成Xcode工程,命名为“Output”,点击[ Save ]。
![](https://img.haomeiwen.com/i6882610/99e05ba3f100cfe1.png)
打开生成的Xcode文件。
![](https://img.haomeiwen.com/i6882610/79d495283fe620a0.png)
填写配置,将自己的证书、iOS适应版本都正确选上:
左侧点击[ Unity-iPhone ],配置参数,您可以自定义。
- 设置Display Name = "VOIDAR_Test"
- 设置Bundle Identifier = "com.VOIDAR.Demo"
- 设置Version = "1.0"
- 设置Build = “1.0”
- 设置Team = “您自己的证书”
- 设置Deployment Target = “8.1”
![](https://img.haomeiwen.com/i6882610/0ea9a65a645cb1a0.png)
General页面往下拉,在Linked Frameworks and Libraries中,点击“+”。
![](https://img.haomeiwen.com/i6882610/9b124638bc2d3203.png)
弹出界面,选中“Accelerate.framework”,点击[ Add ]。
![](https://img.haomeiwen.com/i6882610/3a42822aec5d61f5.png)
添加完成,Linked Frameworks and Libraries下方出现“Accelerate.framework”。
![](https://img.haomeiwen.com/i6882610/aadb56d53d1ff6fc.png)
添加摄像机权限。
选中“Info”标签,点击Supported interface orientations后面的“+”。在弹出列表中选中“Privacy - Camera Usage Description”。
![](https://img.haomeiwen.com/i6882610/486822da12e6bd7e.png)
![](https://img.haomeiwen.com/i6882610/b1cbfd698f812f63.png)
选中”Build Settings”标签,设置Enable Bitcode = “No”。
![](https://img.haomeiwen.com/i6882610/d0136afb1158ab37.png)
数据线连接iphone或者ipad,点击[ 运行 ],即可打包。
![](https://img.haomeiwen.com/i6882610/1fb8cfa63451debb.png)
完成后,iphone或者ipad上,将生成一个“VOIDAR_Test”的APP,iOS打包完成。
至此,云识别(图像识别)制作完成。