标题:Learning to Cartoonize Using White-box Cartoon Representations
本文的目的是将任意图片迁移到卡通风格。作者通过专业知识将卡通风格解耦为不同的指标,并分别约束这几个指标,从而使得网络生成的卡通效果可控,因此称之为“白盒”(对比其他的风格迁移方法大都是端到端的黑盒结构,内部基本不可控)。
可以很明显的看出来模型就分为三个部分,整洁度(surface),结构(structure)和细节(texture)。
动漫区别于真实照片最大的部分就是细节过分平滑。比如在动画片中人的面部大都就是简简单单的一个肉色,没有任何变化,而电影中人脸上通常能看到明显的纹理。因此作者这里将这种“平滑”单独拎出来作为一个指标,我这里称之为画面的整洁度。
为了保证画面的整洁,作者使用了何凯明的Guided Image Filter(?)对图片进行了去噪。为了约束画面的整洁度,作者使用了一个判别器,用于区分卡通图的去噪结果和原图的去噪结果,目的自然就是让原图趋近于卡通图的整洁度。
结构即图像大致的颜色分布。这一部分作者使用了Selective Search方法来无监督的将图像分割为相连的语意块,然后按照特定公式对每个区域的中位数和平均值进行加权求和,进而得到每个语意块的颜色。这样就得到了最终的结构图。
为了约束这一点,作者将卡通图得到的结构图与输入图得到的结构图都丢到VGG里,然后计算feature之间的l2距离作为结构损失。
作者认为细节就是指与颜色和亮度无关的信息。因此作者提出了随机颜色偏移算法(random color shift algorithm),简单来说就是随机的加强和减弱每个通道和黑白图的强度,进而通过loss移除颜色对图像的影响。而这里loss的构建也使用了一个判别器,用于约束卡通图细节与真实图细节的隐空间分布。
除了以上三个模块,作者为了进一步提升效果还使用了三个不同的辅助性loss:
total variantion loss:用于平滑图片以及去除高频噪声
content loss:用于保证输入与输出的语义一致性
interp loss:用于对风格进行不需要训练的插值。