当前位置: 首页 > article >正文

论文解读(全头皮重建方向):3DCMM

从面部到完整头部: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 通过降维提取主要形状变化模式,将头部表示为参数化模型。

  1. 数据矩阵与中心化

    • 设数据矩阵 X ∈ R N × D X \in \mathbb{R}^{N \times D} XRN×D N = 2528 N = 2528 N=2528(样本数), D = 159 , 645 D = 159,645 D=159,645(维度)。
    • 计算平均形状:
      S ‾ = 1 N ∑ i = 1 N X i \overline{S} = \frac{1}{N} \sum_{i=1}^N X_i S=N1i=1NXi
      其中 X i X_i Xi 是第 i i i 个头部的顶点向量。
    • 中心化数据:
      X centered = X − 1 S ‾ T X_{\text{centered}} = X - \mathbf{1} \overline{S}^T Xcentered=X1ST
      1 \mathbf{1} 1 是全 1 向量, X centered X_{\text{centered}} Xcentered 表示每个样本的偏差。
  2. 协方差矩阵

    • 计算协方差矩阵:
      C = 1 N − 1 X centered T X centered C = \frac{1}{N-1} X_{\text{centered}}^T X_{\text{centered}} C=N11XcenteredTXcentered
      C ∈ R D × D C \in \mathbb{R}^{D \times D} CRD×D,是一个对称矩阵,反映顶点坐标间的相关性。
    • 由于 D D D 极大(159,645),直接计算 C C C 成本高昂。实际中,可用奇异值分解(SVD)优化:
      • X centered X_{\text{centered}} Xcentered 进行 SVD:
        X centered = U Σ V T X_{\text{centered}} = U \Sigma V^T Xcentered=UΣVT
        • U ∈ R N × N U \in \mathbb{R}^{N \times N} URN×N Σ ∈ R N × D \Sigma \in \mathbb{R}^{N \times D} ΣRN×D V ∈ R D × D V \in \mathbb{R}^{D \times D} VRD×D
        • V V V 的列是主成分, Σ 2 / ( N − 1 ) \Sigma^2 / (N-1) Σ2/(N1) 对应特征值。
      • 协方差矩阵可表示为:
        C = 1 N − 1 V Σ 2 V T C = \frac{1}{N-1} V \Sigma^2 V^T C=N11VΣ2VT
  3. 特征分解与主成分

    • C C C 进行特征分解(或直接用 SVD 结果):
      C = V Λ V T 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 = [ v 1 , v 2 , … , v D ] V = [v_1, v_2, \ldots, v_D] V=[v1,v2,,vD] v i v_i vi 是主成分向量。
    • 取前 m m m 个主成分(论文中 m = 220 m = 220 m=220,解释 98% 方差),组成矩阵 B = [ v 1 , v 2 , … , v m ] B = [v_1, v_2, \ldots, v_m] B=[v1,v2,,vm]
  4. 形状表示

    • 每个头部可表示为:
      S = S ‾ + B α S = \overline{S} + B \alpha S=S+Bα
      • α ∈ R m \alpha \in \mathbb{R}^m αRm 是系数向量, B ∈ R D × m B \in \mathbb{R}^{D \times m} BRD×m
    • 系数计算:
      α = B T ( S − S ‾ ) \alpha = B^T (S - \overline{S}) α=BT(SS)
      因为 B B B 的列正交( B T B = I B^T B = I BTB=I),投影直接得出 α \alpha α
3DCMM 的子模型
  • 3DMFM(面部):顶点数 53,215, D f = 159 , 645 D_f = 159,645 Df=159,645
    S f = S f ‾ + B f s h p α f S_f = \overline{S_f} + B_{fshp} \alpha_f Sf=Sf+Bfshpαf
  • 3DMSM(头皮):顶点数 24,729, D s = 74 , 187 D_s = 74,187 Ds=74,187
    S s = S s ‾ + B s s h p α 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
  • 输出: S f S_f Sf
步骤 2:头皮预测与合并
  • 转换矩阵计算

    • 目标:从 α f \alpha_f αf 预测 α s \alpha_s αs
    • 数据:2528 对面部-头皮系数对,记为 M f ∈ R m f × N M_f \in \mathbb{R}^{m_f \times N} MfRmf×N(面部系数矩阵, m f = 220 m_f = 220 mf=220), M s ∈ R m s × N M_s \in \mathbb{R}^{m_s \times N} MsRms×N(头皮系数矩阵, m s = 220 m_s = 220 ms=220)。
    • 多项式回归:
      • 扩展 M f M_f Mf [ M f , M f 2 , … , M f n ] [M_f, M_f^2, \ldots, M_f^n] [Mf,Mf2,,Mfn],维度变为 ( m f ⋅ n ) × N (m_f \cdot n) \times N (mfn)×N
      • 求转换矩阵 C f , s C_{f,s} Cf,s
        C f , s = M s M f T ( M f M f T ) − 1 C_{f,s} = M_s M_f^T (M_f M_f^T)^{-1} Cf,s=MsMfT(MfMfT)1
        • M f M f T ∈ R m f ⋅ n × m f ⋅ n M_f M_f^T \in \mathbb{R}^{m_f \cdot n \times m_f \cdot n} MfMfTRmfn×mfn 是 Gram 矩阵,若不可逆,可加正则化项 ϵ I \epsilon I ϵI
          C f , s = M s M f T ( M f M f T + ϵ 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 = 1 n = 1 n=1(线性回归)最佳。
    • 预测头皮:
      α s = C f , s [ α f , α f 2 , … , α f n ] \alpha_s = C_{f,s} [\alpha_f, \alpha_f^2, \ldots, \alpha_f^n] αs=Cf,s[αf,αf2,,αfn]
      S s = S s ‾ + B s s h p α s S_s = \overline{S_s} + B_{sshp} \alpha_s Ss=Ss+Bsshpαs
  • 合并

    • 使用权重分布图(鼻尖为坐标原点)平滑过渡:
      S med i = ( 1 − W i ) S s i + W i ∑ k = 1 3 w i , k S f i , 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=(1Wi)Ssi+Wik=13wi,kSfi,k
      • W i W^i Wi 为顶点权重, w i , k w^{i,k} wi,k 为重心坐标权重。

在这里插入图片描述


实验结果

  • 模型质量:3DMFM 重建误差 0.33 毫米,3DMSM 为 0.49 毫米,优于 BFM-2019(0.95 毫米)。
  • 头皮预测:误差 2.04 毫米,优于拟合方法(3.23 毫米)。
  • 应用:支持虚拟化身生成和头盔设计。

分析与展望

3DCMM 的优势在于真实数据支撑、独立头皮建模和参数化表示。其局限是数据集中于中国人群,未来可融入多种族样本(如 Headspace)提升普适性。


结语

3DCMM 通过 PCA 和回归,从面部重建到完整头部,提供了一种高效、精确的方法。其数学基础扎实,应用前景广阔,为后续研究奠定了基础。


http://www.kler.cn/a/559189.html

相关文章:

  • Baklib知识中台架构迭代与服务效能升级
  • 云计算中的API网关是什么?为什么它很重要?
  • 【蓝桥杯单片机】第十三届省赛第二场
  • 【落羽的落羽 数据结构篇】顺序结构的二叉树——堆
  • DAY11 Tensorflow 鸢尾花数据集可视化训练
  • MobaXterm_Portable_v23.2 免费下载与使用教程(附安卓替代方案)
  • Java中的自然语言处理(NLP)工具:Stanford NLP、Apache OpenNLP、DL4J
  • 萌新学 Python 之 lambda 函数
  • 财务运营域——营收稽核系统设计
  • springcloud gateway并发量多大
  • 蓝桥杯训练 补题
  • 2025年微店平台商品详情接口调用指南(Python代码示例)
  • [LeetCode力扣hot100]-快速选择和快排
  • DeepSeek各模型现有版本对比分析
  • 深入解析 Spring WebFlux:原理与应用
  • 2025年SCI一区智能优化算法:混沌进化优化算法(Chaotic Evolution Optimization, CEO),提供MATLAB代码
  • 下载CentOS 10
  • Debian系统终端输入ifconfig报错
  • 深度学习-7.超参数优化
  • 设计模式教程:中介者模式(Mediator Pattern)