武广作者合肥工业大学硕士生学校图像生成研究方向

arXiv热文解读 | 不懂Photoshop如何P图?交给深度学习吧

人脸编辑可以在大多数图像编辑软件上得到实现,但是这都需要专业知识,例如了解在特定情况下使用哪些特定工具,以便按照想要的方式有效地修改图像,同时操作图像编辑软件也是耗时的。

基于深度学习下图像编辑得到越来越多的重视和应用,在 GAN 的推动下,图像风格转换、图像修复、图像翻译等等在近几年有了长足的发展。这篇文章将介绍基于 GAN 损失的端到端可训练生成网络,在人脸修复上取得了很棒的结果,同时该模型也适用于有趣的人脸编辑。

论文引入

提到图像编辑,一定要说的就是 Photoshop 这款软件,近乎可以处理日常所有的照片,但是 PS 不是这么容易操作的,精通 PS 更是需要专业知识了。如何让小白完成在图像上勾勾画画就能实现图像的编辑?这个任务当然可以交给深度学习来实现了。 

生成对抗网络(GAN)的发展,促进了图像生成下一系列研究的发展。图像编辑下图像修复是一个难点,这对于图像编辑软件来说也是很困难的。近几年在深度学习发展下,图像修复在不断进步,最典型的方法是使用普通(方形)掩模,然后用编码器-解码器恢复掩蔽区域,再使用全局和局部判别器来估计结果的真假。

然而,该系统限于低分辨率图像,并且所生成的图像在掩蔽区域的边缘不能很好的与原图衔接。尽管 Deepfillv2 [1]、GuidedInpating [2]、Ideepcolor [3]、FaceShop [4] 在不断改进实现结果,但是对于深度学习处理图像修复上的难点还是依旧存在,总的来说主要的挑战有两个:1)图像在恢复的部分上具有不和谐的边缘;2)如果图像太多区域被覆盖,修复的图像将会不合理。 

本文要解读的论文为了解决上述限制,提出了 SC-FEGAN,它具有完全卷积网络,可以进行端到端的训练。提出的网络使用 SN-patchGAN [1] 判别器来解决和改善不和谐的边缘。该系统不仅具有一般的 GAN 损失,而且还具有风格损失,即使在大面积缺失的情况下也可以编辑面部图像的各个部分。

这篇论文发布在 arXiv 不到10天,其源码便已标星破千。文章的人脸编辑效果十分逼真,先一睹为快。

总结一下 SC-FEGAN 的贡献: 

1. 使用类似于 U-Net [5] 的网络体系结构,以及 gated convolutional layers [1]。对于训练和测试阶段,这种架构更容易,更快捷,与粗糙网络相比,它产生了优越而细致的结果。 

2. 创建了解码图,颜色图和草图的自由格式域数据,该数据可以处理不完整图像数据输入而不是刻板形式输入。 

3. 应用了 SN-patchGAN 判别器,并对模型进行了额外的风格损失。该模型适应于擦除大部分的情况,并且在管理掩模边缘时表现出稳健性。它还允许生成图像的细节,例如高质量的合成发型和耳环。

训练数据处理

决定模型训练好坏的一个重要因素就是训练数据的处理,SC-FEGAN 采用 CelebA-HQ [6] 数据集,并将图片统一处理为 512 x 512 大小。 

为了突显面部图像中眼睛的复杂性,文章使用基于眼睛位置掩模来训练网络。这主要用在掩码的提取上,当对面部图像进行训练时,随机应用一个以眼睛位置为起点的 free-form mask,以表达眼睛的复杂部分。此外,文章还使用 GFC 随机添加了人脸头发的轮廓。算法如下:

文章的又一个创新是在提取图像的草图和颜色图,使用 HED 边缘检测 [7] 生成与用户输入相对应的草图数据,之后,平滑曲线并擦除了小边缘。创建颜色域数据,首先通过应用大小为 3 的中值滤波,然后应用双边滤波器来创建模糊图像。之后,使用 GFC [8] 对面部进行分割,并将每个分割的部分替换为相应部分的中间颜色。最后还提取噪声表示。最终处理完得到的数据可由下图展示,上面一行作为真实标准,下面一行为处理得到的输入数据。

模型结构

SC-FEGAN 采用的网络设计结构与 U-Net 类似,上采样的思路是 U-Net 的那一套,通过 Concat 连接下采样的特征提取完成上采样,整体框架如下所示:

网络的整体很好理解,图示也很清晰,我们强调一下网络的输入。 

不像传统的图像到图像的模型输入是 512 x 512 x 3 的 RGB 输入,这篇论文的输入是尺寸为 512 × 512 × 9 的张量,这个张量是由 5 张图片图片构成的。

首先是被覆盖残缺的 RGB 图像,也就是我们在图片上勾勾画画的图像,其尺寸为 512 x 512 x 3;其次是提取得到的草图 512 x 512 x 1;图像的颜色域 RGB 图 512 x 512 x 3;掩码图 512 x 512 x 1;最后就是噪声对应的 512 x 512 x 1。按照通道连接的话得到最终的模型输入 512 x 512 x 9。 

卷积层采用的是 gated convolution,使用 3 x 3 内核,下采样采取 2 个步幅内核卷积对输入进行 7 次下采样,上采样通过 U-Net 思路进行解码得到编辑好的图像。解码得到的图像依旧是 5 张图片,包括修复的 RGB 图像、草图、颜色图、掩码图、噪声图。通过判别器和真实的 5 张图片进行 SN-patchGAN 结构设计进行真假判断,优化模型。

在整个网络的卷积层后应用局部信号归一化(LRN),生成器采用 Leaky Relu,判别器通过 SN 限制,并且施加梯度惩罚。SC-FEGAN 的损失函数由 5 部分组成,像素损失感知损失、感知损失、风格损失、风格损失、总方差损失、总方差损失以及 GAN 的对抗损失。

先来看一下 GAN 的对抗损失,文章采用的 WGAN 的损失设计:

其中是生成器输出的的完成图像(包括草图和颜色图以后的),也就是送入判别器判别的输入,最后判别器加上梯度惩罚项。

对于生成器希望判别器判错,故生成器损失最小值为 -1,判别器则希望真实判为真,生成判为假,上述损失还是很好理解的。生成器完整的损失为:

像素损失保证图像编辑生成与真实的一致性:

其中 Na 是特征 a 的数字元素,M 是二元掩模图,用于控制修复图像的像素,达到生成与真实的一致性。公式后一项给予擦除部分损失更多的权重。对于大区域下的擦除图像的修复时,风格损失和感知损失是必要的。感知损失在 GAN 中的应用已经很多了,就是对中间层进行特征差异损失,这里不做赘述。

风格损失使用 Gram 矩阵比较两个图像的内容,风格损失表示为:

其中,,Θ 为网络的中间层,Gq(x) 是用于在中间的每个特征图上执行自相关的 Gram 矩阵,Gram 矩阵的形状是 Cq×Cq。总方差损失,反应的是相邻像素间是相似的,记为。其中:

对于列 row 也是一样,自此整体的损失函数构建完成,在实际实验中参数设置为 σ=0.05,β=0.001,γ=120,v=0.1,ϵ=0.001,θ=10。

实验

实验首先对比了使用 U-Net 框架设计的优势,对比的框架是 Coarse-Refined。论文测试了 Coarse-Refined 结构网络,并注意在一些需要精确输出的却是模糊的。

FaceShop 已经显示出难以修改像整个头发区域那样的巨大擦除图像。由于感知和风格损失的加入,SC-FEGAN 在这方面表现更好。下图显示了有和没有 VGG 损失(感知和风格损失)的结果。

实验还与最近的研究 Deepfillv1 进行了比较,下图显示模型在使用自由形状的掩模在结构和形状的质量方面产生更好的结果。意味着没有附加信息,如草图和颜色,面部元素的形状和位置具有一定的依赖值。因此,只需提供附加信息即可在所需方向上恢复图像。

此外,即使输入图像被完全擦除,我们的 SC-FEGAN 也可以生成仅具有草图和颜色自由形式输入的人脸图像(感兴趣的可以参看论文中更多结果)。

下图显示了草图和颜色输入的各种结果,它表明模型允许用户直观地编辑脸部图像功能,如发型,脸型,眼睛,嘴巴等。即使整个头发区域被删除,它也能够产生适当的结果。

文章还做了给人物加上耳环的有趣实验,这种人脸编辑确实蛮有意思:

实验

SC-FEGAN 提出了一种新颖的图像编辑系统,用于自由形式的蒙版,草图,颜色输入,它基于具有新颖 GAN 损失的端到端可训练生成网络。与其他研究相比,网络架构和损失功能显着改善了修复效果。

论文基于 celebA-HQ 数据集进行了高分辨率图像的训练,并在许多情况下显示了各种成功和逼真的编辑结果。实验证明了系统能够一次性修改和恢复大区域,并且只需要用户细致的勾画就可以产生高质量和逼真的结果。

模型的框架采用 U-Net 思想,在 Decoder 端结合 Encoder 端特征实现上采样过程下精确图像的生成。引入感知损失和风格损失更是帮助模型实现了大区域擦除的修复。

在判别器采用 SN-patchGAN 思想,使得恢复的图像在边缘上更加和谐,生成器和判别器都结合了图像的草图、颜色图和掩模图进行判断,使得修复的图像更加逼真,同时也是论文的一个创新。实验上的炫彩也是使得源码得到了广泛的关注。

参考文献

[1] J. Yu, Z. Lin, J. Yang, X. Shen, X. Lu, and T. S. Huang.Free-form image inpainting with gated convolution. arXiv preprint arXiv:1806.03589, 2018. 2, 3, 4, 6, 7 

[2] Y. Zhao, B. Price, S. Cohen, and D. Gurari. Guided image inpainting: Replacing an image region by pulling content from another image. arXiv preprint arXiv:1803.08435, 2018. 2 

[3] R. Zhang, J.-Y. Zhu, P. Isola, X. Geng, A. S. Lin, T. Yu, and A. A. Efros. Real-time user-guided image colorization with learned deep priors. arXiv preprint arXiv:1705.02999, 2017.2, 3 

[4] T. Portenier, Q. Hu, A. Szabo, S. Bigdeli, P. Favaro, and M. Zwicker. Faceshop: Deep sketch-based face image editing. arXiv preprint arXiv:1804.08972, 2018. 2, 3, 4, 6, 7 

[5] O. Ronneberger, P. Fischer, and T. Brox. U-net: Convolutional networks for biomedical image segmentation. In International Conference on Medical image computing andcomputer-assisted intervention, pages 234–241. Springer,2015. 2, 3, 4 

[6] T. Karras, T. Aila, S. Laine, and J. Lehtinen. Progressive growing of gans for improved quality, stability, and variation.arXiv preprint arXiv:1710.10196, 2017. 3, 4 

[7] S. ”Xie and Z. Tu. Holistically-nested edge detection. In Proceedings of IEEE International Conference on Computer Vision, 2015. 3 

[8] Y. Li, S. Liu, J. Yang, and M.-H. Yang. Generative face completion. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), volume 1, page 3, 2017. 1,3, 4

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论人脸生成基于对抗生成网络的图像翻译GAN图像处理深度学习论文
11
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

全卷积网络技术

全卷积网络最开始在论文 Fully Convolutional Networks for Semantic Segmentation(2015)中提出,它将传统卷积神经网络最后几个全连接层替换为卷积层。引入全卷积的意义在于它能实现密集型的预测,即在二维卷积下对图像实现像素级的分类,在一维卷积下对序列实现元素级的预测。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

边缘检测技术

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征检测中的一个研究领域。

图像生成技术

图像生成(合成)是从现有数据集生成新图像的任务。

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

中值滤波技术

在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。

WGAN技术

就其本质而言,任何生成模型的目标都是让模型(习得地)的分布与真实数据之间的差异达到最小。然而,传统 GAN 中的判别器 D 并不会当模型与真实的分布重叠度不够时去提供足够的信息来估计这个差异度——这导致生成器得不到一个强有力的反馈信息(特别是在训练之初),此外生成器的稳定性也普遍不足。 Wasserstein GAN 在原来的基础之上添加了一些新的方法,让判别器 D 去拟合模型与真实分布之间的 Wasserstein 距离。Wassersterin 距离会大致估计出「调整一个分布去匹配另一个分布还需要多少工作」。此外,其定义的方式十分值得注意,它甚至可以适用于非重叠的分布。

图像修复技术

图呢