Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored.
3D面部建模领域存在着高端和低端方法之间的巨大差距。在高端,最佳的面部动画与真实人类无法区分,但这需要大量手工劳动。在低端,来自消费者深度传感器的面部捕捉依赖于不足以捕捉自然面部形状和表情变化的3D面部模型。我们寻求通过从数千个准确对齐的3D扫描中学习面部模型来找到一个中间地带。我们的FLAME模型(Faces Learned with an Articulated Model and Expressions)旨在与现有图形软件配合使用,并且易于拟合数据。FLAME使用从3800个人头扫描中训练得到的线性形状空间。FLAME将这个线性形状空间与有关的下颌、颈部和眼球的关节运动、姿势相关的校正混合形状以及其他全局表情混合形状相结合。关于姿势和表情相关的关节运动是从D3DFACS数据集中的4D面部序列中学到的,同时还使用了额外的4D序列。我们准确地将一个模板网格与扫描序列对齐,并将D3DFACS的注册用于研究目的。总体上,该模型从超过33,000个扫描中训练得到。FLAME是低维的,但比FaceWarehouse模型和Basel Face Model更具表现力。我们通过将这些模型与静态3D扫描和4D序列使用相同的优化方法拟合来与FLAME进行比较。FLAME明显更准确,并可供研究目的使用(http://flame.is.tue.mpg.de)。
CCS概念: • 计算方法学 → 网格模型;
附加关键词和短语:面部模型、网格注册、4D注册、形状、面部表情、混合蒙皮、学习。
ACM参考格式: Tianye Li, Timo Bolkart, Michael J. Black, Hao Li, and Javier Romero. 2017. Learning a model of facial shape and expression from 4D scans. ACM Trans. Graph. 36, 6, Article 194 (November 2017), 17 pages. https://doi.org/10.1145/3130800.3130813
为了解决现有模型的局限性,我们利用三个异构数据集,总共使用超过33,000个3D扫描。我们的FLAME模型(Faces Learned with an Articulated Model and Expressions)被分解为分别表示身份、姿势和面部表情的形式,类似于人体模型[Anguelov等,2005;Loper等,2015]。为了保持模型简单、计算效率高并且与现有的游戏和渲染引擎兼容,我们定义了一个基于顶点的模型,具有相对较低的多边形数、关节运动和混合蒙皮。具体而言,FLAME包括一个学到的身份变化的形状空间,一个关节运动的下颌和颈部,以及旋转的眼球。此外,我们还从示例中学到了姿势相关的下颌和颈部的混合形状。最后,我们学习了"表情"混合形状,以捕捉面部的非刚性变形。
鉴于全身扫描中的面部分辨率相对较低,精确注册扫描既是关键问题,也是困难的任务。为了实现准确的注册,我们使用一种共同注册的形式[Hirshberg等,2012],其中我们共同构建一个面部模型并使用它来对齐原始数据。在获得注册后,我们建立了一个面部形状模型,并展示了由此产生的身份形状空间比Basel Face Model(BFM)[Paysan等,2009]和FaceWarehouse模型更丰富。
通用面部模型:Blanz和Vetter [1999]提出了第一个从扫描数据学习的通用3D面部模型。他们使用主成分分析(PCA)定义了一个线性子空间来表示形状和纹理,并展示了如何将该模型拟合到数据中。该模型是从200名年轻、主要是白人成年人的头部扫描构建的,所有人都处于大致中性的表情中。该模型因其在研究目的上可用而产生了重大影响,称为Basel Face Model(BFM)[Paysan等,2009]。Booth等人[2017;2016]从近10,000个更多样化主题的面部扫描中学到了一个线性面部模型,这些主题都处于中性表情中。
该模型包括一个模板网络 T ‾ ∈ R 3 N \overline{\pmb{T}} \in \mathbb{R}^{3N} T∈R3N,处于"零姿势" θ ∗ ⃗ \vec{θ^*} θ∗ ,一个形状混合形状函数, B S ( β ⃗ ; S ) : R ∣ β ⃗ ∣ → R 3 N B_S(\vec{β};\pmb{S}):\mathbb{R}^{|\vec{β}|} \rightarrow \mathbb{R} ^ {3N} BS(β ;S):R∣β ∣→R3N,用于考虑与身份相关的形状变化,纠正姿势混合形状, B P ( θ ⃗ ; P ) : R ∣ θ ⃗ ∣ → R 3 N B_P(\vec{θ};\pmb{P}):\mathbb{R}^{|\vec{θ}|} \rightarrow \mathbb{R} ^ {3N} BP(θ ;P):R∣θ ∣→R3N,用于纠正仅通过LBS无法解释的姿势变形,以及表情混合形状, B E ( ψ ⃗ ; E ) : R ∣ ψ ⃗ ∣ → R 3 N B_E(\vec{ψ};\pmb{E}):\mathbb{R}^{|\vec{ψ}|} \rightarrow \mathbb{R} ^ {3N} BE(ψ ;E):R∣ψ ∣→R3N,用于捕捉面部表情。标准的蒙皮函数 W ( T ‾ , J , θ ⃗ , W ) W (\overline{\pmb{T}}, \pmb{J}, \vec{θ}, \pmb{W}) W(T,J,θ ,W)用于旋转顶点 T ‾ \overline{\pmb{T}} T围绕关节 J ∈ R 3 K \pmb{J} \in \mathbb{R}^{3K} J∈R3K进行旋转,由混合权重 W ∈ R K × N \pmb{W} \in \mathbb{R} ^ {K \times N} W∈RK×N线性平滑。
其中,
T P ( β ⃗ , θ ⃗ , ψ ⃗ ) = T ‾ + B S ( β ⃗ ; S ) + B P ( θ ⃗ ; P ) + B E ( ψ ⃗ ; E ) , (2) T_P(\vec{β},\vec{θ},\vec{ψ})=\overline{\pmb{T}}+B_S(\vec{β};\pmb{S})+B_P(\vec{θ};\pmb{P})+B_E(\vec{ψ};\pmb{E}), \tag{2} TP(β ,θ ,ψ )=T+BS(β ;S)+BP(θ ;P)+BE(ψ ;E),(2)
表示模板,带有添加的形状、姿势和表情偏移。
由于不同的面部形状意味着不同的关节位置,关节被定义为面部形状的函数 J ( β ⃗ , J , T ‾ , S ) = J ( T ‾ + B S ( β ⃗ ; S ) ) \pmb{J} (\vec{β}, \pmb{J}, \overline{\pmb{T}}, \pmb{S})=\pmb{J}(\overline{\pmb{T}}+B_S(\vec{β};\pmb{S})) J(β ,J,T,S)=J(T+BS(β ;S)),其中 J \pmb{J} J是一个稀疏矩阵,定义了如何从网格顶点计算关节位置。这个关节回归矩阵将从下面的训练示例中学习。图3说明了关节的学习位置,这些位置会随着头部形状的变化而自动调整。
形状混合形状: 不同受试者形状的变化是通过线性混合形状建模,如下所示:
B S ( β ⃗ ; S ) = ∑ n = 1 ∣ β ⃗ ∣ β n S n (3) B_S(\vec{β};\pmb{S})=\sum_{n = 1}^{|\vec{β}|} β_n \pmb{S}_n \tag{3} BS(β ;S)=n=1∑∣β ∣βnSn(3)
其中 β ⃗ = [ β 1 , ... , β ∣ β ⃗ ∣ ] T \vec{β}=[β_1,\dots,β_{|\vec{β}|}]^T β =[β1,...,β∣β ∣]T表示形状系数, S = S 1 , ... , S ∣ β ⃗ ∣ ] ∈ R 3 N × ∣ β ⃗ ∣ \pmb{S} = \pmb{S_1},...,\pmb{S_{|\vec{β}|}}] \in \mathbb{R}^{3N \times |\vec{β}|} S=S1,...,S∣β ∣]∈R3N×∣β ∣表示正交形状基础,将在下面通过主成分分析(PCA)进行学习。形状空间的训练在第6.3节中描述。
姿势混合形状: 让 ( R ( θ ⃗ ) : R ∣ θ ⃗ ∣ → R 9 K R(\vec{\theta}): \mathbb{R}^{|\vec \theta|} \rightarrow \mathbb{R}^{9K} R(θ ):R∣θ ∣→R9K ) 为一个从脸/头/眼姿势向量 θ ⃗ \vec \theta θ 到包含所有相应旋转矩阵的连接元素的向量的函数。姿势混合形状函数定义为:
B P ( θ ⃗ ; P ) = ∑ n = 1 9 K ( R n ( θ ⃗ ) − R n ( θ ∗ ⃗ ) ) P n (4) B_P(\vec{\theta};\pmb{P})=\sum_{n = 1}^{9K} (R_n(\vec{\theta}) - R_n(\vec{\theta^*})) \pmb{P}_n \tag{4} BP(θ ;P)=n=1∑9K(Rn(θ )−Rn(θ∗ ))Pn(4)
其中 R n ( θ ⃗ ) R_n(\vec \theta) Rn(θ )和 R n ( θ ∗ ⃗ ) R_n(\vec {\theta^*}) Rn(θ∗ )分别表示 R ( θ ⃗ ) R(\vec \theta) R(θ )的第 n 个元素和 R ( θ ∗ ⃗ ) R(\vec {\theta^*}) R(θ∗ )。向量 P n ∈ R 3 N \pmb{P}_n \in \mathbb{R}^{3N} Pn∈R3N描述由 R n R_n Rn激活的相对静止姿势的顶点偏移,而姿势空间 P = [ P 1 , ... , P 9 K ] ∈ R 3 N × 9 K P = [\pmb{P}1, \dots, \pmb{P}{9K}] \in \mathbb{R}^{3N \times 9K} P=[P1,...,P9K]∈R3N×9K是包含所有姿势混合形状的矩阵。尽管姿势混合形状在 ( R ) 中是线性的,但由于从 θ ⃗ \vec \theta θ 到旋转矩阵元素的非线性映射,它们在 θ ⃗ \vec \theta θ 方面是非线性的。如何从数据计算姿势参数的详细信息在第6.1节中有描述。
表情混合形状 :类似于形状混合形状,表情混合形状也是通过线性混合形状建模的,如下所示:
B E ( ψ ⃗ ; E ) = ∑ n = 1 ∣ ψ ⃗ ∣ ψ n E n , (5) B_E(\vec{\psi}; \pmb{E}) = \sum_{n=1}^{|\vec{\psi}|} \psi_n \mathbf{E}_n, \tag{5} BE(ψ ;E)=n=1∑∣ψ ∣ψnEn,(5)
其中 ψ ⃗ = [ ψ 1 , ... , ψ ∣ ψ ⃗ ∣ ] T \vec{\psi} = [\psi_1, \ldots, \psi_{|\vec{\psi}|}]^T ψ =[ψ1,...,ψ∣ψ ∣]T表示表情系数, E = [ E 1 , ... , E ∣ ψ ⃗ ∣ ] ∈ R 3 N × ∣ ψ ⃗ ∣ E = [\pmb{E}1, \ldots, \mathbf{E}{|\vec{\psi}|}] \in \mathbb{R}^{3N \times |\vec{\psi}|} E=[E1,...,E∣ψ ∣]∈R3N×∣ψ ∣表示正交表情基础。SMPL 模型没有类似于这些表情混合形状的东西,它们不受姿势驱动。有关表情空间的训练,请参见第6.2节。
模板形状 :请注意,形状、姿势和表情混合形状都是相对于模板网格 T ‾ \overline{\pmb{T}} T的位移。我们从一个通用的面部模板网格开始,然后通过扫描学习 T ‾ \overline{\pmb{T}} T以及模型的其余部分。我们还学习混合权重 W \pmb{W} W,如下所述。
4 时间注册
统计建模面部形状要求所有训练形状都处于完全的顶点对应关系中。对于一系列3D扫描,对于每个扫描i,注册过程计算一个对齐的模板 T i ∈ R 3 N T_i \in \mathbb{R}^{3N} Ti∈R3N。注册流程在对齐网格的同时进行正则化到FLAME模型,并从注册中训练FLAME模型,如图4所示。这种交替注册类似于用于人体的方法[Bogo et al. 2014]。
图4. 面部注册、模型训练和应用于表情转移的概览。
4.1 初始模型
交替注册过程需要一个初始的FLAME模型。如第3节所述,FLAME包含形状参数 { T ‾ , S } \{\overline{\pmb{T}}, \pmb{S}\} {T,S},姿势参数 { P , W , J } \{\pmb{P}, \pmb{W}, \pmb{J}\} {P,W,J}和表情参数 E \pmb{E} E,这些参数需要初始化,然后我们对其进行调整以适应注册的扫描数据。
形状: 为了获得初始的头部形状空间,我们从SMPL的全身注册中提取头部区域[Loper et al. 2015]到CAESAR数据集。我们调整完整身体SMPL模板的网格结构,并调整拓扑结构以包含嘴巴和眼睛的空洞。然后,我们使用变形传递[Sumner and Popović 2004],在SMPL全身形状注册和我们的精化模板之间进行,以获得带有精化头部模板的全身注册。使用这些注册的头部模板,我们对顶点应用PCA,得到表示身份的初始形状混合形状。
仅模型: 首先,我们通过优化以下目标函数来估计最能解释扫描的模型系数 { β ⃗ , θ ⃗ , ψ ⃗ } \{\vec{β}, \vec{θ}, \vec{ψ}\} {β ,θ ,ψ }:
E ( β ⃗ , θ ⃗ , ψ ⃗ ) = E D + λ L E L + E P (6) E(\vec{β}, \vec{θ}, \vec{ψ})=E_D+\lambda_LE_L+E_P \tag{6} E(β ,θ ,ψ )=ED+λLEL+EP(6)
其中数据项
E D = λ D ∑ v s ρ ( min v m ∈ M ( β ⃗ , θ ⃗ , ψ ⃗ ) ∣ ∣ v s − v m ∣ ∣ ) (7) E_D=\lambda_D\sum_{\pmb{v}s}ρ(\min{\pmb{v}_m \in M(\vec{β}, \vec{θ}, \vec{ψ})}||\pmb{v}_s-\pmb{v}_m||) \tag{7} ED=λDvs∑ρ(vm∈M(β ,θ ,ψ )min∣∣vs−vm∣∣)(7)
衡量扫描顶点 v s \pmb{v}_s vs与模型表面上最近点的扫描到网格的距离。权重 λ D λ_D λD控制数据项的影响。Geman-McClure鲁棒惩罚函数[Geman and McClure 1987] ρ \rho ρ使扫描中的离群值具有鲁棒性。
目标 E L E_L EL表示地标项,衡量图像地标与模型模板上对应顶点的L2-范数距离,通过已知的摄像机校准投影到图像中。我们使用CMU Intraface [Xiong and la Torre 2013]在所有多视图相机图像中完全自动预测49个地标(见图5左)。我们手动定义了我们模板中的对应49个地标(见图5右)。权重 λ L λ_L λL描述了地标项的影响。
耦合: 其次,我们允许通过优化来离开模型空间
E ( T , β ⃗ , θ ⃗ , ψ ⃗ ) = E D + E C + E R + E P (9) E(\pmb{T}, \vec{β}, \vec{θ}, \vec{ψ})=E_D+E_C+E_R+E_P \tag{9} E(T,β ,θ ,ψ )=ED+EC+ER+EP(9)
在这里,我们对模型参数 { β ⃗ , θ ⃗ , ψ ⃗ } \{\vec{β}, \vec{θ}, \vec{ψ}\} {β ,θ ,ψ }和模板网格 T \pmb{T} T的顶点进行优化,该模板网格可以发生形变。与仅使用模型进行注册不同, E D E_D ED现在测量了从扫描到对齐网格 T T T的扫描到网格的距离。耦合项 E C E_C EC通过惩罚 T \pmb{T} T和模型 M ( β ⃗ , θ ⃗ , ψ ⃗ ) M(\vec{β}, \vec{θ}, \vec{ψ}) M(β ,θ ,ψ )之间的边缘差异来约束 T \pmb{T} T靠近当前统计模型,如下:
E C = ∑ e λ e ∣ ∣ T e − M ( β ⃗ , θ ⃗ , ψ ⃗ ) e ∣ ∣ , (10) E_C=\sum_e\lambda_e||\pmb{T}_e-M(\vec{β}, \vec{θ}, \vec{ψ})_e||, \tag{10} EC=e∑λe∣∣Te−M(β ,θ ,ψ )e∣∣,(10)
其中 T e \pmb{T}_e Te和 M ( β ⃗ , θ ⃗ , ψ ⃗ ) e M(\vec{β}, \vec{θ}, \vec{ψ})_e M(β ,θ ,ψ )e分别是 T e \pmb{T}_e Te和 M ( β ⃗ , θ ⃗ , ψ ⃗ ) e M(\vec{β}, \vec{θ}, \vec{ψ})_e M(β ,θ ,ψ )e的边缘, λ e \lambda_e λe表示分配给每个边缘的个别权重。耦合使用边缘差异将耦合影响传播到其邻域中的单个点。优化是同时在 T \pmb{T} T和模型参数上进行的,以便在第一阶段中纠正可能存在的模型错误。对于 T \pmb{T} T中的每个顶点 v k ∈ R 3 \pmb{v}_k \in \mathbb{R}^3 vk∈R3的正则化项是离散拉普拉斯近似(Discrete Laplacian Approximation)[Kobbelt et al. 1998]。
E R = 1 N ∑ k = 1 N λ k ∣ ∣ U ( v k ) ∣ ∣ 2 , (11) E_R=\frac{1}{N} \sum_{k=1}^N \lambda_k||U(\pmb{v}_k)||^2, \tag{11} ER=N1k=1∑Nλk∣∣U(vk)∣∣2,(11)
其中, U ( v ) = 1 ∣ N ( v ) ∣ ∑ v r ∈ N ( v ) ( v r − v ) U(\pmb{v}) = \frac{1}{|N(\pmb{v})|} \sum_{\pmb{v}_r \in N(\pmb{v})} (\pmb{v}_r - \pmb{v}) U(v)=∣N(v)∣1∑vr∈N(v)(vr−v),其中, N ( v ) N(\pmb{v}) N(v)表示顶点 v \pmb{v} v一环邻域中的顶点集。
这个正则化项避免在注册过程中出现折痕,从而使得注册方法对于噪声和部分遮挡具有鲁棒性。每个顶点的权重 λ k \lambda_k λk允许在嘈杂的扫描区域中应用更多的正则化,以更好地适应数据的局部特性。
基于纹理: 第三,我们引入一个纹理项 E T E_T ET,以获得
E ( T , β ⃗ , θ ⃗ , ψ ⃗ ) = E D + E C + λ T E T + E R + E P , (12) E(\pmb{T}, \vec{β}, \vec{θ}, \vec{ψ}) = E_D + E_C + \lambda_T E_T + E_R + E_P , \tag{12} E(T,β ,θ ,ψ )=ED+EC+λTET+ER+EP,(12)
其中 E T E_T ET衡量了在所有 V V V个视图中从模板 T T T渲染的纹理图像 I I I与实际图像 I ⃗ \vec{I} I 之间的光度误差,表示为
E T = ∑ l = 0 3 ∑ v = 1 V ∥ Γ ( I l ( v ) ) − Γ ( I ^ l ( v ) ) ∥ F 2 , (13) E_T = \sum_{l=0}^3 \sum_{v=1}^V \left\| \Gamma(I_l^{(v)}) - \Gamma(\hat{I}_l^{(v)}) \right\|_F^2, \tag{13} ET=l=0∑3v=1∑V Γ(Il(v))−Γ(I^l(v)) F2,(13)
其中 ∥ X ∥ F \left\| \pmb{X} \right\|_F ∥X∥F表示矩阵 X \pmb{X} X的 Frobenius 范数。高斯滤波器的比率, Γ \Gamma Γ [Bogo et al. 2014],有助于最小化实际图像和渲染图像之间的光照变化的影响。此外,由于光度误差仅对小位移有意义,在优化过程中使用了具有四个分辨率级别的多层金字塔,以增加光度误差的空间范围。从视图 v v v中的分辨率级别 l l l的图像用 I l ( v ) I_l^{(v)} Il(v)表示。
个性化: 我们假设每个捕获的序列都以中性姿势和表情开始。在个性化过程中,我们使用耦合注册(方程9),对多个序列的结果 T i T_i Ti进行平均,以获得每个受试者的个性化模板。我们随机选择每个受试者的其中一个 T T T,生成个性化纹理图,供后续基于纹理的注册使用。这种个性化提高了注册过程的稳定性,并通过显著减少每个步骤中优化的参数数量来改善优化性能。
序列拟合: 在序列拟合阶段,我们将 M M M中的通用模型模板 T ‾ \overline{\pmb{T}} T替换为个性化模板,并将 β ⃗ \vec{β} β 固定为零。对于每个帧,我们从上一帧初始化模型参数,并使用第4.2节的单帧注册。在获得注册序列后,我们训练一个新的FLAME模型,如下所述,然后迭代注册过程。我们在进行四次迭代后停止,因为与三次迭代后的注册相比,视觉改进仅很小。
训练数据: 身份形状参数 { T ‾ , S } \{\overline{\pmb{T}}, \pmb{S}\} {T,S}在美国和欧洲CAESAR全身扫描数据库的3800个注册头部上进行训练[Robinette et al. 2002]。CAESAR数据库包含2100个女性和1700个男性的静态全身扫描,捕捉了形状的大量变化(见图6顶部)。CAESAR扫描与一个全身SMPL模型结合使用我们修订的头部模板,使用两步注册方法进行注册。首先,通过仅使用初始模型的模型注册初始化全局形状,然后通过耦合细化(第4.2节)进行。然后对这些注册进行形状参数的训练。
训练姿势参数 { P , W , J } \{\pmb{P}, \pmb{W}, \pmb{J}\} {P,W,J}需要能够表示可能的头部运动范围的训练数据,即颈部和下巴运动。由于CAESAR和现有的3D面部数据库都无法提供足够的头部姿势表达,我们捕捉了10名受试者的颈部旋转和下巴运动(见图6中部)来填补这一空白。颚和嘴的运动序列如第4节所述进行注册。头部旋转序列使用耦合对准进行注册,其中只允许颈部区域的顶点离开模型空间,与模型耦合,而其他所有顶点保持在模型空间内。当头部转动时,这增加了对不可避免的大面部遮挡的鲁棒性。总体而言,姿势参数在大约8000个注册头部上进行训练。
表情模型 E E E使用了两个培训数据来源,即D3DFACS的注册[Cosker et al. 2011]和自己捕获的序列。所有运动序列均完全自动注册,采用第4节中描述的注册方法,导致总共69,000个注册帧(见图6底部)。在这些3D序列中,相邻帧可能非常相似。为了训练的效率,我们因此对21,000个注册帧的子集进行采样。
测试数据: FLAME在三个数据集上进行了定量评估。首先,我们使用BU-3DFE [Yin et al. 2006]数据库的中性扫描数据,该数据库包含100个受试者的3D面部扫描,涵盖了丰富的种族差异。其次,我们使用七个受试者的自行捕获序列,执行不同的面部表情,包括六种典型表情、说话序列以及不同的面部动作单元。请注意,训练和测试受试者完全不重叠。第三,我们使用了Beeler等人[2011]序列的347个注册帧。
实现细节: 注册框架使用Python编写,使用Numpy和Scikit-learn [Pedregosa et al. 2011]计算PCA。所有其他模型参数通过基于梯度的dogleg方法进行优化[Nocedal and Wright 2006],其中所有梯度均使用Chumpy [Loper and Black 2014]进行自动微分计算。
在给定用于身份(图6顶部)、姿势(图6中部)和表情(图6底部)的注册数据集后,训练FLAME的目标是解耦形状、姿势和表情的变化,以计算参数集合 Φ = { T , S , P , E , W , J } \Phi = \{T, S, P, E, W, J\} Φ={T,S,P,E,W,J}。为了实现这种解耦,通过迭代优化的方式,逐个优化姿势参数 { P , W , J } \{\pmb{P}, \pmb{W}, \pmb{J}\} {P,W,J},表情参数 E E E和形状参数 { T ‾ , S } \{\overline{\pmb{T}}, \pmb{S}\} {T,S},以最小化训练数据的重建误差。我们分别使用特定性别的模型 Φ f \Phi_f Φf和 Φ m \Phi_m Φm,分别用于女性和男性。
6.1 姿势参数训练
我们的模型中有两种类型的姿势参数。首先,对于每个主体(由 i ∈ { 1 , ⋅ ⋅ ⋅ P s u b j } i \in \{1, · · · P_{subj}\} i∈{1,⋅⋅⋅Psubj}索引),有特定的参数,如个性化静止姿势模板 T i P T_i^P TiP和特定主体的关节 J i P J_i^P JiP。其次,有跨主体的参数,如混合权重 W 和姿势混合形状 P。关节回归器 J J J被学习以从个性化静止姿势模板 T i P T_i^P TiP回归出所有主体的特定关节 J i P J_i^P JiP。
这些参数的优化通过交替进行,分别解决每个注册 j 的姿势参数 θ \theta θ,优化主体特定参数 { T i P T_i^P TiP, J i P J_i^P JiP},和优化全局参数 { W , P , J } \{W, P, J\} {W,P,J}。被优化的目标函数包括数据项 E D E_D ED,惩罚训练数据的欧氏重建误差的平方;正则化项 E P E_P EP,对姿势混合形状的Frobenius范数进行惩罚;正则化项 E W E_W EW,对混合权重与其初始化值之间的差异进行惩罚。正则化项的权重 { E P E_P EP, E W E_W EW} 是在近似训练数据和保持参数的一般性之间的权衡。因此,正则化项防止FLAME对训练数据过拟合,并使其更具一般性。有关联合回归器、姿势和形状参数优化的方法和目标,更详细地由SMPL身体模型[Loper et al. 2015]描述,因为我们采用了他们的方法来表示FLAME的姿势和形状。
在没有特定主体模板 T i P T_i^P TiP的情况下,在训练姿势空间时,对姿势系数 θ \theta θ的初始估计是使用初始平均模板完成的。为了对形状的大变化具有鲁棒性,这是通过最小化模板和每个注册之间的边缘差异来完成的。
为了避免 T i P T_i^P TiP和 J i P J_i^P JiP受到强烈的面部表情的影响,在解决 T i P T_i^P TiP和 J i P J_i^P JiP时移除表情效应。这是通过联合解决每个注册的姿势 θ \theta θ和表情参数 ψ \psi ψ(方程5中的 B E B_E BE),并在这些残差上解决 T i P T_i^P TiP和 J i P J_i^P JiP来完成的。
6.2 表情参数训练
训练表情空间 E \pmb{E} E需要将表情与姿势和形状的变化解耦。首先通过解决每个注册 j j j的姿势参数 θ j ⃗ \vec {\theta _j} θj 并通过应用由 M ( 0 ⃗ , θ ⃗ , 0 ⃗ ) M(\vec 0, \vec {\theta}, \vec 0) M(0 ,θ ,0 )(方程1)引起的逆变换来移除姿势影响,其中 0 ⃗ \vec 0 0 是零值系数的矢量,实现这一目标。我们称这一步骤为"去姿势",将去姿势后的注册 j j j的顶点称为 V j U V^U_j VjU。由于我们希望从中性表情建模表情变化,我们假设为每个主体提供了定义中性表情的注册。令 V i N E V_i^{NE} ViNE表示主体 i i i的中性表情的顶点,也是去姿势的。为了将表情变化与形状变化解耦,我们计算每个注册 j j j的表情残差 V\^U_j - V_{s(j)}\^{NE} ,其中 ,其中 ,其中s(j) 是主体索引 是主体索引 是主体索引j 。然后,我们通过对这些表情残差应用 P C A 来计算表情空间 。然后,我们通过对这些表情残差应用PCA来计算表情空间 。然后,我们通过对这些表情残差应用PCA来计算表情空间E。
6.3 形状参数训练
训练形状参数包括计算形状数据集中注册的模板 T ‾ \overline{\pmb{T}} T和形状混合形状 S \pmb{S} S。与之前类似,从所有训练数据中去除姿势和表情的影响,以确保姿势、表情和形状的解耦。然后计算模板 T ‾ \overline{\pmb{T}} T为这些表情和姿势标准化的注册的平均值,形状混合形状 S \pmb{S} S是通过使用PCA计算的前 ∣ β ⃗ ∣ | \vec{\beta} | ∣β ∣个主成分形成的。
我们评估了我们的序列注册过程以及从这些注册中学到的FLAME模型的质量。与Basel Face Model和FaceWarehouse模型的比较表明,FLAME更具表现力。此外,我们展示了FLAME如何用于拟合2D图像数据和表情转移。更多详细信息请参见补充视频。
可视化: 我们在整个文档中使用共同的颜色编码来展示所有结果。输入数据,如静态或动态的3D面部扫描,显示为浅红色。在统计模型空间内的网格,通过仅进行模型注册(第4.2节)或对模型的潜在空间进行采样获得,显示为蓝色。为了比较,我们使用相同的颜色来可视化FLAME、Basel Face Model或FaceWarehouse模型的结果。通过进行耦合或基于纹理的对齐(第4.2节)离开形状空间获得的网格以浅绿色可视化。
我们的注册框架的目标是完全自动地注册来自不同来源(即D3DFACS和我们自己捕捉的序列)的大量序列(> 600)。为了提高对自身投影阴影和光照变化的鲁棒性,光度误差(方程12)的影响较小( w T = 0.1 w_T = 0.1 wT=0.1)。由于这个原因,我们的注册在表面内部的漂移并不完全消除,尤其是在没有显著特征的区域(即额头、脸颊、颈部)。图10底部评估了我们在Beeler等人的公开序列上的注册内表面漂移。虽然我们的注册与Beeler等人的扫描之间的距离很小(底部左侧),但测量我们的注册与其地面实况注册之间的距离显示了一些内表面漂移(底部右侧)。请注意,由于Beeler等人的数据具有均匀照明,可以使用更高加权的光度误差的我们的注册方法,可能进一步降低漂移误差。
紧凑性: 统计模型应该用尽可能少的参数来描述训练数据。紧凑性测量了模型捕捉的训练数据中存在的变异量。对于给定数量的 k k k个组件,紧凑性定义为 C ( k ) = ∑ i = 1 k λ i / ∑ i = 1 r a n k ( D ) λ i C(k) = \sum_{i=1}^k λ_i / \sum_{i=1}^{rank(\pmb{D})} λ_i C(k)=∑i=1kλi/∑i=1rank(D)λi ,其中 λ i λ_i λi是数据协方差矩阵 D \pmb{D} D的第 i i i个特征值。FLAME的紧凑性分别对身份和表情进行评估,通过计算对于不同数量的组件的 C ( k ) C(k) C(k)。
我们将FLAME与Basel Face Model(BFM)[Paysan et al. 2009]和FaceWarehouse模型(FW)[Cao et al. 2014]进行比较。我们通过将它们拟合到训练集之外的静态和动态3D数据来评估每个模型解释未见数据的能力;在所有情况下,我们使用相同的模型拟合框架。BFM是从200个中性表情形状中训练出来的,所有199个身份组件都是可用的。FW是从150个形状中学习的,但该模型仅包括50个身份组件和46个表情组件。
FLAME可以轻松用于合成新的动作序列,例如通过将源演员的面部表情转移到目标演员,同时保留目标面部的个体特定细节。此转移分为三个步骤。首先,使用建议的注册框架(第4.3节)对源序列进行注册,以计算每个源序列帧的姿势和表情系数 { θ s ⃗ , ψ s ⃗ } \{\vec{θ_s}, \vec{ψ_s}\} {θs ,ψs }。其次,使用耦合注册(第4.2节)来计算目标扫描的个性化模板 T t \pmb{T}_t Tt。最后,通过用个性化目标模板 T t \pmb{T}_t Tt替换平均模型模板 \\overline{\\pmb{T}} ,得到目标演员的个性化 F L A M E 模型 ,得到目标演员的个性化FLAME模型 ,得到目标演员的个性化FLAME模型M_t(\\vec{β}, \\vec{θ}, \\vec{ψ}) 。然后,表情转移的结果是使用方程 1 对模型进行重建 。然后,表情转移的结果是使用方程1对模型进行重建 。然后,表情转移的结果是使用方程1对模型进行重建M_t(\\vec{0}, \\vec{θ_s}, \\vec{ψ_s})。