赞
踩
Renshuai Liu, Bowen Ma, Wei Zhang, Zhipeng Hu, Changjie Fan, Tangjie Lv, Yu Ding, Xuan Cheng
【Paper】 > 【Code】暂无 > 【Project】
- 基于扩散模型的人脸生成方法,条件是 I b k g 、 I i d 、 I e x p I_{bkg}、I_{id}、I_{exp} Ibkg、Iid、Iexp,特点是背景,身份复合嵌入,表情。
- 提出了一种改进的中点采样方法t - 0,0 - t/2,t/2 - 0。
- 特点就是更细粒度的表情合成,
以前的方法更喜欢使用 2D 面部标志作为表情表示。人类表情包含复杂而微妙的面部动作,并且与面部纹理密切相关,例如面部皱纹和面部动作单元激活,因此2D面部标志不足以表示准确的表情属性。为了获得强大的表情表示,我们采用名为 DLN \cite{DLN2021} 的身份分离和细粒度表情表示网络作为编码器。然后使用两层 MLP 进行域变换和特征形状对齐。之后,通过交叉注意力模块将表情嵌入注入到扩散模型中。
Learning a facial expression embedding disentangledfrom identity
现有问题:
在以人为中心的内容生成中,预先训练的文本到图像模型很难生成用户想要的肖像图像,这些图像保留了个人的身份,同时表现出多样化的表情。
工作介绍:
本文介绍了我们在个性化面部生成方面所做的努力。为此,我们提出了一种新颖的多模式人脸生成框架,能够同时进行身份表情控制和更细粒度的表情合成。我们的表情控制非常复杂,可以通过细粒度的情感词汇来专门化。我们设计了一种新颖的扩散模型,可以同时承担面部交换和重演的任务。由于身份和表情的纠缠,在一个框架中单独、精确地控制它们是很困难的,因此尚未被探索。为了克服这个问题,我们在条件扩散模型中提出了几种创新设计,包括平衡身份和表情编码器、改进的中点采样和显式背景调节。
实验:
与最先进的文本到图像、面部交换和面部重演方法相比,大量的实验证明了所提出的框架的可控性和可扩展性。
研究界一直在努力提高根据用户偏好生成面部图像的可控性。可控生成和操作的常见做法是在人脸生成器模型中使用不同的模态作为调节,例如文本 \cite{TediGAN2021、StyleCLIP2021、StyleT2I2022、Text2FaceGAN2019、FacesLaCarte2021}、参考图像 \cite{SimSwap2020、FaceShifter2019、ReenactGAN2018、FSGAN2019 }、分段掩码\cite{EncodingInStyle2021、MaskGAN2020、SC-FEGAN2019}和音频\cite{Wave2lip2020、PCAVS2021、MakeltTalk2020}。
虽然这些方法已经实现了控制人脸局部特征和全局属性的能力,但在特定背景下对身份和表情的同步控制尚未得到充分探索,这涉及到三个重要的高级属性(即身份、表情、和背景)来确定人脸图像。由于身份和表情高度纠缠,在统一的框架中单独、精确地控制它们具有挑战性。此外,在现有的生成或操作方法中,表情控制的粒度仍然处于粗略水平,通常仅限于常用的七个或八个标签,例如“惊讶”、“高兴”、“愤怒”等等,这些标签很难充分覆盖开放世界中的整个情感空间。
为了解决这些问题,本文提出了一种新颖的框架,可以同时控制来自多模态输入的身份、表情和背景。如图1和2所示,输入包含三项:1)描述场景的文本,2)用户上传的用于提供身份的自拍照, 3) 与表情标签相关的文本。人类语言可以概念性地描述表情,准确地描述场景,但无法准确地描述身份,而图像可以自然地用于身份识别。在输出端,生成的人脸将与输入的自拍照片具有相同的身份,显示文本指定的表情,并放置在文本 \cite{civitai1, civita2} 描述的背景中,如图 1 所示。为了支持 细粒度的表情描述,我们使用了包含 135 个英语单词的表情字典 \cite{EmoFace135},例如“惊讶”、“兴奋”、“歇斯底里”等,可以更全面地描述情感领域。
所提出的框架内的技术核心是一种新颖的扩散模型,可以进行同时面部交换和重演(SFSR)。交换和重演将源面部的身份或表情转移到目标面部,是两种经典的面部操作任务,已得到广泛研究。同时,SFSR 是一项相对较新且未经探索的任务,旨在分别将源面部的身份和另一个源面部的表情转移到目标面部,同时保留背景属性(例如面部姿势、头发、眼镜和周围环境) )的目标不变。为了准备 SFSR 的两个源和一个目标,描述场景的文本将被输入到预先训练的文本到图像模型(稳定扩散)\cite{StableDiffusion} 以获取背景图像,而描述场景的文本将被输入到预训练的文本到图像模型(稳定扩散)中以获取背景图像,而描述了表情将用作135类情感数据集\cite{EmoFace135, emo135url}中的搜索关键字来检索表情图像。这三个图像将与输入身份图像一起用作潜在扩散模型 \cite{StableDiffusion} 中的条件来生成结果,该结果已经在图像生成 \cite{ControlNet} 上表现出各种条件的高度可定制性。
基于扩散模型\cite{DDPM2020, StableDiffusion}的基础,我们还提出了 SFSR 扩散模型的几种精心设计。
条件人脸生成。
\textbf{条件人脸生成。}
条件人脸生成。
早期的方法通常使用单一模式作为调节。例如,利用预训练 StyleGAN \cite{StyleGAN2019、StyleGAN2020、StyleGAN2021} 和文本编码器的文本到面对面研究激增,例如 TediGAN \cite{TediGAN2021}、StyleCLIP \cite{StyleCLIP2021 } 和 StyleT2I \cite{StyleT2I2022}。使用图像作为条件\cite{SimSwap2020、FaceShifter2019、ReenactGAN2018、FSGAN2019}在研究社区中也很流行。这种方法也称为面部交换和面部重演,其中生成的面部与输入面部图像具有相同的身份或表情。由于不同的模态是相互补充的,所以最新的方法开始使用多种模态。例如,文本和分割掩码的元组 \cite{CollaborativeDM2023, PixelFace+2023} 在控制面部生成方面非常流行。我们提出的面部生成框架还采用多种模式、文本和图像作为输入。
我们的工作也与换脸和表情重现密切相关。
提高视觉质量的主流方法是使用 GAN \cite{SimSwap2020、SmoothSwap2022、FaceShifter2019、FewShotHeadSwap2022、RegionFaceSwap2022、BlendFace2023、ReenactGAN2018、DeepVideoP2018、GANimation2018、Recycle-GAN2018、CycleGAN2017、 018},注入从提取的身份或表情特征源输入人脸交换或表情重演网络,并使用多重损失来确保语义一致性和图像保真度。最新的方法 \cite{DiffSwap2023} 采用扩散模型,并将面部交换重新表述为条件修复任务。存在将交换和重演这两个任务组合在单个框架中的方法\cite{UnifiedFaceTCSVT2022、FSGAN2019、FSGANv22023、UnifiedFaceECCV2022}。在他们的流程中,切换操作员通常被放置在面部特征传输阶段,以在交换和重演任务之间切换。这些方法与我们的 DiffSFSR 在功能上的主要区别在于,身份或表情(但不是两者)都转移到结果中。
扩散模型初步。
\textbf{扩散模型初步。}
扩散模型初步。 扩散模型 (DDPM) \cite{DDPM2020} 已得到充分记录。它包含扩散和去噪过程。给定数据分布
x
0
∼
q
(
x
0
)
\mathbf{x}_0 \sim q(\mathbf{x}_0)
x0∼q(x0),扩散过程通过在时间步长t连续添加方差为
β
t
∈
(
0
,
1
)
\beta_t \in (0,1)
βt∈(0,1) 的高斯噪声
N
\mathcal{N}
N 来产生一系列中间噪声样本
{
x
t
}
\{\mathbf{x}_t\}
{xt} :
q
(
x
1
:
T
∣
x
0
)
=
∏
t
=
1
T
q
(
x
t
∣
x
t
−
1
)
q(\mathbf{x}_{1:T}|\mathbf{x}_{0})=\prod_{t=1}^{T}q(\mathbf{x}_{t }|\mathbf{x}_{t-1})
q(x1:T∣x0)=∏t=1Tq(xt∣xt−1) 其中
q
(
x
t
∣
x
t
−
1
)
=
N
(
x
t
;
1
−
β
t
x
t
−
1
,
β
t
I
)
q(\mathbf{x}_{t}|\mathbf{x}_{t-1})=\mathcal{N}(\mathbf {x}_{t};\sqrt{1-\beta_{t}}\mathbf{x}_{t-1},\beta_{t}\mathbf{I})
q(xt∣xt−1)=N(xt;1−βt
xt−1,βtI)。
x
t
x_t
xt 可以直接从
x
0
x_0
x0 采样,无需生成中间步骤:
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
ˉ
t
x
0
,
(
1
−
α
ˉ
t
)
I
)
q(\mathbf{x}_t\vert \mathbf{x}_0)=\mathcal{N}(\mathbf{x}_t; \sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)\mathbf{I})
q(xt∣x0)=N(xt;αˉt
x0,(1−αˉt)I)其中
α
t
=
1
−
β
t
\alpha_t = 1-\beta_t
αt=1−βt 和
α
ˉ
t
=
∏
s
=
1
t
α
s
\bar{\alpha}_t=\prod_{s=1}^{t}\alpha_s
αˉt=∏s=1tαs。当设置一个长递增序列
β
1
:
T
\beta_{1:T}
β1:T 使得
α
ˉ
≈
0
\bar{\alpha} \approx 0
αˉ≈0 时,
x
T
\mathbf{x}_T
xT 的分布将收敛到标准高斯分布。
去噪过程从高斯噪声样本
x
T
∼
N
(
0
,
I
)
\mathbf{x}_T\sim\mathcal{N}(0, I)
xT∼N(0,I) 开始,将
x
T
\mathbf{x}_T
xT 去噪到
x
0
\mathbf{x}_0
x0顺序采样后验
q
(
x
t
−
1
∣
x
t
)
q(\mathbf{x}_{t-1}|\mathbf{x}_t)
q(xt−1∣xt)。根据贝叶斯规则,
q
(
x
t
−
1
∣
x
t
,
x
0
)
q(\mathbf{x}_{t-1}|\mathbf{x}_t, \mathbf{x}_0)
q(xt−1∣xt,x0) 可推导为:
q
(
x
t
−
1
∣
x
t
,
x
0
)
=
N
(
x
t
−
1
;
μ
~
t
(
x
t
,
x
0
)
,
β
~
t
I
)
,
x
t
−
1
=
μ
~
t
(
x
t
,
x
0
)
+
β
~
t
ϵ
,
where
μ
~
t
(
x
t
,
x
0
)
=
α
ˉ
t
−
1
β
t
1
−
α
ˉ
t
x
0
+
α
t
(
1
−
α
ˉ
t
−
1
)
1
−
α
ˉ
t
x
t
and
β
~
t
=
1
−
α
ˉ
t
−
1
1
−
α
ˉ
t
β
t
.
因此, q ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1}\vert \mathbf{x}_{t}, \mathbf{x}_0) q(xt−1∣xt,x0)没有封闭形式,并且有一个深度神经网络 p θ p_\theta pθ 经过训练以近似它。
如图所示,所提出的人脸生成框架包含两个主要模块:首先将多模态输入转换为三幅图像,然后通过 SFSR 扩散模型从输入的三幅图像生成人脸图像。在转换模块中,输入包含身份图像
I
i
d
I_{id}
Iid、描述场景的文本提示
P
b
k
g
P_{bkg}
Pbkg以及与表情标签相关的文本提示
P
e
x
p
P_{exp}
Pexp。
P
b
k
g
P_{bkg}
Pbkg 被注入到预先训练的文本到图像扩散模型 \cite{StableDiffusion} 以获得背景图像
I
b
k
g
I_{bkg}
Ibkg。
P e x p P_{exp} Pexp 用作情感数据集 \cite{EmoFace135} 中的搜索关键字,该数据集包含 135 个情感类别,由 728,946 个面部图像组成。根据 P e x p P_{exp} Pexp,从相应类别中随机检索表情图像 I e x p I_{exp} Iexp。在DiffSFSR中, I b k g I_{bkg} Ibkg、 I i d I_{id} Iid和 I e x p I_{exp} Iexp用作条件来生成最终结果 I o u t I_{out} Iout。
DiffSFSR 的流程如图3所示,包括训练和推理阶段。潜在扩散模型 \cite{StableDiffusion} 因其针对各种条件的高度可定制性而被选择作为骨干。与DDPM \cite{DDPM2020}类似,潜在扩散模型的训练也由扩散过程和去噪过程组成。训练数据中的一个样本是三元组 [ I b k g , I i d , I e x p ] [I_{bkg}, I_{id}, I_{exp}] [Ibkg,Iid,Iexp],不包括 I o u t I_{out} Iout 的真实对应部分。输入 I b k g I_{bkg} Ibkg首先嵌入到潜在的 z 0 \mathbf{z}_0 z0中,然后在扩散过程中添加高斯噪声。去噪过程通过使用以掩码 I b k g I_{bkg } Ibkg 以及从 I i d , I e x p I_{id}, I_{exp} Iid,Iexp 中提取的特征为条件的两倍 UNet,以随机 t 个时间步将潜在 z t \mathbf{z}_t zt 去噪到 z 0 ∗ \mathbf{z}_0^* z0∗ 。去噪后的潜在 z 0 ∗ \mathbf{z}_0^* z0∗ 需要进一步变换回图像空间以生成 x 0 ∗ \mathbf{x}_0^* x0∗。为了更好地计算 x 0 ∗ \mathbf{x}_0^* x0∗和 I i d I_{id} Iid之间的身份损失,以及 x 0 ∗ \mathbf{x}_0^* x0∗和 I e x p I_{exp} Iexp之间的表情损失,我们采用改进的中点采样,兼顾精度和效率。在推理阶段,多次使用训练好的去噪UNet,从高斯噪声 z T \mathbf{z}_T zT逐渐生成 z 0 ′ \mathbf{z}_0^{\prime} z0′,最终解码为图像 x 0 ′ \mathbf{x}_0^{\prime} x0′.
DiffSFSR 的关键是如何分别学习 I b k g 、 I i d 、 I e x p I_{bkg}、I_{id}、I_{exp} Ibkg、Iid、Iexp 的解缠结表示,然后同时在学习到的嵌入上调节扩散模型,以实现解缠结和精确控制目标脸。去噪 UNet 的网络架构以及三个条件嵌入如图4所示。
Background.
\textbf{Background.}
Background.
除了身份和表情之外,输入
I
b
k
g
I_{bkg}
Ibkg 为输出提供所有其他属性,例如面部姿势、头发、眼镜、灯光和环境。我们使用人脸解析方法屏蔽(mask)
I
b
k
g
I_{bkg}
Ibkg 中的面部区域,将任务从人脸编辑转变为人脸修复。然后,在训练和推理阶段,将掩码的
I
b
k
g
I_{bkg}
Ibkg 与潜在的
z
i
\mathbf{z}_i
zi 连接起来,作为扩散模型的条件,以便
I
o
u
t
I_{out}
Iout 中的大部分背景 与
I
b
k
g
I_{bkg}
Ibkg 完全相同。
我们保留背景属性的方式与最近提出的基于扩散模型的面部交换方法 DiffSwap \cite{DiffSwap2023} 完全不同。在 DiffSwap 中,背景像素(屏蔽 I b k g I_{bkg} Ibkg)在训练期间没有明确提供,而仅在推理阶段提供,这需要扩散模型在训练阶段重建背景像素。为了确保全局一致性,在整个图像上计算重建损失。由于面部区域通常占总图像的不到 50%,因此在网络开始在面部区域执行细粒度生成之前,网络优化的很大一部分最初致力于背景像素的重建。因此,与我们的结果相比,DiffSwap 生成的人脸可能会出现图像模糊和质量低的问题。
在训练中明确提供背景像素的另一个优点是,扩散模型被迫学习从背景像素估计面部姿势和照明,因为面部姿势、照明和背景之间存在很强的相关性。总而言之,我们提供蒙版 I b k g I_{bkg} Ibkg作为条件,希望它可以使扩散模型专注于人脸的生成而不是背景的生成,并为恢复重要属性提供更多提示。我们是第一个将背景属性与身份和表情分离的人,并明确地将它们作为面部操纵任务中的条件。
Expression.
\textbf{Expression.}
Expression.
以前的方法更喜欢使用 2D 面部标志作为表情表示。人类表情包含复杂而微妙的面部动作,并且与面部纹理密切相关,例如面部皱纹和面部动作单元激活,因此2D面部标志不足以表示准确的表情属性。为了获得强大的表情表示,我们采用名为 DLN \cite{DLN2021} 的身份分离和细粒度表情表示网络作为编码器。然后使用两层 MLP 进行域变换和特征形状对齐。之后,通过交叉注意力模块将表情嵌入注入到扩散模型中。
Identity.
\textbf{Identity.}
Identity.
身份编码器应该与表情编码器竞争以实现平衡条件,否则,表情编码器中的剩余身份属性将被意外地转移到结果中。由于表情与身份密切相关,设计一个完全忽略身份的表情编码器仍然是人脸分析领域的一个悬而未决的问题。在身份编码器方面,我们应用身份复合嵌入,因为单个身份嵌入通常是有偏差的 \cite{compound2022} 并且不足以平衡表情嵌入。选择三种最先进的人脸识别模型\cite{arcface2019,facenet2015,dlib09}来构建身份复合嵌入。4.3节中的实验证明单一嵌入无法补偿表情编码器中残差身份的影响,而复合嵌入可以满足要求。与表情编码器类似,我们使用两层 MLP 将不同形状的身份嵌入映射到统一维度,并通过交叉注意力来调节它们。
扩散模型的训练目标可以表示为均方误差(MSE)损失:
L
D
M
=
E
z
t
,
C
,
ϵ
,
t
[
∣
∣
ϵ
−
ϵ
θ
(
z
t
,
C
,
t
)
∣
∣
2
2
]
,
L_{DM} = \mathbb{E}_{\mathbf{z}_t, \mathbf{C},\epsilon,t}[||\epsilon - \epsilon_\theta (\mathbf{z}_t,\mathbf{C},t) ||_2^{2}],
LDM=Ezt,C,ϵ,t[∣∣ϵ−ϵθ(zt,C,t)∣∣22],其中
z
t
\mathbf{z}_t
zt表示通过在第\emph{t}个时间步将噪声
ϵ
\epsilon
ϵ添加到
z
0
\mathbf{z}_0
z0获得的噪声潜伏,
ϵ
θ
\epsilon_{\theta}
ϵθ表示去噪 UNet 学会了预测
ϵ
\epsilon
ϵ,
C
\mathbf{C}
C 表示条件。条件定义为:
C
=
[
M
⊙
I
b
k
g
,
E
i
d
(
I
i
d
)
,
E
e
x
p
(
I
e
x
p
)
]
,
\mathbf{C} = [M \odot I_{bkg}, \mathcal{E}_{id}(I_{id}), \mathcal{E}_{exp}(I_{exp})],
C=[M⊙Ibkg,Eid(Iid),Eexp(Iexp)],其中
M
M
M表示面部区域的二值掩模,
E
i
d
(
⋅
)
\mathcal{E}_{id}(\cdot)
Eid(⋅)表示身份编码器,
E
e
x
p
(
⋅
)
\mathcal{E}_{exp}(\cdot)
Eexp(⋅)表示表情式编码器。
我们还按照惯例使用身份丢失和表情损失。损失定义为:
L
i
d
=
1
−
CosSim
(
E
i
d
(
I
i
d
)
,
E
i
d
(
D
D
M
(
z
0
∗
)
)
)
,
L_{id} = 1-\text{CosSim}(\mathcal{E}_{id}(I_{id}), \mathcal{E}_{id}(\mathcal{D}_{DM}(\mathbf{z}_0^*))),
Lid=1−CosSim(Eid(Iid),Eid(DDM(z0∗))),
L
e
x
p
=
MSE
(
E
e
x
p
(
I
e
x
p
)
,
E
e
x
p
(
D
D
M
(
z
0
∗
)
)
)
,
L_{exp} = \text{MSE}(\mathcal{E}_{exp}(I_{exp}), \mathcal{E}_{exp}(\mathcal{D}_{DM}(\mathbf{z}_0^*))),
Lexp=MSE(Eexp(Iexp),Eexp(DDM(z0∗))),其中
CosSim
(
⋅
,
⋅
)
\text{CosSim}(\cdot, \cdot)
CosSim(⋅,⋅)表示余弦相似度函数,
MSE
(
⋅
,
⋅
)
\text{MSE}(\cdot,\cdot)
MSE(⋅,⋅)表示MSE函数。最终的损失函数可以表示为:
L
=
L
D
M
+
λ
1
L
i
d
+
λ
2
L
e
x
p
,
L = L_{DM} + \lambda_1 L_{id} + \lambda_2 L_{exp},
L=LDM+λ1Lid+λ2Lexp,其中
λ
1
,
λ
2
\lambda_1, \lambda_2
λ1,λ2 表示超参数。
为了计算训练期间第 \emph{t} 个时间步的身份和表情损失,首先需要从噪声潜在
z
t
\mathbf{z}_t
zt 生成去噪潜在
z
0
∗
\mathbf{z}_0^*
z0∗。在原始扩散模型中,例如DDPM \cite{DDPM2020},
z
0
∗
\mathbf{z}_0^*
z0∗的生成需要在不同时间步上进行多次采样,这在高保真图像生成任务的训练阶段是不可接受的。为了解决这个问题,DiffSwap \cite{DiffSwap2023}提出了一种中点采样方法,只需两步采样就可以得到粗略的
z
0
∗
\mathbf{z}_0^*
z0∗。具体来说,在时间步
t
t
t 中,它首先使用以下公式估计
z
t
1
\mathbf{z}_{t_1}
zt1,
t
1
=
⌊
t
2
⌋
t_1=\lfloor \frac{t}{2} \rfloor
t1=⌊2t⌋:
z
t
1
=
z
t
−
1
−
α
ˉ
t
/
α
ˉ
t
1
ϵ
θ
(
z
t
,
t
,
C
)
α
ˉ
t
/
α
ˉ
t
1
.
(8)
\mathbf{z}_{t_1} = \frac{\mathbf{z}_t-\sqrt{1-\bar{\alpha}_t/\bar{\alpha}_{t_1}}\epsilon_\theta(\mathbf{z}_t,t,\mathbf{C})}{\sqrt{\bar{\alpha}_t/\bar{\alpha}_{t_1}}}. \tag{8}
zt1=αˉt/αˉt1
zt−1−αˉt/αˉt1
ϵθ(zt,t,C).(8)然后,从估计的
z
t
1
\mathbf{z}_{t_1}
zt1开始,使用以下公式预测最终的
z
0
∗
\mathbf{z}_0^*
z0∗:
z
0
∗
=
z
t
1
−
1
−
α
ˉ
t
1
ϵ
θ
(
z
t
1
,
t
1
,
C
)
α
ˉ
t
1
(8)
\mathbf{z}_0^* = \frac{\mathbf{z}_{t_1}-\sqrt{1-\bar{\alpha}_{t_1}}\epsilon_\theta(\mathbf{z}_{t_1},t_1,\mathbf{C})}{\sqrt{\bar{\alpha}_{t_1}}} \tag{8}
z0∗=αˉt1
zt1−1−αˉt1
ϵθ(zt1,t1,C)(8)这似乎是一个有吸引力的解决方案,只需两步采样即可计算身份和表情损失。我们建议读者参考文献\cite{DiffSwap2023}来详细推导这两个公式。
然而,我们发现等式8有一个问题。这里估计的噪声应该是可以将
z
t
1
\mathbf{z}_{t_1}
zt1转换为
z
t
\mathbf{z}_t
zt的噪声,而是
ϵ
θ
(
z
t
,
t
,
C
)
\epsilon_\theta(\mathbf{z}_t, t,\mathbf{C})
ϵθ(zt,t,C)实际上是将
z
0
\mathbf{z}_0
z0转换为
z
t
\mathbf{z}_t
zt的噪声。对于噪声的潜在
z
t
\mathbf{z}_t
zt,我们可以使用以下过程得到
z
t
−
1
\mathbf{z}_{t-1}
zt−1:
首先使用 Denoising UNet
ϵ
θ
(
z
t
,
t
,
C
)
\epsilon_\theta(\mathbf{z}_t,t,\mathbf{C})
ϵθ(zt,t,C) 预测噪声
ϵ
\epsilon
ϵ,然后通过方程1的逆过程计算
z
0
\mathbf{z}_0
z0 。 最终使用方程2得到
z
t
−
1
\mathbf{z}_{t-1}
zt−1。换句话说,严格遵循DDPM中的公式,我们只能从
z
t
\mathbf{z}_t
zt开始移动到
z
0
\mathbf{z}_0
z0,然后移动到
z
t
−
1
\mathbf{z}_{t-1}
zt−1。在 DiffSwap 中从
z
t
\mathbf{z}_t
zt 直接移动到
z
t
1
\mathbf{z}_{t_1}
zt1 并不是最优的,这会降低整体性能。
为了更符合DDPM中的公式,我们提出了一种改进的中点采样方法,与原始中点采样相比,它也在两步内采样,但可以减少信息损失\cite{DiffSwap2023}。特别地,从 z t \mathbf{z}_t zt开始,通过上面介绍的过程,我们可以得到 z 0 \mathbf{z}_0 z0和 z t − 1 \mathbf{z}_{t-1} zt−1。然后,我们可以再次使用等式2获得 z t − 2 \mathbf{z}_{t-2} zt−2,这是一种无需使用 Denoising UNet 的高效线性变换。通过重复 t − t 1 t-t_1 t−t1次线性变换,我们可以比DiffSwap更准确、更优雅地得到 z t 1 \mathbf{z}_{t_1} zt1。最后,通过式9和 z t 1 \mathbf{z}_{t_1} zt1得到 z 0 ∗ \mathbf{z}_0^* z0∗。
Dataset. \textbf{Dataset.} Dataset. 我们通过随机选择将 CelebA-HQ 数据集 \cite{CelebA-HQ2017} 分成包含 29,000 张图像的训练集和包含 1,000 张图像的测试集。我们的扩散模型在 CelebA-HQ 和 FFHQ \cite{StyleGAN2019} 的训练集上进行训练,并在 CelebA-HQ 和 FF++ \cite{FaceForensics++2019} 的测试集上进行评估。通过使用其公共预训练网络或其他开源项目对竞争对手进行评估。
Metrics. \textbf{Metrics.} Metrics. 定量评估根据四个指标进行:身份检索精度(ID.)、表情误差(Exp.)、姿势误差(Pose.)和均方误差(MSE.)。对于 ID.,我们使用 CosFace \cite{CosFace2018} 来执行身份检索。对于Exp.,我们采用表情嵌入模型\cite{DLN2021}来计算 I o u t I_{out} Iout和 I e x p I_{exp} Iexp之间的欧几里得距离。对于姿势。,我们使用姿势估计器 \cite{PoseEstimation2018} 来估计头部姿势并计算 I o u t I_{out} Iout 和 I b k g I_{bkg} Ibkg 之间的欧几里德距离。 MSE。用于测量估计图像和地面真实图像之间的像素差异。值得注意的是,在不同交换任务中的度量计算中,参考图像随着源图像而相应改变。
Implementation
Details.
\textit{Implementation Details.}
Implementation Details. 我们的 DiffSFSR 的网络架构遵循潜在扩散模型 \cite{StableDiffusion},其具有
4
×
64
×
64
4\times64\times64
4×64×64 潜在空间。 DiffSFSR 使用 AdamW 优化器从 SD-1.4 开始以 512 × 512 分辨率进行训练。超参数设置为
λ
1
=
0.003
\lambda_{1} = 0.003
λ1=0.003,
λ
2
=
0.01
\lambda_{2} = 0.01
λ2=0.01。
在前 100k 步中,学习率设置为
1
e
−
5
1e-5
1e−5,在接下来的 100k 步中线性衰减。使用 8 个 NVIDIA Tesla A100 GPU 来训练我们的扩散模型,全局批量大小为 64。在推理时间中,我们应用 PNDM \cite{PNDM2021} 采样器,具有 50 个步骤,生成图像大约需要 1 秒。
图 5 显示了细粒度表情合成结果的示例。完整的 135 个表情文本标签 \cite{EmoFace135} 的更多样本可以在第 7 节中观察到。据我们所知,\emph{目前学术界或工业界还没有任何人脸生成或操作方法可以达到这种细粒度表情控制的水平。}如上所述,数据集 \cite{EmoFace135} 提供了 728,946面部表情图像标记有 135 个类别。在我们的工作中,根据输入的表情文本从相应的类别中随机选择参考表情图像。如图5 和第7节中观察到的,合成的面部表情与参考图像中的面部表情相似。读者可以放大查看更多细节。
用户研究。 \textbf{用户研究。} 用户研究。我们进行了一项用户研究,以评估细粒度表情合成的质量,包括表情一致性和 ID 一致性。对于每个样本,招募了 27 名参与者来回答两个问题:1)合成的人脸是否与 ID 图像具有一致的 ID; 2)合成人脸与参考表情图像的表情是否一致。用户研究结果证明了同时保留 ID 和表情的能力,ID 一致性为 95.6 % 95.6\% 95.6%(方差为 2.6 % 2.6\% 2.6%),表情一致性为 90.4 % 90.4\% 90.4%(方差为 3.4 % 3.4\% 3.4%) )。
我们进一步进行了另一项用户研究来评估所提出方法的表情一致性。对于每个样本,招募 30 名参与者对合成人脸与参考表情图像之间的表情一致性进行评分(最低分 1 分,最高分 5 分;1 表示非常不一致,5 表示非常一致)。最后,我们的方法获得了 4.08 的分数(方差为 0.81 ),表明它能够生成非常一致的表情。
总之,我们的方法能够实现细粒度的表情控制,同时保持 ID 一致性。
Comparison with Text-to-Image Method. \textbf{Comparison with Text-to-Image Method.} Comparison with Text-to-Image Method. 我们将我们的方法与 SOTA 开源文本到图像模型 Stable Diffusion XL (SDXL) \cite{sdxl2023} 进行比较。如图 6 所示,这两种方法将相同的提示和相同的细粒度表情标签作为输入。我们框架的额外输入是“Melinda May”的肖像。与我们的结果相比,SDXL 无法合成与“享受”、“焦虑”或“悲伤”相对应的准确表情。大多数文本到图像方法面临的困境是它们只能识别一些有限的表情标签。像 ControlNet \cite{ControlNet} 这样的模型需要大量的训练数据并将背景与面部属性耦合起来。我们的框架还通过在嵌入之间进行插值来支持表情旅行,以进一步探索细粒度的表情。
Comparison with Hybrid Methods. \textbf{Comparison with Hybrid Methods.} Comparison with Hybrid Methods. 由于目前还没有可以执行 SFSR 的方法,因此我们通过直接结合 ID 分数方面最好的换脸方法来构造一种混合方法作为潜在的竞争对手。SimSwap\cite{SimSwap2020},以及 Exp得分 方面的最佳面部重演方法。StyleHEAT\cite{styleheat2022},基于表1中交换 ID 和交换 EXP 部分报告的定量比较。
如Tab 1中Swap All部分所示。 我们的方法在所有指标上都优于混合方法,具有显着的优势。从图 7 所示的定性结果来看,由于表情嵌入 \cite{DLN2021} 和潜在扩散模型 的强大能力,我们的方法可以比混合方法产生更准确的表情和姿势。
Comparison
with
Face
Reenactment
Methods.
\textbf{Comparison with Face Reenactment Methods.}
Comparison with Face Reenactment Methods.
我们的 DiffSFSR 还可以通过将输入
I
b
k
g
I_{bkg}
Ibkg 和
I
i
d
I_{id}
Iid 设置为同一图像来执行面部重演任务。
我们与 Face2Face\cite{face2face2016} 和 StyleHEAT\cite{styleheat2022} 等两种 SOTA 人脸重演方法进行比较,并使用它们的预训练网络。
从Tab 1中Swap EXP部分的统计来看。 我们的方法在所有指标上都优于两个竞争对手。在图 8所示的定性比较中,优势更加明显,其中我们结果中的表情与源更相似,身份和姿势与目标更相似。
Comparison
with
Face
Swapping
Methods.
\textbf{Comparison with Face Swapping Methods.}
Comparison with Face Swapping Methods.
与面部重演类似,我们的 DiffSFSR 也可以通过将输入
I
b
k
g
I_{bkg}
Ibkg 和
I
e
x
p
I_{exp}
Iexp 设置为相同来执行面部交换任务。我们与 FaceShifter\cite{FaceShifter2019}、SimSwap\cite{SimSwap2020}、HifiFace\cite{HifiFace2021}、E4S\cite{E4S2023} 和 DiffSwap\cite{DiffSwap2023} 等五种 SOTA 换脸方法进行了比较。对于 SimSwap、E4S 和 DiffSwap,我们直接使用他们的公共预训练网络。
由于 FaceShifter 和 HifiFace 没有公开其代码,因此我们使用开源社区\footnote{\url{https://github.com/richarduuz/Research_Project}}\footnote{\url{https:/ /github.com/xuehy/HiFiFace-pytorch}}。
从表1中Swap ID部分的统计来看。 由于我们同时关注 ID 和表情,因此我们的方法优于 Exp 中的所有竞争对手。并在 ID 和姿势方面取得了可喜的表现。如图9所示,除了 SimSwap 之外,我们的结果在内部面部特征(例如胡须)方面与源面部更相似。
HifiFace 的结果存在明显的伪影。而且 E4S 生成的脸部不能很好地融入背景,导致结果不太自然。除了表情保留之外,我们相对于 SimSwap 的优势在于,由于潜在扩散模型 \cite{StableDiffusion} 强大的图像生成能力,我们的方法可以生成具有更好图像质量、更少模糊和伪影的人脸。
User
Study
with
Face
Swapping
Methods.
\textit{User Study with Face Swapping Methods.}
User Study with Face Swapping Methods.
为了全面比较我们的方法与其他换脸方法,我们实施了另一个人体评估实验。为了简单起见,我们将我们的 DiffSFSR 与 DiffSwap\cite{DiffSwap2023} 和 E4S\cite{E4S2023} 以及 SimSwap\cite{SimSwap2020} 的最新方法进行比较,因为它在 ID 一致性方面具有优越的性能(参见表 1)。招募 50 名参与者,从 ID 一致性、表情一致性、真实度和图像质量等方面对所有方法的结果进行评分(最低分 1 分,最高分 5 分;1 表示最差,5 表示最好)。如表2所示。我们的方法记录了所有测量指标的最高分数。此外,就统计显着性而言,我们的方法在 ID 一致性方面与其他方法相比具有竞争力,同时在 p 值为 0.05 时在表情一致性、真实性和图像质量方面远远超过竞争对手。总之,我们的方法在 ID 一致性方面与其他方法相当,但可以产生更准确的表情和更真实的高质量图像。
Study
on
Improved
Midpoint
Sampling.
\textbf{Study on Improved Midpoint Sampling.}
Study on Improved Midpoint Sampling.
正如第 3.3 节中所介绍的那样。我们在训练期间需要
x
0
∗
\mathbf{x}_0^*
x0∗ 来施加身份和表情约束。
x
0
∗
\mathbf{x}_0^*
x0∗ 的估计越准确,身份和表情损失就越准确。我们对从 FFHQ 中随机选择 500 个图像对构建的数据集进行了实验,以评估三种采样方法:1)使用等式 1 的一步采样。 2) \cite{DiffSwap2023} 中使用的中点采样,3) 我们提出的改进的中点采样。 MSE用于测量采样结果与地面真实值之间的误差,从而显示图像重建性能。
如图10所示,随着训练步数的增加,所有采样方法都可以减少重建误差。我们的抽样方法在所有时期都可以实现比其他方法更低的 MSE。图11显示了使用不同采样方法对
x
t
\mathbf{x}_t
xt进行去噪的重建结果。我们的结果不仅更忠实于地面事实
x
0
\mathbf{x}_0
x0,而且在眼睛、嘴巴甚至太阳镜反射的区域也更加真实和清晰。
图 12显示了生成最终面部方面的比较。在身份保留方面,我们的采样方法可以产生更多的面部细节,例如皱纹和胡须,因此与源 B 更相似。在表情保留方面,我们在第 3 行的结果表现出较少的愤怒表情,因此与源 A 中的表情更加一致。在第 4 行中,我们的结果显示了比其他人稍微张开嘴。
表3 显示定量比较。当我们与 w./o ID & \& &Exp Losses进行比较时。 身份和表情损失的有效性已通过删除它们来验证。改进后的中点采样在ID方面获得了最好的分数。 Exp.中得分第二,表明它可以对扩散模型的训练施加更有效的约束。
我们进行消融研究,通过在训练期间单独删除背景调节和复合身份嵌入来证明它们的有效性。在没有背景条件的方法中,我们用分割图进行补偿,以在训练中指定面部区域,并仅在推理中提供背景。交换任务(不匹配条件)和重建任务(匹配条件)在CelebA-HQ中执行。
Effect
of
background
conditioning.
\textbf{Effect of background conditioning.}
Effect of background conditioning.
如果没有背景调节,扩散模型无法学习准确的光照和人脸姿势,也无法生成图像质量较高且与背景一致的人脸。图 13 中显示的结果很好地支持了这些论点。没有背景调节的生成的人脸会受到光照不准确的影响,表现出更多的人脸姿势错误,缺乏与背景的无缝融合,并且相对更加模糊。
Effect
of
compound
identity
embedding.
\textbf{Effect of compound identity embedding.}
Effect of compound identity embedding.
复合身份嵌入可以显着提高身份相似度。
如图13第一、第二和第三行所示,每次我们删除身份嵌入时,生成的人脸在身份方面变得与源 A 更加相似,而与源 B 则不太相似。提供预期的身份。这种现象表明,当身份嵌入弱于表情嵌入时,表情嵌入中的剩余身份属性会意外地转移到结果中。值得注意的是在第四行,不充分的身份表示甚至错误地使结果变得模糊。如表4所示。我们结果中的身份相似性超过了所有的消融方法。
给定文本提示、表情标签和自拍照,我们的个性化面部生成框架可以生成高保真度和保留身份表情的肖像。为了实现该框架,我们提出了一种新的扩散模型,可以同时进行面部交换和重演任务。大量的实验证明了所提出的框架的可控性和可扩展性。我们希望我们的努力能够激发个性化生成框架的未来工作,探索使用更多模式作为条件来实现更高的可控性和图像质量。
如上所述,尽管在我们的框架中参考图像和合成图像之间的面部表情彼此接近,但可以发现它们的面部表情不能完全反映文本标签的语义信息。例如,文本标签“agitation”与图14第4行的参考图像不一致。这可以归因于数据集[4]的缺陷,无法保证所有图像都能完全显示其对应的表情标签。此外,这些表情标签之间或多或少存在歧义,导致它们的语义重叠。
图14-47显示了所有细粒度表情合成结果,其中包含135个表情文本标签[4]。读者可以放大查看更多细节。然而,由于提交文件的大小限制,这些结果被高度压缩,因此某些区域会失真。原始结果请参考我们的项目主页:https://diffsfsr.github.io/
感兴趣的可以去看看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。