论文名称:《Line Art Colorization Using Text Tag with SECat and Changing Loss》

发表期刊:2019年CVPR

Tag2Pix模型

模型结构

CIT 特征提取

CITs倾向于表示形状信息,可以更好地帮助颜色被应用到正确的位置。CIT特征提取器基于SE-ResNeXt-50网络,从给定的线稿图中抽取出CITs特征。

输入:Synthetic Sketch(线稿草图 512 * 512 * 1)

模型:Pre-trained Line art Semantic Network (SE-ResNeXt-50)

输出:Color Invariant Tag Tensor(32 * 32 * 256)

CVT 编码器

CVT编码器的作用是将用户指定的颜色标签嵌入隐空间中。对输入进行处理,得到one-hot向量,分别feed进FC层和卷积层,两个分支得到的结果都是为空间特征(spatial features),其中一个分支的结果将被合并入草图encoder后的特征图中,另一个分支的结果则被用于协助SECat做重新校准。

输入:CVTs(颜色描述)

模型:FC & Conv

输出:Spatial features

照片生成器

图像生成器部分基于U-Net网络,用于生成高分辨率图像。中间结果为(32 * 32 * 576)的特征表示,由三部分合并而成。解码器部分的输入包含了编码器的输出,同时每个解码块引入了pixel shuffle operation,用于减少棋盘伪影的上采样方法。

pixel shuffle operation:《Real-time single image and video super-resolution》 CVPR 2016

图像生成器的结构较深,可能导致梯度消失问题。为了便于训练网络,Tag2Pix采用了指南解码器,为中间特征图提供了新的损失路径,提高了质量并有助于缓解梯度消失问题。

指南解码器:《Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN》

输入:训练集的线稿图

模型:U-Net变形

输出:上色图 & 指南解码器

鉴别器

GAN的鉴别器网络结构则受到了ACGAN网络的启发,用于接收彩色图像并鉴别该输入是否真实,同时还能预测该图像中使用了哪些CVT颜色信息和CIT形状信息。

SECat

通常情况下,用户给出的配色方案被编码为高级特征,作为解码块的输入,提供给生成器网络。这种方法在对头发这样大片的区域进行着色时效果较好,但对眼睛这样的小区域着色时效果却不甚理想。

为了解决这个问题,Tag2Pix提出了一种名为SECat(Squeeze and Excitation with Concatenation)的新型网络结构。SECat的灵感来源于styleGAN,它使用仿射变换调整中间特征图,以便在权重重新平衡方面将样式信息注入到与SENet类似结构的生成器中。

结构参考SENet

分步训练

Tag2Pix还提出了一种新颖的两步训练方法

由于缺少空间信息和RGB值提示,本地化色彩的语义分割尤其困难,但是如果整个训练过程仅包含一个阶段时,经常出现各个区域的颜色混合在一起的状况:

所以,作者提出的分布训练方法,令生成器和鉴别器首先学习物体和形状的概念,然后再基于学习到的概念学习着色,也就是学习在哪个位置,以怎样的方式放置某种颜色。

Segmentation

这个训练阶段引导网络学习关于线稿图的语义信息,产生更加精确和清晰的边界,有足够的亮度和阴影。

Colorization

鉴别器尝试预测出CVT和CIT出现的可能性。

实现效果

与其他根据文字描述来进行自动上色的方法相比,Tag2Pix能根据更简单的线稿、更简练的颜色标签,实现更准确的上色效果,顶行是其他方法的上色效果,底行是Tag2Pix的上色效果。

多种角度、多种姿态、多种配色方案,Tag2Pix线稿上色都能搞定:

与不同模型处理结果做对比: