Vuforia简介
Vuforia是创建增强现实应用程序的软件平台。开发人员可以轻松地将高级计算机视觉功能添加到任何应用程序,使其能够识别图像和对象,并与现实世界中的空间进行交互。
Vuforia平台支持Android,iOS和UWP设备的AR应用程序开发。
环境搭建
首先,需要在**Vurforia的官网**上注册一个账户,自己所有做的项目都是和这个账户进行关联的。
在官网上可以下载Vuforia的SDK,但是从unity 2017.2版本以后,vuforia已经可以在安装unity的时候就可以直接选择安装了,官网提供了两个与unity有关的插件,第一个Download unity Extension(legacy)是为了以前用vuforia SDK做的程序在用新版本打开的时候接入使用的,第二个Download Unity打开会发现其实就是进入unity的官网,就是因为vuforia已经可以随着unity安装了。
如何查看自己是否已经安装过Vuforia
打开unity任意一个项目,打开GameObject菜单下如果有Vuforia选项就代表已经安装过了
下面我来图解一下安装教程:
1.首先打开安装包(与自己使用的unity的版本相同的安装包),点击next
2.然后在Iaccept the terms of the License Agreement前面的框选择上,点击next
3.接着是选择unity的一些插件,把Vuforia Augmented….这个插件选择上点击next即可。
4.接着选择自己以前安装unity的位置,选择相同的路径后点击next(在unity install folder)内容里进行选择
5.安装完毕后点击Ignore即可
6.然后就是进行自动安装了
7.安装完毕后运行即可使用
LicenseKey获取及注册
1.首先先创建一个Unity工程,和普通的3D工程一样。
2.第一打开程序,如果采用的是unity下载补充的vuforia,需要打开GameObject菜单里面Vuforia里面的AR Camera,会弹出一个提示框提示导入资源,点击Import即可。
3.我们需要的资源从GameObject菜单里面的vuforia进行点击即可,如果选择用的是2017.2以前版本使用的是补丁包的情况,需要在项目窗口下的Vuforia里面的Prefabs里寻找自己需要创建的资源进行拖拽到层级窗口里即可。
4.在开始项目制作前需要激活自己的vuforia,首先需要打开file菜单下的Build Setting…,然后点击Player Settings…,然后在检视窗口找到XR Setting目录,打开里面的Vuforia Augmented Realit即可
5.接着是在官网注册自己的项目,先打开vuforia的官网,然后点击Develop目录,然后点击Get Development Key,然后输入自己项目的名字,在By checking….前面打钩,点击Confirm即可。
6.在官网Develop目录下点击自己的项目,进入的页面也就包含我们需要的LicenseKey。复制我们的LicenseKey即可
7.打开自己的unity项目,然后在项目里创建一个AR Camera(上面已经讲述创建AR资源的方法了,在第3步)。在AR Camera的检视窗口里找到Vuforia Behaviour插件,点击里面的Open Vuforia con…,然后在App License Key里粘贴自己刚才复制的key。
AR Camera介绍
简单的说这个资源就是用来调用我们设备上的照相机的。
Vuforia Behaviour组件
Woeld Center Mode用来设置我们的中心点的。里面有四个选项,分别设置我们以什么为直接中心坐标的。
名称 | 功能 |
---|---|
Camera | 是以我们的摄像机为世界坐标 |
FIST_TARGET | 是以我们第一个需要识别的资源为中心坐标 |
DEVICE_TRACKING | 是以设备正在追踪的物体为世界中心坐标 |
SPECIFIC_TARGET | 我们指定物体为中心坐标,物体必须继承Trankable Behaviour |
Open Vuforia configuration
名称 | 功能 |
---|---|
Vuforia Version | 版本信息 |
App License Key | 秘钥,用来标识软件用的 |
Camera Device Mode | MODE_OPTIMIZE_QUALITY:质量优先。MODE_OPTIMIZE_SPEED:速度优先。 MODE_DEFAULT:默认,在质量和速度之间取合适。 |
Max Simultaneous Tracked Images | 最大追踪图片数量,可以识别多张图片。 |
Max Simultaneous Tracked Object | 最大追踪物体数量,可以识别多个物体。 |
Camera Direction | 摄像机的调用,有前置、后置和默认,默认就是设备系统默认的摄像头,电脑唯一的摄像头识别为后置摄像头。 |
Digital Eyewear | 判断设备的类型,Handheld:手持。Digital Eyeweay:应用于微软的全息眼睛的。 Phone+Viewer:MR(AR与VR结合)所用。 |
Databases | 数据库,把要识别的图片上传到数据库,这样数据库生成的包会传回来,下次识别就会识别出上传的图片了。 |
图片的选择
Vuforia识别的原理是通过检测自然特征点的匹配来完成的。将Target Manager中的image检测出的特征点保存在数据库中,然后在实时检测出真实图像中的特征点与数据库中模板图片的特征点数据进行匹配。
1.服务器对上传图片进行灰度处理,图片变为黑白图像;
2.提取黑白图像特征点;
3.将特征点数据打包;
4.程序运行时对比特征点数据包;
被上传到官网的整幅图片的8%宽度被称为功能排斥缓冲区,意为该8%的区域不会被书别。
图片上传
1.登录到官网,在官网的Develop目录下,有个Target Manager,这个就是图片的数据库。
2.点击AddDatabese按钮添加数据库,并且自定义数据库名字,然后点击Create。
3.点击刚才创建的数据库,进入数据库
4.点击Add Target按钮添加图片,然后点击Browse选择自己的图片,Width自己可以先随意设置,然后设置图片的名字,最后点击Add进行添加即可
5.上传完后点击Download Database进行下载,可以下载全部,也可以选择下载,然后就是选择Unity Editor进行下载,最后点击Download就可下载我们需要的资源了。
6.把下载的包导入unity项目里。(上面是数据库中图片,下面是配置文件)
简单案例
1.首先在层级视图框创建一个AR资源ImageTarget
2.在刚才创建的ImageTarget的检视窗口中,找到Image Target Behaviour组件,找到里面的Database属性,选择刚才导入的数据库,然后在ImageTarget属性里选择自己想要识别的图片。
3.在AR Camera的层级视图里点击Open Vuforia ….,然后找到Database,把自己的数据库打上对勾并且把Achieve也打上对勾。
4.然后在ImageTargrt下面放入自己想要展现的Object,然后就可以识别出现自己想要的效果了。
ImageTarget机制分析
在AR Camera组件上有一个DefaultTrackableEventHandler脚本,在这个脚本的PRIVATE_METHODS里有两个函数,OnTrackingFound()和OnTrackingLost()分别是识别图片时和丢失图片时的两个执行函数,丢失就是摄像头没检测到能识别的图片。自己可以在这两个脚本里添加自己想要操作的代码。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 841774407@qq.com