基于条件生成对抗网络的图像着色研究
2021-07-14罗敦浪袁琳君江佳俊
罗敦浪,蒋 旻,袁琳君,江佳俊,郭 嘉
武汉科技大学 计算机科学与技术学院,武汉430065
图像是人们日常信息传递过程中很重要的一部分,承载着巨大的信息量,但同一张图像的灰度图和彩色图所包含的信息量是天差地别的,灰度图像每个像素只有一个采样颜色,只包含亮度表示,而彩色图像包含了亮度、色度和饱和度等表达。直观上说,人们可以通过观察图像中树叶的颜色是绿色还是黄色推断出场景所处的季节,根据不同花朵的颜色判断出所属的品种等等。由于早期的拍摄技术有限,存在着大量黑白照片和影像,尝试将这些老旧照片着色还原有助于了解那个年代的事物,满足人们的视觉需求,非常具有研究的必要。另一方面,随着20 世纪80 年代初对黑白照片彩色化的不断研究以及近些年来卷积神经网络在图像处理领域的不断发展,图像着色研究已经不仅限于将黑白照片彩色化。通过将深度学习强大的特征提取和建模能力应用到图像着色研究上,图像着色技术得到了进一步提高,在越来越多的领域中发挥着巨大的作用。
在图像着色技术发展的早期,需要人为提供一些图像的色彩信息来完成图像着色,这时主要有基于最短距离和色度混合的彩色化算法[1]和基于优化扩展的彩色化算法[2]这两种着色方法。Levin 等[3]提出了将灰度图相近的像素认定为颜色也相近的假设,根据人为输入颜色为条件,在颜色空间中找到距离最近的颜色对应,将图像着色问题转化成了图像区域优化问题。这种算法本身只是简单考虑了距离的因素,而没有考虑到颜色聚类的因素,所以在面对细节相对复杂的图像时,表现的并不是很好,只能运用在尺寸较小、较为简单的图像上。Qu等[4]和Luan等[5]在图像的着色过程中,不仅仅考虑了灰度图像素的相似性,还提出了图像的纹理特征的相似性约束,这种通过加入图像分割为代价的方法,很大程度上减少了人工标注的数量。
不同于上面提到半自动化着色方法,Welsh 等[6]提出了基于颜色转移的图像着色算法,这种算法最大的特点在于自动化,可以做到不需要任何人为的输入,只需要一张与原始图像内容相似的彩色图像,通过特定的颜色匹配算法,将已知的彩色图像中的颜色信息对应到原始图像中,从而将彩色图中的颜色信息转移到灰度图中,完成彩色化的目的。这种算法也存在着缺点,那就是不一定存在与目标图像完全对应的彩色图像,总会存在一些匹配不上的点,一般这些点就会效果比较差。Ironi等[7]通过预先分割参考图像和灰度图像,再分别进行细节特征的匹配,从而使得目标图像在参考样本中找到对应的着色方案,这种做法在图像着色的准确性方面得到了一定的进展。Liu 等[8]提出了采用在线联网检索来匹配与需要着色图像相似的图像,通过匹配结果再参照着色,这种方法一定程度上增了匹配的范围和准确度。
近来,随着人工智能的热潮,人们都看到了深度学习在图像分类和特征提取方面的不俗表现,也开始有很多人将深度学习技术应用到了图像着色领域中。Cheng等[9]通过联合双边滤波的后处理技术和自适应图像聚类技术对数据进行处理建模,以此来整合图像全局信息,通过优化最小化目标函数来进一步提高着色质量,其算法总结下来就是一个简单的优化分类问题,对比较为复杂的数据集,其表现比较受限。Lizuka等[10]将图像着色问题转换为了图像分类问题,一方面将目标图像做一个全局的分类,另一方面提取局部特征信息,最后将两者结合,实现对特征颜色分布预测,这种方法一定程度上解决了着色结果场景性错误的问题。Zhang 等[11]在Lizuka等[10]的基础上通过VGG卷积神经网络来提取目标图像的特征,并通过训练预测这些特征的颜色分布,最后通过信息融合完成着色。Yoo等[12]提出常见的网络模型应用于着色时,深色着色模型倾向于忽略训练集中存在的多种颜色,而是选择只学习几种主要的颜色,最后通过在原本网络外部添加了一个神经记忆网络[13]增强的着色网络来储存所有可能的颜色分布信息,减轻了这些问题。Cao 等[14]采用生成对抗网络来直接进行图像着色,并尝试通过噪声引入优化,将随机噪声变量多次全连到全卷积层的各个层,以此来鼓励生成器产生随机多样的输出,这种做法一定程度上可以实现生成图像的多样化,但同时随着各层强效噪声的加入,必然对最后图像的生成质量产生影响。
1 基于条件生成对抗网络的图像着色
传统的图像着色方法是在给定单通道灰度输入图像的情况下生成彩色图像。但是单个灰度图像可能对应许多合理的彩色图像,因此,传统模型通常依赖于重要的用户输入相关信息来指定确定的着色方案。针对大部分传统着色算法存在着色模式单一、在处理部分数据时着色效果不佳或者算法依赖人工输入信息等缺点,本章提出了一种基于条件生成对抗网络的图像着色方法,深层神经网络能够捕捉和使用语义信息(即图像的实际内容),相比传统的图像着色算法需要人工干预,基于深度学习的图像着色算法,不需要任何人为干预,并且通过预测颜色分类和引入色彩对比度损失,进一步提高了着色效果。
1.1 总体网络模型结构
对于一般的生成对抗网络应用在图像着色方面而言,主要有以下几个问题:首先于一般图像生成任务来说,图像生成质量的标准包括颜色、纹理、结构相似性等各个方面,它们在图像的评估中都有一定的比重,而作为图像着色场景,颜色信息将作为网络最注重的信息,而图像的结构和纹理等信息将会从作为条件输入的灰度图中得到,所以在算法中应该增加对图像颜色信息的评估。其次由于生成对抗网络生成器总是倾向于生成欺骗辨别器的图像,所以如果生成器已知生成红色的花可以得到辨别器的认可,那么它就会倾向于把所有的花都生成红色,忽略那些橙色或者紫色的花。因此为了解决上述的问题,本文提出了在原始条件生成对抗网络的模型上一个再添加一个颜色预测模型,用来更好地建模色彩分布。这个颜色预测得到的不是一个唯一定量值,而是每个像素在颜色分类中的可能的概率分布,最后可以得到多个真实颜色的最近邻,从而得到灰度图对应的多个着色可能。网络模型的结构如图1所示。
图1 网络结构图
网络模型主要分为三个部分,首先是生成对抗网络中的生成器模型,本文所采用的是U-Net 网络结构,灰度图的L通道向量会被作为条件向量输入,经过U-Net网络卷积、池化、特征融合、反卷积等操作会得到Lab三通道的目标张量,最后经过转换得到生成图像。同时在本文的网络模型中添加了一个对图像颜色分布概率预测的卷积神经网络,这个网络主要是通过特定数据集的大量训练,学习灰度到彩色的一个映射,对基于这个数据集中的图片进行颜色概率分布的统计,根据统计的规律,可以得到图像较为合理的颜色分布。最后部分是辨别器网络,用来判断和反馈生成图像的质量,同时预测模型得到的颜色分布也会作为辨别器评估的一部分,对符合预测的颜色分布的生成图像给予鼓励,对那些不合理的图像给予惩罚,即生成器生成的图像不仅要效果好,贴近原图,更要合理,符合常规的颜色分布。
1.2 颜色预测网络模型
本文的颜色预测模型根据的是文献[11]提出颜色分布预测的模型改进的,其模型结构如图2所示。
图2 颜色预测网络模型
可以看出,作为网络的输入的是只有L通道信息的灰度图,本文设定初始尺寸为256×256,首先经过conv1层进行一次卷积操作,其卷积核步长为2,大小为3×3,然后得到大小为128×128,通道为64 的特征输出,这个特征输出作为conv2层的输入,同样由步长为1,大小为3×3的卷积核进行卷积操作,生成大小为64×64、通道数为128的特征输出。以此类推,通过不断卷积操作,通过conv8,将得到通道数为256,大小为64 的特征输出,最后通过全连接层将前面所提取的特征做出加权处理,并在最终得到a、b 两个通道组成的输出,尺寸为224×224的颜色分布图。
算法将网络层的a、b 通道的输出空间以10 为步长量化为Q类,本文Q取值为313,每一类都代表了一种唯一的颜色输出。本文算法通过将M×N的原始灰度图像(图3(a))通过颜色预测模型网络把图像转换成M×N×Q的向量(图3(b))。对于图像中任意位置的像素,可以得到一个基于Q分类的颜色分布(如图3(c)所示),分辨率为64×64 的图像被转换为64×64×313 的大小,在每个Q分类的map上,图像被表示为313个位面,每个位面中任意一个元素存储对应像素点的Q分类取值,0或者1。
图3 基于Q分布的图像颜色预测
1.3 损失函数设计
本文网络模型的损失函数主要包括4个分量,分别是生成对抗网络中的条件对抗损失LGAN、生成图像与目标图像的距离L1、生成图像与预测模型预测结果之间的距离损失L2和生成图像与目标图像的对比度差距损失函数LSSIM。其中生成对抗网络的损失在前文中已经介绍了,主要体现了生成器和辨别器的对抗博弈。具体损失如式(1)所示:
Q:作为人气搭配达人,不管在什么时候您看起来都是美美的。升级做妈妈后,穿衣风格和以往有变化吗?在哺乳期化妆会注意什么,选用化妆品会特别考虑哪些方面?在给宝宝穿衣方面,你注重的是什么?
这里的D和G分别代表的辨别器和生成器,其中E(∗)表示分布函数的期望值,x和z分别表示真实数据和噪声输入,Pdata(x)代表真实样本的分布,Pnoise(z)是定义的噪声分布,同时基于pix2pix,本文在原始的条件生成对抗网络的损失函数中还加入了一个重构函数,也就是生成图像与目标图像的L1距离:
式中y为目标值,这个L1距离表示生成数据与目标数据的线性差值。除了条件生成对抗网络的损失函数外,还有预测模型的输出值与生成图像的距离,这个损失表示生成的图像不仅要满足辨别器的评估标准,还需要满足预测模型所预测的颜色分布,其距离损失函数如(3)所示:
其中G和Y分别为生成器生成图像对应的a、b通道颜色分布以及预测模型预测的颜色分布,h、w分别为两个颜色通道代表的维度。本文这里选用的是计算二者的L2距离。
最后由于文献[11]中提出的颜色预测模型并不是总能表现得特别有效,在该文中也曾提到该模型在面对食物和蛇等分类图像时着色效果并不理想,本文猜测是由于这类图像对比度的影响。为了进一步提高颜色预测模型的效果和本文网络着色的质量,本文还引进了一个色彩对比度损失,用来计算生成图像与目标彩色图像的对比度距离。在评价两幅图像相似度的指标结构相似性SSIM中,用均值差模拟亮度上的区别,用标准差作为对比度的区别,用协方差作为结构相似程度的评估。在本文中只采用其中的对比度比较部分和亮度比较部分。具体损失函数如下:
式中,μx和μy对应的图像x和y的像素的平均值,δx和δy指的是图像像素值得标准方差,C1和C2为常数。在实际应用中,α=β=1,所以上面的损失函数可表达为:
综上所述,本文算法所使用的总损失函数为:
其中λ1、λ2、λ3、λ4分别为各损失函数的权重比例系数。
2 实验结果及分析
2.1 实验环境及数据集
2.2 实验结果与分析
本文提出的算法在生成对抗网络模型的基础上增加了一个颜色分布预测模型,通过该预测模型分布对提取的特征进行颜色分布预测,总体来说可以更好的应对各种场景,并且在细节上更加出色,着色效果更为真实。具体着色效果如图4所示。
图4 着色效果展示
为了进一步验证本文算法的有效性,进行了一系列实验来与文献[10]、[11]和文献[12]中的图像着色算法进行比较。如图5 为多个算法在动物、水果、风景等多个分类图像上的着色效果表现。
图5 着色效果对比
通过图5 中的结果对比可以看出,文献[10]和文献[11]的算法还是有图像的边缘出现颜色失真的情况,在第一幅和第四幅图中,文献[10]和[11]的算法都出现了染色不全的问题,并且图像整体伴有少量杂色。另外作为着色评估标准,图像的色彩对比度也十分重要,前三者的算法都或多或少倾向于暖黄色调或是偏青色的色调,特别是在风景图中,容易出现交界不清的问题。对比之下,本文算法生成的图像对比度更加鲜明,颜色更加饱满。最后通过将各算法生成图像与原图相比可以看出,本文算法结果更加接近真实图像的颜色分布,并且在不同特征交界处的细节处理更好。
一般图像着色算法模型的效果都比较受限于数据集,在不同分类图像上的着色效果也有可能存在差异,上文中也提到过文献[11]算法在处理某些特定的数据集时效果并不是很好,所以本文在总损失函数中多添加了一个对比度损失函数,通过加强生成图像的对比度细节来尝试解决这个问题具体效果如图6所示。
图6 蛇和食物分类的着色效果
从图6中可以看出,本章所使用的预测模型在蛇和食物分类上的图像着色过程中表现的不是特别理想,主要表现在主体颜色倾向于背景,蛇被染上了接近土块的颜色,食物上不同区域的颜色对比度不够,整体偏向灰色调。本文加入了对比度损失之后,在针对上面这两个图像分类上的着色效果有了一定提高,图像中不同特征的颜色对比度有所提高。为了进一步定量分析本文算法的改进效果,本章采用了颜色精确度Acc[16]来量化对比两种算法的着色效果。这里的颜色精确度指的是两幅图像间具有相同颜色信息的像素的比例关系,其计算方式如下:
式中,x表示灰度图像,h(x)指生成的图像,y指真实彩色图像,n是总像素数。其中1[0,εl](z)是指标函数,z∈R,εl指的是颜色通道中看作相同颜色的阈值距离,也就是说,某通道内二者像素的距离小于εl,就可以看作两者颜色相同,本文中阈值距离εl选用的值为5%。表1是文献[10]、[11]和[12]中算法和本文算法在不同分类数据集下着色效果的颜色精确度对比,实验中选取了食物和蛇分类图像各200张作为统计计算。
表1 不同类别图像着色分析 %
颜色精确度表示了生成图像在像素层面上是否接近真实值,由表1 可以看出本文算法在食物和蛇分类的图像上的颜色精确度为35.2%和34.8%,明显高于文献[11]中算法的22.4%和19.6%,生成图像的效果要明显更接近于真实彩色图像。在其他分类的图像上则和文献[11]的差距相差不大,由此可见,本文算法相对于文献[11]提出的算法在针对某些数据着色时,确实有一定的提高作用。
为了进一步说明颜色预测模型有效性,在同样的数据集下进行了一次消融实验。在实验中,先分别单独使用原始的条件生成对抗网络CGAN[17]和Cao等[14]的生成对抗网络模型来进行着色,将灰度图作为生成器的输入条件,对应彩色图像为目标图像。然后加入了颜色预测模型进行了另一组实验。对比结果如下,选用了FID[18]和LPIPS[19]这两个指标来评估生成图像与目标图像的感知相似度,其中FID评分越小,代表生成图像质量越好,图像多样性越高;相反地,LPIPS评分越大,代表生成图像质量越好,图像多样性就越高。同时,也选用了上文中提到的颜色精确度Acc 作为着色效果的评估。从结果可以看出,在生成图像的颜色精确度上,加入了颜色预测模型与原始CGAN 网络结果相差不大。但是从FID 和LPIPS 这两个指标可以看出,本文模型生成的图像多样性更高,这就意味着GAN 网络往往存在一定的模式崩溃,输入容易倾向单一确定的特征,采用本文模型能够一定程度上提升着色图像的多样性。相比于Cao等[14]通过多级引入噪声来达到生成多样性效果的做法,本文模型的图像颜色准确率更高。
表2 颜色预测模型的消融实验定量分析
另外,本文算法着色效果依赖于所添加的颜色预测模型,通过该网络对图像中各个特征会有一个明确的颜色分布预测,这得益于颜色预测模型通过大量训练,已经掌握了所提取特征的语义信息,通过对应匹配特征,可以很快预测出颜色分布。但如果输入的图像是本章模型训练以外类型的图片,颜色预测模型就很难发挥作用,图7 是采用了节选的100 个分类以外的分类图像作为测试集测试的效果图。
图7 使用训练集以外的图像测试着色效果
通过实验测试,可以看到由于使用了训练数据集图像分类以外的图像进行了着色,网络没有学习到图像中某些特征的表达。比如图像中的瓢虫,由于训练数据集中没有瓢虫分类的图像,所以在着色过程中网络并没有单独识别出瓢虫,直接将它和植物一起染成了绿色,后面图像中的鸟和拖鞋也是如此。由此可见本文着色网络在应用场景上具有一定的针对性,算法应用的场景取决于有没有对应合适的分类图像作为数据集。换句话说,如果能提供更准确的场景分类图像,本文算法的着色效果可以得到进一步的提高。
3 结束语
本文提出了一种基于生成对抗网络的图像着色算法,该网络通过在传统的条件生成对网络的基础上多添加了一个颜色预测模型,并通过该模型对像的细节特征纹理及分类信息进行提,再对应预测颜色分布,最后作为生成对抗网络中生成器的评判标准的一部分,对图像的生成做出限制和优化。通过实验证明,本文方法相比于其他图像着色算法,在色彩对比度和饱和度均有所提高,并在特征边缘的细节处理等方面均有一定的改善,染色不全的问题也明显减少,总体来说取得了较好的效果。