Conference

SOAP: Style-Omniscient Animatable Portraits

Tingting Liao, Yujian Zheng, Yuliang Xiu, Adilbek Karmanov, Liwen Hu, Leyang Jin, Hao Li

Mohamed bin Zayed University of Artificial Intelligence

一句话总结

SOAP 提出一套「风格无关」的单图到可动画 3D 头像流水线:先用在 24K 多风格 3D 头部数据上微调的多视图扩散模型生成六视图 RGB 与法线,再通过可微渲染驱动的自适应形变与拓扑修正把 FLAME 模板变形为个性化头像,从而在保持拓扑一致与绑定可动画的同时,还原复杂发型、配饰与多样化风格。

研究背景

从单张肖像生成可动画的 3D 头像在游戏、影视和虚拟现实中价值很高,但现有方法有两类明显短板:

  • 参数化/单视图头部建模方法(如 ROME、PanoHead)通常受限于特定风格(写实或某种卡通),且难以处理眼镜、帽子等配饰与复杂发型,表面往往过度平滑。
  • 通用 3D 扩散方法(如 Wonder3D、LGM、Unique3D)虽然具备强大的单视图重建能力,但因训练数据是通用物体,应用到人头时存在明显的领域鸿沟,容易产生伪影,且输出多为无结构网格或神经场,缺少动画控制,需要额外拟合参数化模板。

作者的核心洞察分两点:一是借助扩散模型跨视图学习并泛化外观与几何,以覆盖多样风格;二是设计一套优化流程,把初始的、已绑定的参数化形状自适应地形变到目标几何,同时保持头部各部位的语义对应(例如嘴巴形变到目标嘴巴而非鼻子)。由此得到的是带 FACS 参数控制的纹理网格,可直接接入 Unreal、Unity 等游戏引擎,比 NeRF、高斯场等表示更利于渲染与美术编辑。

方法

整体框架

给定单张肖像 \(I\),SOAP 分三个阶段生成可动画 3D 头像:

flowchart TD
    A[单张肖像 I] --> B[风格无关稀疏视图生成]
    B --> B1[图像扩散 D_r: 6 张正交 RGB]
    B1 --> B2[法线扩散 D_n: 6 张法线图]
    B2 --> B3[超分辨率放大至 2048x2048]
    B3 --> C[可动画 3D 头部优化]
    C --> C1[FLAME 初始化 + 相机估计]
    C1 --> C2[模板形变: 重建/语义/关键点损失]
    C2 --> C3[拓扑修正: 重网格化 + 绑定插值]
    C3 -->|迭代循环| C2
    C3 --> D[眼球/牙齿/纹理]
    D --> D1[优化眼球半径与中心]
    D1 --> D2[对齐牙齿模板]
    D2 --> D3[多视图混合生成 UV 纹理]
    D3 --> E[可动画纹理化 3D 头像]

关键设计

风格无关稀疏视图生成。 训练风格无关生成器的难点在于缺乏大规模多风格 3D 头部数据。作者发现在公开数据里,anime 是与真人差异最大的非写实风格(尖小的鼻子、方大的眼睛、扁平脸、简化发型),于是仅用「写实」与「anime」两种极端风格训练,让模型去想象并泛化油画、水墨等中间风格。最终收集 24K 3D 头像:写实侧 9.1K 真实头部(THuman2.0、2K2K、NPHM)外加 2.4K 合成多样发型(UniHair、FFHQ-UV),anime 侧 13K Vroid 模型。多视图图像与法线扩散沿用 Unique3D 架构:图像模型 \(D_r\) 输入单图 \(I \in \mathbb{R}^{256\times256\times3}\) 输出六张正交 RGB \(I \in \mathbb{R}^{6\times256\times256\times3}\),法线模型 \(D_n\) 再据此生成法线图,最后用单视图超分放大四倍到 2048×2048。

参数化基础 FLAME。 头部用 FLAME 建模,给定形状 \(\beta\)、姿态 \(\theta\)、表情 \(\psi\):

\[F(\beta,\theta,\psi) = \mathrm{LBS}(M(\beta,\theta,\psi), J(\beta), \theta, W)\]

\[M(\beta,\theta,\psi) = T + B_s(\beta) + B_e(\psi) + B_p(\theta)\]

其中 \(T\) 为静止姿态模板,\(B_s,B_e,B_p\) 分别是形状、表情、姿态混合形状。作者记 \(\kappa=(\beta,\theta,\psi)\),并把整套可绑定模型记为 \(\Omega=(T,F,W,J,B)\)。与以往仅调 \(\kappa\) 加顶点偏移不同,SOAP 为每个身份优化个性化的 \(\Omega\),以获得更具表现力和细节的重建。

模板形变。 在多视图法线 \(N\)、初始网格、相机 \(\pi\)、68 点关键点 \(L\) 与头部解析图 \(P\) 的监督下,迭代更新模板顶点,总损失为:

\[L = \lambda_{rec}L_{rec} + \lambda_{sema}L_{sema} + \lambda_{lmk}L_{lmk}\]

  • 重建损失 \(L_{rec}\) 用渲染法线与目标法线的 MSE 对齐几何,并加拉普拉斯平滑正则。
  • 语义损失 \(L_{sema}\) 利用解析图约束「同语义部位相互形变」(脸对脸、发对发),含解析损失与眼部掩膜损失,仅用正面与 ±45° 三个可靠视图。
  • 关键点损失 \(L_{lmk}\) 含投影损失与规范空间对称损失,保持眼、鼻、唇、下颌结构并维持左右对称。

拓扑修正。 形变会带来大三角形、法线翻转、扭曲面等拓扑问题。作者在每步形变后做重网格化(细分超过阈值 \(\epsilon\) 的大三角形、翻转不一致三角形、删除错误三角形),并同步更新蒙皮权重与混合形状(沿边邻居插值)。关节回归矩阵不能直接插值,否则会改变关节位置,因此按

\[J = \bar{J}(T + B_s(\beta))^{-1}\]

更新,以保持规范空间中的关节位置不变。形变与重网格化交替迭代循环。

眼球、牙齿与纹理。 从 FLAME 归一化眼球出发,优化共享半径 \(r\) 与两眼中心 \(c\),用多视图眼部掩膜引导。由于重建网格前 5023 个顶点与 FLAME 同序,牙齿模板可精确缩放定位到口腔,上牙绑到头部、下牙绑到下颌。纹理以 FLAME UV 为初始,随网格插值,按视图法线混合多视图颜色,不可见区域通过 UV 连续性膨胀补全,从而支持纹理编辑。

实验结果

主实验在 40 个头部扫描(20 个真实来自 NPHM、20 个 anime/CG 合成)上,与单视图 3D 头像重建方法对比。每个网格渲染 8 视图计算图像指标(FID 用 60 视图),并补充 3D 指标。结果如下:

Method PSNR ↑ SSIM ↑ LPIPS ↓ CSIM ↑ FID ↓ CD ↓ IoU ↑ F1 ↑
ROME 12.60 0.7257 0.3290 0.6202 131.4 - - -
PanoHead 3.372 0.2998 0.6044 0.2507 116.3 - - -
SphereHead 6.683 0.5404 0.4703 0.4935 119.4 - - -
Wonder3D 16.17 0.7806 0.2298 0.6484 102.2 5.729 0.2395 0.3367
LGM 16.01 0.7914 0.2581 0.8511 104.0 - - -
Unique3D 17.09 0.7947 0.2064 0.8995 70.64 4.991 0.2409 0.3777
Ours 17.53 0.7958 0.1968 0.8268 58.44 2.880 0.3035 0.5108

SOAP 在 PSNR、SSIM、LPIPS、FID、CD、IoU、F1 上均领先,其中 FID 从 Unique3D 的 70.64 降到 58.44,CD 从 4.991 降到 2.880,几何指标提升尤为明显。CSIM 上 Unique3D(0.8995)更高,作者未在该项夺冠。对比方法失利原因:GAN 类(PanoHead、SphereHead)只在写实数据上训练;扩散类(Wonder3D、LGM、Unique3D)面向通用物体、未针对头部领域;ROME 只能生成正面头部、无法重建背面。

消融实验验证三个关键组件:关键点损失是保留唇、下颌线、眉毛等面部动画特征的关键;语义损失维持整体头部结构,尤其是长发或下垂发型,缺失时脸部边界顶点会移入头发区域;重网格化对长发、头饰等复杂表面的还原至关重要,缺失时表面因顶点密度不足与拓扑固定而过度平滑。

效率方面,单图生成可动画纹理头像约需 6 分钟(预处理约 1.5 分钟,头部与眼球优化、牙齿对齐、纹理生成约 4.5 分钟)。扩散训练在 7 块 A6000 上约 6 天。

亮点与局限

亮点:

  • 首个真正「风格无关」的单图全头重建方法,写实、卡通、anime 及夸张风格通吃,并能还原编发、帽子、眼镜、首饰等发型与配饰。
  • 输出是拓扑一致、带绑定、含眼球与牙齿的纹理网格,直接支持 FACS 参数动画,可无缝接入游戏引擎并便于美术编辑。
  • 「仅用两种极端风格训练、泛化到中间风格」的数据策略巧妙,兼顾了可获取性与覆盖面。
  • 形变加拓扑修正交替迭代的优化设计,解决了固定拓扑难以表达复杂几何、又要保持可动画绑定的矛盾。

局限:

  • 严重依赖 FLAME 估计、关键点检测、头部解析等前置模块,这些模块在 anime、卡通等高度风格化输入上表现明显下降,会导致关键点错检、解析分割不准、FLAME 拟合错位,最终产生结构扭曲的头像。
  • 扩散模型输出分辨率有限(当前 256×256),限制了最终质量;拓扑修正时顶点数需匹配法线预测的有效分辨率,对发丝锐边等细节增加顶点会显著加大计算量。

延伸思考

  • 「用两种极端风格张成风格空间、靠扩散模型插值中间风格」的思路可迁移到其他类别的风格泛化重建(如全身、手部、动物头部),关键在于找到差异最大的两个极端锚点。
  • 把可微渲染优化与「重网格化 + 绑定插值」耦合,本质上是在拓扑变化下保持语义与骨骼一致性的通用技巧,对需要动画绑定的任意模板配准任务都有参考价值。
  • 当前瓶颈落在前置感知模块与扩散分辨率上;若能训练风格无关的关键点/解析器,或引入更高分辨率、多视图一致的生成模型,方法上限有望进一步打开。