Unity-AR-Vuforia

前言
增强现实技术是当前信息技术领域的一项重要的综合性技术,融合了模式识别、计算机图形学等多个学科的知识。今天我们就和大家一起来看一下,这个技术到底可以带给我们什么吧。

image

image

ImageTarget** [图片目标]

1.环境配置

Windows 10(64-bit)操作系统、Unity 3D 5.3.x+(64-bit)、Vuforia 6.0+ SDK

这里需要对开发环境进行简要的说明。
  (1)首先Windows系统和Mac OS 都是可以的,我平时用Windows 10,所以就以此为例子来进行讲解。当然Win7、Win8 也都是可以的。目前虽然也有支持Linux的Unity3D 非官方版本,但是将Vuforia导入后运行会报错,目前还没解决。所以推荐使用Windows或者Mac OS。

(2)Unity3D从Unity 5 开始分为了32位版本和64位版本,如果你的计算机是64位系统,可以自由选择,但是注意,Vuforia SDK只有到Vuforia 6才开始支持64位的Unity。这也就意味着,如果你使用VuforiaSDK之前的一些版本,例如Vuforia 4和Vuforia 5,你就只能使用32位的Unity了。

2 下载Vuforia 6

2.1 下载Vuforia 6 SDK [https://developer.vuforia.com/downloads/sdk]

当前SDK最新的版本是Vuforia 6。SDK选项卡下有不同平台的开发包。Samples选项卡下有不同平台的例程,你可以在熟悉使用SDK后自己下载使用,其中就包括平面跟踪和物体跟踪等常见功能。

image

点击Download for Unity,下载到本地,下载路径最好是纯英文的,否侧导入unity时会报错。如果需要注册账号,就注册一个,并且要记录下来。因为以后管理秘钥和数据库还会用到。

2.2 申请License

点击Develop选项卡下的License Manager选项卡,点击Add License Key。

image

然后选择相应的信息,如下图,并输入一个App Name。

image

点击Next,出现确认信息界面,再确认即可。

image

然后回到License Manager面板,发现已经有了刚刚建立的MyFirstAR(你肯定用的是其他的名字吧,都是可以的)

image

点开这个刚刚建立的条目,显示如下。

image

把上面这一大段字符复制到本地保存起来,以备以后使用。

2.3 建立数据库

点击Develop下的Target Manager选项卡,会看到如图所示。

image

然后点击Add Database,在弹出的对话框中输入名字,并选择Type为Device,然后Create。

image

然后Target Manager中会显示新添加的数据库,打开它,显示如下。

image

点击Add Target来添加自己的标志图,作为被跟踪的标志板。

image

由于我使用的是平面标志板,所以Type中选择Single Image,File选择自己准备好的图像。我是选择了一个龙珠人物的图像。图像要求纹理复杂并且不能是对称的。Width要求输入图像的宽度。我使用的图像打印出来是0.4m,所以为了符合实际尺寸,我就将宽度设置为了0.4。这里需要知道,unity里面默认的单位是米。然后点Add,就成功将图案上传到服务器了。

image

如上图,我们建立的数据库中已经有了添加的图像,并且评分为5星,表明图像上特征点很多,适合作为标志图案。然后点击Download Database(All),选择开发平台为Unity Editor。

image

3 建立AR工程

打开之前建立的空工程,导入下载的Vuforia 6 SDK和下载下来的数据库。

依次选择Assets——Import Package——Custom Package,分别导入上述文件(vuforia-unity-6-0-117.unitypackage和MyDataset.unitypackage,也许你用的是其他的名称,只要选对相应文件即可)。

将当前场景保存为AR.unity,然后找到Project下的All Prefabs,点击会在右侧显示下图。

image

将ARCamera和ImageTarget两个都拖放到Hierarchy中,点击刚拖进来的ImageTarget,在右侧的Inspector中找到C#脚本ImageTargetBehaviour,其下拉选项的Database选择“MyDataset”,ImageTarget就选择你的图片名,其他默认。

image

然后在Hierarchy中点击ARCamera,在右侧的C#脚本Vuforia Behaviour下拉选项中找到App License Key,将申请的License key复制到方框中。找到Database Load Behaviour脚本,勾选Load MyDataset Database,然后它下面会出现Activate,也勾选上。

image

现在所有的软件设置已经完成,现在需要在场景中叠加一些虚拟物体。我们先创建一个Cube,并将它作为ImageTarget的子物体,调整位置和大小,如图所示。

image

保证你的摄像头是正常连接上的。查看的方法是,点击Hierarchy中的ARCamera,然后查看右侧Inspector中的WebCamBehaviour脚本是否检测到了Camera Device。如图,我的摄像头采用的是Logitech HD Pro C920。

image

一切就绪后,保存场景,并点击运行按钮。可以看到效果如图

image

3DTarget** [3D目标目标]

1. 插件下载

登陆官网,点击Develop下的Tools,下载Vuforia Object Sanner(Vuforia物体扫描器),Vuforia Object Scanner是一个用于扫描物体表面识别点信息的App,只支持Android操作系统,根据官网规定,建议大家采用Samsung Galaxy S5和Google Nexus 5这两款安卓手机进行操作。

[
Vuforia----3D物体识别

下载完毕并解压之后会得到以下两部分内容:


Vuforia----3D物体识别

文件夹Media:三维物体扫描图,需要采用A4纸打印出来。
scanner.apk:用于三维物体扫描,需要安装上述描述的安卓手机中。

接下来,我们依然按照之前章节中的方法下载Samples插件包并导入到工程中,下图中Object Recognition表示对应的插件包中包含物体识别案例。

Vuforia----3D物体识别

2.扫描三维物体识别信息(点云数据)

将上述打印出来的纸张放在桌面上,并在右上角坐标区域放置需要识别的三维物体,并打开已经安装的扫描数据app,360度扫描物体将生成后缀名为.od的数据文件。

Vuforia----3D物体识别

3、创建数据库

接下来登陆Vuforia开发者官网创建数据库,本次我们选择3D Object,点击Browse按钮选择上一步骤中生成的数据文件。

4.创建成功之后点击下载数据包,并导入到Unity工程中。

5.实现三维物体扫描

5.1.在Vuforia文件夹中找到ARCamera和ObjectTarget两个预制件并拖拽到层级视图Hierarchy。
5.2.选中ObjectTarget,在Inspector面板中选择三维数据包。
5.3.然后在ObjectTarget下创建一个扫描成功后要显示的子对象,并调节到合适的位置大小,在此我们直接创建Unity子弹的三维模型Sphere。

6.最后点击运行,可以看到三维物体的识别效果如图所示。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容