增強(qiáng)現(xiàn)實(shí)(AR)通過在物理世界之上疊加數(shù)字內(nèi)容和信息,幫助您完成所看到的內(nèi)容。 例如,進(jìn)入Google地圖的AR功能可讓您找到覆蓋現(xiàn)實(shí)世界的方向。 使用Playground - Pixel相機(jī)中的創(chuàng)意模式 - 您可以使用AR以不同方式查看世界。 借助最新版本的YouTube Stories和ARCore的全新Augmented Faces API,您可以為自己的自拍添加動畫面具,眼鏡,3D帽子等物品!
使這些AR功能成為可能的關(guān)鍵挑戰(zhàn)之一是將虛擬內(nèi)容正確地錨定到現(xiàn)實(shí)世界中; 這個過程需要一套獨(dú)特的感知技術(shù),能夠跟蹤每個微笑,皺眉或傻笑的高動態(tài)表面幾何形狀。
我們的3D網(wǎng)格及其實(shí)現(xiàn)的一些效果
為了實(shí)現(xiàn)這一切,我們采用機(jī)器學(xué)習(xí)(ML)來推斷近似的3D表面幾何形狀以實(shí)現(xiàn)視覺效果,只需要一個攝像機(jī)輸入而無需專用的深度傳感器。這種方法提供了實(shí)時速度的AR效果,使用TensorFlow Lite進(jìn)行移動CPU推理或其可用的新移動GPU功能。此技術(shù)與YouTube Stories的新創(chuàng)作效果相同,并且通過最新的ARCore SDK版本和ML Kit Face Contour Detection API也可供更廣泛的開發(fā)人員社區(qū)使用。
自拍AR的ML管道
我們的ML管道由兩個一起工作的實(shí)時深度神經(jīng)網(wǎng)絡(luò)模型組成:一個在整個圖像上運(yùn)行并計算面部位置的探測器,以及在這些位置上運(yùn)行并通過回歸預(yù)測近似表面幾何的通用3D網(wǎng)格模型。精確地裁剪面部可以大大減少對共同數(shù)據(jù)增強(qiáng)的需求,例如由旋轉(zhuǎn),平移和比例變化組成的仿射變換。相反,它允許網(wǎng)絡(luò)將其大部分容量用于坐標(biāo)預(yù)測準(zhǔn)確度,這對于實(shí)現(xiàn)虛擬內(nèi)容的正確錨定至關(guān)重要。
一旦感興趣的位置被裁剪,網(wǎng)格網(wǎng)絡(luò)一次僅應(yīng)用于單個幀,使用窗口平滑以便在面部靜止時減少噪聲,同時避免在顯著移動期間滯后。
對于我們的3D網(wǎng)格,我們采用了傳遞學(xué)習(xí)并訓(xùn)練了一個具有多個目標(biāo)的網(wǎng)絡(luò):網(wǎng)絡(luò)同時預(yù)測合成,渲染數(shù)據(jù)上的3D網(wǎng)格坐標(biāo)和注釋的真實(shí)世界數(shù)據(jù)上的2D語義輪廓,類似于MLKit提供的。由此產(chǎn)生的網(wǎng)絡(luò)為我們提供了合理的3D網(wǎng)格預(yù)測,不僅在合成上,而且在現(xiàn)實(shí)世界數(shù)據(jù)上。所有模型都接受來自地理上不同數(shù)據(jù)集的數(shù)據(jù)培訓(xùn),隨后在平衡,多樣化的測試集上進(jìn)行測試,以獲得定性和定量性能。
3D網(wǎng)格網(wǎng)絡(luò)接收裁剪的視頻幀作為輸入。它不依賴于額外的深度輸入,因此它也可以應(yīng)用于預(yù)先錄制的視頻。該模型輸出3D點(diǎn)的位置,以及在輸入中存在并合理對齊的面部概率。一種常見的替代方法是預(yù)測每個地標(biāo)的2D熱圖,但它不適合深度預(yù)測,并且對于這么多點(diǎn)具有高計算成本。
我們通過迭代引導(dǎo)和細(xì)化預(yù)測來進(jìn)一步提高模型的準(zhǔn)確性和魯棒性。這樣我們就可以將我們的數(shù)據(jù)集增長到越來越具有挑戰(zhàn)性的案例,例如鬼臉,斜角和遮擋。數(shù)據(jù)集增強(qiáng)技術(shù)還擴(kuò)展了可用的地面實(shí)況數(shù)據(jù),開發(fā)了模型對相機(jī)缺陷或極端光照條件等工件的彈性。
硬件定制推理
我們使用TensorFlow Lite進(jìn)行設(shè)備上的神經(jīng)網(wǎng)絡(luò)推理。新推出的GPU后端加速可在可用的情況下提升性能,并顯著降低功耗。此外,為了涵蓋廣泛的消費(fèi)類硬件,我們設(shè)計了各種具有不同性能和效率特性的模型架構(gòu)。較輕的網(wǎng)絡(luò)最重要的區(qū)別是殘余塊布局和可接受的輸入分辨率(最輕的模型中為128x128像素,而最復(fù)雜的模型中為256x256)。我們還改變了層數(shù)和子采樣率(輸入分辨率隨網(wǎng)絡(luò)深度減小的速度)。
每幀的推理時間:CPU與GPU
這些努力的最終結(jié)果是通過以下方式為用戶體驗(yàn)在YouTube,ARCore和其他客戶中提供令人信服的,逼真的自拍AR效果:
●通過環(huán)境映射模擬光反射,實(shí)現(xiàn)眼鏡的逼真渲染
●通過將虛擬對象陰影投射到面網(wǎng)格上來實(shí)現(xiàn)自然光照
●對面部遮擋建模以隱藏面部后面的虛擬對象部分,例如 虛擬眼鏡,如下圖所示。
YouTube Stories包括基于3D網(wǎng)格的逼真虛擬眼鏡等創(chuàng)作者效果
此外,我們通過以下方式實(shí)現(xiàn)高度逼真的妝效:
●建模在嘴唇和嘴唇上應(yīng)用的鏡面反射
●通過使用亮度感知材料進(jìn)行面部繪畫
案例研究將不同光照條件下5個主題的真實(shí)化妝與AR妝容進(jìn)行比較。
我們很高興與創(chuàng)作者,用戶和開發(fā)者共享這項(xiàng)新技術(shù),他們可以通過下載最新的ARCore SDK立即使用這項(xiàng)新技術(shù)。未來,我們計劃將此技術(shù)擴(kuò)展到更多Google產(chǎn)品。