作者:Eddie Offermann
原文:There are dozens more Augmented Reality SDKs than you think! Here are seven great ones.
目前只對開源免費的ARToolkit感興趣,故只譯到ARToolkit介紹。水平有限,看官自便。其他請見原文。
AR SDK的種類比你想得要多!這里介紹七個棒棒噠
大多數探索AR世界的開發者對他們接觸的第一款SDK會戀戀不舍
這很容易理解,因為多數開發者使用的第一款SDK往往是知名中的一個。例如過去出名的Metaio,我不認為有其他單個方案能與其功能相提並論,因此當Apple於去年把它收購並獨享后,這成了一件令業內不安的事情。雖然很多開發者轉向Vuforia,還有后來的其他SDK,但是包括商業和開源在內的許多AR SDK仍舊是可用的,並且不被熟知。
我們所說的增強現實(Augented Reality)到底是什么?
盡管我傾向於在別處使用"延展現實"("Extended Reality")來指代由“增強現實”,“混合現實”和”虛擬現實”的相關概念和學科構成的這個融合概念,但這里將拋開這些。為方便討論,此文中的“增強現實”將泛指:通過各種數字技術手段,將圖形、圖像以及其他數據范疇的內容導入真實世界,典型的方式便是跟蹤現實世界中的某個物體或是圖像特征,或者更一般的情況是,顯示在現實世界中。雖然我可以理解一些人更願意使用比“增強現實”更為嚴謹的定義來區別於“混合現實”,但是我選擇接受這樣一個事實,那就是目前“增強現實”已經完全成為最為常用的概念,甚至在那些技術上被視為“混合現實”的地方。應該注意的是,以下將要介紹的SDK、產品和服務中沒有一個自稱為“混合現實”,即使我認為它們更符合這個概念。
為何我們關注Unity兼容的SDK
一個原因是,我了解將近50個不同版本用於開發增強現實應用的SDK。對整個AR軟件開發狀況寫一個全方位的綜述顯然不可行。那將成為一本厚重的科技書,而非一篇文章。同時我也排除了那些需要非常特定硬件環境的開發環境。因此,我們不探討Hololens(除非在其他SDK上談到對它的支持),Tango,RealSense以及Kinect這些依賴硬件的SDK。
所以,在此我們將側重於那些提供原生Unity支持並且在標准硬件上運行的SDK。毫無疑問:當前Unity平台是開發AR應用的獲勝者。它在VR領域同樣舉足輕重,由於廣泛的原生支持,它被很多AR以及VR的生產商所接受。當微軟開始描繪開發者該如何使用Hololens開發應用時,顯然在那時,他們唯一能使進展如願的方式便是支持Unity。當谷歌發布他們的Cardboard SDK時,提供了對Unity的支持。當他們發布Tangle SDK時,他們提供了Unity開發包。對於因特爾的RealSense,則直接支持Unity環境。對於開發者而言,當然還有其他選擇,但幾乎都要求這些不同版本的SDK為其他交互引擎提供各自的支持。
如此一來,那些直接支持Unity的AR SDK如今成為商業開發者最為感興趣的平台。而且我還發現,這類SDK比大多數有追求的開發者們意識到的還要更多一些。(同樣,也有非常多的其他種類不支持原生Unity的SDK,我將在文章的結尾部分簡要介紹,因此,你若願意自行提供對Unity的支持,或者打算在非現實領域或網站上使用,我將在文章結尾處提供一些鏈接和表述)。大多數情況下,這些SDK提供C#接口。在個別例子中也可能提供對JavaScript的支持。
讓我們現在開始!
1. 來自DAQRI的ARToolkit SDK
DAQRI是增強現實領域沉睡的巨人(詳見LinkedIn)。因還未發布的DAQRI智能頭盔,以及並購的許多令人驚奇的未來科技,包括思想解讀頭巾、全息頭盔等技術而已名聲在外,相比於技術公司,它幾乎更像是一個資金充足的智庫。它在2015年獲取了ARToolworks並一直維護着,並將ARToolkit SDK迅速地發布為全開源項目,之前僅對其高級版本("pro" version)可用的所有功能全都開放給了開源社區。
DAQRI智能頭盔
特別有趣的是,ARToolkit最早開發於1999年,比第一款開發版的商業AR頭盔早了15年。ARToolkit起初由NAIST(Nara Institute of Science and Technology,或許是日本最為著名的研究生研究性大學)的Hirokazu Kato研發,之后由University of Washington著名的HIT Lab發布。如果你對“人類交互科技"還不熟悉(以及它的經常被聯系在一起的“姐妹實驗室”,Human Photonics Lab),他們確是過去20年間“加強與混合現實”領域較為有影響力的學術機構。負責在Virtual Retinal Display technology中所有關鍵技術部分(據說是Magic Leap的神奇頭戴式設備的潛在技術)以研究“共享視覺空間”。搞“延展現實”的話,幾乎不可能不看這個研究機構發表的優秀文章。
對DAQRIdI在ARToolkit開源發布表示感謝,以下將要介紹的全部功能在所有平台下都是免費使用的。
ARToolkit支持三種一般類型的跟蹤技術。
- Natural Feature Tracking (NFT)
NFT是一種跟蹤技術的經典標准 - 支持任何形式的2d圖像,這些圖像可以沒有清晰一致的外延輪廓。包括杯墊子,路邊指示牌等。
- Traditional template square marker
這些標示物通常是相當簡單的具有固定黑白外圍邊界的圖標。這都是既定好的設計而非原本就存在的。
- 2D Barcode Markers
這些標示物在SDK中已預定義好了,並且通常被深度優化以達到在各種光照條件下進行快速識別和穩定跟蹤。由於已深度優化,因此可能用來同時識別和跟蹤多個目標,並且這些標示物可以在其他Tracker可能探測失效的環境下卻對它們有效。這看起來更像是框標或者是低分辨率QR碼而不像是其他標示物,因此它們通常在你可能需要更為小心謹慎的地方會比較常見。
一些ARToolkit可能獨有的功能
- Multiple camera support
雖然最明顯的多攝像頭例子可能就是立體攝像頭了,但是ARToolkit並不局限如此。其他配置的多攝像頭同樣能夠支持。重疊部分的存在,例如在立體攝像頭中的處理方式,極大地提供了攝像頭陣列對動作識別的魯棒性。
- One of comparatively few SDKs that supports Windows Phone
由於競爭對手的架構,Windows Phone未獲得AR開發社區的太多青睞,但ARToolkit提供支持。
- Very robust tracking for markers over a range of distances
為Natural Feature Tracking訓練ARToolkit,在變化的距離范圍內能夠識別特征,較少SDK能做到如此。到一定距離圖片會變得模糊,距離太近往往又沒有實踐意義。反之亦是如此,在一定距離可跟蹤的特征變為你可以處理的獨特的更小的特征整列。ARToolkit是其成為可能
- JavaScript-based version for integration into web frameworks
當我看到此時,我仍然感到驚訝,甚至這相當罕見。ARToolkit有一個JavaScrpt的搭檔,叫做JSARToolKit。不要混淆了,另外也有一個叫作JSARToolKit的JavaScript AR SDK,所以要確定你看得是本文中的這個,而不是另外的那個。(之后我們將談論第二個)
特別致謝
感謝ARToolkit SDK的開源(根據LGPLv3發布),目前它是我知道的僅有的支持Unreal Engine的AR庫,這由它的一個使用者貢獻。所以,如果你決定死心塌地在AR做Unreal部分,DAQRI‘s ARToolkit可能值得你一看。
(其他,略。開源意味着定制算法,算法乃CV的產品核心,但貌似對average people要求有點兒高,亦是CV的魅力所在)