跳转至

Bridging Privacy and Provenance: Traceable Virtual Identity Generation

会议: CVPR 2026
论文: CVF Open Access
代码: 无
领域: AI安全 / 人脸隐私 / 扩散模型
关键词: 虚拟身份, 人脸匿名化, 数字水印, 可溯源, 扩散模型

一句话总结

这篇论文用一个扩散框架给每个用户生成"稳定、可复现、又看不出本人长相"的虚拟人脸,同时在生成过程中嵌入一个 128 位不可见水印当身份指纹,让用户日后能在不暴露真脸的前提下凭密钥验证"这张虚拟脸是我的",实现匿名与可溯源同时兼得。

研究背景与动机

领域现状:人脸匿名化要把"真人长相"从图像里抹掉,又尽量保留可用性。早期靠模糊/打码/像素化,画质崩坏;生成模型时代转向属性编辑或身份条件合成,能换掉身份并保住背景、姿态等无关属性,视觉质量好很多。

现有痛点:作者指出现有方法卡在两个互斥的需求上。一是虚拟身份不一致——同一个人不同照片匿名化后可能变成完全不同的"陌生人",没法用于需要稳定身份的认证/登录/支付场景。二是不可溯源——原始身份一旦被一次性映射丢弃,虚拟脸和真人之间就断了链,被滥用时没有任何机制能证明归属。

核心矛盾:现有两条补救路线各按下葫芦浮起瓢。可逆身份变换(FIT、RiDDLE、G2Face 等)靠用户密钥能反推回原脸,于是"匿名"和"可恢复原始生物特征"天然冲突——能恢复就意味着隐私没真正保住。单向真→虚映射(IVFG 等)能保证一致性、可直接拿去认证,但把原身份彻底丢掉后虚拟脸就和出处脱钩,无法验证归属。匿名性、一致性、可溯源三者很难在一个框架里同时成立。

本文目标:造一个虚拟脸,要同时满足——(i) 看不出本人(匿名)、(ii) 同一人多张照片得到稳定一致的虚拟身份、(iii) 出事时能验证归属(可溯源)、(iv) 姿态表情等无关属性保真。

切入角度:与其在"可逆变换"和"显式映射"里二选一(前者泄隐私、后者断溯源),作者换个思路——不去保留或恢复原脸,而是把一个不可见、可验证的身份指纹直接嵌进生成的人脸里。指纹来自用户生物特征的隐私化变换(如哈希后的指纹描述子),人眼看不见但可被解码比对。

核心 idea:把"虚拟身份采样 + 3D 几何/表情条件 + 隐空间水印"三件事缝进同一个扩散生成框架——用采样器造出稳定且匿名的身份嵌入,用 3DMM 把姿态表情灌进去,用水印把身份指纹埋进去,从而让一张脸"匿名、一致、可控、还可溯源"。

方法详解

整体框架

框架(论文 Fig.2)把一次虚拟人脸生成拆成三个串行模块,最后用扩散模型把所有条件合成成图。输入是用户的原始人脸,输出是一张匿名但可溯源的水印虚拟脸。

流程是:先从预训练人脸识别模型 \(E_{id}\)(ArcFace)取出原始身份嵌入 \(e_{ori}\),交给 虚拟身份采样器(VID Sampler) 采出一个与原身份足够远、但同一用户跨图像稳定的虚拟身份嵌入 \(e_{vir}\);并行地用 3DMM 管线从原脸估计头部姿态与表情(EMOCA 出法线图、SMIRK 出细粒度表情码);最后 水印虚拟脸生成 模块把身份嵌入(经 CLIP 文本空间注入到伪 prompt "photo of a <id> face")、法线图(经 ControlNet 注入)、表情码(经 IP-Adapter 式适配器注入)三路条件喂给 Stable Diffusion,并在 VAE 解码阶段嵌入用户专属的 128 位身份水印。验证时,管理端从水印解码出身份比特流,与用户提供的身份令牌比对即可确认归属。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["原始人脸"] --> B["虚拟身份采样<br/>e_ori→e_vir(匿名/一致/多样)"]
    A --> C["头部姿态与表情保持<br/>EMOCA法线图 + SMIRK表情码"]
    B -->|身份条件(伪prompt注入)| D["水印虚拟脸生成<br/>SD合成 + 128位隐空间水印"]
    C -->|ControlNet + Adapter注入| D
    D --> E["匿名+可溯源虚拟脸"]
    E -->|解码比特流vs身份令牌| F["归属验证 / 溯源"]

关键设计

1. 虚拟身份采样器:在超球面上造一个"既不像本人、又始终是同一个虚拟人"的身份嵌入

这一步直接对应"虚拟身份不一致"和"匿名性"两个痛点。作者在 ArcFace 的 \(\ell_2\) 归一化身份嵌入空间(单位超球面 \(S^{d-1}\))上工作,给定原始嵌入 \(e_{ori}\) 和用户专属条件 \(k\),采样器定义一条采样规则 \(e_{vir} \sim p_\phi(e \mid e_{ori}, k)\),并要求三条性质:匿名性——虚拟身份与原身份在特征空间张角足够大,即 \(\cos(e_{vir}, e_{ori}) < \tau_a\)一致性——同一用户不同照片在固定 \(k\) 下采出的虚拟身份要互相靠近;多样性——不同 \(k\) 给同一用户产生不同虚拟身份。

作者给了三种采样器各占一个 trade-off:① vMF 分布采样——在 \(S^{d-1}\) 上放一个均值方向取 \(e_{ori}\) 反向的 von Mises–Fisher 分布采候选,再用拒绝采样强制满足 \(\cos(e_{vir}, e_{ori}) < \tau_a\);免训练、最简单,但靠拒绝采样、可控性弱。② 生成式采样 HS-AE——学一个超球面自编码器 \(D_\psi\),推理时从单位超球 \(S^{L-1}\) 上均匀采一个隐码 \(z\) 再解码回身份球:\(e_{vir} = D_\psi(z)\);流形感知、多样性高,但因为没显式以 \(e_{ori}\) 为条件,需额外检查 \(e_{vir}\)\(e_{ori}\) 距离来保匿名。③ 条件身份混合 ID-Mixer——用一个轻量 MLP \(G_\phi\) 直接把原身份和隐码映成虚拟身份:\(e_{vir} = G_\phi(e_{ori}, z)\);显式以原身份为条件、便于做"用户专属但多样"的生成,代价是训练要同时平衡匿名/一致/多样三个目标。三者互补,按场景选用。

2. 头部姿态与表情保持:用 3DMM 把"和身份无关的几何与情绪"单独抽出来再灌回去

痛点是换身份时容易把姿态、表情一起换掉,导致虚拟脸表情僵硬、姿态跑偏。作者用基于 FLAME 头模型的 3DMM 管线,因为 3DMM 天然把人脸分解为身份/表情/形状几个分量,正好能只搬运"身份无关因子"而不暴露原身份。具体用两个互补模块:EMOCA 给出稳定、身份无关的头姿和粗表情,其重建网格渲染成法线图(normal map)作为 ControlNet 分支的空间条件,约束全局头部朝向和粗结构;SMIRK 是更细粒度的 3DMM 表情分析,专门补夸张/不对称/复合表情,它抽出的高维表情码经 IP-Adapter 式的表情适配器投影到 CLIP 隐空间、注入到扩散 UNet 选定的交叉注意力层去调制表情相关区域。一句话:EMOCA 管"全局姿态+粗几何",SMIRK 补"高频细表情",两路分工把无关属性保真而不带出身份。

3. 水印化虚拟脸生成:在解码阶段埋一个 128 位身份指纹,做到匿名与可溯源同时成立

这是把"不可溯源"补上的关键一招。生成主干是 Stable Diffusion(默认 SD 1.5),去噪 UNet 同时被三路条件控制:身份嵌入 \(e_{vid}\) 经轻量适配器投到 CLIP 文本编码空间、插进伪 prompt "photo of a <id> face" 决定"画的是谁",法线图经 ControlNet、表情码经适配器决定"朝向和表情怎样"。真正的溯源机制在解码端:作者借鉴 GenPTW 的隐空间水印思路,但把它从"取证鲁棒+篡改定位"裁剪成"轻量身份绑定"——做了一个简化的 128 位编解码器,只保留与稳定嵌入相关的组件、去掉所有面向篡改定位的增强,仅保留 JPEG 压缩、轻度光度扰动等常见失真,能无缝接进 VAE 解码器、几乎不增加计算与视觉开销。去噪得到的隐码 \(\hat z_0\) 经水印感知解码器解码,生成图里就隐式带上一段身份比特流。这段比特流来自用户生物特征的隐私化变换(如哈希指纹描述子或任意安全身份令牌),是一个密码学绑定的标记——日后用户用身份令牌即可比对验证归属,全程不暴露真脸,且同一用户的不同虚拟脸共享一致的身份表示。

损失函数 / 训练策略

三种采样器里只有 HS-AE 和 ID-Mixer 需要训练,vMF 免训练。

HS-AE 在超球面身份嵌入上用 KL-free 重建目标训练:编码器预测单位隐方向 \(\mu \in S^{L-1}\),训练时在其切平面加高斯噪声再投回球面 \(z = \mathrm{norm}\big((1-\eta)\mu + \eta\,\mathrm{norm}(\mu + \sigma\xi_\perp)\big)\),其中 \(\xi \sim \mathcal{N}(0,I)\)\(\xi_\perp = \xi - \langle\xi,\mu\rangle\mu\);解码器用余弦相似损失 \(L = 1 - \cos(\hat e, e)\) 重建。这种切平面加噪训练避免了高维下把超球后验匹配到均匀先验时常见的"集中坍缩"。

ID-Mixer 沿用 IVFG 的多任务目标:

\[L = \lambda_{ano}L_{ano} + \lambda_{div}L_{div} + \lambda_{intra}L_{intra} + \lambda_{inter}L_{inter} + \lambda_{reg}L_{reg}\]

其中 \(L_{ano}\) 把虚拟身份推离原身份(匿名)、\(L_{div}\) 分开同源不同密钥的虚拟身份(多样)、\(L_{intra}\) 把同人同密钥不同图像的虚拟身份拉近(一致),\(L_{inter}\)(跨身份分离)和 \(L_{reg}\)(特征空间正则)可选。各 \(\lambda\) 用来在匿名/多样/一致间权衡。

实验关键数据

数据集用 CelebA-HQ(保留有多张图的身份,28,299 图 / 4,516 身份,身份不相交 8:1:1 划分)训练,LFW、FFHQ 仅测试,全部对齐到 512×512。扩散模型默认 SD 1.5,身份文本编码器用 Arc2Face 微调版。用 ArcFace / FaceNet / AdaFace 三个识别器评估。

主实验:虚拟身份一致性(CelebA-HQ)

EER↓、AUC↑ 衡量"同一人的虚拟脸能否被稳定识别为同一虚拟身份"。

方法 ArcFace EER↓ ArcFace AUC↑ FaceNet EER↓ AdaFace EER↓
Original(真脸) 0.050 0.976 0.065 0.054
IVFG 0.161 0.916 0.164 0.160
RiDDLE 0.046 0.757 0.308 0.316
G2Face 0.241 0.835 0.237 0.258
Ours (ID-Mixer) 0.021 0.998 0.026 0.023
Ours (vMF) 0.002 1.000 0.006 0.001
Ours (HS-AE) 0.002 1.000 0.005 0.001

vMF / HS-AE 把 EER 压到 0.002、AUC 拉满到 1.000,一致性甚至超过原始真脸数据集,三个识别骨干上结论一致。

匿名性与多样性(CelebA-HQ)

匿名用 IAR↑(不匹配率)和 Sim↓(原-虚余弦相似度);多样性用 Div↑ 和作者新提的正交多样性 ODV↑(在身份正交子空间里量特征夹角差异)。

方法 ArcFace IAR↑ ArcFace Sim↓ ArcFace Div↑ ArcFace ODV↑
IVFG 1.000 0.034 0.913 79.20
RiDDLE 0.998 0.061 0.765 75.13
Ours (ID-Mixer) 1.000 0.034 0.923 79.54
Ours (vMF) 1.000 0.037 0.997 84.06
Ours (HS-AE) 1.000 0.038 0.999 83.66

匿名性与最强基线 IVFG 持平(IAR=1.0、Sim≈0.034),多样性 Div/ODV 全面领先所有支持多身份生成的方法。

水印有效性(Table 6)

数据集 Bit Acc↑ PSNR↑ SSIM↑ LPIPS↓
CelebA-HQ 0.998 39.74 0.974 0.019
FFHQ 0.998 39.63 0.974 0.019

128 位水印解码近乎完美(0.998 比特精度),同时 PSNR>39.6 dB、LPIPS<0.02,几乎不可见、不损画质——这正是"溯源不牺牲保真"的量化证据。

姿态/表情保持(Table 5,CelebA-HQ)

方法 Pitch↓ Roll↓ Yaw↓ Emo↑
RiDDLE 3.80 2.46 3.91 0.699
G2Face 2.63 1.94 2.84 0.824
Ours 2.20 1.45 2.18 0.879

三个姿态角偏移最低、表情相似度最高(0.879),印证 EMOCA+SMIRK 双路条件的有效性。

消融实验(Fig.5 定性)

配置 现象
Full impl. 完整框架,匿名+一致+姿态表情保真+水印
w/o VID sampler 改用 \(\mathcal{N}(0,1)\) 随机采样,虚拟脸偏离真实人脸流形(采样器把脸拉回真实人脸流形)
w/o EMOCA 丢失基础头姿/几何约束
w/o SMIRK 细腻表情还原变差(SMIRK 负责生动表情)
w/o watermark 视觉质量无明显变化(印证水印不可见、不损画质)

关键发现

  • 采样器贡献最大:去掉 VID 采样器后虚拟脸会跑出真实人脸流形——它不只是"换身份",还在隐式把生成约束回合理人脸空间。
  • EMOCA 与 SMIRK 分工明确:EMOCA 保基础姿态、SMIRK 增强细腻表情,缺一则对应维度退化。
  • 可用性存在 trade-off:本文做的是"整张脸的虚拟身份生成"而非局部编辑,图像分布变动更大,FID(FFHQ 38.04 / CelebA-HQ 50.60)不如专攻画质或保背景的方法(如 G2Face FID 7);但人脸检测率 0.999~1.000 拉满、姿态表情最优,作者明确这是为换稳定身份付出的代价。

亮点与洞察

  • "匿名"和"可溯源"被解耦成两条独立通道:身份用超球采样保证看不出本人,溯源用隐空间水印单独承载,互不干扰——这比"可逆变换"用同一把密钥既要恢复又要隐私的耦合设计干净得多,是本文最"啊哈"的地方。
  • 把水印从取证工具裁成身份令牌:作者明确说不追求 GenPTW 的篡改定位/取证鲁棒,只要 128 位稳定身份比特,于是删掉重负载增强、换来近零开销且 0.998 精度——"按需裁剪现成技术"的务实示范。
  • 超球面 + KL-free 切平面加噪训练可迁移:在单位球上用切平面噪声、余弦损失重建,避开高维 KL 匹配的集中坍缩,这套思路对任何需要在归一化嵌入空间采样的任务(检索、对比学习)都有参考价值。
  • 三采样器对应三种部署场景:vMF 免训练即插即用、HS-AE 多样性最强、ID-Mixer 可显式按源身份条件化,给工程落地留了选择空间。

局限与展望

  • 画质有可见代价:整脸重生成导致 FID 明显高于局部编辑类方法,对画质敏感的场景需权衡。
  • 水印鲁棒性证据不足:正文只测了 JPEG/光度扰动下的比特精度,更强攻击(裁剪、重压、对抗去水印、Re-ID 攻击)的鲁棒性放在补充材料,主文无法判断在 Fig.1 列出的"水印移除攻击"下指纹是否真扛得住。⚠️ 以原文/补充材料为准。
  • 溯源链依赖中心化数据库:验证流程要管理端注册保存、比对身份令牌,水印本身只是比特,归属语义靠服务器侧映射——一旦数据库失守或令牌泄露,"密码学绑定"的强度存疑。
  • 依赖大量预训练组件(ArcFace、Arc2Face、EMOCA、SMIRK、ControlNet、SD),任一环节的偏差(如 3DMM 对极端姿态估计失败)都会传导到最终脸。
  • 改进方向:把溯源做成去中心化/可公开验证(如绑定可验证凭证),并系统评估对抗性水印移除下的可溯源率。

相关工作与启发

  • vs 可逆身份变换(FIT / RiDDLE / G2Face):它们靠用户密钥可反推原脸,"可恢复"与"隐私保护"天然冲突,恢复即暴露生物特征;本文不保留也不恢复原脸,只埋不可见水印当指纹,匿名性更彻底,代价是溯源依赖数据库比对而非反推。
  • vs 单向真→虚映射(IVFG):IVFG 保证一致性、可直接认证,但丢弃原身份后虚拟脸与出处断链、无法验证归属;本文在保住一致性(EER 更低)的同时用水印补回溯源链,并在多样性上反超(ODV 84 vs 79)。
  • vs 生成水印(Tree-Ring / Stable Signature / GenPTW):这些为"区分生成图/取证/篡改定位"服务,把图案塞进初始噪声或微调 VAE;本文把多比特水印的用途改成"给虚拟脸贴稳定身份令牌",把虚拟身份绑定到生成图上,让真→虚映射更灵活可靠。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次把"匿名"与"可溯源"在一个扩散框架里同时做成,且用解耦的采样器+隐空间水印两通道实现,paradigm 上确实新。
  • 实验充分度: ⭐⭐⭐⭐ 三数据集三识别器、一致性/匿名/多样/可用/姿态表情/水印多维度对比齐全,但水印鲁棒性与抗攻击证据被放进补充,主文略弱。
  • 写作质量: ⭐⭐⭐⭐ 动机层层递进、三模块结构清晰;个别记号(\(e_{vid}\)\(e_{vir}\))与指标命名(CSim/Sim)小有出入。
  • 价值: ⭐⭐⭐⭐⭐ 直击虚拟身份认证/账号体系的真实需求,给"负责任的可溯源生成"提供了可落地路径。