论文笔记:3DMM(ACM1999)

论文:《A Morphable Model for the Synthesis of 3D Faces》

选择动机

在接到这个课题的时候,先去看了相关硕博论文里的研究现状部分,发现这一篇论文的方法会被多次提及,所以选择这篇论文作为这一课题的第一篇文献。(目前读了十几篇相关文献,最近在回顾总结,所以CSDN上的文献顺序和我的阅读顺序不一致)

  • 做什么?——基于单张(或多张)人脸图像进行人脸的三维重建
  • 这篇论文的目标:modeling textured 3D faces 带纹理的三维人脸建模
  • 怎么做?(如下图)分为两个部分
    • 基于3D人脸扫描数据集建立变形模型
    • 输入一张2D人脸图像,结合变形模型进行人脸的三维重建。通过调整相关形状和纹理参数进行属性编辑应用。
      流程图
数据集

使用激光扫描仪对200个人(100男,100女)的头部进行扫描。扫描结果以**柱坐标(cylindrical)**进行表示。除此之外,所有的人脸没有化妆,没有饰品,不带头发,无表情。

Morphable 3D Face Model
模型建立及基本思想

假设数据集中所有人脸均对齐(使用光流法optic flow进行对齐)。
使用 n n n个顶点的三维坐标对三维人脸的形状进行表示: S = ( X 1 , Y 1 , Z 1 , X 2 , . . . , Y n , Z n ) T ∈ R 3 n S={(X_1,Y_1,Z_1,X_2,...,Y_n,Z_n)}^T \in R^{3n} S=(X1,Y1,Z1,X2,...,Yn,Zn)TR3n
使用 n n n个顶点处的RGB值对三维人脸的纹理进行表示: T = ( R 1 , G 1 , B 1 , R 2 , . . . , G n , B n ) T ∈ R 3 n T={(R_1,G_1,B_1,R_2,...,G_n,B_n)}^T \in R^{3n} T=(R1,G1,B1,R2,...,Gn,Bn)TR3n
那么,基于 m m m个人脸样例构建3DMM,且每一个人脸样例均由形状向量 S i S_i Si和纹理向量 T i T_i Ti表示。新的人脸形状 S m o d e l S_{model} Smodel和纹理 T m o d e l T_{model} Tmodel可基于 m m m个样例线性表示为: S m o d e l = ∑ i = 1 m a i S i , T m o d e l = ∑ i = 1 m b i T i , ∑ i = 1 m a i = ∑ i = 1 m b i = 1 S_{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 =1 Smodel=i=1maiSi,Tmodel=i=1mbiTi,i=1mai=i=1mbi=1那么变形模型的定义:根据系数 a ⃗ = ( a 1 , a 2 , . . . , a m ) T \vec a={(a_1,a_2,...,a_m)}^T a =(a1,a2,...,am)T b ⃗ = ( b 1 , b 2 , . . . , b m ) T \vec b={(b_1,b_2,...,b_m)}^T b =(b1,b2,...,bm)T产生的一系列人脸 ( S m o d e l ( a ⃗ ) , T m o d e l ( b ⃗ ) ) (S_{model}(\vec a),T_{model}(\vec b)) (Smodel(a ),Tmodel(b ))。不同的系数 a ⃗ \vec a a b ⃗ \vec b b 会产生不同的形状和纹理。

为了保证产生的结果是一张可信的人脸,需要基于样例人脸集估计参数的概率分布。
具体做法是将多元高斯分布(multivariate normal distribution)拟合到包含200个人脸扫描结果的数据集上。其中,形状均值为 S ˉ \bar S Sˉ,纹理均值为 T ˉ \bar T Tˉ,形状协方差为 C S C_S CS,纹理协方差为 C T C_T CT。协方差矩阵基于 Δ S \Delta S ΔS Δ T \Delta T ΔT进行计算,且有 Δ S i = S i − S ˉ \Delta S_i =S_i-\bar S ΔSi=SiSˉ Δ T i = T i − T ˉ \Delta T_i =T_i-\bar T ΔTi=TiTˉ
引入PCA(Principal Component Analysis,主成分分析)思想,基于协方差矩阵计算得到特征值 σ 2 \sigma^2 σ2和特征向量 s , t s,t s,t。根据特征值降序选择 m − 1 m-1 m1个特征向量,基于平均形状或纹理,对新的人脸形状或纹理进行表示。 S m o d e l = S ˉ + ∑ i = 1 m − 1 α i s i , T m o d e l = T ˉ + ∑ i = 1 m − 1 β i t i S_{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_i Smodel=Sˉ+i=1m1αisi,Tmodel=Tˉ+i=1m1βiti系数 α ⃗ , β ⃗ \vec {\alpha},\vec{\beta} α ,β 的概率分布为: p ( α ⃗ ) ∼ e x p [ − 1 2 ∑ i = 1 m − 1 ( α i / σ s , i ) 2 ] , p ( β ⃗ ) ∼ e x p [ − 1 2 ∑ i = 1 m − 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[21i=1m1(αi/σs,i)2],p(β )exp[21i=1m1(βi/σt,i)2]

分区变形模型

将人脸分成4个独立的子区域进行变形操作:眼睛、鼻子、嘴巴、剩下区域。分别进行变形操作,再整合到一起。

人脸属性

变形模型的系数与人脸属性之间不是明确的对应关系。加入手动标记的人脸属性 μ i \mu_i μi,并映射到变形模型的参数空间。 Δ S = ∑ i = 1 m μ i ( S i − S ˉ ) , Δ T = ∑ i = 1 m μ i ( T i − 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=1mμi(SiSˉ),ΔT=i=1mμi(TiTˉ)继而去影响后续协方差矩阵、特征值、特征向量的计算。

模型与图片的匹配
单图像

模型与单张人脸图像的匹配流程
上图展示的是模型与单张人脸图像的匹配过程。采用分析合成(analysis-by-synthesis)的思想,先基于目前的模型参数对人脸进行初步的三维重建,映射到二维图像,与输入图像进行对比,基于残差信息更新参数,使得产生的二维图像与输入图像尽可能相似。基于最终的结果可以对人脸进行一些属性编辑的操作。
在世界坐标与图像坐标之间进行投影计算时,引入渲染参数 ρ ⃗ \vec \rho ρ ,包含相机位姿、缩放因子、旋转矩阵、平移向量、光照因素等。
基于参数 ( α ⃗ , β ⃗ , ρ ⃗ ) (\vec \alpha,\vec \beta,\vec \rho) (α ,β ,ρ ),模型最终得到的2D图像可以表示为 I m o d e l ( x , y ) = ( I r , m o d ( x , y ) , I g , m o d ( x , y ) , I b , m o d ( x , y ) ) T I_{model}(x,y)={(I_{r,mod}(x,y),I_{g,mod}(x,y),I_{b,mod}(x,y))}^T Imodel(x,y)=(Ir,mod(x,y),Ig,mod(x,y),Ib,mod(x,y))T。希望重建的2D图像与输入的2D人脸图像尽可能相似,通过计算二者之间的欧氏距离,并基于此更新重建过程中的参数。 E I = ∑ x , y ∥ I i n p u t ( x , y ) − I m o d e l ( x , y ) ∥ 2 E_I=\sum_{x,y} {\lVert I_{input}(x,y) - I_{model}(x,y) \rVert}^2 EI=x,yIinput(x,y)Imodel(x,y)2贝叶斯决策论的思想来看,寻找一组参数 ( α ⃗ , β ⃗ , ρ ⃗ ) (\vec \alpha,\vec \beta,\vec \rho) (α ,β ,ρ ),使得后验概率 p ( I i n p u t ∣ ( α ⃗ , β ⃗ , ρ ⃗ ) ) p(I_{input}|(\vec \alpha,\vec \beta,\vec \rho)) p(Iinput(α ,β ,ρ ))越大越好。假设输入图像 I i n p u t I_{input} Iinput带有标准方差为 σ N \sigma_N σN高斯噪声,则 p ( I i n p u t ∣ ( α ⃗ , β ⃗ , ρ ⃗ ) ) ∼ e x p [ − 1 2 σ N 2 E I ] p(I_{input}|(\vec \alpha,\vec \beta,\vec \rho))\sim exp[\frac{-1}{2{\sigma_N}^2}E_I] p(Iinput(α ,β ,ρ ))exp[2σN21EI]。最大化后验概率等价于使下面的代价函数最小化。 E = 1 σ N 2 E I + ∑ j = 1 m − 1 α j 2 σ S , j 2 + ∑ j = 1 m − 1 β j 2 σ T , j 2 + ∑ j ( ρ j − ρ ˉ j ) 2 σ ρ , j 2 E=\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=σN21EI+j=1m1σS,j2αj2+j=1m1σ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αjE

多图像

模型与多图像匹配
输入的是同一个人的不同照片,共享相同的形状和纹理参数,不同的是渲染参数。 E I E_I EI则替换为每一张输入图像与模型结果的欧氏距离的总和。

结果展示

模型与单图像的匹配结果
上图展示的是变形模型与单张人脸图像进行匹配的结果。图1是输入的单张人脸图像,图2是3D形状,图4是带纹理的3D形状。图3、图5、图6、图7则是进行相关属性变化的结果。
结果展示

总结

这篇论文是人脸三维重建任务中较为经典的一个解决方案,后续还有很多基于3DMM拓展的模型和数据集,使用也比较广泛。首先是引入PCA思想对三维人脸形状和纹理的线性表达和变形,其次是分析合成思想进行图像与模型的匹配以及参数更新。但这个模型的不足之处也显而易见:参数过多(不适用于实时性要求较高的任务),数据集的获取难度较大等。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值