Quality Metric Guided Portrait Line Drawing Generation from Unpaired Training Data(引入画面评价体系的-基于非成对训练数据的-人像线稿生成模型)
0.摘要
现有的线稿生成模型往往基于 成对的(paired) 训练数据,成本较高。我们的模型基于 **非成对 **数据,且有以下两个特征:
- 能用同 一个网络 生成 不同风格 的线稿
- 能生成训练数据中没有出现过的 新风格
我们的工作是:
- 提出一种 画面质量评价指标(quality metric) (从人类感知学习而来)
- 引入 损失函数(quality loss) 来引导网络生成更好看的线稿
现有的 CycleGAN 常在全图嵌入不可见的 重建信息(reconstruction information) ,使关键面部信息丢失。我们提出 非对称循环映射策略(asymmetric cycle mapping) ,使重建信息可见且只放置在面部特定区域。此外,我们引入 localized discriminators 。这些帮助我们保存重要的面部特征。
1 前言
本文解决以下问题:人工智能能否学习人像线稿的艺术风格,并生成数据集中没有的新风格?这个问题之前鲜有人研究,可能是有以下的技术难点:
-
人像线稿图形元素稀疏、以线条为基础、语义表达要求高。因此目前已有的方法难以胜任,它们多面向 杂乱型风格(cluttered style) ,笔触碎片化,不像线稿的精细。
-
成对训练数据难以获取。
目前主流的非配对转换常使用 循环一致性结构(cycle structure) 。但由于照片与线稿在信息量上的不对等,往往在线稿图中嵌入不可见的重构信息,最终导致面部特征缺失。我们在前期论文中提出了 非对称循环结构(asymmetrics cycle structure) ,防止线稿中嵌入不可见信息。
具体来说,本文贡献为:
- 提出一种 质量评价指标,由一个回归神经网络实现。输入为一个线稿图像,输出为美观度评分。
- 基于该指标,涉及与人类审美一致的 质量损失函数。
- 通过在风格空间搜索 风格编码(style code)的方法,生成数据中没有的新风格。
- 为分析和解释模型的行为,对生成器进行 dissection。
2.1 相关工作
Gatys等人提出预训练CNN实现图像风格迁移,分两步:
- 从图像提取内容/风格特征;
- 通过匹配 风格特征,并保持 内容特征 来优化内容图像。
这一研究用 Gram matrix 衡量风格相似性。随后的研究包括用 马尔可夫随机场(MRF)正则化器 替代其进行风格建模、用 前馈神经网络(Feed-forward) 加快优化过程等。但这些方法都只能输出单一风格。
此外的研究还有: 自适应实例归一化(AdaIN) 做法是对齐内容特征和风格特征的均值方差。不足为仅从单幅图像提取风格。
2.2 基于GAN的图像转换
由于配对数据难以获取,近年研究多聚焦于非配对数据。CycleGAN等研究采用 循环一致性约束 ,要求图像双向转换后还能复原原图。
但这不适用于本任务——人脸转线稿时,由于内容不平衡,循环约束会导致面部特征丢失。本文的解决方法是:放宽正向循环约束,再新增约束。
非配对数据没有模态标签。现有的MUNIT模型无需标签即可实现转换,但生成的肖像线条模糊。本文的解决方法是:在生成器注入风格特征,并采用软分类损失识别模态,从而实现多风格输出。
3 质量评价指标
根据人类的喜好,训练一个画面质量评价体系。具体而言,研究分以下步骤进行:
- 将一些已有模型(如 DualGAN, CycleGAN 等等)生成的线稿和艺术家的作品混合。
- 每次测试给人类三幅线稿,让他对这三幅线稿的美观程度排序。计数时这三幅线稿分别获得 +2, 0, -2 分。大量轮次的实验后,将各线稿最终得分标准化至 \(\left[0.1,1\right]\) 的区间内。
- 用以上数据训练一个输入线稿,输出得分的回归网络。
4.1 - 4.2 网络结构
设 \(\mathcal{P}\) 是照片域,\(\mathcal{D}\) 是线稿域。我们学习一个函数 \(\Phi:\mathcal P\to \mathcal D\) 。
借助 3 中的评价模型,我们提出一种具有非对称循环结构的GAN模型。
总体上,模型包括以下部分:
- 两个生成器:\(G\) 将照片转成线稿。\(F\) 将线稿转成照片;
- 两个判别器:\(D_\mathcal D\) / \(D_\mathcal P\) 分别判断线稿/照片是生成的还是真实的。
由于严格循环一致性约束会导致网络嵌入重建信息,影响优化目标,最终导致面部特征缺失,我们仅保留照片 \(\to\) 线稿的一致性要求,称为非对称循环结构。这样做释放了生成器的自由度。
各部分具体的工作原理如下:
G:照片\(\to\) 线稿 (带残差模块的编码-解码网络)
输入:照片 \(p\) +风格特征向量 \(s\); 输出:指定风格的 \(G(p, s)\) 。
\(F\) 与 \(G\) 结构类似,只是将线稿复原为照片。
\(D_\mathcal D\) :线稿判别器
任务是:区分真实和生成的线稿 并对线稿风格进行分类。
除全图判别器,还包含三个局部判别器。聚焦于鼻子、眼睛、嘴唇的图像质量。都采取类PatchGAN的结构。
\(D_\mathcal P\):照片判别器
任务是:判断照片是生成的还是真实的。也采取PatchGAN结构。
4.3 损失函数
该研究设计了六种损失函数。具体解释如下:
\(L_{adv}\) :反映 \(D_\mathcal D\) 和 \(D_\mathcal P\) 分辨生成与真实的能力;
\(L_{relaxed\sim cyc}\) :我们不要求 \(F(G(p,s))\) 与 \(p\) 全面相似,而是只要求边信息相似。用 HED 提取边,再用 LPIPS 衡量边之间的相似程度。以此计算松弛的一致性损失。
\(L_{strict-cyc}\) :我们要求 \(G(F(d), s(d))\) 与 \(d\) 全面相似。直接相减计算严格的一致性损失。
\(L_{trunc}\):防止线稿将信息隐藏。(截断损失)
\(L_{style}\):根据风格识别的准确性,计算风格损失。
\(L_{quality}\):帮助生成更好看的线稿。基于上文提及的评价模型,计算质量损失。
5 新风格生成
本实验中三种目标风格向量为:\([1,0,0]\),\([0,1,0]\),\([0,0,1]\)。插值后生成的线稿呈现混合新风格。
如:插值结果为 \([0,0.5,0.5]\),融合风格二、三,特征为中等阴影+流畅线条。
我们进一步探讨给定一个目标线稿,怎样寻找一个风格特征向量 \(s\) ,使得 \(G(p,s)\) 与目标线稿在风格上最接近。经过一系列尝试,选择用 直方图损失(Histogram loss) 衡量风格间的距离,通过 Adam 算法优化风格匹配过程。