【论文阅读】APDrawingGAN:利用分层GAN从面部照片生成艺术人像

在这里插入图片描述
(a)艺术家使用稀疏的线条和很少的阴影区域绘制肖像画,以捕捉给定面部照片的独特外观;
(b)我们的APDrawingGAN学习了这种艺术绘画风格,并自动将面部照片转换为高质量的艺术肖像绘画;
(c)使用相同的输入人脸照片,六种最先进的样式转换方法无法生成所需的艺术图形,或多或少效果不是很好,细节方面不太好。

Abstract

首先,现有的的GAN技术无法生成产生高质量的艺术肖像画,因为肖像画的某些细节,比如线条等难以捕捉。艺术家的绘画可能没有与图像特征完美对齐的线条,因此开发了一种新的损失来测量基于距离变换的生成绘画和艺术家绘画之间的相似性,从而改善了人像绘制中的笔画。文章提出了APDrawingGAN,这是一种基于GAN的新型架构,它基于分层生成器和鉴别器,将全局网络(用于整个图像)和局部网络(用于单个面部区域)相结合。这允许针对不同的面部特征学习专用绘图策略。总之,提出了一个层次化的GAN模型,可以有效地将人脸照片生成高质量、富有表现力的艺术肖像线条画。不仅如此,我们的方法对黑白线条分明的复杂发型绘制有更好的效果。为了学习不同面部区域的不同绘制风格,我们的模型将GAN的渲染输出分为不同层次,每个层次被独立的损失项控制。

Introduction

训练一个计算机程序来模拟艺术家创作高质量的艺术画是目前一个非常迫切的需求。随着深度学习的发展,卷积神经网络常用来进行神经风格迁移。后来,出现了许多基于GAN的风格迁移方法。比如使用成对训练集的Pix2Pix,和使用不成对训练集的CycleGAN都取得了不错的效果。但是这些方法都存在一个问题那就是生成的图像质量比较低,笔画比较杂乱。

艺术肖像画(APDrawings)的风格与先前工作中研究的肖像画风格有很大不同,主要是由于以下五个方面。

  • 首先,APDrawing样式是高度抽象的,包含少量的稀疏但连续的图形元素;
  • 其次,与一般样式转换相比,APDrawing样式转换具有更强的语义约束。特别是面部特征不应丢失或移位;
  • 第三,APDrawings中的渲染在不同的面部部位(例如,眼睛与头发)之间不一致;
  • 第四,艺术家未精确定位APDrawings中的元素(例如面部轮廓),这对基于像素对应的方法提出了挑战。意思就是训练集中艺术家画出来的肖像画与原图像不是完全对应的;
  • 最后,艺术家在APDrawings中放置与人的视图或照片中的低级特征没有直接关系的线条。例如,即使图像中没有不连续点,头发上的线条也可以指示出流向,或者线条可以指示出面部特征。因为这些元素很难通过学习得到。

为了解决上述挑战,我们提出了APDrawingGAN,这是一种新颖的Hierarchical GAN架构,专门用于面部结构和APDrawing样式,用于将面部照片转换为高质量的APDrawings(图1b)。为了有效地学习不同面部区域的不同绘画风格,我们的GAN体系结构涉及多个专用于面部特征区域的局部网络,以及一个用于捕获整体特征的全局网络。为了进一步应对基于线条笔画的样式和艺术家图纸中位置不精确的元素,我们提出了一种新颖的距离变换(DT)损失,以学习APDrawings中的笔画线。

这篇文章工作的主要贡献有三方面:

  • 我们提出了一种用于从人脸照片合成艺术肖像画的Hierarchical GAN体系结构,可以生成高质量且富有表现力的艺术肖像画。 尤其是,我们的方法可以学习具有精致白线的复杂发型;
  • 为了最好地模仿艺术家,我们的模型将GAN的渲染输出分为多个图层,每个图层均由单独的损失函数控制。 我们还提出了针对APDrawing的损失函数,包括新颖的DT损失(以在APDrawings中促进基于线描的样式)和局部损失(用于局部网络以保留面部特征)。
  • 我们使用从十个面部数据集中收集的 6655 张正面面部照片对模型进行预训练,并构建适合训练和测试的APDrawing数据集(包含140张高分辨率面部照片和专业画家的相应肖像画)。

Related Work

  • 利用深度网络的风格迁移:MRF(马尔可夫随机场),Deep Image Analogy(精致的像素级别的风格转换)等。上述方法对APDrawing的风格转移效果不太好,并且大多数现有方法要求样式图像(style image)靠近内容图像(content image)。如下图所示:
    在这里插入图片描述

  • 肖像的非真实感渲染
    所有这些方法都使用类似的纹理合成方法,使它们不适合APDrawing样式。

  • 基于GAN的图像合成
    Pix2Pix和CycleGAN都不能很好地用于APDrawing样式,通常会产生模糊或混乱的结果,如最开始的各种方法比较的图片所示。

APDrawingGAN

概述

我们对面部照片转换为APDrawings的过程进行建模,该函数将面部照片域 P P P映射到基于黑白线条的APDrawing域 A A A。由于我们的模型基于GAN,因此对判别器D进行了训练,以最大程度地为正确的APDrawings a i ∈ A ai∈A aiA和合成图形 G ( p i ) G(pi) G(pi) p i ∈ P pi∈P piP分配正确的标签(Real or Fake),并且同时对 G G G进行了训练以最大程度地降低这种可能性 。

我们最后提出了一个针对艺术肖像画的损失函数,它包含四个损失项:对抗损失、像素级损失、一种新的距离变换(DT)损失(用于学习艺术肖像画中的线条笔画)和一个局部变换损失(用于引导局部网络保持面部特征)。
总的损失函数:
在这里插入图片描述

网络结构

在这里插入图片描述
与标准GAN架构不同,我们在此提出了针对生成器和判别器的分层结构,每个结构都包含一个全局网络和六个局部网络。六个局部网络对应于左眼,右眼,鼻子,嘴巴,头发和背景的局部面部区域。 此外,生成器还有一个附加的融合网络,可以根据全局和局部网络的输出来合成艺术作品。 这种分层结构背后的原因是,在肖像绘画中,艺术家对面部的不同部分采用了不同的绘画技术。例如,通常会为眼睛绘制精细的细节,而为头发绘制的曲线通常会跟随头发的流动,但并不精确对应于图像。 由于单个CNN在图像的所有位置共享filter,并且很难对多个绘图特征进行编码/解码,因此具有多个CNN的分层全局和局部网络的设计可以帮助模型更好地学习不同位置的面部特征。

生成器Generator

包含一个global net和六个local nets。其中,六个local nets对应于左眼,右眼,鼻子,嘴巴,头发和背景的局部面部区域。最后将Iglobal和Ilocal通过Fusion net融合成output。我们使用U-Net结构设计Generator。

使用这种等级结构的原因是在肖像绘画中艺术家对脸部的不同部分采用不同的绘画技术。例如,通常为眼睛绘制精细细节,并且为头发绘制的曲线通常遵循头发的流动。单个CNN在所有位置上共享过滤器。图像并且很难编码/解码多个绘图功能,具有多个CNN的分层全局和局部网络的设计可以帮助模型更好地学习不同位置的面部特征。

具有跳过连接的U-Net可以合并多尺度功能,并提供足够的(但不是过度的)灵活性来学习艺术家在APDrawings中针对不同面部区域的绘画技术。

融合过程中,通过在重叠区域使用最小池化。这种最小化池可以有效地保留来自各个local net的响应。

Gglobal是一个U-Net,具有八个下采样层和八个上采样层,用于处理人脸的全局结构。Gfusion由一个平坦的卷积块,两个残差块和一个最终的卷积层组成。

在许多以前的GAN模型中,通常会在生成网络中输入或添加一些噪声。 我们没有在G中显式添加噪声,而是在U-Net块中使用dropout作为噪声。

判别器Discriminator

判别器D用来区分输入的绘图是否是真实画家的肖像画。Dglobal会检查整个图像以判断整体APDrawing功能,而Dl∗中的局部判别器会检查不同的局部区域以评估细节的质量。
                                                          D = D g l o b a l , D l ∗ D = {Dglobal,Dl∗} D=Dglobal,Dl
                                D l ∗ = D l e y e l , D l e y e r , D l n o s e , D l m o u t h , D l h a i r , D l b g Dl∗ = {Dl eye l,Dl eye r,Dl nose,Dl mouth,Dl hair,Dl bg} Dl=Dleyel,Dleyer,Dlnose,Dlmouth,Dlhair,Dlbg

利用Pix2Pix中的the Markovian discriminator。Pix2Pix的the Markovian discriminator输入图像中的70×70个patch并检查每个patch的样式。而APDrawingGAN的the Markovian discriminator输入的是the whole drawings or different local regions(鼻子,眼睛等)的每个patch。

损失函数

  • 对抗损失 Adversarial loss:Ladv用来表示判别器D正确区分 real 和 fake 的能力。
    在这里插入图片描述

  • 像素级 Pixel-wise loss:LL1让生成的图片更加接近输入的真实的图片
    在这里插入图片描述
    实验表明 L 1 l o s s L1loss L1loss L 2 l o s s L2loss L2loss生成的图片更加清晰。

  • Line-promoting distance transform loss:LDT用于更好地学习APDrawings中的笔画线条。

针对艺术肖像线条画中的线条笔画风格,提出了一个全新的距离变换(DT)损失。前面提到,在艺术家的肖像画中,线条和原图有时不是精确对应的,会有微小的错位,主要的原因有两个:
(1)艺术家裸眼观察,面部特征的轮廓有时无法被完全精准地定位
(2)艺术家添加的线条有时是概念性的,不与原图完全对应(如头发区域中的白线)。
因此仅使用L1损失是不足以应对这种情况的——L1损失会惩罚即使是很微小的错位,但是对于较大的错位并不会更敏感。于是我们提出一种新的损失来容忍这种细微的错位,而惩罚过大的错位。我们提出的这个DT损失是基于距离的,它计算的是艺术家肖像画(Ground truth)中每个线条上的像素到生成肖像画中相同类型(黑或白)的最近像素的距离之和,和生成肖像画到艺术家肖像画的距离之和的总和。DT损失对于微小的错位的惩罚是非常小的,但会真正惩罚那些过大的错位。我们使用了距离变换和倒角匹配(chamfer matching)来计算这个损失,公式如下:
在这里插入图片描述
在这里插入图片描述
其中 x 1 x1 x1 x 2 x2 x2表示两幅肖像画,lDT和I*DT表示距离变换,θb和θw分别表示黑白线条检测器(训练两个CNNs来检测),Pi和ai分别表示人脸照片和对应的艺术家肖像画。

  • Local transfer loss:Llocal让生成的六个部位图片更加接近输入的真实的六个部位的图片
    在这里插入图片描述

训练网络

通过预训练进行初始化

由于训练集中的数据是有限的,仅有140对图像,因此作者使用6655张人脸照片和非真实感渲染算法生成的结果进行了预训练(10个epochs)。之后将一个包含140对高质量正面人脸照片和对应艺术肖像画的APDrawing数据集,用于正式的训练和测试。由于NPR生成的绘图(与艺术家的绘图不同)与照片准确对齐,因此不使用LDT损失。
在这里插入图片描述

正式训练

我们将APDrawing数据集划分为70个图像对的训练集和70个图像对的测试集。 然后我们将小角度旋转(-10°~10°)和缩放(1〜1.1)的数据增强应用于训练集。

效果

在这里插入图片描述
在这里插入图片描述

总结

在本文中,作者提出了APDrawingGAN,一种用于将面部照片转换为APDrawing的分层GAN模型,致力于人脸转化为APDrawing风格。尽管我们的方法可以学习带有细腻白线的复杂发型,但是在头发和嘴唇区域,结果仍然不如画家的画作干净。 我们计划在以后的工作中解决这些问题。

论文地址

APDrawingGAN: Generating Artistic Portrait Drawings
from Face Photos with Hierarchical GANs

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值