本博客是 Computer Vision and Pattern Recognition (CVPR 2018) 的论文 Deforming Autoencoders: Unsupervised Disentangling of Shape and Appearance 的翻译,因为作者本人水平有限,翻译难免有不足之处,还请见谅!另外希望读者不吝赐教!
摘要
在本论文中,我们介绍变形自动编码器:一种图像的生成模型,它可以使用无监督的方式解耦形状和外观信息。与可变模板范例一样,形状表示为规范坐标系(“模板”) 和观察图像之间的变形。而外观则以规范,模板,坐标建模,从而丢弃了由于变形而引起的变化。我们介绍一种新颖的技术,该技术允许将这种方法部署在自动编码器的设置中,并且表明这种方法可以用于无监督的分组图像对齐。我们展示了人类,手,手写数字,面部操纵(比如形状和外观插值,以及无监督的 landmark 定位) 的表达变形实验。一种在模板坐标中更强大的无监督解耦形式成为可能,这使我们可以将人脸图像成功的分解为阴影和反照率,然后对图像进行更加深入的处理。
图片1 变形自动编码器遵循可变模板范例,并且通过级联 在规范坐标系下的外观(或者说,纹理)合成 和 用于将纹理变形到观察到的图像坐标系的空间变形信息 来建模图像生成。通过保持用于纹理表示的潜在向量短小,网络将被迫通过变形分支来建模形状可变性,因此最小化了重建损失。这使得我们可以使用完全无监督的方式训练一个可以解耦形状和外观的深度生成网络
1 介绍
解耦变化因子对于实现控制和理解深度网络的宏伟目标以及一些应用(比如通过插值操作的图像处理)是十分重要的。解耦深度生成模型的潜在空间的方向上的进展促进了潜在图像表示分离为控制独立变化因子(比如身份,光照,法线和空间支持 [1,2,3,4] 低维转换:比如旋转、平移、或者缩放 [5,6,7] ,或者更高层次的变化:包括年龄、性别、是否戴眼镜,或者其它对于特定类的属性 [2,8] ,比如说脸)的维度。
形状变化更加的具有挑战性,因为它相当于是函数域的转换而不是值的转换。甚至简单,监督的叠加形状模型也会导致复杂的非线性优化问题 [9,10] 。 尽管面临这样的挑战,先前几年的一些工作依旧致力于通过无监督的方式学习形状/ 外观 的分解,探索分组图像对齐 [11,12,13,14]。在深度学习的背景下,一些工作(包括空间转换 [15] 深度流行网络 [16] , 可变形的卷积神经网络 [17] , 质量位移网络 [18],助记词后裔 [19] ,或者 密度 [20] 。)旨在将变形和对齐并入一个监督的设置。这些工作已经证明将变形和对齐注入传统的卷积神经网络架构可以提高分类和定位的准确度。
再看无监督深度学习,即使大多数的工作都集中在刚性或者低维度参数变形,比如 [5,6] , 许多工作试图在学习中加入更丰富的非刚性变形。一些工作的致力于动态地重路由基于输入的网络图中的信息处理过程。并最终转化为具体的算法。尽管如此,这些工作缺少对非刚性变形的透明,参数化处理。在更加几何化的方向上,最近几项工作旨在恢复一对或者RGB图像组之间的密集对应,比如最近的工作 [27,18] 。 然而这些共组没有参考坐标系(模板)的概念(图像可以映射到这个概念),这使得图像的生成和操作更加的困难。最近,[29] 使用等方差原则将图像集对齐到一个公共的坐标系,但是没有将其发展为一个成熟的图像生成模型。
我们的工作通过遵循可变模板范例来推动这一领域的发展,具体来说,我们认为对象实例的获得是通过原型对象经过密集的,不同的变形场实现的。这使得将类别内的可变性分解为与空间变化相关联的变化(通常与对象的2D或者3D形状相关联) 和 与外观(或者纹理) 相关联的变化(例如面部毛发,肤色或者光照) 成为可能。具体来说,我们认为两种变化源都可以根据低维潜在代码(该潜在代码可以按照无监督的方式从图像中获得)来建模。我们将潜在代码分解为单独的部分,以此来实现解耦。这些单独的部分分别被输入到独立的解码器(分别用于提供外观和变形估计)网络中。尽管人们更加希望通过通用的卷积体系结构来学会代表这种效应,但我们认为在网络中明确引入这种归纳偏差可以帮助进行训练,同时也可以控制生成过程。
我们在这项工作的贡献可以总结如下:
首先 ,我们提出了变形自动编码器,将可变形建模范例与无监督深度学习结合在一起。我们认为从模板到图像对应的任务为预测平滑和可逆变换。如图1 所示,我们的网络预测这个转换场以及模板对齐的外观,随后对生成的外观进行变形来生成一张与输入类似的图像。 这允许通过在解码阶段期间明确的模拟图像变形的影响来解开图像生成过程中的形状和外观部分。
第二 , 我们探索利用解码器表示和预测变形的不同方式。与建立一个通用的变形模型不同的是,我们合成一种全局的,仿射变形场(具有一个使用卷积解码网络合成的非刚性场)。我们开发了一种方法,允许我们将合成场约束为微分同胚,即可逆和平滑变换,我们证明这样会简化训练并提高准确性。我们还证明,在可用的情况下,利用类相关的信息可以学习更好的变形模型:这样可以产生更加清晰的图像,并且可以用于学习需要考虑多个类别的模型,比如说所有的 MNIST 数字。
第三 ,我们证明,在建模和操纵图像的时候,从变形中解开外观具有几个优点。通过解耦,在处理诸如表达,姿势或身份插值等任务的图像时,与标准自动编码器架构进行比较,我们获得了明显更好的合成结果。沿着相同的路线,我们证明变形有助于将外观组件进一步解开为内在的阴影反照率(当简单的在原始图像坐标中进行时,该分解会完全失败)。这允许我们通过潜在阴影坐标空间上的简单操作来执行重新着色。
我们通过地标定位精度对学习到的模型进行定量分析来补充这些定性结果。我们证明,我们的方法与监督方法相比并不太差,并且在自我监督的对应估计方面,优于最新技术水平[29]。尽管我们从未明确训练过网络进行对应估计,而是仅仅旨在重建像素强度。
2 变形自动编码器
我们的架构在自动编码器架构中体现了可变模板范例。这项工作的前提是图像生成过程可以解释为两个过程的组成:在无变形坐标系(“模板”) 上合成外观,随后是用于描述形状可变性的变形信息。设 p=(x,y) 表示坐标,W(p) 表示估计的变形场信息,T(p) 表示在坐标 p 处的合成外观(或者纹理) 的值。我们定义,观察到的图像可以使用如下方式重建:
I
(
p
)
≃
T
(
W
(
p
)
)
,
(
1
)
I(p) \simeq T(W(p)) , \quad (1)
I(p)≃T(W(p)),(1)
(注:其中 ≃ \simeq ≃ 表示函数之间的渐进等价。) 也就是说图像在位置 p 的外观通过查找在位置 W(p) 的合成外观来获得。这根据空间转换层(该层允许我们通过变形过程传递梯度) [15] 实现。
外观和变形函数通过独立的解码器网络合成。解码器的输入是一个 联合编码器网络,该网络将观察到的图像作为输入 ,并且提供形状和外观的低维潜在表示 Z 。 它分为两部分, Z = [ Z T , Z S ] Z=[Z_T,Z_S] Z=[ZT,ZS] ,分别输入外观和形状网络,提供了清晰的形状和外观分离。
2.1 变形场建模
我们使用一些领域知识简化和加速学习,而不是将变形建模完全交给反向传播。第一个观察:全局方面可以使用低维线性模型表达。我们通过一个仿射的空间转换层来考虑整体变形,该层使用六维输入合成变形场,作为固定偏置 [15] 基础上的扩展。这意味着上面提到的形状表示 Z S Z_S ZS 被分解为两部分, Z W Z_W ZW 和 Z A Z_A ZA , Z A Z_A ZA 表示仿射变换 Z W Z_W ZW 表示变形场的非刚性学习到的部分。这些变形场通过独立的解码器生成,并且被组合,使得仿射变换将详细的非刚性变形扭曲到他们应该应用的图片位置。这也是面部可变形模型的一种常见的分解 [9,10] 。
谈到局部变形效应,我们很快意识到并不是每一个变形场都是合理的,如果没有合适的正则化,我们将经常获得能扩展小区域来韩剧整个区域的变形场,或者(并且) 变形场是非微分同胚的,这意味着变形能够传播一个连续的纹理图案到一个不连续的图像区域。(图片 2-(f))
为了避免这个问题,我们不使用形状解码器CNN 来直接预测局部变型场: W ( p ) = ( W x ( x , y ) , W y ( x , y ) ) W(p) = (W_x(x,y),W_y(x,y)) W(p)=(Wx(x,y),Wy(x,y)) ,而是考虑一个 “差分解码器” 用于生成变形场的空间梯度: ∇ x W x \nabla_xW_x ∇xWx 和 ∇ y W y \nabla_yW_y ∇yWy 。其中 ∇ c \nabla_c ∇c 表示空间梯度向量的第 c 个分量。这两个量测量连续像素的位移。距离来说: ∇ x W x = 1 \nabla_xW_x=1 ∇xWx=1 表示沿水平轴平移, ∇ x W x = 2 \nabla_xW_x=2 ∇xWx=2 表示沿着水平轴平移两个单位,而 ∇ x W x = − 1 \nabla_xW_x=-1 ∇xWx=−1 表示左右翻转。 ∇ y W y \nabla_yW_y ∇yWy 与它类似,只是操作在垂直轴上。我们注意到全局旋转是被仿射变形场处理的, ∇ x W y \nabla_xW_y ∇xWy, ∇ y W x \nabla_yW_x ∇yWx 与较小的局部旋转关联。 我们因此聚焦于 ∇ x W x \nabla_xW_x ∇xWx, ∇ y W y \nabla_yW_y ∇yWy 。
通过这两个值可以让我们控制变形场,因为我们可以通过控制 ∇ x W x \nabla_xW_x ∇xWx 和 ∇ y W y \nabla_yW_y ∇yWy 来防止折叠或者过度拉伸。
特别的,我们使用 Relu 模块来传递差分编码器的输出,该模块强制在水平相邻像素上执行正偏移,在垂直相邻像素上执行正偏移。随后,我们在 Relu 的输出之上应用一个空间集成层(该层根据固定网络层实现)来达到从空间梯度中重建变形场。 通过这样,新的变形模型强制生成平滑且规则的变形场,避免自交。在实践中,我们发现通过最大值来剪切解码器的偏移量也能有效的简化训练。其实相当于使用 H a r d T a n h 0 , δ ( x ) ( x ) = m i n ( m a x ( x , 0 , δ ) ) HardTanh_{0,\delta(x)}(x)=min(max(x,0,\delta)) HardTanh0,δ(x)(x)=min(max(x,0,δ)) 来替换 R e l u ( x ) = m a x ( x , 0 ) Relu(x)=max(x,0) Relu(x)=max(x,0) 。我们这里设置 δ = 5 / ω \delta =5/\omega δ=5/ω,其中 ω \omega ω 表示沿图像的一个维度的像素数。
图片2 :我们的变形模型设计只允许局部一致性变形,如(b) 中所示,但是像素位置的相对翻转的情况(如 c 所示) 不被允许。为了达到这个效果,我们让变形解码器预测水平和垂直方向上变形的增量(分别为
∇
x
W
\nabla_xW
∇xW 和
∇
y
W
\nabla_yW
∇yW )并且使用Relu 转换函数来消除由于在垂直或者水平方向上的返回而导致的局部影响。随后使用空间积分的模块来生成网络。这种简单的机制是变形生成过程的有效约束,同时它让我们可以建模自由形状/ 非刚性局部变形。
2.2 类感知的变形自动编码器
图片3:一个类感知的模型通过使用类别信息,可以解释多模态变形分布。在潜空间中引入分类损失可以帮助模型学习到一个更好的输入表达。就如 NBIST 数字所示。
我们可以要求我们的网络不仅可以预测形状和外观,还可以预测实例的类别信息(如果在训练的时候可以获得的话)。 我们注意到,这种离散的信息可能比实际的变形场(需要手工的标记注释)更加容易获得。举例来说,对于人脸,这样的离散的信息可以表示人的表情和身份信息。
具体来说,我们认为潜在表示可以被分解为如下所示: Z = [ Z T , Z C , Z S ] Z=[Z_T,Z_C,Z_S] Z=[ZT,ZC,ZS], Z T Z_T ZT 和 Z S Z_S ZS 和之前一致,分别代表最终 结果表示中外观和形状相关的部分。这里 Z C Z_C ZC 作为输入送到一个子网络(该网络经过训练用于预测输入图像的类别)。除了帮助分类任务,潜向量 Z C Z_C ZC 还被输入到外观和形状解码器中。直观上,这允许我们的解码器网络学习以类信息为条件的混合模型,而不是通过一整个模型来处理联合的多模态分布。尽管类标签仅仅用于训练,在重建的时候不使用,我们的实验结果依旧证明:经过类监督训练的网络依旧有更好的合成结果。
2.3 内在的变形自动编码器:变形,反照率和光影分解
介绍了变形自动编码器之后,现在我们使用变形自动编码器来建模复杂的物理图像信号,例如照明效果,而无需监督的信号。为此,我们设计了内在变形自动编码器(即:Intrinsic-DAE ) 用于为 in-the-wild-face 数据集图像建模阴影和反照率。如图4 (a) 所示,我们为阴影 S 和反照率 A 引入两个独立的解码器,它们与原始的 纹理解码器具有相同的结构。纹理使用 T = S ∘ A T=S\circ A T=S∘A ,其中 ∘ \circ ∘ 表示 哈达玛积(一种矩阵运算)。
为了建模阴影和反照率,我们参考了 [2] 中使用的内在分解正则化损失 : 我们将 L2 平滑损失应用到 ∇ S \nabla S ∇S,意味着阴影期望是光滑的,同时使反照率不受约束。 如图4所示,(更详细的请见实验结果部分)当与变形自动编码器串联使用的时候,允许我们成功的将面部图像 分解为形状,反照率和阴影 的分量,而一个标准的自动编码器在分解未对齐的图像为阴影和反照率的时候会完全失败。
2.4 训练
我们的目标函数形式可以表示为 三个损失的求和,将重建误差与上述提到的模型正则化项结合起来。具体来说,变形自动编码器可以表示为:
E
D
A
E
=
E
R
e
c
o
n
s
t
r
u
c
t
i
o
n
+
E
W
a
r
p
,
(
2
)
E_{DAE}=E_{Reconstruction}+E_{Warp},\quad \quad (2)
EDAE=EReconstruction+EWarp,(2)
重建损失可以表示为标准的
L
2
L_2
L2 损失:
E
R
e
c
o
n
s
t
r
u
c
t
i
o
n
=
∥
I
O
u
t
p
u
t
−
I
I
n
p
u
t
∥
2
,
(
3
)
E_{Reconstruction}=\begin{Vmatrix} I_{Output}-I_{Input}\end{Vmatrix}^2,\quad\quad (3)
EReconstruction=∥∥IOutput−IInput∥∥2,(3)
变形损失可以表示为:
E
W
r
a
p
=
E
S
m
o
o
t
h
+
E
B
a
u
s
R
e
d
u
c
e
,
(
4
)
E_{Wrap}=E_{Smooth}+E_{BausReduce},\quad\quad (4)
EWrap=ESmooth+EBausReduce,(4)
图片4 : 具有内在分解的自动编码器。(a)具有内在分解的变形自动编码器(intrinsic-DAE) :我们通过阴影和反照率分量(他们都是用单独的解码器)的哈达玛积来建模纹理信息,随后,纹理由预测得到的变形场进行变形。(b) 具有内在分解的普通自动编码器。两个模型都在最后的输出引入重建损失(
E
R
e
c
o
n
s
t
r
u
c
t
i
o
n
E_{Reconstruction}
EReconstruction),在阴影(
E
S
h
a
d
e
E_{Shade}
EShade)和变形(
E
W
a
r
p
E_{Warp}
EWarp)上引入正则化损失(如果存在的话)。
具体来说,平滑度损失,
E
s
m
o
o
t
h
E_{smooth}
Esmooth ,惩罚快速变化的 变形(通过局部变形场编码)。他根据水平和垂直的差分变形场的总变化范数来衡量的。他的形式如下:
E
s
m
o
o
t
h
=
λ
1
(
∥
∇
W
x
(
x
,
y
)
∥
1
+
∥
∇
W
y
(
x
,
y
)
∥
1
)
(
5
)
E_{smooth}=\lambda_1( \begin{Vmatrix}\nabla W_x(x,y) \end{Vmatrix}_1 +\begin{Vmatrix}\nabla W_y(x,y) \end{Vmatrix}_1 ) \quad \quad (5)
Esmooth=λ1(∥∥∇Wx(x,y)∥∥1+∥∥∇Wy(x,y)∥∥1)(5)
这里
λ
1
\lambda_1
λ1=1e-6。最后,
E
B
i
a
s
R
e
d
u
c
e
E_{BiasReduce}
EBiasReduce 消除了拟合过程引入的所有系统偏差,例如平均模板变小,或者数据版本扭曲。它包括一下方面的正则化:(1) 定义在
S
A
S_A
SA 和
S
O
S_O
SO 之间的
L
2
L_2
L2 距离的仿射变换参数,以及 (2) 定义在小批量内平均变形网络
W
‾
\overline{W}
W 和身份网络
W
O
W_O
WO 之间
L
2
L_2
L2 距离的自由形式变形:
E
B
i
a
s
R
e
d
u
c
e
=
λ
2
∥
S
A
−
S
0
∥
2
+
λ
2
′
∥
W
‾
−
W
0
∥
2
,
(
6
)
E_{BiasReduce}=\lambda_2 \begin{Vmatrix} S_A-S_0 \end{Vmatrix}^2 + \lambda_2^{\prime} \begin{Vmatrix} \overline{W}-W_0\end{Vmatrix}^2, \quad\quad (6)
EBiasReduce=λ2∥∥SA−S0∥∥2+λ2′∥∥W−W0∥∥2,(6)
这里
λ
2
=
λ
2
′
=
0.01
\lambda_2=\lambda_2^{\prime}=0.01
λ2=λ2′=0.01。
在2.2节描述的类感知变体中,我们使用分类网络输出评估的交叉熵损失来增加上述的损失,而对于 Intrinsic-DAE ,我们在训练中添加了如下目标函数:
E
s
h
a
p
e
=
λ
3
∥
∇
S
∥
2
E_{shape}=\lambda_3\begin{Vmatrix}\nabla S\end{Vmatrix}^2
Eshape=λ3∥∥∇S∥∥2,这里
λ
3
=
1
e
−
6
\lambda_3=1e-6
λ3=1e−6。
我们对两种类型的体系结构进行实验;我们的多数结果都是通过标准的变形自动编码器体系结构获得的,其中编码器都是由 卷积层-批归一化-Relu 激活层 组成的标准卷积神经网络。filter 的数量,纹理的瓶颈容量,会因为实验,图像分辨率,和数据集而异,详见附录 A
根据最近关于密集连接的工作 [33] 我们还尝试将密集连接分别合并到我们的编码器和解码器体系结构中(对于潜在的表示,在瓶颈层没有跳过连接)具体来说,我们使用 DenseNet-121 的体系结构,但在密集块中没有 1 × 1 的卷积核。如无监督人脸对齐的定量分析所示,这些方法可以更好的利用更大的数据集。我们将这一版本的变形自动编码器称为 Dense-DAE。
3 实验
图片5 : 无监督地在单个MNIST数据集上解开变形和外观。我们的网络学习如何重构输入图像,同时自动为输入图像类递送规范的外观纹理。在此试验中,纹理的潜在表示
Z
T
Z_T
ZT的维度是 1
为了验证变形解耦网络的特性,我们对以下3个数据集进行了实验:
- 变形的 MNIST :一个合成的数据集,专门为了探索我们的网络变形建模能力而设计。该数据集由手写数字图像组成,这些图像使用混合的正弦波形随机扭曲。
- MUG 面部表情数据集 [34] :该数据集由具有个人面部表情的视频组成,使用简答的蓝色背景和一些次要的转换。数据集还提供了根据面部表情分类的视频帧。
- In-the-wild 数据集:CeleBA [36],MAFL [35]。 这些数据集由不受控制的 面孔组成,这些面孔在姿势,光照,表情,年龄等方面均存在变化性。
使用这些数据集,我们实验性的探索非监督外观-形状解耦(或者说纹理-变形解耦)网络的能力,在以下几个方面:
1)非监督图像对齐/ 外观推断。2)为形状和外观学习语义上有意义的流形。 3)分解成光影和反照率 4)无监督地标检测,详见后面的叙述。
图片6:类感知的变形自动编码器可以有效的为多类别数据的外观和变形建模
3.1 无监督的外观推断
我们首先应用我们的网络为单类别对象建模 规范外观 和 变形。 为此,我们在 MNIST 和 MUG 人脸表情数据集上展示了结果 (图片 5,6,7) 。
我们观察到,通过严格限制 Z T Z_T ZT 的大小(图5中为1 ,图7中为 0),我们可以成功推断出此类的规范外观。在图片 5 中,所有不同类型的手写数字 3 都被对齐为简单的规范形状。在图 7 中,通过限制 Z T Z_T ZT 的维度为 0 ,网络学习到为所的表情编码单个纹理图像,并且仅在形状空间中提取了与表情相关的信息。在图片7的 (b)中,我们证明,通过对学习到的潜在空间表示进行插值,我们可以生成模仿面部表情的有意义的形状插值。
图片7:在面部表情的 MUG 数据集上进行的实验:(a)
Z
T
Z_T
ZT 的长度为0,变形自动编码器从MUG面部表情数据集上学习到一个单一的纹理(第三行)。这样的话,对象的面部表情只在变形域进行编码。(b)我们的网络可以解开面部表情变形,并且可以以有意义的潜在表示形式编码此信息。通过对源图像(橙色框中的)和目标图像(蓝色框中的)的潜在变形表示进行插值,可以生成清晰的图像和表情之间的平滑变形插值,如每一行所示。
在数据具有展现多种不同的规范外观的多模态分布的情况下,比如多类别 MNIST 图像,学习一个单个的外观意义不大,并且不容易(图片 6-b)。在这样的情况下,使用类别信息 (2.2 部分),能够显著提高多模式外观学习的质量。当网络学习在潜在空间中对图像进行隐式分类的时候,它就会学会为每一个类别生成一个规范的外观。错误分类的数据将被解码为错误的类别:例如图片 6中的 c图和d图,位置 (2,4) 的图像被解释为了 6 。
现在我们使用我们的网络在 in-the-wild 的人脸上演示纹理推断的有效性。使用 MAFL 人脸数据集,我们表明,我们的网路可以将在各种不同姿势,光照条件,或者面部表情的情况下将人脸对齐到一个公共的纹理空间。(见图片10-d)。对齐的纹理不需要监督的训练信号就可以保留输入图像诸如面部光照,性别,面部毛发等相关信息。我们在 11k Hands 数据集 [37] 继续演示了对齐方式,在这个数据集上对齐了多个对象的左手手掌图像。(详见图片8)。我们网络的这个属性对于一些应用程序特别有用,比如计算机图形学,在这些应用中,一个类别中的对象之间建立对应关系(UV映射)很重要,但是通常都很困难。
图片8:左手手掌上的无监督图像对齐。(a)输入图像。(b)重建图像。(c)编码的变形信息的平均值变形得到的纹理图像。(d)输入图像的平均。(e)纹理的平均
3.2 自动编码器 VS 变形自动编码器
我们已经展示了我们的网络使用无监督的方式,学习到有意义的变形表示的能力。我们将普通的自动编码器网络与我们的解耦网络进行比较(图片9)。与我们将图像分解为模板纹理和变形场的网络相反,自动编码器网络经过训练,可以将所有图像编码为单一的潜在表示形式,这就是瓶颈。
我们在 MAFL faces-in-the-wild 数据集上训练两个网络。为了评估学习到的表示,我们在两个随机采样的人脸图像之间执行 潜在表示 的插值:给一个源图像 I S I^S IS 和目标图像 I T I^T IT,首先计算他们的潜在表示 Z S Z_S ZS 。使用 Z T ( I S ) Z_T(I^S) ZT(IS) 和 Z S ( I S ) Z_S(I^S) ZS(IS) 来代表我们网络对于 I S I^S IS 的潜在表示,使用 Z a e ( I S ) Z_{ae}(I^S) Zae(IS) 表示通过普通自动编码器学习到的潜在表示。然后我们在 Z 上从 Z S Z^S ZS 到 Z T Z^T ZT 之间,进行线性插值: Z λ = λ Z S + ( 1 − λ ) Z T Z^{\lambda}=\lambda Z^S+(1-\lambda) Z^T Zλ=λZS+(1−λ)ZT 。随后我们使用对应的解码器从 Z λ Z_{\lambda} Zλ 中重建图像 I λ I^{\lambda} Iλ,如图片9所示。
仅通过对学到的变形表示进行插值,我们就可以在保持纹理的同时更改面孔的形状和姿势(图片 9-(1))。对纹理进行插值达到姿势对齐的纹理转换(图片 9-(2))。在两种表示上(形状和纹理)进行插值,可以生成从一个图像到另外一个图像的平滑变换(图片 9-(3,5,7))。与使用自动编码器进行插值的情况(经常存在伪像)进行比较(图片 9-(4,6,8)),我们的插值停留在面孔的语义流形上,并且可以产生清晰的面部特征。
图片9:潜在表示插值:我们将一个图像嵌入一个由MAFL数据集训练的编码器提供的潜在空间中。我们的网络解耦了潜在表示各个部分的纹理和变形信息,这样就允许图像之间有意义的插值。内插潜在表示的变形特定部分会更改脸部形状和姿势(1);对纹理的潜在表示进行插值将在图像之间生成姿势对齐的纹理转换(2);插值这两个潜在表示将产生平滑而清晰的图像变形(3、5、7)。当使用标准的自动编码器时,这种插值通常会产生伪像。更多结果可以查看附录 18 ,19。
3.3 内在变形自动编码器
在演示了变形自动编码器的解耦能力之后,我们现在探讨 2.3 节中介绍的 Intrinsic-DAE 的解耦能力。无需直接监督,仅仅使用 E D A E_{DA} EDA 和正则化损失,Intrinsic-DAE 就可以生成令人信服的阴影和反照率估计值。(图片 10(b)-(g))。如果没有学习对齐属性,则具有内在分解设计的基准自动编码器结构(图片 4-(b))无法将图像分解为阴影和反照率分量。(图片 10-(h),(i),(j))。
此外,我们还表明,通过操纵学习到的S的潜在表示,Intrinsic-DAE允许我们模拟面部图像的照明效果,例如插值照明方向(图11)。
图片10:借助变形自动编码器(Intrinsic-DAE)进行无监督的内部分解。由于DAE具有“自动密集匹配”特性,因此阴影和反照率可以通过内在分解损失得到可靠地分离(e,f)。在密集对齐的规范空间中以无监督的方式学习阴影(b)和反照率(c)。在没有监督的情况下学习变形场,我们可以恢复原始形状和视点(e,f)的内在图像分量。如果没有密集对齐,则内在分解损失将无法分解阴影和反照率(h,i,j)。
经过L2重建损失的训练,类似自动编码器的架构易于生成缺乏视觉逼真的平滑图像(图10)。受到生成对抗网络(GAN)成功的启发[38],我们按照先前的工作[2],采用对抗损失来生成视觉上逼真的图像。我们使用最终输出上附加的对抗损失项
E
A
d
v
e
r
s
a
r
i
a
E_{Adversaria}
EAdversaria 训练了Intransic-DAE。损失函数变为:
E
i
n
t
r
i
n
s
i
c
−
D
A
E
=
E
R
e
c
o
n
s
t
r
u
c
t
i
o
n
+
E
W
a
r
p
+
λ
4
E
A
d
v
e
r
s
a
r
i
a
l
,
(
7
)
E_{intrinsic-DAE}=E_{Reconstruction}+E_{Warp}+\lambda_4 E_{Adversarial},\quad\quad (7)
Eintrinsic−DAE=EReconstruction+EWarp+λ4EAdversarial,(7)
在实践中,我们应用PatchGAN [39,40]作为判别器,并设置
λ
4
=
0.1
\lambda_4=0.1
λ4=0.1。我们发现对抗损失提高了重建的视觉清晰度,而变形,阴影仍然可以成功地消除(图片12)。
图片11 :使用 Intrinsic-DAE 进行光照插值。DAE允许我们通过 以无监督方式学习到的阴影,反照率和变形的 潜在表示 来模拟照明方向的平滑过渡。在此示例中,我们将阴影的潜在表示从源(从左侧点亮)插入到目标(镜像源,因此从右侧点亮)进行内插。如阴影(1)和纹理(2)所示,网络生成平滑的光照过渡,而无需显式学习几何形状。结合学习到的源图像变形,DAE可以使脸部恢复其原始姿势(3)。
图片12:具有对抗损失的 Intrinsic-DAE 。(a / d)重建(b / e)反照率,(c / f)阴影,分别在图像和模板坐标中。将对抗性损失应用于最终输出结果可改善 Intrinsic-DAE 图像重建的视觉质量(a),同时变形,反照率和阴影仍可以成功解耦。
3.4 无监督对齐评估
定性地分析了我们网络的解纠缠能力之后,我们现在转向量化其在无监督图像对齐任务下的性能。我们报告了面部DAE在面部图像(特别是眼睛,鼻子和嘴角)的界标检测中的对齐性能。我们在MAFL数据集上报告性能,该数据集包含用于19,000个训练和1,000个测试图像的手动注释的地标位置。在我们的试验中,我们使用在 CelebaA数据集上没有任何形式的监督来训练的模型来估计 MAFL 训练集上的变形场。按照我们直接比较的工作 [29] 的评估协议,我们使用提供的注释在这些变形场上训练一个地标回归器,我们使用来自MAFL训练集的地标位置作为该回归变量的训练数据,但不将梯度传递给变形自动编码器,从而在没有监督的情况下固定为学习到的模型。回归器是一个两层的全连接神经网络。他的输入是展平的变形场(一个 64 × 64 × 2 的向量),中间有一个维度为100的隐藏层,然后使用 Relu 激活,随后是一个 10 维度的输出层,输出结果用于预测对于眼睛,鼻子,嘴角相对应的地标位置的空间坐标(x,y)。我们使用 L1 损失作为这个回归任务的目标函数。
在测试的时候,我们使用经过训练的回归器和 MAFL 测试集上的变形场来预测地标位置。在 表1 中,我们报告了界标定位中的平均误差占眼间距离的百分比 (这里我没看懂!!!!!) 。由于变形场确定纹理空间的对齐方式,因此它可以作为对齐纹理上的地标位置和未对齐的原始人脸上的的地标位置之前的有效映射。因此,我们报告的平均误差直接量化了(无监督)人脸对齐的质量。
A,MAFL | I,MAFL | A+I,MAFL | A+I,CelebA | A+I,CelebA,with Regressor |
---|---|---|---|---|
14.13 | 9.89 | 8.50 | 7.54 | 5.96 |
表格1:随着新变形和新数据的添加,MAFL 测试集上的地标定位误差得到改善。在这个表格中, A 代表使用仿射变换的模型,I 代表使用积分变换的模型,MAFL和CelebA 代表变形自动编码器在哪个数据集上进行训练。对于第1到第4列,我们在平均纹理图像上手动注释地标,而对于第5列,我们在变形场上训练回归器来对它们进行预测。所有实验中潜在向量的大小都是 32。
在 表2 中,我们与目前最佳的半监督图像定位方法的结果进行了比较 [29] 。我们观察到,通过对变形空间进行更好的建模,即使我们从未明确地训练网络去学习对应关系,也可以迅速弥补性能差距。
表格2:MAFL测试集上无监督界标检测的平均误差,表示为眼间距离的百分比:对非刚性变形建模显然比对仿射变形建模更能减少误差。DAE和Dense-DAE表示变形自动编码的两种形式,分别为 有密集的卷积连接和没有密集的卷积连接。在DAE和Dense-DAE下,我们指定变形自动编码器中每个潜在向量的大小。NR表示不对估计变形进行正则化的训练,而 Res 表示通过估计残余变形网格进行训练,而不是积分。我们的结果明显优于专门为建立对应关系而训练的自我监督方法 [29]。
4 结论与将来的工作
在本文中,我们开发了深度自动编码器,可以在潜在表示空间中解开形状和外观。我们已经表明,该方法可用于无监督的逐组图像对齐。我们在人类表情变形,图像处理(例如形状和外观插值)以及无监督地标定位的实验中表明了我们方法具有一般性。我们已经证明,将图像带入规范坐标系中可以使图像解开更广泛的形式,从而无需任何形式的监督就可以方便地估计分解的形状,反照率和阴影。我们希望这在将来可以完全解耦 normals,光照,3D几何。( We expect that this willlead in the future to a full-fledged disentanglement into normals, illumination, and 3Dgeometry.)
5 致谢
略去了,反正没我……
参考资料
附录
附录部分的翻译请见:Deforming Autoencoders: Unsupervised disentangling of shape and appearance(附录)