Logo
热心市民王先生

研究方法

2.1 整体框架概述

PixelSmile是一个基于扩散模型的细粒度面部表情编辑框架,采用全对称联合训练范式,结合文本潜在插值机制实现连续可控的表情编辑。

2.1.1 框架架构

flowchart TB
    subgraph 输入
        I1[源图像]
        I2[中性提示]
        I3[目标表情提示]
        I4[强度系数α]
    end
    
    subgraph 文本编码
        T1[文本编码器<br/>CLIP/MMDiT]
        T2[中性嵌入 e_neu]
        T3[目标嵌入 e_tgt]
        T4[残差方向 Δe]
        T5[条件嵌入<br/>e_cond = e_neu + α·Δe]
    end
    
    subgraph 生成网络
        G1[预训练MMDiT]
        G2[LoRA适配器]
        G3[流匹配去噪]
    end
    
    subgraph 输出
        O1[编辑后图像]
    end
    
    I2 --> T1
    I3 --> T1
    T1 --> T2
    T1 --> T3
    T2 --> T4
    T3 --> T4
    T4 --> T5
    I4 --> T5
    I1 --> G1
    T5 --> G1
    G1 --> G2
    G2 --> G3
    G3 --> O1

2.1.2 核心组件

PixelSmile包含三大核心技术创新:

组件功能技术要点
文本潜在插值连续强度控制残差方向计算+系数调制
全对称联合训练语义解耦混淆表情对+对称对比损失
身份保持机制身份一致性ArcFace多模型融合

2.2 FFE数据集构建

2.2.1 设计原则

FFE(Flex Facial Expression)数据集旨在解决现有数据集的三个关键局限:

  1. 连续性:用12维连续分数向量替代one-hot标签
  2. 多样性:同身份覆盖12种表情类别+多强度级别
  3. 跨域性:同时包含真实人像和动漫角色

2.2.2 四阶段构建流程

flowchart LR
    A[阶段1<br/>基础身份收集] --> B[阶段2<br/>表情提示组合]
    B --> C[阶段3<br/>受控表情生成]
    C --> D[阶段4<br/>连续标注与过滤]
    
    A -->|6K真实+6K动漫| B
    B -->|12种表情类别| C
    C -->|60K张图像| D
    D -->|12维连续向量| E[FFE数据集]

阶段1:基础身份收集

真实域(Real Domain)

  • 来源:公开人像数据集(Human Images Dataset、Matting Human Datasets)
  • 规模:约6,000张高质量真实人像
  • 覆盖:多样人口统计特征和场景构图
  • 质量控制:自动人脸检测+人工验证

动漫域(Anime Domain)

  • 来源:207部动漫作品,629个角色
  • 规模:约6,000张筛选后的高质量图像
  • 处理流程:
    原始截图 → 人脸检测 → 质量过滤 → 人工验证 → 身份标注
  • 目的:验证跨域泛化能力

阶段2:表情提示组合

表情分类体系

mindmap
  root((12种表情类别))
    基本情绪[6种基本情绪<br/>Ekman分类]
      快乐 Happy
      悲伤 Sad
      愤怒 Angry
      恐惧 Fear
      惊讶 Surprise
      厌恶 Disgust
    扩展情绪[6种扩展情绪]
      困惑 Confused
      蔑视 Contempt
      自信 Confident
      害羞 Shy
      困倦 Sleepy
      焦虑 Anxious

提示工程策略

不同于直接使用抽象表情标签,本文采用面部属性分解方法:

表情类别关键面部属性组合
惊讶眉毛上扬+眼睛睁大+嘴巴张开
恐惧眉毛上扬聚拢+眼睛睁大+嘴角后拉
愤怒眉毛下垂聚拢+眼睛瞪大+嘴角下撇
厌恶鼻子皱起+上唇提起+下唇突出

提示验证流程

  1. 自动生成候选属性组合
  2. 使用VLM(Gemini 3 Pro)检查解剖学一致性
  3. 过滤语义冲突描述
  4. 构建验证后的细粒度提示库

阶段3:受控表情生成

生成策略

采用双部提示设计(Dual-Part Prompt Design):

全局表情类别 + 局部面部属性

示例

"A person with surprised expression, featuring raised eyebrows, 
wide open eyes, and an open mouth showing shock"

生成模型:Nano Banana Pro(当前最先进的图像编辑模型)

生成规模

  • 每个基础身份生成多个目标表情
  • 每个表情包含不同强度级别
  • 总计约60,000张图像(真实域30K + 动漫域30K)

阶段4:连续标注与质量过滤

连续标注方法

使用Gemini 3 Pro预测12维连续分数向量:

v ∈ [0,1]¹² = [v_happy, v_sad, v_angry, v_fear, v_surprise, v_disgust,
                v_confused, v_contempt, v_confident, v_shy, v_sleepy, v_anxious]

分数解释

  • v_i ≈ 1.0:该表情类别占主导
  • v_i ≈ 0.0:该表情类别几乎不存在
  • 0.0 < v_i < 1.0:混合表情状态

质量控制

检查项方法阈值
标注一致性人工抽查验证95%+
模糊样本过滤最高分数<0.6剔除-
身份一致性同身份样本聚类检查-
图像质量分辨率+清晰度检查-

2.2.3 数据集统计

FFE Dataset Statistics:
├── Total Images: 60,000
│   ├── Real Domain: 30,000
│   └── Anime Domain: 30,000
├── Base Identities: ~12,000
│   ├── Real: ~6,000
│   └── Anime: ~6,000
├── Expression Categories: 12
├── Average Expressions per Identity: 5
└── Annotation Format: 12-dim continuous vector

2.3 FFE-Bench评估基准

2.3.1 设计动机

现有评估指标(CLIP、SSIM、LPIPS)主要关注生成质量,缺乏对以下关键能力的评估:

  • 语义解耦(Disentanglement)
  • 连续可控性(Continuous Controllability)
  • 结构混淆(Structural Confusion)

2.3.2 四大评估维度

flowchart TB
    subgraph FFE-Bench
        A[mSCR<br/>结构混淆率]
        B[HES<br/>调和编辑分数]
        C[CLS<br/>控制线性分数]
        D[Acc<br/>编辑准确率]
    end
    
    A -->|衡量| A1[语义解耦]
    B -->|衡量| B1[表情-身份平衡]
    C -->|衡量| C1[线性可控性]
    D -->|衡量| D1[分类准确性]

维度1:平均结构混淆率(mSCR)

定义:量化语义相似表情间的结构化混淆程度

混淆率计算

Cij=1Nik=1Ni1(y^k(i)=j)C_{i \rightarrow j} = \frac{1}{N_i} \sum_{k=1}^{N_i} \mathbf{1}(\hat{y}_k^{(i)} = j)

其中:

  • N_i:编辑为类别i的样本数量
  • ŷ_k^(i):第k个样本的预测主导表情

双向混淆率(BCR)

BCR(i,j)=12(Cij+Cji)BCR(i,j) = \frac{1}{2}(C_{i \rightarrow j} + C_{j \rightarrow i})

平均结构混淆率

mSCR=1P(i,j)PBCR(i,j)mSCR = \frac{1}{|P|} \sum_{(i,j) \in P} BCR(i,j)

其中P为预定义的易混淆表情对集合:

  • P = {(Fear, Surprise), (Angry, Disgust), (Sad, Sleepy), …}

评估者:Gemini 3 Pro用于表情分类

维度2:调和编辑分数(HES)

定义:平衡表情编辑准确性与身份保持的综合指标

HES=2×SE×SIDSE+SIDHES = \frac{2 \times S_E \times S_{ID}}{S_E + S_{ID}}

表情分数(S_E)

  • 使用VLM(Gemini 3 Pro)预测目标表情强度
  • 归一化到[0,1]范围

身份分数(S_ID)

  • 使用三个面部识别模型取平均:
    • ArcFace(antelopev2)
    • AdaFace
    • FaceNet
  • 计算源图像与编辑图像的余弦相似度

优势

  • 单一指标平衡两个关键目标
  • 避免单方面优化导致的极端情况

维度3:控制线性分数(CLS)

定义:评估连续控制响应的线性程度

测试流程

  1. 输入均匀间隔的强度系数:α ∈ [0, α_max]
  2. 生成对应强度的表情图像
  3. 使用VLM预测实际表情强度
  4. 计算α与预测强度的Pearson相关系数

计算公式

CLS=Corr(α,SVLM)CLS = Corr(\alpha, S_{VLM})

解释

  • CLS ≈ 1.0:高度线性响应
  • CLS < 0.8:非线性或不稳定控制

维度4:表情编辑准确率(Acc)

定义:生成图像中预测主导表情与目标指令匹配的比例

Acc=1Nk=1N1(y^k=ytarget)Acc = \frac{1}{N} \sum_{k=1}^{N} \mathbf{1}(\hat{y}_k = y_{target})

用途:衡量整体分类级别的编辑成功率

2.3.3 评估流程

sequenceDiagram
    participant M as 待评估模型
    participant D as FFE-Bench数据集
    participant V as VLM评估器
    participant F as 面部识别模型
    participant R as 结果汇总

    M->>D: 读取测试样本
    D->>M: 源图像+目标表情+强度α
    M->>M: 生成编辑图像
    M->>V: 提交生成结果
    V->>V: 预测表情类别和强度
    V->>R: 返回S_E和分类结果
    M->>F: 提交源图像和生成图像
    F->>F: 计算身份相似度
    F->>R: 返回S_ID
    R->>R: 计算mSCR/HES/CLS/Acc
    R->>M: 返回评估报告

2.4 PixelSmile技术方法

2.4.1 基础架构

骨干网络:预训练Multi-Modal Diffusion Transformer(MMDiT)

  • 基于Qwen-Image-Edit-2511实现
  • 采用LoRA(Low-Rank Adaptation)进行微调
  • 分别为真实域和动漫域训练独立的LoRA适配器

2.4.2 文本潜在插值机制

核心思想

通过线性插值文本嵌入实现连续表情强度控制。

数学表述

步骤1:计算残差方向

给定中性提示P_neu和目标表情提示P_tgt:

eneu=TextEncoder(Pneu)e_{neu} = \text{TextEncoder}(P_{neu}) etgt=TextEncoder(Ptgt)e_{tgt} = \text{TextEncoder}(P_{tgt}) Δe=etgteneu\Delta e = e_{tgt} - e_{neu}

步骤2:构建条件嵌入

econd(α)=eneu+αΔe,α[0,1]e_{cond}(\alpha) = e_{neu} + \alpha \cdot \Delta e, \quad \alpha \in [0,1]

参数α的语义

  • α = 0:纯中性表情
  • α = 1:完整目标表情
  • 0 < α < 1:过渡强度
  • α > 1:外推更强表情(支持)

分数监督流匹配

目标:确保文本插值与视觉变换一致

训练目标

LFMedit=Et,x0,x1[vθ(xt,t,econd(α))(x1x0)22]\mathcal{L}_{FM}^{edit} = \mathbb{E}_{t,x_0,x_1} \left[ \|v_\theta(x_t, t, e_{cond}(\alpha)) - (x_1 - x_0)\|_2^2 \right]

其中:

  • x_0:源图像潜在表示
  • x_1:目标表情图像潜在表示
  • α = α_gt(来自FFE的连续标注)

2.4.3 全对称联合训练

问题识别

易混淆表情对(如恐惧-惊讶)在潜在空间中纠缠,需要显式分离。

对称构造

对于混淆表情对(E_a, E_b):

graph LR
    A[源图像] --> B[生成G_a<br/>目标E_a]
    A --> C[生成G_b<br/>目标E_b]
    D[ ground truth<br/>P_a E_a] -->|正样本| B
    E[ ground truth<br/>P_b E_b] -->|负样本| B
    E -->|正样本| C
    D -->|负样本| C

双重优化

  1. 生成G_a时:P_a为正,P_b为负
  2. 生成G_b时:P_b为正,P_a为负

对称对比损失

InfoNCE-style目标

LSC=12[T(Ga,Pa,Pb)+T(Gb,Pb,Pa)]\mathcal{L}_{SC} = \frac{1}{2} \left[ \mathcal{T}(G_a, P_a, P_b) + \mathcal{T}(G_b, P_b, P_a) \right]

其中T为InfoNCE损失:

T(G,P+,P)=logexp(sim(G,P+)/τ)exp(sim(G,P+)/τ)+exp(sim(G,P)/τ)\mathcal{T}(G, P^+, P^-) = -\log \frac{\exp(\text{sim}(G, P^+) / \tau)}{\exp(\text{sim}(G, P^+) / \tau) + \exp(\text{sim}(G, P^-) / \tau)}

特征编码

  • 真实域:CLIP-ViT-L/14
  • 动漫域:DanbooruCLIP

2.4.4 身份保持机制

损失函数

LID=12i{a,b}[1cos(Φarc(Gi),Φarc(Pi))]\mathcal{L}_{ID} = \frac{1}{2} \sum_{i \in \{a,b\}} \left[ 1 - \cos(\Phi_{arc}(G_i), \Phi_{arc}(P_i)) \right]

其中Φ_arc为预训练ArcFace模型(antelopev2)。

作用机制

  • 在强强度外推(α > 1)时防止身份漂移
  • 在对称对比学习中稳定生物特征
  • 平衡表情变化与身份一致性

2.4.5 整体训练目标

Ltotal=12(LFMa+LFMb)+λscLSC+λidLID\mathcal{L}_{total} = \frac{1}{2}(\mathcal{L}_{FM}^a + \mathcal{L}_{FM}^b) + \lambda_{sc} \mathcal{L}_{SC} + \lambda_{id} \mathcal{L}_{ID}

超参数设置

  • λ_sc:对比损失权重(控制解耦强度)
  • λ_id:身份损失权重(控制身份保持)

训练配置

  • 优化器:AdamW
  • 学习率:1e-4(LoRA参数)
  • 批次大小:32
  • 训练步数:50K

2.5 本章小结

本章详细介绍了PixelSmile的研究方法:

  1. FFE数据集:四阶段构建流程,60K跨域图像,12维连续标注
  2. FFE-Bench:四维评估体系,专门针对语义解耦和连续控制
  3. PixelSmile框架
    • 文本潜在插值实现连续控制
    • 全对称联合训练实现语义解耦
    • 多目标优化平衡表情准确性与身份保持

方法设计的核心思想是将语义解耦和连续控制统一在一个框架内,通过全对称训练机制显式分离易混淆表情,同时保持生成质量和身份一致性。