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.lxweimin.com/p/a3640e8837b5