首頁>科技>

MediaPipe Face Mesh是一種臉部幾何解決方案,即使在移動裝置上,也可以實時估計468個3D臉部界標。它採用機器學習(ML)來推斷3D表面幾何形狀,只需要單個攝像機輸入,而無需專用的深度感測器。該解決方案利用輕量級的模型架構以及整個管線中的GPU加速,可提供對實時體驗至關重要的實時效能。

此外,該解決方案與"人臉幾何"模組捆綁在一起,該模組彌合了人臉界標估計與有用的實時增強現實(AR)應用程式之間的差距。它建立了一個公制3D空間,並使用人臉界標螢幕位置來估計該空間內的人臉幾何形狀。面部幾何資料由常見的3D幾何圖元組成,其中包括面部姿勢轉換矩陣和三角形面部網格。在後臺,採用了一種稱為的輕量級統計分析方法來驅動健壯,高效能和可移植的邏輯。該分析在CPU上執行,並且在ML模型推斷的基礎上具有最小的速度/記憶體佔用量。

MediaPipe Face Mesh

在統計中,Procrustes分析是一種形式,用於分析一組的分佈。

在數學中:

· 一個正交普魯克問題是可被用來找出最佳的方法旋轉和/或反射的物件的疊加普魯克(PS)(即,最佳的正交線性變換)相對於另一個。

· 受制於(R)= 1(其中R是旋轉矩陣)的受約束正交Procrustes問題是一種可用於確定物件PS相對於另一個PS的最佳旋轉的方法(不允許反射) )。在某些情況下,此方法稱為。

當將一個形狀與另一個形狀進行比較,或者將一組形狀與任意選擇的參考形狀進行比較時,有時Procrustes分析可以進一步被歸類為經典普通,而不是將三個或更多個形狀進行比較的(GPA)最佳確定的"平均形狀"。

為了比較兩個或多個物件的形狀,必須首先將物件最佳地"疊加"。透過最佳化平移,和物件來執行Procrustes疊加(PS)。換句話說,可以自由調整空間的和物件的大小。目的是透過最小化形狀差異的度量(稱為物件之間的Procrustes距離)來獲得相似的放置和尺寸。與不執行縮放(即保留物件的大小)的部分PS相反,有時將其稱為full。請注意,在完整PS後,如果它們的物件完全重合,形狀是相同的。例如,對於全PS,兩個半徑不同的球將始終重合,因為它們的形狀完全相同。相反,使用部分PS,它們將永遠不會重合。這意味著,由長期的嚴格定義形狀的,形狀分析,應充分利用PS進行。基於區域性PS的統計分析不是純粹的形狀分析,因為它不僅對形狀差異敏感,而且對尺寸差異敏感。完全和部分PS都將永遠無法完美匹配形狀不同的兩個物件,例如立方體和球體,或者右手和左手。

在某些情況下,全部PS和部分PS都可能包含反射。例如,反射允許右手到左手的成功(可能是完美的)疊加。因此,啟用反射的部分PS保留大小,但允許平移,旋轉和反射,而啟用反射的完整PS允許平移,旋轉,縮放和反射。

MediaPipe Face Mesh

ML管道

ML管道包含兩個可協同工作的實時深度神經網路模型:一個在完整影象上執行並計算面部位置的檢測器,以及一個在這些位置上執行並透過迴歸預測近似表面幾何形狀的3D面部界標模型。正確裁剪面部可以大大減少對常見資料增強的需求,例如由旋轉,平移和縮放變化組成的仿射變換。相反,它允許網路將其大部分容量專用於座標預測精度。另外,在我們的管道中,也可以基於前一幀中識別出的人臉標誌生成作物,只有當地標模型不再能夠識別人臉存在時,才呼叫人臉檢測器來重新定位人臉。解決方案,它使用手掌檢測器和手界標模型。

該管道被實現為MediaPipe圖形,該使用來自人的人,並使用專用的人。在內部使用一個從面部檢測模組。

人臉地標模型

對於3D人臉地標,我們採用轉移學習並訓練了具有以下目標的網路:該網路同時預測合成渲染資料上的3D標誌地標座標和帶註釋的實際資料上的2D語義輪廓。由此產生的網路為我們提供了合理的3D地標預測,不僅包括合成數據,還包括真實資料。

3D地標網路無需額外的深度輸入即可接收裁剪後的影片幀作為輸入。該模型輸出3D點的位置,以及在輸入中出現人臉併合理對齊的可能性。一種常見的替代方法是為每個地標預測2D熱圖,但這種方法不適合進行深度預測,並且對許多點都具有很高的計算成本。透過迭代自舉和最佳化預測,我們進一步提高了模型的準確性和魯棒性。

MediaPipe Face Mesh

面幾何模組

人在螢幕座標空間中執行單相機人臉標誌檢測:X和Y座標是歸一化的螢幕座標,而Z座標是相對的並在下按X座標縮放。這種格式非常適合某些應用程式,但是它不能直接啟用全部增強現實(AR)功能,例如將虛擬3D物件與檢測到的面部對齊。

的遠離螢幕移動座標空間朝向度量三維空間,並提供必要的原語以處理檢測到的面部作為常規3D物件。透過設計,您將能夠使用透視相機將最終的3D場景投影回螢幕座標空間,並確保不更改面部界標位置。

公制3D空間

在"面幾何"模組中建立的度量3D空間是慣用右手的正交度量3D座標空間。在空間內,有一個虛擬透視相機位於空間原點,指向Z軸的負方向。在當前管道中,假定正好透過此虛擬攝像機觀察到輸入的攝像機幀,因此,以後將使用其引數將螢幕界標座標轉換回Metric 3D空間。該虛擬攝像機的引數可以自由設定,但它建議將它們設定為接近於更好的效果真實的物理相機引數成為可能。

MediaPipe Face Mesh

規範臉模型

的典型面模型是人臉,它遵循的468三維面部界標拓撲的靜態3D模型。該模型具有兩個重要功能:

· 定義度量單位:規範人臉模型的比例定義了Metric 3D空間的度量單位。使用的度量單位是釐米。

· 橋接靜態空間和執行時空間:臉部姿勢轉換矩陣-實際上是從規範化的臉部模型到每個幀上估計的執行時臉部界標集的線性對映。這樣,可以透過對人臉姿勢變換矩陣進行應用,將圍繞規範人臉模型建模的虛擬3D資產與被跟蹤人臉對齊。

元件

幾何管道的幾何流水線是一個關鍵組成部分,它負責度量3D空間內估計面部幾何圖形的物件。在每個框架上,以給定的順序執行以下步驟:

· 臉部界標螢幕座標轉換為Metric 3D空間座標;

· 面部姿勢變換矩陣估計為從規範的面部度量界標集到執行時面部度量界標集的剛性線性對映,其方式是使兩者之間的差異最小。

· 使用執行時面部度量界標作為頂點位置(XYZ)建立面部網格,而頂點紋理座標(UV)和三角形拓撲都從規範的面部模型繼承。

幾何管道實現為MediaPipe計算器。為了方便起見,將面幾何流水線計算器與面界標模組捆綁在一起,成為統一的MediaPipe。人臉幾何格式定義為協議緩衝區。

MediaPipe Face Mesh

效果渲染器

影像呈現器是一個元件,其作用是面部效果渲染器的工作示例。它針對OpenGL ES 2.0 API,以在移動裝置上實現實時效能,並支援以下渲染模式:

· 3D物件渲染模式:將虛擬物件與檢測到的臉部對齊以模擬附著到該臉部的物件(例如:眼鏡);· 面部網格渲染模式:將紋理拉伸到面部網格表面的頂部,以模仿面部繪畫技術。

在兩種渲染模式下,首先將面部網格作為遮擋物直接渲染到深度緩衝區中。此步驟透過將不可見元素隱藏在臉部表面後,有助於建立更可信的效果。

下期文章我們分享一下如何使用程式碼實現人臉mesh功能

53
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • DIY低成本多鏈路聚合4G、5G聚合路由器