Password-conditioned Anonymization and Deanonymization with Face Identity Transformers
提出一种新的人脸身份转换模块,能够对视觉库中的人脸进行自动的基于密码的匿名化和去匿名化操作。主要目的有三个:1.在匿名化后移除人脸身份信息;2.当给定正确密码时能够恢复原人脸;3.在给定一个错误密码时返回一张错误且真实人脸。实验表明,与现有匿名化方法相比,我们的方法能够在不牺牲隐私性的情况下进行多模式基于密码的匿名化和去匿名化操作。
编辑隐私敏感数据(如人脸身份信息)能够减轻对隐私的担忧,但是当前的研究均是单向的,即图像经过匿名化后无法恢复到原图像。需要平衡隐私安全与可访问性。提出的人脸身份转换模块能够同时进行匿名化和去匿名化操作并同时保留隐私性:设计一个离散密码空间,该空间内的密码是改变身份的条件。给定一张原始人脸,人脸身份转换器能够使用不同的密码输出不同的匿名人脸图像。给定一张匿名化人脸,如果给定正确密码就能够恢复为原始图像。进而当给定错误的密码时将输出一张错误的人脸与原人脸不同,仍具有隐私性。每一个错误密码均映射为一个独一无二的身份。
为了迫使人脸身份转换器使用不同的密码输出不同的匿名化人脸,我们优化一个多任务学习目标。
-
最大化使用不同密码的匿名化人脸对之间的特征级不相似性,以此来迷惑人脸分类器。
-
为了迫使它使用正确密码能够恢复为原人脸,训练模型进行匿名化-恢复为原身份当使用正确密码时,否则产生一个新的身份。
-
最大化匿名化人脸与使用错误密码的去匿名化人脸之间特征不相似性确保身份改变。
人脸身份转换器 T T T以一张人脸图像 I ∈ Φ I\in\Phi I∈Φ和一个用户定义的密码 p ∈ P p\in P p∈P作为输入,其中 Φ \Phi Φ和 P P P为图像域和密码域。 T p I T_pI TpI定义为使用密码 p p p对输入图像 I I I操作后的变换图像。人脸身份转换器应有属性:
-
最小内存消耗:考虑到大多相机系统的内存空间限制,一个单一的人脸身份转换器能够同时进行匿名化和去匿名化操作。
-
真实性图像:即在原图像域内进行变换,
T p I ∈ Φ , ∀ p ∈ P , ∀ I ∈ Φ T_pI\in\Phi, \quad \forall\ p\in P,\forall\ I\in \Phi TpI∈Φ,∀ p∈P,∀ I∈Φ -
背景兼容:变换图像的背景 B ( ⋅ ) B(\cdot) B(⋅)应与原图一样,
B ( T p I ) = B ( I ) , ∀ p ∈ P , ∀ I ∈ Φ B(T_pI)=B(I),\quad \forall \ p \in P, \forall \ I\in \Phi B(TpI)=B(I),∀ p∈P,∀ I∈Φ -
使用密码进行匿名化: f : Φ → Γ f:\Phi \to \Gamma f:Φ→Γ定义为人脸图像到身份信息的函数映射,基于密码 p p p来进行匿名化,
f ( T p I ) ≠ f ( I ) , ∀ p ∈ P , ∀ I ∈ Φ f(T_pI)\ne f(I), \quad \forall \ p\in P, \forall \ I\in \Phi f(TpI)=f(I),∀ p∈P,∀ I∈Φ -
使用反密码进行去匿名化:将用于匿名化的密码的加法逆模型建模作为去匿名化的正确密码,使用相同的转换器用于去匿名化,模型 T − p = T p − 1 T_{-p}=T^{-1}_p T−p=Tp−1,
f ( T − p T p I ) = f ( T p − 1 T p I ) = f ( I ) , ∀ p ∈ P , ∀ I ∈ Φ f(T_{-p}T_pI)=f(T^{-1}_pT_pI)=f(I),\quad \forall p\in P,\ \forall I\in \Phi f(T−pTpI)=f(Tp−1TpI)=f(I),∀p∈P, ∀I∈Φ -
使用错误的逆密码得到错误的去匿名化:当使用一个错误的逆密码时得到的身份应与原始身份和匿名化身份不同,
f ( T p ′ T p I ) ≠ f ( I ) , ∀ p , p ′ ∈ P , p ′ ≠ − p , ∀ I ∈ Φ f ( T p ′ T p I ) ≠ f ( T p I ) , ∀ p , p ′ ∈ P , p ′ ≠ − p , ∀ I ∈ Φ f(T_{p'}T_pI)\ne f(I), \quad \forall p,p'\in P,\ p'\ne-p,\ \forall I\in\Phi\\ f(T_{p'}T_pI)\ne f(T_pI), \quad \forall p,p'\in P,\ p'\ne-p,\ \forall I\in\Phi f(Tp′TpI)=f(I),∀p,p′∈P, p′=−p, ∀I∈Φf(Tp′TpI)=f(TpI),∀p,p′∈P, p′=−p, ∀I∈Φ -
多样性:使用不同的密码图像 I I I应当被转换到不同的身份,
f ( T p 1 I ) ≠ f ( T p 2 I ) , ∀ p 1 , p 2 ∈ P , p 1 ≠ p 2 , ∀ I ∈ Φ f(T_{p_1}I)\ne f(T_{p_2}I),\quad \forall p_1,p_2\in P,\ p_1\ne p_2,\ \forall I\in \Phi f(Tp1I)=f(Tp2I),∀p1,p2∈P, p1=p2, ∀I∈Φ
人脸身份转换模块 T T T是一个条件GAN模型,使用一个多任务学习目标进行训练,以输入图像 I I I与输入密码 p p p为条件。 p p p与常用的随机噪声 z z z不同, z z z是试图对输入数据分布进行建模,而 p p p让变换模块拥有所需的隐私保护属性。
使用一个 N N N位 p ∈ { 0 , 1 } N p\in\{0,1\}^N p∈{0,1}N作为密码,共包含 2 N 2^N 2N个不同的密码。给定图像 I ∈ R H × W × 3 I\in\mathbb R^{H\times W\times 3} I∈RH×W×3,以深度方向串联构成变换器输入 ( I , p ) ∈ R H × W × ( 3 + N ) (I,p)\in \mathbb R^{H\times W\times (3+N)} (I,p)∈RH×W×(3+N),其中 p p p在每一个像素位置被复制。为了使转换器根据输入密码改变身份,设计了一个辅助网络 Q ( I , T p I ) = p ^ Q(I,T_pI)=\hat p Q(I,TpI)=p^,学习预测从输入到转换图像之间的嵌入密码,最大化输入密码与在图像域内改变的身份之间的互信息。将交叉熵损失用与分类器 Q Q Q,定义为 L a u x ( T , Q ) \mathcal L_{aux}(T,Q) Laux(T,Q)。
为了诱导多样高层身份变化,提出一个显式特征不相似损失。使用一个人脸识别模型
F
F
F提取深度人脸嵌入,当它们与不同的密码相关时,最小化余弦损失,
L
d
i
s
(
M
1
,
M
2
)
=
m
a
x
(
0
,
c
o
s
(
F
e
m
b
e
d
(
M
1
)
,
F
e
m
b
e
d
(
M
2
)
)
)
\mathcal L_{dis}(M_1,M_2)=max(0,cos(F_{embed}(M_1), F_{embed}(M_2)))
Ldis(M1,M2)=max(0,cos(Fembed(M1),Fembed(M2)))
M
1
M_1
M1与
M
2
M_2
M2是两个使用不同密码的人脸变换图像。对余弦相似小于0的图像对不进行惩罚,因为此时两者已经足够不同。
该损失应用于:利用不同密码的匿名化人脸;给定不同且错误密码的去匿名化人脸;匿名化人脸与错误恢复人脸,
L
f
e
a
t
(
T
)
=
E
(
I
,
p
1
≠
p
2
)
L
d
i
s
(
T
p
1
I
,
T
p
2
I
)
+
E
(
I
,
p
1
′
≠
p
2
′
,
p
1
′
≠
−
p
,
p
2
′
≠
p
)
L
d
i
s
(
T
p
1
′
T
p
I
,
T
p
2
′
T
p
I
)
+
E
(
I
,
p
′
≠
−
p
)
L
d
i
s
(
T
p
I
,
T
p
′
T
p
I
)
\begin{aligned} \mathcal L_{feat}(T) &=\mathbb E_{(I,p_1\ne p_2)}\mathcal L_{dis}(T_{p_1}I, T_{p_2}I)\\ &+ \mathbb E_{(I,p_1'\ne p_2',p_1'\ne -p,p_2'\ne p)}\mathcal L_{dis}(T_{p_1'}T_pI, T_{p_2'}T_pI)\\ &+ \mathbb E_{(I,p'\ne -p)}\mathcal L_{dis}(T_pI, T_{p'}T_pI) \end{aligned}
Lfeat(T)=E(I,p1=p2)Ldis(Tp1I,Tp2I)+E(I,p1′=p2′,p1′=−p,p2′=p)Ldis(Tp1′TpI,Tp2′TpI)+E(I,p′=−p)Ldis(TpI,Tp′TpI)
多任务目标用于进一步辅助身份改变、身份恢复和图像真实性。
-
人脸分类对抗损失。目的是改变输入人脸身份,将其应用于变换图像 T p I T_pI TpI和使用错误恢复密码的重建人脸 T p ′ T p I T_{p'}T_pI Tp′TpI,
L a d v ( T , F ) = − E I L C E ( F ( I ) , y I ) − E ( I , p ) L C E ( F ( T p I ) , y I ) − E ( I , p ′ ≠ p ) L C E ( F ( T p ′ T p I ) , y I ) \begin{aligned} \mathcal L_{adv}(T,F)=&-\mathbb E_{I}\mathcal L_{CE}(F(I), y_I) - \mathbb E_{(I,p)}\mathcal L_{CE}(F(T_pI), y_I) \\ &-\mathbb E_{(I,p'\ne p)}\mathcal L_{CE}(F(T_{p'}T_pI), y_I) \end{aligned} Ladv(T,F)=−EILCE(F(I),yI)−E(I,p)LCE(F(TpI),yI)−E(I,p′=p)LCE(F(Tp′TpI),yI)
其中 F F F为人脸分类器, y I y_I yI为人脸身份标签, L C E \mathcal L_{CE} LCE为交叉熵损失。损失推动转换人脸有一个不同的身份。需要一个监督信号 y I y_I yI。 -
重建损失。使用 L 1 L_1 L1重建损失用于去匿名化,
L r e c ( T ) = ∥ T − p T p I − T ∥ 1 \mathcal L_{rec}(T) = \|T_{-p}T_pI-T\|_1 Lrec(T)=∥T−pTpI−T∥1
仅使用 L 1 L_1 L1损失,重建图像通常模糊,因此,我们对重建人脸添加一个人脸分类损失 L r e c _ c l s \mathcal L_{rec\_cls} Lrec_cls,迫使转换器恢复高频身份信息。 -
背景保留损失。对每一张转换人脸都尽量保留原始背景信息,为此使用另一个 L 1 L_1 L1损失(低权重),
L 1 ( T ) = ∥ T p I − I ∥ 1 + ∥ T p ′ T p I − I ∥ 1 \mathcal L_1(T)=\|T_pI-I\|_1+\|T_p'T_pI-I\|_1 L1(T)=∥TpI−I∥1+∥Tp′TpI−I∥1 -
图像真实性损失。对生成图像使用图像真实性损失 L G A N \mathcal L_{GAN} LGAN帮助对真实人脸进行建模。使用PatchGAN来约束判别器 D D D关注于局部图像块的结构,为了稳定训练,使用LSGAN,
max D L G A N ( D ) = − 1 2 E I [ ( D ( I ) − 1 ) 2 ] − 1 2 E ( I , p ) [ D ( T p I ) 2 ] min T L G A N ( T ) = E ( I , p ) [ ( D ( T p I ) − 1 ) 2 ] \max_{D}\mathcal L_{GAN}(D) = -\frac 1 2 \mathbb E_I[(D(I)-1)^2]-\frac 1 2\mathbb E_{(I,p)}[D(T_pI)^2]\\ \min_T\mathcal L_{GAN}(T)=\mathbb E_{(I,p)}[(D(T_pI)-1)^2] DmaxLGAN(D)=−21EI[(D(I)−1)2]−21E(I,p)[D(TpI)2]TminLGAN(T)=E(I,p)[(D(TpI)−1)2]
总目标损失为:
L
=
λ
a
u
x
L
a
u
x
(
T
,
Q
)
+
λ
f
e
a
t
L
f
e
a
t
(
T
)
+
λ
a
d
v
L
a
d
v
(
T
,
F
)
+
λ
r
e
c
_
c
l
s
L
r
e
c
_
c
l
s
(
T
,
F
)
+
λ
r
e
c
L
r
e
c
(
T
)
+
λ
L
1
L
L
1
(
T
)
+
L
G
A
N
(
T
,
D
)
\begin{aligned} \mathcal L &= \lambda_{aux}\mathcal L_{aux}(T, Q) + \lambda_{feat}\mathcal L_{feat}(T) \\ &+\lambda_{adv}\mathcal L_{adv}(T,F) + \lambda_{rec\_cls}\mathcal L_{rec\_cls}(T,F) \\ & + \lambda_{rec}\mathcal L_{rec}(T) + \lambda_{L_1}\mathcal L_{L_1}(T) + \mathcal L_{GAN}(T,D) \end{aligned}
L=λauxLaux(T,Q)+λfeatLfeat(T)+λadvLadv(T,F)+λrec_clsLrec_cls(T,F)+λrecLrec(T)+λL1LL1(T)+LGAN(T,D)
通过优化最小-最大问题来获得人脸转换模块:
T
∗
=
arg
min
T
,
Q
max
D
,
F
L
T^* = \arg \min_{T,Q} \max_{D,F}\mathcal L
T∗=argT,QminD,FmaxL
训练时,对每一张输入
I
I
I,随机采样两个不同的密码用于匿名化和两个错误的密码用于错误恢复,然后对生成的图像对以及匿名化人脸和错误重建分别应用
L
d
i
s
\mathcal L_{dis}
Ldis。训练中辅助网络及后台会占用许多GPU内存,这会限制批大小。基于对称性提出一种策略:除了特征不相似损失,我们仅对第一个匿名化和第一个错误恢复使用其他损失。采用两步训练策略。
推理时,转换器 T T T输入一个用户定义密码和一张人俩,然后进行匿名化并保存。在整个处理过程中,原始图像和密码不会被保存在磁盘上。