论文笔记:3DMM(ACM1999)
論文:《A Morphable Model for the Synthesis of 3D Faces》
文章目錄
- 選擇動機
- 數據集
- Morphable 3D Face Model
- 模型建立及基本思想
- 分區變形模型
- 人臉屬性
- 模型與圖片的匹配
- 單圖像
- 多圖像
- 結果展示
- 總結
選擇動機
在接到這個課題的時候,先去看了相關碩博論文里的研究現狀部分,發現這一篇論文的方法會被多次提及,所以選擇這篇論文作為這一課題的第一篇文獻。(目前讀了十幾篇相關文獻,最近在回顧總結,所以CSDN上的文獻順序和我的閱讀順序不一致)
- 做什么?——基于單張(或多張)人臉圖像進行人臉的三維重建
- 這篇論文的目標:modeling textured 3D faces 帶紋理的三維人臉建模
- 怎么做?(如下圖)分為兩個部分
- 基于3D人臉掃描數據集建立變形模型
- 輸入一張2D人臉圖像,結合變形模型進行人臉的三維重建。通過調整相關形狀和紋理參數進行屬性編輯應用。
數據集
使用激光掃描儀對200個人(100男,100女)的頭部進行掃描。掃描結果以**柱坐標(cylindrical)**進行表示。除此之外,所有的人臉沒有化妝,沒有飾品,不帶頭發,無表情。
Morphable 3D Face Model
模型建立及基本思想
假設數據集中所有人臉均對齊(使用光流法optic flow進行對齊)。
使用nnn個頂點的三維坐標對三維人臉的形狀進行表示:S=(X1,Y1,Z1,X2,...,Yn,Zn)T∈R3nS={(X_1,Y_1,Z_1,X_2,...,Y_n,Z_n)}^T \in R^{3n}S=(X1?,Y1?,Z1?,X2?,...,Yn?,Zn?)T∈R3n,
使用nnn個頂點處的RGB值對三維人臉的紋理進行表示:T=(R1,G1,B1,R2,...,Gn,Bn)T∈R3nT={(R_1,G_1,B_1,R_2,...,G_n,B_n)}^T \in R^{3n}T=(R1?,G1?,B1?,R2?,...,Gn?,Bn?)T∈R3n。
那么,基于mmm個人臉樣例構建3DMM,且每一個人臉樣例均由形狀向量SiS_iSi?和紋理向量TiT_iTi?表示。新的人臉形狀SmodelS_{model}Smodel?和紋理TmodelT_{model}Tmodel?可基于mmm個樣例線性表示為:Smodel=∑i=1maiSi,Tmodel=∑i=1mbiTi,∑i=1mai=∑i=1mbi=1S_{model}=\sum_{i=1}^m a_i S_i,\quad T_{model}=\sum_{i=1}^m b_i T_i,\quad \sum_{i=1}^m a_i = \sum_{i=1}^m b_i =1Smodel?=i=1∑m?ai?Si?,Tmodel?=i=1∑m?bi?Ti?,i=1∑m?ai?=i=1∑m?bi?=1那么變形模型的定義:根據系數a?=(a1,a2,...,am)T\vec a={(a_1,a_2,...,a_m)}^Ta=(a1?,a2?,...,am?)T和b?=(b1,b2,...,bm)T\vec b={(b_1,b_2,...,b_m)}^Tb=(b1?,b2?,...,bm?)T產生的一系列人臉(Smodel(a?),Tmodel(b?))(S_{model}(\vec a),T_{model}(\vec b))(Smodel?(a),Tmodel?(b))。不同的系數a?\vec aa和b?\vec bb會產生不同的形狀和紋理。
為了保證產生的結果是一張可信的人臉,需要基于樣例人臉集估計參數的概率分布。
具體做法是將多元高斯分布(multivariate normal distribution)擬合到包含200個人臉掃描結果的數據集上。其中,形狀均值為Sˉ\bar SSˉ,紋理均值為Tˉ\bar TTˉ,形狀協方差為CSC_SCS?,紋理協方差為CTC_TCT?。協方差矩陣基于ΔS\Delta SΔS和ΔT\Delta TΔT進行計算,且有ΔSi=Si?Sˉ\Delta S_i =S_i-\bar SΔSi?=Si??Sˉ和ΔTi=Ti?Tˉ\Delta T_i =T_i-\bar TΔTi?=Ti??Tˉ。
引入PCA(Principal Component Analysis,主成分分析)思想,基于協方差矩陣計算得到特征值σ2\sigma^2σ2和特征向量s,ts,ts,t。根據特征值降序選擇m?1m-1m?1個特征向量,基于平均形狀或紋理,對新的人臉形狀或紋理進行表示。Smodel=Sˉ+∑i=1m?1αisi,Tmodel=Tˉ+∑i=1m?1βitiS_{model}=\bar S+\sum_{i=1}^{m-1} \alpha_i s_i,\quad T_{model}=\bar T+\sum_{i=1}^{m-1} \beta_i t_iSmodel?=Sˉ+i=1∑m?1?αi?si?,Tmodel?=Tˉ+i=1∑m?1?βi?ti?系數α?,β?\vec {\alpha},\vec{\beta}α,β?的概率分布為:p(α?)~exp[?12∑i=1m?1(αi/σs,i)2],p(β?)~exp[?12∑i=1m?1(βi/σt,i)2]p(\vec{\alpha})\sim exp[-\frac{1}{2} \sum_{i=1}^{m-1}{(\alpha_i / \sigma_{s,i})}^2],\quad p(\vec{\beta})\sim exp[-\frac{1}{2} \sum_{i=1}^{m-1}{(\beta_i / \sigma_{t,i})}^2]p(α)~exp[?21?i=1∑m?1?(αi?/σs,i?)2],p(β?)~exp[?21?i=1∑m?1?(βi?/σt,i?)2]
分區變形模型
將人臉分成4個獨立的子區域進行變形操作:眼睛、鼻子、嘴巴、剩下區域。分別進行變形操作,再整合到一起。
人臉屬性
變形模型的系數與人臉屬性之間不是明確的對應關系。加入手動標記的人臉屬性μi\mu_iμi?,并映射到變形模型的參數空間。ΔS=∑i=1mμi(Si?Sˉ),ΔT=∑i=1mμi(Ti?Tˉ)\Delta S=\sum_{i=1}^m \mu_i (S_i - \bar S),\quad \Delta T=\sum_{i=1}^m \mu_i (T_i - \bar T)ΔS=i=1∑m?μi?(Si??Sˉ),ΔT=i=1∑m?μi?(Ti??Tˉ)繼而去影響后續協方差矩陣、特征值、特征向量的計算。
模型與圖片的匹配
單圖像
上圖展示的是模型與單張人臉圖像的匹配過程。采用分析合成(analysis-by-synthesis)的思想,先基于目前的模型參數對人臉進行初步的三維重建,映射到二維圖像,與輸入圖像進行對比,基于殘差信息更新參數,使得產生的二維圖像與輸入圖像盡可能相似?;谧罱K的結果可以對人臉進行一些屬性編輯的操作。
在世界坐標與圖像坐標之間進行投影計算時,引入渲染參數ρ?\vec \rhoρ?,包含相機位姿、縮放因子、旋轉矩陣、平移向量、光照因素等。
基于參數(α?,β?,ρ?)(\vec \alpha,\vec \beta,\vec \rho)(α,β?,ρ?),模型最終得到的2D圖像可以表示為Imodel(x,y)=(Ir,mod(x,y),Ig,mod(x,y),Ib,mod(x,y))TI_{model}(x,y)={(I_{r,mod}(x,y),I_{g,mod}(x,y),I_{b,mod}(x,y))}^TImodel?(x,y)=(Ir,mod?(x,y),Ig,mod?(x,y),Ib,mod?(x,y))T。希望重建的2D圖像與輸入的2D人臉圖像盡可能相似,通過計算二者之間的歐氏距離,并基于此更新重建過程中的參數。EI=∑x,y∥Iinput(x,y)?Imodel(x,y)∥2E_I=\sum_{x,y} {\lVert I_{input}(x,y) - I_{model}(x,y) \rVert}^2EI?=x,y∑?∥Iinput?(x,y)?Imodel?(x,y)∥2以貝葉斯決策論的思想來看,尋找一組參數(α?,β?,ρ?)(\vec \alpha,\vec \beta,\vec \rho)(α,β?,ρ?),使得后驗概率p(Iinput∣(α?,β?,ρ?))p(I_{input}|(\vec \alpha,\vec \beta,\vec \rho))p(Iinput?∣(α,β?,ρ?))越大越好。假設輸入圖像IinputI_{input}Iinput?帶有標準方差為σN\sigma_NσN?的高斯噪聲,則p(Iinput∣(α?,β?,ρ?))~exp[?12σN2EI]p(I_{input}|(\vec \alpha,\vec \beta,\vec \rho))\sim exp[\frac{-1}{2{\sigma_N}^2}E_I]p(Iinput?∣(α,β?,ρ?))~exp[2σN?2?1?EI?]。最大化后驗概率等價于使下面的代價函數最小化。E=1σN2EI+∑j=1m?1αj2σS,j2+∑j=1m?1βj2σT,j2+∑j(ρj?ρˉj)2σρ,j2E=\frac{1}{\sigma_N^2}E_I+\sum_{j=1}^{m-1}\frac{\alpha_j^2}{\sigma_{S,j}^2}+\sum_{j=1}^{m-1}\frac{\beta_j^2}{\sigma_{T,j}^2}+\sum_j \frac{(\rho_j - \bar \rho_j)^2}{\sigma_{\rho,j}^2}E=σN2?1?EI?+j=1∑m?1?σS,j2?αj2??+j=1∑m?1?σT,j2?βj2??+j∑?σρ,j2?(ρj??ρˉ?j?)2?
參數更新方式αj→αj?λj?E?αj\alpha_j \rightarrow \alpha_j - \lambda_j \frac{\partial E}{\partial \alpha_j}αj?→αj??λj??αj??E?
多圖像
輸入的是同一個人的不同照片,共享相同的形狀和紋理參數,不同的是渲染參數。EIE_IEI?則替換為每一張輸入圖像與模型結果的歐氏距離的總和。
結果展示
上圖展示的是變形模型與單張人臉圖像進行匹配的結果。圖1是輸入的單張人臉圖像,圖2是3D形狀,圖4是帶紋理的3D形狀。圖3、圖5、圖6、圖7則是進行相關屬性變化的結果。
總結
這篇論文是人臉三維重建任務中較為經典的一個解決方案,后續還有很多基于3DMM拓展的模型和數據集,使用也比較廣泛。首先是引入PCA思想對三維人臉形狀和紋理的線性表達和變形,其次是分析合成思想進行圖像與模型的匹配以及參數更新。但這個模型的不足之處也顯而易見:參數過多(不適用于實時性要求較高的任務),數據集的獲取難度較大等。
總結
以上是生活随笔為你收集整理的论文笔记:3DMM(ACM1999)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任务并行VS数据并行
- 下一篇: 7.Reverse Integer (I