多人AR大勢所趨!技術大牛深度解析ARCORE 1.2
來自專欄 VR陀螺的虛擬世界4 人贊了文章
想要了解更多的VR遊戲資訊 一定要關注VR陀螺!
文/ VR陀螺 白告文
在今年的Google I/O大會上,Daydream產品經理Nathan Martz 公布了最新的AR軟體開發套件ARCore新版本ARCore 1.2,該版本帶來了三大重要功能——Cloud Anchors、Augmented Images、SDK Sceneform。
Cloud Anchors功能,允許多用戶通過網路連接共享的增強現實(AR)空間,實現多用戶的AR體驗。
Augmented Images類似於以前的AR掃描和QR碼,但之前只能平面識別,此次新增了垂直平面識別,能更準確識別不規則物體表面。例如現在可以識別產品垂直包裝面,以AR的方式呈現出包裝內的產品。全新的SDK Sceneform是一個旨在幫助Java開發者快速創建AR場景的新版SDK,無需處理整個3D開發堆棧。
ARCore 1.2 最大的更新是Cloud Anchors功能,除了多用戶共享AR體驗外,還有一個重要的點是,支持跨設備共享AR體驗, Android和iOS用戶都能通過Cloud Anchors獲得多用戶AR體驗。
本文將從Cloud Anchors 多用戶AR體驗的實現原理、功能缺陷以及應用場景方面進行深入的探討。VR陀螺請到了網易AR遊戲《悠夢》的開發者應新港、Directive games的聯合創始人張竹雲、視+AR高級演算法工程師王強對Cloud Anchors進行深度解讀。
Cloud Anchors如何實現多用戶共享同一個AR場景?
「這個功能其實是一個Cloud Anchors概念,anchor本身對於ARCore是一個非常重要的概念,」 視+AR王強表示,「ARCore中通過AR往現實中放置一個交互虛擬物體,需要通過Anchor指定其空間位置,只不過這個anchor以前是不能夠多人共享的。」
什麼是Anchors?虛擬物體在現實世界中的固定位置就是Anchors,有了這個錨點,虛擬物體就不會發生偏移,可以很好的貼合在現實環境中。要形成一個Anchors,首先需要一個SLAM系統提供相機的位置,通過相機掃描現實位置放置虛擬物體,虛擬物體的位置就會形成一個anchors,它包括了一個物理位置和一堆視覺特徵。
王強補充道:「正因為有Anchors這個概念的存在,所以現在所謂的雲Anchors 就很好理解了,用戶A首先將本地anchor和anchor周圍局部的視覺信息(比如特徵點、線等),上傳到雲端,雲端通過處理並生成三維點雲信息,生成cloud anchors,同時返回其對應的ID,該ID可以共享給其他用戶。其他用戶(例如用戶B,C等)通過該ID訪問已有的cloud anchors,ARCore將本地的視覺信息上傳到雲端伺服器,雲端伺服器嘗試將接收的視覺信息與雲端cloud anchor對應的的三維點雲進行對齊,從而將多個用戶的位置和姿態統一到同一坐標系下。」
Directive games張竹雲對Cloud Anchors的原理分析和王強大致相同,「谷歌在ARCore 1.2的更新中加入了所謂多人模式的概念,這個機能是通過「雲錨定」(Cloud anchor)來實現的。簡單來說,ARcore將捕捉到用於進行運動追蹤的特徵點,上傳並儲存到雲錨定的服務介質上,對比同一場景下不同用戶各自的特徵點,系統就可以把內容物體在不同的設備上渲染到空間中相同的位置。」
網易AR遊戲應新港則認為:「它應該是通過特徵點的共享(還沒接入還不太確定),然後再逐漸談到應用場景,就是它可以實現將虛擬場景的方位與朝向在多台機子上統一,這樣很多多人遊戲都可以做了。」
Cloud Anchors如何兼容iOS,為什麼要兼容iOS?
張竹雲分析其原理和安卓設備之間的AR數據交換是相同的,谷歌提供給iOS一套相應的Cloud anchor API,允許iOS 應用將對應的特徵點數據上傳到雲端以分享至其他的設備。
王強的分析也有一定的共同點,他認為谷歌通過針對ARKit做對應的上層封裝,對於開發者來說可以避免跨平台的開發帶來的問題。由於ARCore在推出之時,功能和介面設計就與ARKit非常類似,因此 ARCore可以相對容易的提供一套封裝和介面,從而同時兼容兩個系統。
Cloud Anchor 能實現多用戶AR交互是讓人興奮的,它還能夠兼容iOS是令人驚訝的,但不算意外。
王強補充說道,「雖然此次I/O大會谷歌強調ARCore已經支持1億台以上的安卓設備,但考慮到市面上安卓設備數量,實際上它的普及速度是偏慢的。目前支持ARCore的機型基本只有少數幾個品牌的旗艦級的手機,因此對於AR的用戶普及來說,安卓比蘋果要低很多的。當谷歌表示Cloud Anchors兼容ARKit的時候大家表示驚訝,但考慮到蘋果的AR用戶的龐大數量,對於多人AR體驗來說,通過上層兼容ARKit也是非常合理的。」
Cloud Anchors可以應用到什麼場景?
張竹雲、王強、應新港一致認為,多人遊戲娛樂和多人協作行業應用是Cloud Anchors 的方向。
當初蘋果剛推出AR功能的時候,很多人都認為AR會很快的普及到大部分的用戶,因為蘋果本身也有軟硬體的優勢,但最後結果是否定的。由於目前的AR體驗並沒有足夠的元素吸引用戶長時間使用,一方面是缺少碰撞和遮擋,缺少真實感,另一方面是缺少社交元素,用戶之間沒有交流,沒有分享渠道,更不能共同參與AR體驗,而Cloud Anchors則剛好能解決這個問題。
張竹雲對此表示,「多人共享的AR空間可以說是AR未來發展至關重要的功能,只有當AR可以在人和人之間進行分享的時候,他才會真正成為日常生活中主流的,必不可少的工具。出於這個思路,可以說它的應用場景是非常廣泛的,從多人協作的行業應用到交互娛樂遊戲,都是它的用武之地。」
王強則認為:「互聯網爆款大多都涉及社交元素。有了多用戶交互之後,遊戲、娛樂、工業、教育等各個行業都可以加入多人、社交AR的功能。AR未來的趨勢肯定是朝著持久的,多用戶的,可以分享的沉浸感更強的AR體驗。」
「要實現AR MMO 前還有差距,一方面是參與人數,官方文檔雖然沒提及,但目前同一cloud anchors應該對同時共享的用戶人數會有限制。另一方面是要做到真正的AR MMO需要構建與現實環境1:1的AR地圖,只有ARCore的cloud anchors只能看做局部的小地圖,構建大範圍的、多人共享、可持久更新的AR地圖目前仍然是行業內的難點。」
Cloud Anchors目前會有什麼缺陷?
毫無疑問,Cloud Anchors對於開發者和用戶都是一個很重要的功能,該功能很有可能讓AR MMO遊戲成為現實,該功能也是AR社交的一個補充,但現在看來,該功能尚存在一些難點和缺陷需要解決。
地板和地毯會給特徵點的識別、追蹤帶來難度嗎?張竹雲認為:「缺少紋理的表面會給追蹤帶來困難,但實際上大多數地板和地毯都是有豐富細節的。」
光照、角度會影響特徵點的採集,進而影響多用戶交互體驗嗎?王強表示:「這是多用戶共享的一個最大的難點,就是怎麼得到不同用戶相對的位置和姿態信息。光照變化、用戶的觀察角度、距離變化都會對視覺匹配演算法的性能帶來影響。」
「利用cloud anchors建立與用戶圖像的匹配,對於室內場景來說比較簡單解決一些,室外場景下可能會需要面對白天到晚上這種光照變化更劇烈的挑戰。近年來室內不同角度、角度和位置的圖像匹配演算法已經有長足的進步。對於室外場景下,國內外很多AR相關的公司都在做這方面的解決方案,相信這個問題也會逐步得到解決。」目前ARCore的匹配是在伺服器端完成的,相對在本地實現無需過多考慮手機計算性能帶來的限制。」
多用戶數據上傳,有可能導致雲端伺服器壓力過大嗎?王強認為,「視覺計算它本身的計算量通常是非常大的,比如說特徵提取和計算特徵描述子。這個不僅對伺服器傳輸帶寬壓力大,對於演算法的壓力也很大。但谷歌之前在Tango的開發過程中,應該積累了大量的演算法相關經驗,在優化演算法速度和性能這方面相對比較有優勢。」
「但谷歌之前開發過Tango,在這方面應該有積累了大量的經驗,這方面應該比較有優勢,針對數據量做演算法的優化,另一方面,用戶與雲端的通信不一定需要傳輸圖像這種非常耗費帶寬的資源,可以在本地先進行特徵提取和描述子計算,然後只將描述子這種較小的東西上傳到雲端進行匹配,從而能減少訪問伺服器的壓力。」
用戶數據上傳到雲端,會不會導致數據外泄?對此王強認為問題不大,「其實谷歌也意識到這個問題,對於數據的傳輸、存儲、訪問都是有一些限制的。例如谷歌在ARCore文檔中提到,創建cloud anchors中上傳的原始視覺信息在7天後銷毀,用來與雲端匹配計算相對位置的視覺特徵描述子也不會在雲端存儲。」
推薦閱讀: