灰度图像彩色化, 就是在保持灰度图像形状信息, 即亮度信息不变的基础上, 学习对应的彩色图像的色彩信息, 并将其传递到灰度图像上. 随着芯片算力的快速提升和深度学习的快速发展, 近几年深度学习模型结构的优化发展使得更多基于深度学习的彩色化方法比起传统方法带来了更好的图像着色效果.
基于颜色标记[1]、基于颜色传递[2]等传统的彩色化算法需要我们人为手动提取图像特征进行彩色化处理. 深度学习彩色化算法利用卷积与反卷积等操作, 自动提取特征, 有着更好的着色效果, 但仍然存在彩色化图片的细节损失和着色枯燥问题.
(1) 细节损失
部分灰度图像彩色化算法由于其颜色映射效率有限[3], 在特征提取的过程中存在一定程度的图像颜色信息损失, 不能对图像中的一部分内容赋予适当的颜色, 例如小物体或者是图像的细节处, 容易被识别成背景或者是噪声.
(2) 着色枯燥
若预测某个像素的色彩信息时对全局色度值的集合进行平均求解, 则这种平均效果会导致生成的图像颜色偏向灰色、棕色等不饱和颜色, 导致彩色化之后的结果图片枯燥平淡.
针对上述两个问题, 本文提出了基于CycleGAN的灰度图像彩色化模型, 并与其他模型从视觉和测试指标上对彩色化效果进行对比. 本文的主要贡献包括:
(1) 将CycleGAN模型应用在非单一类别的灰度图像彩色化上. 此前曾有基于CycleGAN的人脸图像彩色化方法[4], 但仅局限于人脸的彩色化上, 并不能广泛地应用于其他图片, 本文模型在动物、植物、风景等图片上有较好的着色效果.
(2) 使用PReLU激活函数[5]防止神经元死亡. CycleGAN原模型中生成器使用ReLU激活函数[6], 该激活函数对学习率十分敏感, 较小的学习率会使模型难以收敛或陷入局部极值. 为便于训练模型以及调整参数, 改为使用PReLU激活函数进行训练.
(3) 使用马尔可夫判别器(PatchGAN)[7]提高图片高分辨率上的颜色细节. 普通的GAN判别器是将输入映射成一个实数, PatchGAN则是输出一个矩阵, 考虑到图像的不同部分的影响, 使得在彩色化中能很好地保持颜色细节.
2 相关工作在计算机视觉领域中, 卷积神经网络和生成对抗网络常用于对图像进行处理. 目前, 基于深度学习的彩色化算法已经能有效实现不同程度上的图像自动彩色化显示效果.
(1)卷积神经网络. 2015年, Cheng等[8]利用卷积神经网络提取灰度图特征, 使用联合双边滤波实现了较好的彩色化效果. 2016年, Iizuka等[9]融合灰度图像的局部和全局特征, 通过添加标签分类来实现图像颜色预测. Zhang等[10]将彩色化问题转化成对像素点颜色的分类问题, 将饱和度高的颜色赋予高权重来获得鲜艳的颜色. Larsson等[11]使用VGG网络通过场景语义和对象定位进行着色. 虽然使用卷积神经网络便于训练, 但生成图像的颜色饱和度较低且细节损失较多, 在颜色变化不明显的图像上会失效, 在一些需要通过语义信息的模型中非常依赖于分割处理算法.
(2)生成对抗网络. 2017年, Isola等[12]提出使用U-Net与GAN相结合的方法, Cao等[13]也通过在CGAN中添加噪声来增加彩色化效果的多样性. Suárez等[14]提出了一种基于三重DCGAN结构的红外图像彩色化方法来独立学习每个颜色通道. 2018年, Nyberg等[15]使用无监督生成对抗网络训练学习红外图像彩色化. Nazeri等[16]利用DCGAN来还原彩色化的过程. 2019年, Yoo等[17]提出了增强型记忆网络, 并在小样本数据上使用CGAN实现彩色化. Sun等[18]提出了非对称循环生成对抗性网络, 该网络的生成器是U-net和ResNet的结合, 鉴别器使用了特征金字塔网络. 2021年, 万园园等[19]使用改进的U-Net作为生成器, 并结合WGAN-GP网络的优化思想来缓解颜色溢出的问题. 2022年, 李洪安等[20]设计多视野特征表示模块, 使用改进的U-Net与判别器的对抗训练得到彩色图像. 生成对抗网络在一定程度上解决了着色枯燥问题, 提升了彩色化效果, 但是GAN在学习的过程中很容易发生模型崩溃的情况.
3 改进的CycleGAN彩色化模型本文使用的CycleGAN[7]采用了由两个单向GAN[21]构成的环形GAN, 其整体结构图如图1所示. 每个GAN都有各自的生成器(G)和判别器(D). 生成器(G)将一个域的图片转换成另一个域的图片, 将灰度图片生成为彩色图片或将彩色图片生成为灰度图片. 判别器(D)辨别输入的图片是经过转换的图片或是原域图片.
3.1 生成器
在本文改进的CycleGAN模型中, 生成器G由3部分组成: 编码器、转换器和解码器. 该部分通过卷积神经网络自动提取特征, 对输入的图片进行处理, 例如使其从灰度图像生成为彩色图像.
编码器由3层卷积网络构成, 如图2所示. 图像经过3次卷积变成256通道64×64特征向量. 前2次卷积核大小均为7×7, 步长stride为1, 填充padding为1, 将图片变成128通道128×128的特征向量. 为了增加高层特征的数量, 第3次卷积核的大小为3×3, 步长stride为2, 填充padding为2, 将图像压缩成256通道64×64的特征向量. 其中卷积层之后的归一化层使用IN (instance norm)[22]对单张图片的单个通道进行归一化操作, 归一化层之后的激活函数使用PReLU函数.
转换器对于 256×256 像素的图片是使用9个256通道 64×64 的残差块[23], 卷积核大小为3×3, 步长stride为1, 填充padding为1, 不改变特征向量的大小, 最后一层与编码器一致.
解码器的结构与编码器基本相反, 如图3所示. 反卷积的卷积核与编码器前2次卷积一致, 卷积操作的卷积核与编码器第3次卷积一致. 256通道 64×64 的特征向量经过2次反卷积和1次卷积得到3通道 256×256 的图片, 再经过tanh激活函数映射到[−1, 1]. 生成器的整体结构如图4所示, 包含编码器、转换器和解码器, 其作用是将图片从一个域转为另一个域.
3.2 判别器
判别器使用的是PatchGAN. 许多CNN分类模型都是在最后引入一个全连接层, 但全连接层会导致参数和计算量大量增加, 效果并没有很好. PatchGAN不同于其他分类模型, 它完全由卷积层构成, 最后输出的是一个n×n的矩阵, n是矩阵的维度, 取输出矩阵的均值作为True/False的输出, 输出矩阵中的每一个输出, 代表着原图中一个感受野.
该网络模型是5层卷积网络, 如图5所示. 判别器与生成器的编码器类似, 先通过4次卷积增加通道数, 卷积核的大小均为4×4, 步长stride为2, 填充padding为1, 并使用IN层进行单一通道的归一化, 在判别器使用的是斜率为0.2的Leaky ReLU激活函数[24], 最后通过一层平均池化输出判别的结果.
3.3 损失函数
CycleGAN模型的损失函数由对抗损失和循环一致性损失组成. 对抗损失包含两个生成器的生成图片经过各自判别器产生的损失, 循环一致性损失是经过两个生成器后的新灰度图片与原灰度图片之间的损失.
生成器
$ \begin{split} L_{{\rm{GAN}}}(G, D_Y, X, Y) = & E_{y\sim P_{{\rm{data}}}(y)}[{\rm{log}}D_Y(y)] \\ & + E_{x\sim P_{{\rm{data}}}(x)}[{\rm{log}}(1 - D_Y(G_{X \to Y}(x)))] \end{split} $ | (1) |
其中,
除此之外, 模型在训练过程中要求循环一致性. 每个网络的生成器-判别器模型需要将一个域的图片转换成另一个域的图片, 而不是单个图像的匹配训练, 这使得图片在经过两个生成器后要保持相似的图片风格, 即图片在应用
$ \begin{split} L_{{\rm{cyc}}}(G, F) = & E_{x\sim P_{\rm{data}}(x)}[\left\| {{{F}}(G(x)) - x} \right\|_1] \\ & + E_{y\sim P_{\rm{data}}(y)}[\left\| {G(F(y)) - y} \right\|_1] \end{split} $ | (2) |
其中,
完整的CycleGAN损失函数[7]如下公式:
$ \begin{split} L_{\text{total}}(G, {{F}}, D_X, D_Y) =& L_{{\rm{GAN}}}(G, D_Y, X, Y) \\ & + L_{{\rm{GAN}}}(G, D_X, Y, X) + \lambda L_{{\rm{cyc}}}(G, F) \end{split} $ | (3) |
其中,
$ G*, F* = \arg \mathop {\min }\limits_{G, F} \mathop {\max }\limits_{Dx, Dy} L_{{\rm{total}}}(G, F, D_X, D_Y) $ | (4) |
其中, 生成器
本文实验的硬件环境: CPU为Intel 酷睿i9 11900K, GPU为Nvidia GeForce RTX 3090, 内存64 GB; 软件环境: 操作系统为Ubuntu 22.04, 深度学习框架为PyTorch 1.12.1, 编程语言为Python 3.9.
本文改进的CycleGAN生成器的编码器部分使用PReLU作为激活函数, 优化器使用Adam, 学习率为1E–3并且每epoch衰减5E–6, 训练100轮次. 对上述改进的CycleGAN模型训练数据集的选择上, 使用ImageNet数据集中5个热门类别的大约560000张图像: 动物(20%), 植物(20%), 人(25%), 风景(25%), 食物(10%), 涉及共计1000个类别中的520个类. 针对于CycleGAN对于图片的大小限制, 所有图片使用256×256像素. 对于数据的预处理, 先中心裁剪调整图片大小至边长为320的正方形, 再随机裁剪至256×256像素, 经过随机水平反转和归一化后, 输入网络进行训练. 模型训练时的总损失随训练轮数变化如图6所示, 其中, 浅色线条是训练损失原本的值, 深色线条是训练损失经过均匀处理后的趋势曲线, 可以看到在第40轮后模型收敛达到稳定.
为验证改进的CycleGAN与其他彩色化方法的作用, 使用一些灰度图像对模型进行测试, 展示的图片包括: 原始黑白颜色的风景照片、原始含有彩色的ImageNet数据集图片. 通过图片对比, 如图7所示, 可以发现使用VGG生成的彩色图片会出现着色枯燥问题, 整体图片颜色偏黄棕色, 这也是均方损失导致的问题之一. 自监督模型也会给模型带来一些多样化的信息, 例如导致生成了一些独特的天空景象. 使用GAN和改进的CycleGAN生成的彩色图片颜色更加艳丽, 饱和度更高, 树木草地也能显示更青翠的绿色.
另外在指标测试上, 实验在ImageNet数据集和Places365数据集各取500张图片, 即共1000张图片进行测试, 表1中取平均值记录. 测试指标共4种: 无参考图像质量评价方式包括感知真实感(perceptual realism, PR)[10]和综合质量评价方式(comprehensive assessment function, CAF)[25], 全参考图像质量评价方式包括峰值信噪比(peak signal-to-noise ratio, PSNR)[26]和结构相似性(structural similarity index, SSIM)[27]. 感知真实感在本文中的测试方法为通过对测试的4个模型在ImageNet和Places365各生成500张彩色化后的图片. 在未告知图片是由模型生成的情况下将测试图片交予20名受试者, 即每人200张图片的视觉判断下对共4000张图片的真实与否进行评估, 最后统计判断为真实的图片数量, 得到模型生成图片能够欺骗人眼的统计百分比.
如表1结果所示, 本文改进的CycleGAN的着色效果在各项效果指标上相较于其他模型更加出色, 在PSNR中比GAN高了0.603 dB约有2.1%的提升, 在SSIM中明显高于其他模型, 在效果上有5.1%的提升. 单纯从图片感官感受来看, 相比起VGG的着色枯燥问题, 使用生成对抗网络的彩色化图片理论上更加真实, 饱和度更高, 更容易被人接受, 而且使用GAN更容易还原图片中的细节, 避免细节损失.
如表2消融实验中, 使用IN层、PReLU层、调优的Adam优化器均能在CycleGAN的基础上带来效果提升, 且在多个改进整合的模型中, 其效果指标最为显著, 说明这些改进点是可行且有效的. 通过2个GAN的对称训练并加以循环一致性损失的限制, 结果表明本文改进的CycleGAN相较于其他卷积神经网络模型, 在灰度图像的彩色化中无论是人眼实际感知或指标评价上都更加真实. CycleGAN彩色化的图片颜色饱和度高, 接近原本图片的色调, 而VGG等基于卷积网络彩色化的图片常呈现灰褐色, 出现着色枯燥的问题. 着色枯燥问题的产生使得彩色化后的图片与原图相似度低, 反映在评价指标上为改进的CycleGAN的SSIM值比VGG高17.7%.
5 总结
灰色图像的彩色化技术在计算机视觉和数字图像处理领域是一个非常重要的主题, 在电影剪辑、工业检测、医学诊断等方面具有重要意义, 例如早期黑白照片或电影的着色, 可以挖掘新的商业价值. 在医学图像领域, X光、CT等基于光学原理的医学图像大多是灰度图像, 彩色化后的医学图像也能辅助医生判断, 利于医患沟通. 本文改进的CycleGAN模型在灰度图像彩色化领域对比其他的深度学习模型有更好的彩色化效果, 能够对灰度图像着色到可以接受的视觉程度, 生成视觉效果比其他卷积神经网络模型更好的彩色化图像. 但目前图像分类、目标检测、语义分割等计算机视觉研究普遍使用的图片边长在500分辨率以上, 基于训练集的限制, CycleGAN模型目前难以在 256×256 分辨率以上得到很好的彩色化效果. 对于单个GAN的生成器、判别器网络模型仍有改进的空间, 生成器中的解码器使用反卷积容易使得图片产生棋盘效应, 采用U-net的跳跃连接结构可以缓和这种问题.
[1] |
Levin A, Lischinski D, Weiss Y. Colorization using optimization. ACM Transactions on Graphics, 2004, 23(3): 689-694. DOI:10.1145/1015706.1015780 |
[2] |
Welsh T, Ashikhmin M, Mueller K. Transferring color to greyscale images. ACM Transactions on Graphics, 2002, 21(3): 277-280. DOI:10.1145/566654.566576 |
[3] |
韦文闻. 基于深度学习的灰度图像彩色化方法研究[硕士学位论文]. 重庆: 重庆邮电大学, 2020.
|
[4] |
韩先君, 刘艳丽, 杨红雨. 基于生成对抗网络的人脸图像彩色化方法. 北京理工大学学报, 2019, 39(12): 1285-1291. DOI:10.15918/j.tbit1001-0645.2018.432 |
[5] |
He KM, Zhang XY, Ren SQ, et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. Proceedings of the 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015. 1026–1034.
|
[6] |
Glorot X, Bordes A, Bengio Y. Deep sparse rectifier neural networks. Proceedings of the 14th International Conference on Artificial Intelligence and Statistics. Fort Lauderdale: JMLR.org, 2011. 315–323.
|
[7] |
Zhu JY, Park T, Isola P, et al. Unpaired image-to-image translation using cycle-consistent adversarial network. Proceedings of the 2017 IEEE International Conference on Computer Vision. Venice: IEEE, 2017. 2242–2251.
|
[8] |
Cheng ZZ, Yang QX, Sheng B. Deep colorization. Proceedings of the 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015. 415–423.
|
[9] |
Iizuka S, Simo-Serra E, Ishikawa H. Let there be color! Joint end-to-end learning of global and local image priors for automatic image colorization with simultaneous classification. ACM Transactions on Graphics, 2016, 35(4): 110. DOI:10.1145/2897824.2925974 |
[10] |
Zhang R, Isola P, Efros AA. Colorful image colorization. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 649–666.
|
[11] |
Larsson G, Maire M, Shakhnarovich G. Learning representations for automatic colorization. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 577–593.
|
[12] |
Isola P, Zhu JY, Zhou TH, et al. Image-to-image translation with conditional adversarial networks. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 5967–5976.
|
[13] |
Cao Y, Zhou ZM, Zhang WN, et al. Unsupervised diverse colorization via generative adversarial networks. Proceedings of the 2017 Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Skopje: Springer, 2017. 151–166.
|
[14] |
Suárez PL, Sappa AD, Vintimilla BX. Infrared image colorization based on a triplet DCGAN architecture. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition Workshops. Honolulu: IEEE, 2017. 212–217.
|
[15] |
Nyberg A, Eldesokey A, Bergström D, et al. Unpaired thermal to visible spectrum transfer using adversarial training. Proceedings of the 2018 European Conference on Computer Vision. Munich: Springer, 2018. 657–669.
|
[16] |
Nazeri K, Ng E, Ebrahimi M. Image colorization using generative adversarial networks. Proceedings of the 2018 International Conference on Articulated Motion and Deformable Objects. Palma De Mallorca: Springer, 2018. 85–94.
|
[17] |
Yoo S, Bahng H, Chung S, et al. Coloring with limited data: Few-shot colorization via memory augmented networks. Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019. 11275–11284.
|
[18] |
Sun T, Jung C, Fu QT, et al. NIR to RGB domain translation using asymmetric cycle generative adversarial networks. IEEE Access, 2019, 7: 112459-112469. DOI:10.1109/ACCESS.2019.2933671 |
[19] |
万园园, 王雨青, 张晓宁, 等. 结合全局语义优化的对抗性灰度图像彩色化. 液晶与显示, 2021, 36(9): 1305-1313. DOI:10.37188/CJLCD.2021-0012 |
[20] |
李洪安, 郑峭雪, 马天, 等. 多视野特征表示的灰度图像彩色化方法. 模式识别与人工智能, 2022, 35(7): 637-648. |
[21] |
Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial networks. Communications of the ACM, 2020, 63(11): 139-144. DOI:10.1145/3422622 |
[22] |
Ulyanov D, Vedaldi A, Lempitsky V. Instance normalization: The missing ingredient for fast stylization. arXiv:1607.08022, 2016.
|
[23] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 770–778.
|
[24] |
Maas AL, Hannun AY, Ng AY. Rectifier nonlinearities improve neural network acoustic models. Proceedings of the 30th International Conference on Machine Learning. Atlanta, 2013. 3.
|
[25] |
谢正祥, 王志芳, 熊兴良, 等. 基于视觉感知噪声模型的彩色图像质量评价和彩色图像质量最佳化. 中国图象图形学报, 2010, 15(10): 1454-1464. DOI:10.11834/jig.090290 |
[26] |
秦耀泽. 基于卷积神经网络的灰度图像彩色化方法研究[硕士学位论文]. 天津: 天津大学, 2019.
|
[27] |
Wang Z, Bovik AC, Sheikh HR, et al. Image quality assessment: From error visibility to structural similarity. IEEE Transactions on Image Processing, 2004, 13(4): 600-612. DOI:10.1109/TIP.2003.819861 |