日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

人脸重建速览,从3DMM到表情驱动动画

發(fā)布時間:2023/12/20 pytorch 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人脸重建速览,从3DMM到表情驱动动画 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎關注收藏或分享,轉載請注明出處。
個人專欄


人臉重建是計算機視覺比較熱門的一個方向,3d人臉相關應用也是近年來短視頻領域的新玩法。不管是Facebook收購的MSQRD,還是Apple研發(fā)的Animoji,底層技術都與三維人臉重建有關。

同時,實現(xiàn)人臉重建及相關應用需要深入了解優(yōu)化算法等,工程量也不小,是學習cv的一個很好切入點。

▲ Apple推出Animoji[0]

▲ Facebook收購MSQRD[1]

這里的人臉重建指,通過二維人臉圖像重建出該人臉的三維模型。 大概有以下幾種方法: 通過多視圖幾何來重建,這個需要采集不同角度的人臉,對設備的要求也比較高; 通過RGBD或RGB相機,用3D Morphable Model(3DMM)方法來重建。這種方法也有局限性,由于模型特點所致,無法生成模型細節(jié)(皺紋等); 還有近年來出現(xiàn)的使用深度學習方法來重建(有的是結合傳統(tǒng)3DMM方法,訓練其人臉模型參數(shù))。

本文主要講講單目RGB相機的3DMM方法。這種方法對設備要求低,算法簡單,易于移動端實現(xiàn)實時重建。這里的前提是我們已經(jīng)有了圖像人臉檢測的關鍵點。輸入圖像及檢測到的人臉關鍵點,輸出人臉三維網(wǎng)格。

概述

3DMM方法由Blanz[2]99年首次提出,往后的改進通常是基于他們的工作。這種方法有一個關于人臉模型的”先驗知識“,即可形變模型。因此不管人臉處于什么角度,都能得到較完整的人臉。

現(xiàn)在比較常見的人臉模型有Basel Face Model(BFM)、Surrey Face Model(SFM)、FaceWarehouse、Large Scale Facial Model (LSFM)等。其中,LSFM可能是如今最精準的模型。BFM比較容易獲取,很多人用它進行實驗。SFM的開源框架也為社區(qū)做出了巨大貢獻。同時,浙大團隊的FaceWarehouse以及一系列相關的文章都值得一讀。

▲1999年提出的3DMM方法[2]

首先需要了解參數(shù)化人臉模型blendshape模型兩個概念。

參數(shù)化人臉模型

在Blanz的方法中,他們掃描200張成年人的人頭模型,每個模型包含大約70000個頂點。經(jīng)過PCA處理,制作成參數(shù)化人臉模型,每張人臉模型的拓撲結構相同,只是頂點位置或顏色有所差異。你可以把各個特征向量看作是人臉不同的特征,比如臉的長短,胖瘦等。

這里人臉模型分成兩個向量:

因此任意新的一個人臉都可由這些特征向量線性組合生成:

▲參數(shù)化人臉模型[2]

blendshape表情模型

blendshape是3d軟件里用來做模型形變的一種技術,通過調整權重,設計師可以將目標模型變化成一系列預定義的模型,或者這些模型的任意線形組合。

▲blendshape模型,調整權重形成新的表情

在數(shù)字制作行業(yè),通常用blendshape來制作表情,即用一組臉部基本表情合成新表情。同樣,這些模型的拓撲結構一致,改變的只是頂點位置。為了不出現(xiàn)崩壞扭曲的表情,對權重做限制。

在人臉重建時,通常會使用delta blendshape,即各個表情與正常表情的差值。

將blendshape和參數(shù)人臉模型結合起來就有:

S表示一張有著某人臉特征和某表情的臉部模型。

? ▲包含形狀特征和表情的人臉模型[3]

重建

根據(jù)給定圖像來“估計”人臉模型,有點像渲染的逆過程。因此,除了人臉模型,還得考慮相機參數(shù)。

這里采用弱透視投影。

弱透視投影使用與正交投影相同的原則,但乘以一個縮放參數(shù)來實現(xiàn)近大遠小的效果。

可看作透視投影和正交投影的混合體。[4]

? ▲三維模型的弱透視投影

重建算法的關鍵在于找出合適的參數(shù) ,使三維人臉模型在平面的投影盡可能接近原圖像。如果不考慮紋理,可簡化為**“使人臉模型關鍵點在平面上的投影與2d人臉關鍵點的位置盡可能接近”**。

▲人臉圖像與模型關鍵點一一對應

有一點需要注意,常見的人臉關鍵點檢測結果一般是二維點。也就是說,臉的朝向不同,檢測到的臉部邊緣點也會不一樣,2d人臉邊緣點并不在真正的臉頰邊緣線上。

詳情可看下圖。上排圖像的藍點是二維人臉檢測點(2d)。下排圖像藍點是模型關鍵點(3d),紅點是對應的2d點??梢郧宄闯?#xff0c;圖像檢測出的2d邊緣點與模型本身3d邊緣點不同。因此,在迭代過程中,需要不斷更新模型的3d邊緣點索引,使二者一一對應。

▲三維模型邊緣點與人臉檢測邊緣點不同[5]

有很多方法可以找出三維模型在當前視角下的邊緣點。

可以用凸包算法求出邊緣線,也可以根據(jù)法線與視線夾角,求出臉部切線?;蛘邊⒖糩5]中描述,在一組預先保存的臉部線條上求出最外側的點。

通過以上描述,我們已經(jīng)將重建問題轉為最優(yōu)化問題。

其中,S是人臉模型,s是縮放尺度,R是旋轉矩陣,t是位移向量,Y是人臉檢測點,n為人臉關鍵點個數(shù)。和分別是人臉圖像關鍵點及人臉三維模型點的索引。

由于投影變化存在,這是個非線性最小二乘問題??梢杂肎auss-Newton ,Levenberg-Marquardt等算法求解,這里不展開講。

還有另外一種比較簡單的方法。

先利用2d與3d點集估計出模型的相機參數(shù),帶入上式轉為線性問題。然后分階段求出人臉參數(shù)和表情參數(shù)。整個迭代過程都是固定一部分參數(shù),更新其他參數(shù)。

人臉形狀特征參數(shù)和表情參數(shù)都需要控制在一定范圍內(視模型而定),不然可能會出現(xiàn)不合理的模型形狀。在視頻場景中,還需要考慮幀間穩(wěn)定性以及前后人臉特征一致等問題。

▲重建出人臉模型

應用

完成重建后,我們可獲得人臉三維網(wǎng)格、模型在圖像中的位置,以及當前人臉的blendshape表情參數(shù)。 基于以上信息,可以實現(xiàn)各種有意思的效果,下面根據(jù)這幾組參數(shù)分別舉一些例子。

三維網(wǎng)格和空間位置

有了三維模型和位置信息,我們可以在渲染時把人臉模型遮擋掉,做出三維貼紙的效果,諸如戴頭飾、眼鏡之類。

▲在三維建模工具中建好模型,調整與人臉的相對位置

▲實時效果

模型和紋理

繪制模型uv貼圖,再把人臉模型渲染出來??梢岳眠@種方法給人臉加上胡子、彩繪、面具等。

▲模型的uv貼圖

? ▲渲染出帶有貼圖的人臉模型

人臉模型參數(shù)與表情參數(shù)

可以將計算出的表情權重遷移到相同設置的blendshape模型上,用人臉去驅動模型動畫,實現(xiàn)類似animoji的效果。也可以改變人臉原有的表情參數(shù),讓照片動起來。

▲模型的blendshape需要與人臉的blendshape一致(表情相同)[6]

▲人臉驅動模型動畫

▲讓照片“活”起來

大概寫到這,其他方法或細節(jié)以后有機會再補充。


參考

[0] Apple just unveiled 'Animoji' — emojis that talk and sync to your face
[1] Facebook buys popular face swapping app for silly selfies
[2] A Morphable Model For The Synthesis Of 3D Faces
[3] Face Transfer with Multilinear Models
[4] 3D projection
[5] High-Fidelity Pose and Expression Normalization for Face Recognition in the Wild
[6] iPhone X Facial Capture – Apple blendshapes

總結

以上是生活随笔為你收集整理的人脸重建速览,从3DMM到表情驱动动画的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。