从面部到完整头部:3DCMM 的技术原理解析

引言
在计算机图形学和人体工学领域,3D 头部模型的需求日益增加。无论是虚拟化身的创建还是头盔的个性化设计,仅有面部模型往往不足以满足要求,完整的头部几何(包括头皮)才是关键。传统的 3D 可变形模型(3DMM)多集中于面部重建,头皮区域因数据稀缺和技术限制常被忽略。2022 年发表于 VRCAI’22 的论文《3DCMM: 3D Comprehensive Morphable Models for Accurate Head Completion》提出了一种新方法,利用 2528 个真实头部扫描数据,构建了 3D 综合可变形模型(3DCMM),并实现从 2D 面部图像或 3D 扫描到完整头部的重建。
本文将详细解析 3DCMM 的技术原理,重点放在其数学基础和推导过程上,力求清晰且严谨。
背景
现有的 3DMM(如 Basel Face Model、FaceScape)擅长面部细节的重建,但对头皮区域的支持有限。少数头部模型(如 FLAME、LYHM)虽然尝试覆盖全头,但受限于样本数量(数百至一千多)、分辨率(顶点数较低)或种族单一性(多为白人数据),难以满足高精度需求。此外,头皮数据采集因头发遮挡而困难重重。
论文的目标是从面部输入(2D 图像或 3D 扫描)生成完整头部,方法是先重建面部,再预测头皮。为此,作者引入了 3DCMM,分成面部模型(3DMFM)和头皮模型(3DMSM),并用大规模真实数据驱动其构建和应用。
核心原理
1. 数据基础
3DCMM 的基础是 2528 个中国人群的 3D 头部扫描数据,涵盖年龄 3-84 岁,包括成人(1763 人)和儿童(765 人)。这些数据使用高精度扫描仪(如 Artec Eva,精度 0.1 毫米)采集,并通过非刚性迭代最近点算法(NICP)对齐到统一模板,确保顶点对应一致。
2. 主成分分析(PCA)构建 3DCMM
PCA 的基本过程
每个头部扫描是一个高维向量,例如面部模型有 53,215 个顶点(159,645 维,x, y, z 坐标),直接处理这些数据计算量巨大。PCA 通过降维提取主要形状变化模式,将头部表示为参数化模型。
-
数据矩阵与中心化
- 设数据矩阵 X∈RN×DX \in \mathbb{R}^{N \times D}X∈RN×D,N=2528N = 2528N=2528(样本数),D=159,645D = 159,645D=159,645(维度)。
- 计算平均形状:
S‾=1N∑i=1NXi \overline{S} = \frac{1}{N} \sum_{i=1}^N X_i S=N1i=1∑NXi
其中 XiX_iXi 是第 iii 个头部的顶点向量。 - 中心化数据:
Xcentered=X−1S‾T X_{\text{centered}} = X - \mathbf{1} \overline{S}^T Xcentered=X−1ST
1\mathbf{1}1 是全 1 向量,XcenteredX_{\text{centered}}Xcentered 表示每个样本的偏差。
-
协方差矩阵
- 计算协方差矩阵:
C=1N−1XcenteredTXcentered C = \frac{1}{N-1} X_{\text{centered}}^T X_{\text{centered}} C=N−11XcenteredTXcentered
C∈RD×DC \in \mathbb{R}^{D \times D}C∈RD×D,是一个对称矩阵,反映顶点坐标间的相关性。 - 由于 DDD 极大(159,645),直接计算 CCC 成本高昂。实际中,可用奇异值分解(SVD)优化:
- 对 XcenteredX_{\text{centered}}Xcentered 进行 SVD:
Xcentered=UΣVT X_{\text{centered}} = U \Sigma V^T Xcentered=UΣVT- U∈RN×NU \in \mathbb{R}^{N \times N}U∈RN×N,Σ∈RN×D\Sigma \in \mathbb{R}^{N \times D}Σ∈RN×D,V∈RD×DV \in \mathbb{R}^{D \times D}V∈RD×D。
- VVV 的列是主成分,Σ2/(N−1)\Sigma^2 / (N-1)Σ2/(N−1) 对应特征值。
- 协方差矩阵可表示为:
C=1N−1VΣ2VT C = \frac{1}{N-1} V \Sigma^2 V^T C=N−11VΣ2VT
- 对 XcenteredX_{\text{centered}}Xcentered 进行 SVD:
- 计算协方差矩阵:
-
特征分解与主成分
- 对 CCC 进行特征分解(或直接用 SVD 结果):
C=VΛVT C = V \Lambda V^T C=VΛVT- Λ=diag(λ1,λ2,…,λD)\Lambda = \text{diag}(\lambda_1, \lambda_2, \ldots, \lambda_D)Λ=diag(λ1,λ2,…,λD),λi\lambda_iλi 是特征值,按降序排列。
- V=[v1,v2,…,vD]V = [v_1, v_2, \ldots, v_D]V=[v1,v2,…,vD],viv_ivi 是主成分向量。
- 取前 mmm 个主成分(论文中 m=220m = 220m=220,解释 98% 方差),组成矩阵 B=[v1,v2,…,vm]B = [v_1, v_2, \ldots, v_m]B=[v1,v2,…,vm]。
- 对 CCC 进行特征分解(或直接用 SVD 结果):
-
形状表示
- 每个头部可表示为:
S=S‾+Bα S = \overline{S} + B \alpha S=S+Bα- α∈Rm\alpha \in \mathbb{R}^mα∈Rm 是系数向量,B∈RD×mB \in \mathbb{R}^{D \times m}B∈RD×m。
- 系数计算:
α=BT(S−S‾) \alpha = B^T (S - \overline{S}) α=BT(S−S)
因为 BBB 的列正交(BTB=IB^T B = IBTB=I),投影直接得出 α\alphaα。
- 每个头部可表示为:
3DCMM 的子模型
- 3DMFM(面部):顶点数 53,215,Df=159,645D_f = 159,645Df=159,645:
Sf=Sf‾+Bfshpαf S_f = \overline{S_f} + B_{fshp} \alpha_f Sf=Sf+Bfshpαf - 3DMSM(头皮):顶点数 24,729,Ds=74,187D_s = 74,187Ds=74,187:
Ss=Ss‾+Bsshpαs S_s = \overline{S_s} + B_{sshp} \alpha_s Ss=Ss+Bsshpαs
3. 重建流程
步骤 1:面部重建
- 输入:2D 图像或 3D 扫描。
- 方法:
- 2D 图像通过 CNN(如 Deep3DFace)预测 αf\alpha_fαf。
- 3D 扫描通过 PointNet 编码为 αf\alpha_fαf。
- 输出:SfS_fSf。
步骤 2:头皮预测与合并
-
转换矩阵计算
- 目标:从 αf\alpha_fαf 预测 αs\alpha_sαs。
- 数据:2528 对面部-头皮系数对,记为 Mf∈Rmf×NM_f \in \mathbb{R}^{m_f \times N}Mf∈Rmf×N(面部系数矩阵,mf=220m_f = 220mf=220),Ms∈Rms×NM_s \in \mathbb{R}^{m_s \times N}Ms∈Rms×N(头皮系数矩阵,ms=220m_s = 220ms=220)。
- 多项式回归:
- 扩展 MfM_fMf 为 [Mf,Mf2,…,Mfn][M_f, M_f^2, \ldots, M_f^n][Mf,Mf2,…,Mfn],维度变为 (mf⋅n)×N(m_f \cdot n) \times N(mf⋅n)×N。
- 求转换矩阵 Cf,sC_{f,s}Cf,s:
Cf,s=MsMfT(MfMfT)−1 C_{f,s} = M_s M_f^T (M_f M_f^T)^{-1} Cf,s=MsMfT(MfMfT)−1- MfMfT∈Rmf⋅n×mf⋅nM_f M_f^T \in \mathbb{R}^{m_f \cdot n \times m_f \cdot n}MfMfT∈Rmf⋅n×mf⋅n 是 Gram 矩阵,若不可逆,可加正则化项 ϵI\epsilon IϵI:
Cf,s=MsMfT(MfMfT+ϵI)−1 C_{f,s} = M_s M_f^T (M_f M_f^T + \epsilon I)^{-1} Cf,s=MsMfT(MfMfT+ϵI)−1 - 论文实验表明 n=1n = 1n=1(线性回归)最佳。
- MfMfT∈Rmf⋅n×mf⋅nM_f M_f^T \in \mathbb{R}^{m_f \cdot n \times m_f \cdot n}MfMfT∈Rmf⋅n×mf⋅n 是 Gram 矩阵,若不可逆,可加正则化项 ϵI\epsilon IϵI:
- 预测头皮:
αs=Cf,s[αf,αf2,…,αfn] \alpha_s = C_{f,s} [\alpha_f, \alpha_f^2, \ldots, \alpha_f^n] αs=Cf,s[αf,αf2,…,αfn]
Ss=Ss‾+Bsshpαs S_s = \overline{S_s} + B_{sshp} \alpha_s Ss=Ss+Bsshpαs
-
合并
- 使用权重分布图(鼻尖为坐标原点)平滑过渡:
Smedi=(1−Wi)Ssi+Wi∑k=13wi,kSfi,k S_{\text{med}}^i = (1 - W^i) S_s^i + W^i \sum_{k=1}^3 w^{i,k} S_f^{i,k} Smedi=(1−Wi)Ssi+Wik=1∑3wi,kSfi,k- WiW^iWi 为顶点权重,wi,kw^{i,k}wi,k 为重心坐标权重。
- 使用权重分布图(鼻尖为坐标原点)平滑过渡:

实验结果
- 模型质量:3DMFM 重建误差 0.33 毫米,3DMSM 为 0.49 毫米,优于 BFM-2019(0.95 毫米)。
- 头皮预测:误差 2.04 毫米,优于拟合方法(3.23 毫米)。
- 应用:支持虚拟化身生成和头盔设计。
分析与展望
3DCMM 的优势在于真实数据支撑、独立头皮建模和参数化表示。其局限是数据集中于中国人群,未来可融入多种族样本(如 Headspace)提升普适性。
结语
3DCMM 通过 PCA 和回归,从面部重建到完整头部,提供了一种高效、精确的方法。其数学基础扎实,应用前景广阔,为后续研究奠定了基础。
771

被折叠的 条评论
为什么被折叠?



