重磅推出基于参考图给线稿上色项目,不吹不黑,你值得拥有!!!!
参考论文:Reference-Based Sketch Image Colorization using
Augmented-Self Reference and Dense Semantic Correspondence(论文PDF已经放在项目中了)
1.激动人心的show部分
训练效果展示:
从左到右分别为Ground Truth,色彩参考图,模型实际生成图
什么?你说哪怕色彩参考图扭曲成这样了你还担心过拟合?别担心,展示测试结果
从左到右分别为线稿,色彩参考图,模型实际生成图
如果你觉得OK,请在评论区抠出“好活”二字,为我打call,哈哈哈哈
接下来请随着名侦探“小呀小帅哥”视角 主要根据一篇论文剖析基于参考图给线稿上色任务,从宏观的视角去重新审视思考。
2. 分析任务部分
首先什么是基于参考图给线稿上色任务?
给出一张线稿A,给出一张已经上色好的图片B,我们需要让模型把B的色彩合理的迁移到A的线稿架构上得到最终图片C,那么对于C来说,A提供的是主要结构性信息,B提供的是色彩信息,并且模型需要让B的色彩对于A的结构进行一个自适应扭曲。
那么这个适合就需要提一提我们的成对数据集了,线稿和对应的上色图,这里展示一下:
上色图和线稿都是512*512大小,这是一张图片,h和w分别为512,1024.那么色彩参考图就是取W维度的前512然后进行TPS插值扭曲,线稿就是W维度后512,然后为了好训练,我把色彩参考图和线稿都缩小为256*256
好了这就是我们的数据集,注意如果我们直接把色彩参考图就等于上色成功的图片,这样模型就会很大依赖色彩参考图的信息,而不会把色彩基于线稿结构进行扭曲,但是我们实际测试的过程中怎么会出现这种情况呢?所以会出现这种结果,以下是错误结果展示:
3.论文讲解部分
本项目主要基于这篇论文进行复现展示
论文题目:Reference-Based Sketch Image Colorization using Augmented-Self Reference and Dense Semantic Correspondence
论文总体框架
接下来我选取重点进行分析讲解:
1. 色彩固定(模型存在色彩偏见)的问题:
就是我们不能让模型学习到看到苹果的样子就是红色的,也就是苹果现实过程中也有可能是黄色的,或者绿色的。避免模型有这种色彩偏见。
解决这个问题,就是给图像I增加一个色彩噪声(a(*)),得到Igt作为ground truth,这样就可以极大的缓解这个色彩偏见的问题,算一种数据增强吧。
但是实际我自认为数据集够大,1w多张照片,于是就没有进行这步操作了,其实主要是懒得找这部分代码,哈哈哈哈。
2. 训练和测试参考图差距很大的问题(important)
如果输入的参考图(提供色彩信息)和Ground Truth一样,那么模型就会很怠惰的大幅度依赖参考图的结构信息,就是不能把参考图的结构和色彩信息区分开,这个是一大痛点,因为在测试的过程中参考图和模型的空间结构信息是差距很大的,也就是说我们需要让模型有把参考图按照线稿结构扭曲的能力。
因此我们不能把Igt当作参考图,我们需要给Igt添加一个空间扭曲这样得到的结果为参考图,这个空间扰动就是通过s(*)TPS(the thin plate splines)实现的.
3. 特征连接,就是把每层的特征层都缩小到最核心特征的大小,然后再按照特征维度进行一个concat.
4.通过模型架构层面让参考图的信息能结合到线稿的结构信息中去(SCFT)。
就是qkv的思想,q是线稿结构信息,k和v为参考图特征信息。就是让色彩信息基于线稿结构信息进行扭曲罢了。
损失部分
这个trip部分约束的是q和k部分应该也有s(*)空间扭曲的信息,这个部分我没怎么看懂。
其他就是VGG的特征对齐,生成图片和GT的MSELoss,利用Gram矩阵的style loss,还有GAN的对抗loss。
我参考的github代码(pytorch):https://github.com/seungjae-won/paper-to-code-Reference-Based-Sketch-Image-Colorization/blob/master/model.py
具体一键运行请在AI Studio中运行:基于参考图给线稿上色项目V2(SCFT),不吹不黑,你值得拥有 - 飞桨AI Studio (baidu.com)