ARCore 是谷歌于去年 2 月份正式推出的 增強現(xiàn)實(AR)軟件開發(fā)工具包,給開發(fā)者提供了一個開發(fā) AR APP 的平臺。不到一個月前,谷歌正式推出ARCore 1.7 版本,為其添加了前置攝像頭 AR 自拍能力以及動畫效果支持;而日前,谷歌又為其引入了機器學習技術,使其實時自拍 AR 的逼真效果更進一步,該技術相關的文章發(fā)布在谷歌 AI 的官方博客上。
增強現(xiàn)實(AR)通過將數(shù)字內(nèi)容與信息疊加到物質(zhì)世界的真實場景中,來讓人類實現(xiàn)超越現(xiàn)實的感官體驗。例如,谷歌地圖的 AR 功能,能夠在現(xiàn)實場景中疊加方向信息來為你指路。借助于Pixel 相機中的 Playground 模式,你可以使用 AR 從不同的視角看世界。并且通過借助于最新發(fā)布的「YouTube Stories」以及ARCore 全新的面部增強(Augmented Faces)API,你可以在自拍上添加動畫面具、眼鏡、帽子、皮膚等特效。
實現(xiàn)這種 AR 功能的關鍵挑戰(zhàn)之一,就是以合適的方式將虛擬內(nèi)容錨定到現(xiàn)實世界:這一過程需要一套能夠追蹤到每一次微笑、皺眉或假笑的高動態(tài)表面幾何結構的獨特的感知技術。
ARCore 的3D 網(wǎng)格以及它能實現(xiàn)的一些特效
為此,我們引入了機器學習(ML)技術來推斷近似的 3D 表面幾何結構,并且僅需要用到一個單攝像頭輸入而無需使用專用的深度傳感器。這種方法利用面向移動 CPU 界面推斷或其可用的全新移動 GPU 功能的TensorFlow Lite,實現(xiàn)了逼真的實時 AR 效果。與「 YouTube Stories」 全新的創(chuàng)作者特效所利用的技術一樣,這項技術已通過最新的 ARCore SDK和ML Kit Face Contour Detection API向廣泛的開發(fā)者社區(qū)開放。
用于自拍 AR 的機器學習工作流
我們的機器學習工作流由兩個協(xié)同工作的實時深度神經(jīng)網(wǎng)絡模型組成:一個是探測器,它在整張圖像上運行并計算出面部位置;另一個是通用的 3D 網(wǎng)格模型,它在探測器計算出來的面部位置上運行,并通過回歸預測近似的表面幾何結構。精確地裁剪面部能夠極大地減少對一般的數(shù)據(jù)增強的要求,例如由旋轉(zhuǎn)、平移和比例變換組成的仿射變換(affine transformations)等,同時讓網(wǎng)絡將大部分性能投入于預測坐標來提高其準確性——這對于錨定合適的虛擬內(nèi)容至關重要。
裁剪完所關注的位置后,該網(wǎng)格網(wǎng)絡一次僅應用于一個單幀,并利用加窗平滑(windowed smoothing)來減少面部處于靜態(tài)時的噪音,同時避免在大幅移動期間出現(xiàn)的延遲。
針對 3D 網(wǎng)格,我們采用了遷移學習,并訓練了一個具有多個目標的網(wǎng)絡:該網(wǎng)絡能夠同時地基于合成、渲染的數(shù)據(jù)預測 3D 網(wǎng)格坐標以及基于類似于MLKit所提供的帶有注釋的、現(xiàn)實世界的數(shù)據(jù)預測 2D 語義輪廓。最終的網(wǎng)絡為我們提供了基于合成數(shù)據(jù)乃至現(xiàn)實世界數(shù)據(jù)的合理的 3D 網(wǎng)格預測。所有模型都在源自于地理學多樣化的數(shù)據(jù)集的數(shù)據(jù)上進行訓練,并接著在平衡、多樣化的測試集上進行定性和定量性能的測試。
3D 網(wǎng)格網(wǎng)絡接收經(jīng)裁剪的視頻幀作為輸入。由于它不依賴于額外的深度輸入,因而也可以應用于預先錄制的視頻。該模型不僅輸出 3D 點的位置,還輸出在輸入中存在并合理對齊的面部概率。一種常見的替代方法就是為每個地標預測出 2D 熱圖,但這種方法并不適用于深度預測,并且對于如此多的數(shù)據(jù)點來說,使用這種方法耗費的計算成本非常高。
通過迭代自展和精煉預測,我們進一步提高了模型的準確性和魯棒性,同時也將數(shù)據(jù)集發(fā)展成為愈加具有挑戰(zhàn)性的實例,如鬼臉,拍攝角度傾斜以及面部遮擋等。此外,數(shù)據(jù)集增強技術也擴展了可用的 ground truth 數(shù)據(jù),并開發(fā)出了對攝像頭瑕疵等人工產(chǎn)品問題或極端光照條件具有彈力的模型。

數(shù)據(jù)集擴展和改善路徑
專為硬件定制的界面
我們使用 TensorFlow Lite 進行設備內(nèi)置的神經(jīng)網(wǎng)絡推理。新推出的 GPU 后端加速能夠有效提升性能,并顯著降低功耗。此外,我們還設計了具有不同性能和效率特性的一系列模型架構,來覆蓋到更加廣泛的消費級硬件。較簡單網(wǎng)絡之間的最重要的區(qū)別就在于殘差塊(Residual Block)設計和可接受的輸入分辨率(最簡單模型中的輸入分辨率為 128×128 像素,而最復雜模型中的輸入分辨率為 256×256)。同時,我們還改變了層數(shù)以及子采樣率(輸入分辨率隨網(wǎng)絡深度的減少而減少的速度)。

每一幀的推斷時間:CPU vs. GPU
這一系列的優(yōu)化的結果就是:使用更簡單的模型帶來了實質(zhì)性的加速,同時也將 AR 特效質(zhì)量的降低幅度最小化。
這些成果最終則能夠通過以下方式,讓用戶在 YouTube、ARCore 以及其他客戶端體驗到更加逼真的自拍 AR 效果:
通過環(huán)境映射模擬光反射,來實現(xiàn)眼鏡的逼真渲染;
通過將虛擬的目標陰影投射到面部網(wǎng)格上,來實現(xiàn)了自然光照效果;
對面部遮擋進行建模,來隱藏面部后面的虛擬目標部分,如下所示的虛擬眼鏡案例。
另外,我們還通過以下方式實現(xiàn)了逼真的妝容效果:
對應用到嘴唇上的鏡面反射進行建模;
利用亮度感知材料來實現(xiàn)面部著色。
案例對比:5 個目標在不同光線下的真實化妝效果以及 AR 化妝效果
我們很高興將這項新技術分享給創(chuàng)作者、用戶以及開發(fā)者。感興趣的讀者可以通過下載最新的 ARCore SDK (下載地址:https://developers.googleblog.com/2019/02/new-ui-tools-and-richer-creative-canvas.html)來將這項技術用起來。未來,我們還計劃將這項技術廣泛應用到更多的谷歌產(chǎn)品線中。
-
探測器
+關注
關注
15文章
2730瀏覽量
75210 -
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4820瀏覽量
106349 -
機器學習
+關注
關注
66文章
8532瀏覽量
136024
原文標題:通過引入 ML,谷歌 ARCore 實時自拍 AR 的逼真效果更進一步
文章出處:【微信號:worldofai,微信公眾號:worldofai】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
谷歌推出用于自拍攝像頭的防臉部失真算法
ESM6802支持Qt攝像頭應用
如何快速為 MCU 添加人臉識別攝像頭
谷歌將通過CNET在Motion Stills應用程序中增加對AR貼紙的支持
Scope AR通過谷歌的ARCore功能,將Remote AR進一步應用到移動AR領域
谷歌推出支持多人AR體驗的ARcore
三星Galaxy S10 Plus曝光將有前置雙攝像頭和后置四攝像頭
小米MIX3前置攝像頭超越華為Mate20
全面屏時代,如何解決前置攝像頭的問題?
谷歌推出ARCore Depth API 可以使AR游戲體驗更加自然
谷歌ARCore的Depth API用單個攝像頭能創(chuàng)建深度圖
手機攝像頭結構性能分析以及測試方案的介紹
升級!谷歌將利用手機的雙攝像頭來提升 AR 性能
淺談ADAS前置攝像頭設計挑戰(zhàn)

谷歌正式推出ARCore 1.7版本,為其添加了前置攝像頭AR自拍能力以及動畫效果支持
評論