太虚AR(VOID AR)

官方网站:https://www.voidar.net
官方QQ群:277574712
技术支持:ar@voidar.net
商务合作:bd@voidar.net
微信公众号:voidar

一、简介

云识别(图像识别)是将识别数据(识别图和显示资源)存放在云服务器上,在云端运行识别算法,实现进行精准识别及跟踪的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位)

四、实现流程

第一步、注册并登录云平台

先打开云平台网址,注册账号并登录。网站地址:http://cloud.voidar.net

第二步、创建开发者云数据库

进入云平台,新注册用户需要先创建数据库,创建开发者自己的识别库以后,才能管理识别资源。

点击[ 创建数据库 ],每个账号只允许创建1个数据库。

弹出界面填写数据库名称(支持中文),本教程中将数据库名称定为“VOID SLAM”,填写完成后点击[ 保存 ]。

完成后,即可获得“Accsess Key”和“Secret Key”,这两个Key,在下文Unity中设置属性时会用到。

第三步、管理云资源数据

点击云数据库列表中的名称“VOID SLAM”,进入云资源管理界面。

新注册用户没有数据。点击[ 上传图片 ]按钮可以添加数据。

添加新资源窗口如下

1 云资源名称(必填,支持中文)

2 自定义数据(针对云视频播放,本教程跳过)

3 上传识别图片,仅支持jpg格式

4 选择assetbundle所属的平台(ios / android/ windows / mac)

5 上传对应平台的assetbundle文件

注:先在本地实现图像识别,进行调试后,再将识别资源上传云平台。

下文以“图像识别(单目标)”为内容,创建本地识别。如果您已经熟悉该内容,请直接从“实现流程中的第十二步”开始查看。

第四步、新建Unity工程

打开Unity,新建一个工程。填写Project name为“VOID CLOUD”、选择保存的位置,点击[ 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

Unity3D打开时默认是新的Scene,新的Scene自带一个Main Camera和Directional Light对象,我们需要用SDK的ARCamera,故将默认的Camera删除。

右键选中场景中自带的“Main Camera”,点击[ Delete ] 删除。

第七步、拖入预制件“ARCamera”、“ImageTarget”

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

操作成功后显示如下。

第八步、设置ARCamera

选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。

  • 设置MarkerType = “Image”,代表识别类型为图像
  • 设置Simultaneous Tracking = “1”,代表同时跟踪的识别Marker数量为1个

第九步、设置识别图(Marker)

选中ImageTarget,查看右侧的“Inspector”栏,设置“Image Target Behaviour (Script)”组件属性。

  • 设置Image File Path = “1yuan.jpg”,填写时需要包括“文件名”+“后缀jpg”

注:Marker图片文件,必须放在[ Assets ] -> [ StreamingAssets ]文件夹内,本教程使用的是SDK的内置图片。

第十步、设置模型

识别后显示的模型,需要放在ImageTarget下。

右键选中场景中的“ImageTarget”,添加一个3D模型“Cube”。

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

第十一步、进行调试

确保您的PC已经连接了摄像头,然后点击[ 运行 ]按钮。

识别成功,完成调试。

第十二步、设置云识别参数

选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。

  • 勾选“Use Cloud”
  • AccessKey:云管理平台中开发者数据库accessKey对应的值(详见第二步)
  • SecretKey:云管理平台中开发者数据库secretKey对应的值(详见第二步)

再次选中“ARCamera”,点击[ Add Compoent ],添加“Cloud Controller”脚本。

脚本绑定成功后,显示如下。

第十三步、生成Assetbundle

在本地单目标识别调试完成的前提下,利用Unity3D的AssetBundle功能,将本地识别资源ImageTarget打包,生成AssetBundle文件,上传至太虚AR提供的云平台,即可实现云识别功能。

首先,需要将ImageTarget生成Prefab。

选中[ Assets ] 目录。

Hierarchy下方选中“ImageTarget”,将起拖入Assets文件夹中。

选中刚生成的“ImageTarget.prefab”,点击[ VoidAR ] -> [ AssetBundleBuilder ]。

弹出界面中,点击[ BuildAssetBundles ],不同平台的AsssetsBundle包不一致,本教程中全部勾选。

生成过程需要一定时间,请耐心等待。

生成完成后,请关闭该界面。

将在StreamingAssets下生成“Assetbundle资源”,每个平台对应一个同名的子文件夹,如下图:

第十四步、上传云识别资源

返回第三步的“上传图片”界面,设置并上传相关资源。

-设置图片名称 = “1yuan”
-上传图片资源
-设置assetbundle的平台 = “windows”(第十六步中,将在windows系统下实现云识别。)
-上传assetbundle文件

其中,”图片资源”和”assetbundle文件”的路径,可以在Unity中选中相关资源,右键点击,选择[ show in Explorer ]查看。查找Windows的assetbundle文件路径,如下所示:

上传完成后,点击[ 保存 ]按钮。

上传完成,云资源库中新添加了一条记录,“识别评分”项值越高,识别图品质越好。此外,添加了资源的平台名称被点亮。

因为已将ImageTarget生成的“assetbundle”上传至云平台,所以在Unity工程文件中删掉ImageTarget。

第十五步、保存场景

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

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

第十六步、Windows系统实现云识别

确保您的Windows电脑已经连接了摄像头,然后点击[ 运行 ]按钮。

舞台上出现模型,Hierarchy中出现“ImageTarget(Clone)”,即识别成功。

第十七步、打包Android或iOS

打包流程分为“Android打包”、“iOS打包”。

- Android打包

返回云识别后台,设置并上传相关资源。

针对“1yuan”识别图进行操作,点击[ 修改 ]按钮。

弹出如下界面。

-设置assetbundle的平台 = “android”
-上传assetbundle文件

“assetbundle文件”的路径,可以在Unity中选中相关资源,右键点击,选择[ show in Explorer ]查看。

查找Android的assetbundle文件路径,如下所示:

上传完成后,点击[ 保存 ]按钮。

上传完成,添加了资源的“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。
如果本地没有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的路径就可以了。

选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。

  • 设置Camera = “后置摄像头”

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

添加完成后,如下所示。

点击[ Player Settings… ]按钮,查看右侧的“Inspector”栏,设置属性参数,您可以自定义。

  • 设置Company = “VOIDAR”

  • 设置Product Name = “VOID CLOUD”

  • 设置Bundle Identifier= “com.VOIDAR.CLOUD”

注:Bundle Identifier不能使用默认值,否则无法打包。

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

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

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

完成后,将生成一个“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工程文件(工程已经打开的,跳过这步)

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

返回云识别后台,设置并上传相关资源。

针对“1yuan”识别图进行操作,点击[ 修改 ]按钮。

弹出如下界面。

-设置assetbundle的平台 = “ios”
-上传assetbundle文件

“assetbundle文件”的路径,可以在Unity中选中相关资源,右键点击,选择[ show in Explorer ]查看。

查找iOS的assetbundle文件路径,如下所示:

上传完成后,点击[ 保存 ]按钮。

上传完成,添加了资源的“iOS平台名称”被点亮。

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

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

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

切换完成后,先关闭Build Settings界面。

选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。

  • 设置Camera = “后置摄像头”

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

添加完成后,如下所示。

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

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

打开生成的Xcode文件。

填写配置,将自己的证书、iOS适应版本都正确选上:

左侧点击[ Unity-iPhone ],配置参数,您可以自定义。

  • 设置Display Name = “VOIDAR_Test”
  • 设置Bundle Identifier = “com.VOIDAR.Demo”
  • 设置Version = “1.0”
  • 设置Build = “1.0”
  • 设置Team = “您自己的证书”
  • 设置Deployment Target = “8.1”

General页面往下拉,在Linked Frameworks and Libraries中,点击“+”。

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

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

添加摄像机权限。

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

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

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

完成后,iphone或者ipad上,将生成一个“VOIDAR_Test”的APP,iOS打包完成。

至此,云识别(图像识别)制作完成。

【太虚AR_v0.1】使用教程 | 云识别(图像识别)相关推荐

  1. 3D点云识别安全吗? 密歇根大学等提出稳健性分析数据集应对严重失真

    来源丨机器之心 来自密歇根大学等机构的研究者提出了一个新颖且全面的数据集 ModelNet40-C ,以系统地测试以及进一步提高点云识别模型对于失真的稳健性. 3D 点云广泛应用于 3D 识别技术中. ...

  2. 语音云识别工具_语音识别工具_web语音识别应用程序的工具 - 云+社区 - 腾讯云...

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 语音识别服务具备识别准确率高.接入便捷.性能稳定等特点. 腾讯云语音识别 ...

  3. EasyAR笔记01 检测云识别是否存在相似图片

    本文原创,转载请注明出处:https://blog.csdn.net/qq_36503704/article/details/86677237 Easy AR 的CRS(云识别)自带检测功能,小编这里 ...

  4. 使用百度云的图像识别

    最近,老大让我研究下百度云的图像识别,以为会有android版本的,没想到只有java sdk,没办法,自己调着来呗. 百度云提供的使用说明把我看得好累,先把两个jar包放进去很简单,so easy, ...

  5. 使用百度云识别图片中的文字(二):获取图片中的文字

    使用百度云识别图片中的文字(二):获取图片中的文字 上一篇文章中提到怎样获取access_token.此篇文章就是通过access_token来识别图片中的文字. 先来看看:官方的介绍吧: 本文档主要 ...

  6. java识别系统_[Java教程]Java识别操作系统

    [Java教程]Java识别操作系统 0 2016-11-03 19:00:10 1 /** 2 * Created by xfyou on 2016/11/3. 3 */ 4 public clas ...

  7. 本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...

    点击我爱计算机视觉标星,更快获取CVML新技术 今天汇总了本周新出的计算机视觉开源代码.(有部分已经有git地址但还没上传代码) 共有12份来自前沿计算机视觉研究的代码,CV君数了数,竟然发现其中10 ...

  8. 云展网教程 | 云展网电子杂志页面排版最佳尺寸,最佳字体,字号

    想在云展网制作3D翻页电子杂志,都得先用排版软件排版好文件,输出PDF格式文件,然后才能上传到云展网转换成翻页电子杂志(图片.word以及PPT等需要先转换成PDF格式.教程请见<云展网教程 | ...

  9. java 获取百度云盘图片_java 利用百度云识别图片文字

    一.百度云使用步骤 1.进入https://console.bce.baidu.com/#/index/overview 登录百度云账号.百度所有账号都是通用的,可以直接利用百度的其他账号(百度网盘. ...

最新文章

  1. altium designer显示Analyzing GND,变得很卡
  2. Premiere Pro CC2015软件安装教程
  3. java连接hbase_HBase 工具 | hbasesdk 推出HQL功能
  4. nginx +php + redis和 mysql 集群部署_CentOS安装配置LNMP(Linux+Nginx+PHP+MySQL)和Redis
  5. oracle v$sql last_load_time,Oracle 等待事件V$视图
  6. git 创建本地仓库、远程仓库,上传项目
  7. SQL基础知识:DDL、DML、DQL
  8. Linux开启路由转发功能
  9. hive学习08天-一次hvie面试题
  10. IOS多线程任务(综述篇)
  11. c# ComboBox禁用鼠标滚轮
  12. 2019日历全年一张_蒙太奇手帐丨2019品牌日历合集,手帐素材最佳选择
  13. 动态ip如何做域名解析
  14. Vulkan教程 - 08 着色器及编译SPIR-V
  15. 利用leaflet做一个飞机航线 可根据方向动态掉头
  16. 饭后的不良习惯,看看你中了几招?
  17. 哪些企业可以做知识产权贯标,你不得不了解的事!
  18. C++类与对象——封装
  19. Lua 5.0 参考手册
  20. 软件测试行业的未来趋势及规划

热门文章

  1. 【小程序开发之准备工作】如何开通云开发和CMS内容管理平台
  2. (十九)VMware Harbor 详细介绍
  3. 计算机中华五岳说课稿,中国五岳 地理课前三分钟演讲.ppt
  4. brew对redis的使用
  5. 计算机网络常见的面试题(牛客网总结)
  6. [buuctf]ciscn_2019_ne_5
  7. 记录一次公选课刷课过程,由抓包到代码实现【原创,转载请说明】。
  8. 关于iPhone X下Home Indicator(白条)的隐藏和延迟响应
  9. 仿热血江湖帮战客方血帮战 准备记时器结束事件
  10. 如何在VC中加减日期及 CTime COleDateTime的常用操作和比较