Vuforia AR的介绍和使用
定位的不同
目前世界上主流的AR SDK提供厂商,国外的主要是Vuforia、Metaio,国内的主要是EasyAR。其中Metaio在2015年5月已被Apple重金收购,之后就没有再对外公开过SDK,经过两年的封闭开发,Apple已经打造出了强大的ARKit,能够基于庞大的iOS和iPad设备生产出各种惊艳的AR产品。Vuforia也在2015年11月被PTC公司重金收购,但是后续一直在更新并提供SDK,因此在ARKit普及之前,Vuforia一直是开发者最青睐的AR SDK,众多的功能以及高质量的识别技术,使得Vuforia早已深入人心。
目前版本
Vuforia主要由三大部分组成:
- Vuforia引擎。
这个引擎是一个静态链接库,作为客户端封装进最终的App中,用来进行最主要的识别功能,支持iOS、Android和UWP,并且根据不同的平台开放出了不同的SDK,可以根据需要从Android Studio、Xcode、Visual Studio以及Unity中任选一种作为开发工具。本系列是以Unity为开发工具,因为Unity本来就是个游戏引擎,对3D模型的导入以及控制非常方便,非常适合开发AR程序;
- 一系列工具。
Vuforia提供了一系列的工具,用来创建对象、管理对象数据库以及管理程序licenses。Target Manager是一个网页程序,开发者在里面创建和管理对象数据库,并且可以生成一系列的识别图像,用在AR设备以及云端上。Licenses Manager用来创建和管理程序licenses,因为每一个AR程序都有一个唯一的licenses。Vuforia Object Scanner是Vuforia近段时间新出的工具,用来进行十分黑科技的功能--实物扫描,但是很遗憾目前只支持某些Android设备。
- 云识别服务。
当你的AR程序需要识别数量很庞大的图片对象,或者你的对象数据库需要经常更新,可以选择Vuforia的云识别服务。Vuforia Web Services可以让你很轻松的管理数量庞大的对象数据库,并且可以建立自动的工作流。
根据功能的不同,Vuforia支持很多类型的AR识别类型,主要有以下几种:
Image Targets
这是最常用、也是最简单的识别对象,即单一静态的平面图像,比如打印的图片或者产品包装;
VuMark
这是Vuforia自己研发的一种新型条形码,并且被称为下一代条形码,你能够自己随意设计这种条形码的样式,并且在其中融入相关的数据信息;
Multi-Targets
多对象识别,可以同时识别多张Image Targets,并且可以把它们和几何立体物体结合起来,比如一个纸盒子,或者任意形状的平面;
Cylinder Targets
是形状类似于圆柱形的图片,可以将这些图片贴到一些圆柱形物体上比如瓶子、杯子等等,进行识别;
Text Recognization (Native only)
文字识别,可以识别大约10万个英文单词,对于一些英语教育产品很是实用。但是很遗憾,不支持中文汉字识别,只支持英文;
Object Recognization
实物识别,这是Vuforia在今年前不久推出的一种新型识别,识别对象已经从简单的图像中跳出来了,可以基于现实生活中的实物模型进行扫描识别,很是黑科技,这也代表着AR的未来。但是很遗憾目前只支持三星S7等少数Android手机,不过随着技术的进步,不久的未来一定会全平台覆盖;
Smart Terrain
这是一项突破性的技术,可以基于用户的真实物理环境重新建造虚拟的3D环境,可以打造出新型种类的游戏以及很真实的视觉效果,这种产品中的元素可以和真实世界中的物理实体以及平面进行互动,非常酷炫,真正做到了虚拟和现实相互融合。
使用过程
证书
管理
上传
下载
三种不同类型Database的比较
Vuforia提供了三种类型的Database,分别是Device、VuMark和Cloud。这三种类型都各有自己的优势,在开发产品时需要根据需求来选择不同的Database:
- Device Database:
包含了安装在设备本地的图片以及3D模型对象的数据库,可以开发Image Target(图片识别)、Multi Targets(多对象识别)、Cylinder Targets(圆柱图像识别)以及Object Target(3D模型识别)。当你的产品需要最快速的图像识别,而且图片对象小于1000张,并且数据库中的对象不会经常更新,那么Device Database就是最好的选择。如果需要开发识别真实3D物体识别的产品,那就只能选择Device类型的。
- Cloud Database:
包含了存储于网络云服务器上的对象的数据库,需要通过网络进行获取。Cloud类型的数据库可以包含数量百万级别的对象,因此当识别对象超过1000个,而且对象需要经常进行更新时,Cloud Database是最好的选择。需要注意的是,Cloud Database只支持单一的图像识别,并不支持Multi target和Cylinder Target。因为是通过网络识别,因此采用Cloud进行识别的话需要根据网络情况花费一定时间。
- VuMark:
这是Vuforia自家研发的条形码,被誉为下一代条形码。和目前市面上通用的条形码不一样的是,VuMark的外观可以完全自主定制,只要符合VuMark的相关规范就行,而且VuMark中还能包含诸如字符串之类的数据信息,非常适合于企业级产品的开发。
下面这张表是关于Device和Cloud类型的对比:
使用
Image Targets
Cylinder Targets
VuMask
虚拟按钮
播放视频
Vuforia 和HoloLens集成
高通的Vuforia给微软的HoloLens带来了一个重要的能力——将AR体验与环境中的特定图像和对象连接起来。
你可以使用这个功能在机器顶部的步骤指令上叠加引导步骤或者将数字功能添加到物理产品中。
企业开发人员-你可以使用VuMarks在工厂的地板上唯一的标识每一件机器-直接到序列号。VuMarks的规模可达数十亿美元,可以设计成类似公司的标志。对于HoloLens所能看到的任何产品,它们都是理想的解决方案。
现有的Vuforia应用是为手机和平板电脑打造的,它可以很容易地在Unity上配置和在HoloLens上运行。
其他应用场景
Vuforia7 将要带来的重要更新
PTC日前宣布扩展其Vuforia开发平台,将数字内容添加到更多不同类型的对象和环境中,以带来新一代的增强现实体验。
Vuforia是被广泛使用的AR开发平台,目前全球开发者已经基于Vuforia平台开发了超过4万5千款的AR应用,并支持智能手机、平板电脑和智能眼镜使用。
据了解,最新版本的Vuforia7将引入“Model Targets(目标模型)”功能,这是一种把数字内容叠加到现有的计算机视觉技术未能识别的对象中,通过“Model Targets”功能,数字内容可以叠加到如汽车、家电、工业设备和机械中。
同时,Vuforia7也扩展了智能地形功能。无论是室内还是室外,Vuforia Ground Plane功能可识别出特定对象的地平线,如把数字内容叠加到地面、地板或者桌面上。
Vuforia7的Vuforia Fusion是一个特别为全球范围内的设备提供最佳AR体验的平台,它致力于解决AR技术(包括摄像头、传感器、软件框架如ARKit和ARCore)的碎片化问题。
它可以感知底层设备的功能,并将其与Vuforia功能融合,让开发人员可以只需单个Vuforia API便能获得最佳的AR体验。
同时,Vuforia Fusion还将为ARCore和ARKit兼容设备带来Vuforia的功能优化。
未来Vuforia7也会在即将推出的Unity版本中支持ARKit,而ARCore则计划在明年实现支持.
Vuforia 7主要有以下几个方面的更新:
-
Vuforia Model Targets
什么是Model Targets识别?通俗点说就是3D物体的识别,也就是形状的识别。这个技术相对于传统的印刷媒体、产品包装的Image Targets识别来说,它能够更详细直观地展示产品的功能和设计。展示的内容可以准确地被附加到物体上,例如汽车、家电以及工业设备和机械设备。这个技术有望取代传统的用户手册和技术服务指导。
-
Vuforia Ground Plane
随着ARKit和ARCore的发布,这个功能大家应该比较能够理解,下一个版本的Vuforia也将具有类似功能。使用Vuforia,你也可以将增强显示的内容放置到一些平面上,例如地板、桌面以及地面等,不管是在室内还是室外均可。其实早在13年,Vuforia就发布了一个叫做Smart Terrain的功能,当初还没有那么强大。
-
Vuforia Fusion
这个功能通俗点讲就是Vuforia可以解决ARCore和ARKit的硬件设备的限制问题,例如ARCore目前只支持Google Pixel系列机型和三星S8(海外版),ARKit只支持搭载A9芯片以及iOS 11的设备。而Vuforia可以支持超过100多款手机,对于开发者来说还算比较友好。
补充
Smart Terrain
这个实现的是 ARKit没有的遮挡效果, 所以重点说一下.
有智能地形经历三个阶段:
- 分段阶段, 用户设置一个舞台区域使用,添加道具和初始化目标。
- 扫描阶段, 设置的舞台和道具由智能地形跟踪器捕捉和重建。
- 追踪阶段, 增强Unity场景实时地形。
使用步骤:
Targets勾选 Enabale Smart Terrain.
多个 Targets可以使用同一个 Smart Terrain对象, 官方建议Targets数量不要超过5个.
ARCamera设置World Center Mode为SPECIFIC_TARGET , 并且将 Primary Surface 拖拽到 World Center参数处.
设置 Targets中 Smart Terrain的 Occluder Bounds.
设置 VuforiaConfiguration 的 Scene unit in mm 为 100.
Smart Terrain对象绑定脚本 DefaultSmartTerrainEventHandling , 实现 ISmartTerrainEventHandler接口 和 OnPropCreate回调.
可以在脚本里实现 根据prop实现prefab对象, 获取 prop的size和height, 更新 primary surface的位置, 用户交互操作.
一些参考:
Smart Terrain Workflow in Unity
https://library.vuforia.com/articles/Solution/Smart-Terrain-Workflow-in-Unity.html
Migrate Unity Project from Vuforia 6.2 to 6.5
https://library.vuforia.com/content/vuforia-library/en/articles/Solution/migrate-vuforia-62-to-65.html
Fuforia官方 Penguin Smart Terrain Sample
唯一的问题是现在没有 Sample的下载
https://library.vuforia.com/articles/Solution/Penguin-Smart-Terrain-Sample
其他参考
AR学院教程汇总贴(Vuforia篇)
http://www.jianshu.com/p/a3640e8837b5