科技無界,這句話用在 ARCore 身上非常貼切。因為自從兩年前推出以來,ARCore 不斷朝著讓更多設備、更多用戶自由體驗增強現實的方向邁進。ARCore 本次 1.12 重要更新,將為你帶來跨設備和跨時間共享的驚喜。
今年早些時候,ARCore 發布了增強臉部功能(Augmented Faces API),實現了使用者「輕鬆變臉」,賺足眼球。此前,3D 臉部的精確辨識一直是技術上的挑戰,人的臉部不但是 3D 立體的,而且表情豐富,細微的表情變化就會帶來面部的很大變化;不僅如此,不同種族、膚色、臉型和年齡,也會影響算法的正確性。為了能夠更有效地解決這些難題,我們推出了 ARCore 臉部增強功能。
通過臉部增強功能,你的應用可以自動識別檢測到的臉部的不同區域,這些區域疊加和面部特徵與輪廓相符合的材質、 2D/3D 模型,就能達到增強臉部效果。你可以戴上金面具耍帥、凍在冰塊裡裝酷或是戴上各種帽子。比如美圖 App 就使用了 ARcore 的增強臉部功能,給用戶自拍增添了更多樂趣:
一個中心 Pose,你可以用它來渲染帽子或者估測肩膀的位置
區域 Poses,它們可以用來在局部比如眼睛,耳朵或者鼻子的位置渲染虛擬材質或模型
當然如果你想要全部的信息,我們提供 468 個點組成的密集臉部網格,可以用來渲染細緻的並且一直準確追蹤臉部的紋理和細節
技術解密:如何實現?
現在,有兩種面部 AR 效果可以活靈活現地實現
我們的 Unity SDK 已經提供了非常方便的組件,開發者只需要關注虛擬層的內容就可以了。
如果你想使用面部網格,也非常方便。網格點的分布是這樣安排的:特徵豐富的區域點數更多更密集,比如嘴,眼瞼, 那麼額頭,臉頰附近點分布則較稀疏。每個點我們提供 xyz 位置信息,uv 信息來綁定材質,還有一個法向量用來渲染真實的光照效果。
前面提到,ARCore 的面部增強不需要硬體配合的深度傳感器,那究竟是如何運作的呢?答案是機器學習:藉助 TensorFlow Lite 平臺,使用大量的數據訓練可以推測面部輪廓和三維網格的神經網絡,然後將訓練模型加載到行動裝置,這樣相機生成的圖片直接在本地就能完成處理和計算。
本地的機器學習推測會很慢嗎?並不會,我們為不同設備提供不同的學習模型,不同模型有不同的能耗,對於低端手機我們會在底層使用輕量級的模型,從而保證處理時間。不同設備對於每一幀圖像的推理速度也不一樣,在某些手機我們會採用跳過幾幀但是中間採用 interpolation 的方式。底層我們會實時檢測當前設備 inference 速度,從而計算我們對系統需要多少延遲,從而確保計算結果和當前圖像匹配。
正式支持 iOS 設備
現在,喜大普奔的是,增強臉部功能已經支持 iOS 系統了。不但可以有同樣的精度,而且同時支持 Android 和 iOS 設備,不需要深度傳感器。這意味著開發者將可為數十億 iOS 用戶帶去這一炫酷功能。不論面向 Android 還是 iOS 設備,開發者都可以使用相同的網格數據和結構,同一套面部模型和材質,甚至是完全相同的遊戲或者應用邏輯,開發真正跨平臺的應用。與此同時,新的面部特效模板也上線了,不論是 iOS 還是 Android 開發者,面部增強的創建過程都變得更加簡單。
為什麼要使用雲錨點?
實現 AR 效果時,當你需要把虛擬物體固定在現實世界中的某個位置時,你就需要定義一個錨點。通過將虛擬物體錨定到特定的可跟蹤對象, 來確保虛擬物體和可跟蹤對象之間穩定的關係。
而當你需要實現在多個設備上共享 AR 體驗的時候,就需要雲錨點功能了。雲錨點 API 是 ARCore 在去年推出的,它允許開發人員在 Android 和 iOS 上創建共享的 AR 體驗。利用雲錨點,一臺設備可以將錨點和附近的特徵點發送到雲端進行託管,從而將這些錨點與同一環境中 Android 或 iOS 設備共享。
具體來說,就是將設備 A 的錨點以及其附近的特徵點發送到雲端進行託管,也就是託管雲錨點;設備 B 中,用相機圖像匹配雲端託管的 A 的信息,從而將 B 和 A 放置在同一個物理空間, 這個過程叫解析雲錨點,如此就可以同步設備 A 和設備 B 上的 AR 體驗。
雲錨點功能不斷增強ing
ARCore 的雲錨點功能推出後也在不斷強化。比如在錨點設置過程中,使用更多視覺信息,但不增加數據傳輸量,讓 App 運行速度更快;同時解析更多錨點,更準確,降低了照明變化帶來的影響。
本次 ARCore 更新中,我們對雲錨點的 API 進行了一些改進,通過改進錨點創建,在雲中進行視覺特徵處理, 讓 ARCore 託管和解析錨點的能力更強,效率更高。現在,在創建錨點時,可以捕獲場景中更多角度更大區域的內容,以獲得更強大的 3D 地圖。創建地圖後,創建地圖的可視數據將被刪除。此外,現在可以同時解析場景中的多個錨點,這樣 AR 體驗的啟動時間更短。
長期雲錨點讓 AR 體驗有了「保存」鍵
更更更牛的是,此前,雲錨點的存儲和訪問受到時間限制,託管錨點時上傳至雲端的視覺特徵數據在一天後失效。而現在,ARCore 的雲錨點將具備「永久留存」功能,不再受到存儲時間限制。也就是說,AR 體驗和作品,不但能夠跨越空間、設備,現在還能跨越時間。利用這一新功能,用戶可以在世界各地留下自己的印記,讓自己的朋友在任何時間來開啟各種 AR 彩蛋或者協同創作。比如下圖所示,你可以用 ARCore 在房間內留下一些尋找「驚喜」的提示,讓之後來到房間的玩家尋寶。
也可以使用長期雲錨點,邀請同屋一起,重新裝飾房屋。長期雲錨點可以按照實際需求設定留存時間。
長期雲錨點技術已經運用在了實際應用中:比如新的社交軟體 Mark AR,可讓人們在現實世界中與朋友一起創建、發現和分享他們的 AR 藝術,並且用戶可以不斷返回 App 創建和協作藝術作品,永久存檔的哦。
增強臉部和雲錨點兩大功能的重要更新,能夠讓開發者更加自由地發揮 AR 技術,跨越平臺和時間的限制,為更多用戶帶來腦洞大開的新奇互動體驗。如果 ARCore 的這兩項技術更新帶給了你開發靈感,不要猶豫,趕快動手實踐起來吧。