增強現實可以在物理世界之上疊加數字內容與信息,從而增強你的感知。例如,谷歌地圖的AR功能可允許你直接看到疊加在現實世界視圖的方向。借助Playground,你就可以通過AR并以不同方式瀏覽世界。對于最新版本的YouTube Stories,以及ARCore全新的Augmented Faces API,你可以為自拍添加動畫面具,眼鏡,3D帽子等濾鏡。
實現這種AR功能的關鍵挑戰之一是合理地將虛擬內容錨定在現實世界。這個過程需要一套獨特的感知技術,需要能夠追蹤千差萬別的表面幾何,每一個微笑,每一次皺眉都要準確識別。
為了實現這一切,谷歌采用機器學習來推斷近似的3D表面幾何形狀,只利用一個攝像頭輸入而無需專用的深度傳感器。利用面向移動CPU界面的TensorFlow Lite或可用的全新移動GPU功能,這種方法帶來了實時速度的AR效果。所述解決方案與驅動YouTube Stories全新創作者效果的技術相同,并已經通過最新的ARCore SDK和ML Kit Face Contour Detection API向廣泛的開發者社區開放。
1. 用于AR自拍的機器學習管道
谷歌的機器學習管道由兩個協同工作的實時深度神經網絡模型組成:一個在整張圖像上運行,并計算面部位置的探測器;在所述位置上運行,并通過回歸預測來近似表面幾何的通用3D網格模型。精確地裁剪面部可以大大減少對相同數據增強的需求,比方說由旋轉,平移和比例變化組成的仿射變換。通過精確地裁剪面部,這允許系統將大部分性能用于預測坐標,而這對于實現虛擬內容的正確錨定至關重要。
一旦裁剪了感興趣位置,網格網絡一次僅應用于單個幀,利用加窗平滑(windowed smoothing)以減少面部靜止時的噪點,同時避免在顯著移動期間出現延遲。
對于3D網格,谷歌采用了傳遞學習,并訓練了一個具有多個目標的網絡:網絡同時利用合成渲染數據預測3D網格坐標,以及利用注釋的真實世界數據來預測2D語義輪廓。因而產生的網絡為谷歌提供了合理的3D網格預測,這不僅體現在合成上,同時體現在現實世界數據上。所有模型都接受來自地理不同的數據集數據培訓,隨后在平衡的,多樣化的測試集上進行測試,從而獲得定性和定量性能。
3D網格網絡接收裁剪的視頻幀作為輸入。它不依賴于額外的深度輸入,因此同時可以應用于預先錄制的視頻。所述模型輸出3D點的位置,以及輸出在輸入中存在并合理對齊的可能面部。一種常見的替代方法是預測每個地標的2D熱圖,但這不適合深度預測,而且如此多的數據點需要高昂的計算成本。
通過迭代引導和細化預測,谷歌進一步提高了模型的準確性和魯棒性,并允許他們就將數據集擴展至越來越具有挑戰性的案例,如鬼臉,斜角和遮擋。數據集增強技術同時擴大了可用的ground truth數據,開發出對攝像頭缺陷或極端光照條件等問題的模型穩定性。
2. 專為硬件打造的界面
谷歌利用TensorFlow Lite實現機載神經網絡推理。在可用時,新推出的GPU后端加速能夠提升性能,并顯著降低功耗。另外,為了涵蓋廣泛的消費類硬件,谷歌設計了具有不同性能和效率特性的一系列模型架構。對于較簡單的網絡而言,最重要的區別是殘差塊(Residual Block)布局和有效的輸入分辨率(最簡單的模型為128×128像素,而最復雜的模型中為256×256)。谷歌同時改變了層數和子采樣率(隨網絡深度的輸入分辨率減少速度)。
對于這一系列的優化,結果是更簡單的模型能夠實現大量的提速,同時對AR效果質量的影響維持在最低幅度。
谷歌的努力成果驅動著YouTube,ARCore和其他客戶端的逼真自拍AR效果。
通過環境映射模擬光反射,實現眼鏡的逼真渲染通過將虛擬對象陰影投射到面部網格,實現了自然光照效果建模面部遮擋以隱藏面部后面的虛擬對象部分,如虛擬眼鏡
另外,谷歌實現了逼真的妝容效果,方式是:
建模應用于嘴唇的鏡面反射利用亮度感知材質來實現面部妝容
谷歌表示:“我們很高興與創作者,用戶和開發者的分享這一全新的技術。如果有興趣,你可以馬上下載最新ARCore SDK。在未來,我們計劃將這項技術擴展至的更多的谷歌產品之中。”
原文鏈接:https://yivian.com/news/57903.html
來源:映維網