0%

论文阅读-image editing-CAFE-GAN Arbitrary Face Attribute Editing with Complementary Attention Feature

动机

  • 目前的多域编辑方法经常会导致面部区域出现意想不到的变化,即生成器改变了与指定属性无关的区域;
  • 注意分支网络(ABN)将基于响应的视觉解释扩展到注意力机制,但是基于响应的视觉解释方法只能提取图像中已经存在的属性的注意力特征图。

贡献

  • 基于互补注意特征(CAFE)的概念(同时考虑目标属性和“互补属性”来识别需要转换的面部区域,“互补属性”定义为输入面部图像中缺失的那些属性),本文提出了一种新的面部属性编辑方法,旨在仅编辑与目标属性相关的面部部分;
  • 引入了一个互补的特征匹配损失设计来帮助训练生成器合成图像与给定的属性呈现准确和在适当的面部区域。

本文的方法

判别器

判别器由三个主要部分组成,即 D_{att} D_{adv} D_{cls}

  • D_{att}

    本文方法对中层特征f应用空间注意力机制, D_{att} 由一个注意分支(AB)和一个互补注意分支(CAB)构成,它们会生成k个注意力图(k表示属性的数量),AB的注意力图 M={M_1,…,M_k} 表示输入图像中存在的重要属性区域,而CAB的注意力图 M^c={M_1^c,…,M_k^c} 表示不存在的临时属性区域

    \begin{aligned} f_{i}^{\prime} &=f \cdot M_{i} \\ f_{i}^{\prime \prime} &=f \cdot M_{i}^{c} \end{aligned}

    AB:中层特征f经过卷积层生成一个h*w*k的注意力特征(AF),k对应着属性数,一方面 A_i 经过1*1*k的卷积层和sigmoid层得到 M_i ,另一方面通过1*1*k的卷积层和GAP及sigmoid去得到每个属性的概率分数,这里跟 v_s 做交叉熵损失

    \mathcal{L}_{D_{A B}}=-\mathbb{E}_{x} \sum_{i=1}^{k}\left[v_{s}^{(i)} \log D_{A B}^{(i)}(x)+\left(1-v_{s}^{(i)}\right) \log \left(1-D_{A B}^{(i)}(x)\right)\right]

    AB通过获得A,A表示输入图像中包含的属性的空间信息。但是A不包含图像中没有出现的属性信息,因为Ai是feature map A的第i个通道,如果第i个属性不在输入图像中,它就没有响应。这不会影响像ABN这样的分类模型,因为它只需要激活一个与输入图像中显示的正确属性相对应的通道。

    然而,对于任意属性的编辑,即使输入的图像并不具有该属性,生成模型也希望能够找到相关的空间区域,因此,将现有的可视化解释方法直接应用于属性编辑模型的判别器存在一定的局限性。为了解决这一问题,本文提出了互补注意力的概念,通过整合互补注意分支(CAB)实现了算法中的这一思想。

    CAB:提取互补注意特征(CAFE),用 A^c 表示图像中不存在的属性的causative regions。网络跟思路类似于AB

    \mathcal{L}_{D_{C A B}}=-\mathbb{E}_{x} \sum_{i=1}^{k}\left[\left(1-v_{s}^{(i)}\right) \log D_{C A B}^{(i)}(x)+v_{s}^{(i)} \log \left(1-D_{C A B}^{(i)}(x)\right)\right]

    通过AB和CAB,我们的模型提取了所有属性的注意特征图,因为 A A^c 是互补的。换句话说,对于任何第i个属性,如果 A_i 没有响应值, A_i^c 就有响应值,反之亦然

  • D_{cls}

    AB和CAB的输出两组注意图M和 M^c 对属性的激活不同。换句话说,M是关于输入图像已有的属性,而 M^c 是关于输入图像缺失的属性。经过注意机制后,将变换后的特征转发到 D_{cls} 中的两个多属性分类器中,分类器1和分类器2分别用 f_{i}^{\prime} f_{i}^{\prime \prime} 对图像的正确标签进行分类

    \mathcal{L}_{D_{c l s}}=-\mathbb{E}_{x} \sum_{n=1,2} \sum_{i=1}^{k}\left[v_{s}^{(i)} \log D_{c l s_{n}}^{(i)}(x)+\left(1-v_{s}^{(i)}\right) \log \left(1-D_{c l s_{n}}^{(i)}(x)\right)\right]
  • D_{adv}

    Dadv用于区分真实图像x和伪图像y,通过对抗学习来保证输出的视觉真实感,这里使用WGAN-GP的损失函数:

    \mathcal{L}_{D_{a d v}}=\mathbb{E}_{x}\left(D_{a d v}(x)\right)-\mathbb{E}_{y}\left(D_{a d v}(y)\right)-\lambda_{g p} \mathbb{E}_{\hat{x}}\left[\left(\left\|\nabla_{\hat{x}} D_{a d v}(\hat{x})\right\|_{2}-1\right)^{2}\right]

生成器

生成器G以源图像x和目标属性标签 v_t 为输入,进行x到y的变换,表示为 y=G(x,v_t) 。生成器的目标是在保持x身份的同时生成具有 v_t 属性的图像y,生成器由编码器 G_{enc} G_{dec} 两部分组成,即从给定的源图像x编码得到一个隐特征表示z,再由译码器译码隐特征表示z和差值属性向量 v_d 生成一个y

v_{d}=v_{t}-v_{s} \\ \begin{array}{l} z=G_{e n c}(x) \\ y=G_{d e c}\left(z, v_{d}\right) \end{array}

所以生成器的分类损失为:

\mathcal{L}_{G_{c l, n}}=-\mathbb{E}_{y} \sum_{n=1,2} \sum_{i=1}^{k}\left[v_{t}^{(i)} \log D_{c l s_{n}}^{(i)}(y)+\left(1-v_{t}^{(i)}\right) \log \left(1-D_{c l s_{n}}^{(i)}(y)\right)\right]

虽然判别器中的 D_{att} 可以获得所有属性的空间信息,但有必要保证G能够改变给定目标属性的相关区域。源图像和编辑图像的注意特征图在属性改变时对应的注意特征图应该是不同的,而其余的注意特征图应该是相同的。即对于上图,不需要改变的属性(即黑色箭头),G学习将编辑后的图像的AF和CAFE与源图像的AF和CAFE进行匹配,对于需要编辑的属性(即红色箭头),G学习将编辑后的图像的AF和CAFE与源图像的CAFE和AF进行匹配,令 \{A(x),A^c(x)\} \{A(y),A^c(y)\} 分别表示来自真实图像x和伪图像y的AF和CAFE集合,则互补匹配损失为:

\begin{aligned} \mathcal{L}_{C M}&=\mathbb{E}_{(x, y)} \sum_{i=1}^{k} \frac{1}{N_{i}}\left[\left\|A_{i}^{(x)}-P_{i}\right\|_{1}+\left\|A_{i}^{c(x)}-Q_{i}\right\|_{1}\right] \\ & \text { where }\left\{P_{i}, Q_{i}\right\}=\left\{\begin{array}{ll} \left\{A_{i}^{(y)}, A_{i}^{c(y)}\right\} & \text { if }\left|v_{d}^{(i)}\right|=0 \\ \left\{A_{i}^{c(y)}, A_{i}^{(y)}\right\} & \text { if }\left|v_{d}^{(i)}\right|=1 \end{array}\right. \end{aligned}

生成器的对抗损失,采用WGAN-GP:

\mathcal{L}_{G_{a d v}}=\mathbb{E}_{x, v_{d}}\left[D_{a d v}\left(G\left(x, v_{d}\right)\right)\right]

为了保持图像身份特征,生成器需要在差分属性向量为零时重构源图像,故像素级重建损失为:

\mathcal{L}_{r e c}=\mathbb{E}_{x}\left[\|x-G(x, \mathbf{0})\|_{1}\right]

总的损失函数

判别器

\mathcal{L}_{D}=-\mathcal{L}_{D_{a d v}}+\lambda_{a t t} \mathcal{L}_{D_{a t t}}+\lambda_{D_{c l s}} \mathcal{L}_{D_{c l s}}

生成器

\mathcal{L}_{G}=\mathcal{L}_{G_{a d v}}+\lambda_{C M} \mathcal{L}_{C M}+\lambda_{G_{c l s}} \mathcal{L}_{G_{c l s}}+\lambda_{r e c} \mathcal{L}_{r e c}

部分实验结果