版权声明: 未经同意,禁止转载。(更新时间:2020-10-02) |  个人笔记,仅供参考。

关键词:基于高通滤波的线稿提取算法,基于深度学习的线稿提取模型

本文属于:动漫线稿自动上色-系列论文解读


目录

1. 问题的定义与意义

1.1 自动线稿提取算法的意义

1.2 问题定义

2. 基于高通滤波的线稿提取算法(数学算法)

2.1 Style2Paints V3线稿提取算法介绍

2.2 PS提取线稿,使用“高反差保留法”

2.3 “高反差保留法”原理简析

3. 基于深度学习的线稿提取方法


研究领域:数字图像处理,滤波

 

1. 问题的定义与意义

1.1 自动线稿提取算法的意义

(1)现有的动漫插画数据集一般只提供已完成上色的最终作品,未提供上色之前对应的线稿。而基于深度学习的“线稿自动上色”模型需要学习从线稿到最终画作的变换,要求训练数据集同时提供最终画作和对应的线稿。因此,需要使用“线稿提取算法”根据画作来合成模拟的线稿

(2)虽然自动提取线稿的质量,要比用Photoshop手工提取、精致微调的线稿质量差一些;但仍然适用于绘画初学者进行上色练习,或者用于更改原有插画的颜色。毕竟,一键自动提取线稿,要比PS人工一步一步地操作方便得多。

1.2 问题定义

插画作品一般只公开最终上色好的画作,不公布对应的线稿。因此,使用算法根据已有的插画推测(提取)上色前的线稿,与“****”有类似之处。Style2Paints V3自带的基于高通滤波的线稿提取算法,效果如下图所示。

算法简介:从插画中提取线稿
从插画中提取线稿
(线稿提取算法使用Style2Paints V3)

 

线稿提取,有点类似于“边缘检测”(Edge Detection)问题。从总体上看,二者都是尝试提取图像中的“高频信息”(边缘)。但二者具有一定区别。下图为“边缘检测”与“线稿提取”的效果对比。 

算法简介:从插画中提取线稿
对比:“边缘检测”与“线稿提取”
(线稿提取算法使用Style2Paints V3)

边缘检测结果与手绘线稿的主要区别在于:

(1)灰度值不同。边缘检测输出的是非黑即白的二值图像。而手绘线稿图像还包含一些介于纯黑和纯白色之间的灰度像素。主要是因下笔时力度变化等因素而产生的一些非纯黑色线条。(注:对于铅笔线稿,其线条的灰度值变化会更明显一些;但其实数位板线稿也具有一定的灰度值变化。)

(2)线条粗细不同。为了实现精确定位,边缘检测结果的线条很细,而且所有线的粗细相同。而线稿图像中的线条相对较粗,且线条粗细会发生变化。

注:不同类型的线稿之间(如铅笔线稿、数位板线稿等)也具有一定的差别。因此,为了能够适应多种类型的线稿,一些上色项目(如:Tag2Pix [ref-3],SerialLain3170/Colorization)结合使用多种类型的模拟线稿进行训练。

 

为什么“具有灰度值的线稿图像”比“边缘检测的得到的二值图像”更适合自动上色任务?

(1)因为若要从插画中提取黑白二值边缘图像,必须使用阈值进行筛选,以决定把哪些灰度像素转换为纯黑色,哪些灰度像素转换为纯白色。若阈值偏低,则会包含太多噪声和干扰性线条;若阈值偏高,则会形成一些不完整的轮廓,并丢失一些细节描绘线条。这两种情况都不利于自动上色网络的训练。并且,对大规模插画数据集提取线稿时,很难找到一个适合大部分插画的阈值参数。

(2)相较于边缘检测的得到的二值图像,灰度线条额外提供了一些“灰度值信息”,有时能够帮助自动上色网络对区域进行正确的识别和分割。举例来说,头发、衣服内部的修饰性线条,其灰度值一般会更浅一些;头发、衣服外边缘的线条,其灰度值一般会更深一些。这有时能帮助自动上色网络对头发、衣服进行正确的区域分割。

(3)具有灰度值、粗细变化的模拟线稿图像,更接近真实手绘线稿的数据分布,能提升自动上色网络对手绘线稿的兼容性。

 

由于种种原因,算法提取的线稿与手绘线稿仍有一定差距,实验对比如下图所示。因此,仍有人在研究如何提取出更高质量的线稿 [ref-4]。

提取线稿,表面上是一个简单的“高通滤波”问题;但实际上:从插画中提取线稿,类似于“****”(Reverse Engineering),算法很难100%地还原最初的线稿信息。其本质原因在于:(1)高频信息与低频信息之间没有明确的频率分界线。因此,很难清晰地界定插画中哪些线条是有用的,应被保留或强调;哪些线条是光影效果、噪声或额外的细节修饰,应被弱化或忽略。(2)画家在上色、添加光照效果、修饰细节阶段,会在线稿的基础上添加并修改很多高频信息。因此,相较与最初的线稿,上色后图像的高频信息已发生了一些变化。

算法简介:从插画中提取线稿
对比:真实手绘线稿 与 算法提取的线稿 [ref-5]

2. 基于高通滤波的线稿提取算法(数学算法)

2.1 Style2Paints V3线稿提取算法介绍

Style2Paints V3的re-colorization模式下的“线稿提取”功能,是一个非常方便、实用的功能。

软件操作步骤如下:

(1)切换至“颜色重画”(re-colorization)模式。

(2)点击“上传线稿”按钮,上传一张彩色插画。

(3)稍等片刻,软件将完成线稿提取。提取出的线稿保存在“server\game\rooms\时间\”文件夹中。

该功能使用了基于“高通滤波”的线稿提取算法。该算法类似于PS中称为“高反差保留法”的线稿提取方法。在英文版的PS中,“高反差保留”滤镜的英文名称,就是“HighPass”(高通滤波)。为了具体了解“高反差保留法”的算法流程,下面使用PS人工一步一步地提取线稿。

2.2 PS提取线稿,使用“高反差保留法”

PS的具体操作步骤,请参阅这个教程(PS图文教程-三种方法提取动漫线稿-微信公众号)中的第三种方法“高反差保留法”。

(注:其中使用的“划分”图层混合模式,要求Photoshop的版本不低于Photoshop CS 5。)

2.3 “高反差保留法”原理简析

1)高反差保留滤镜:

这一步是提取线稿的核心步骤。关于高反差保留滤镜的介绍,详见这篇博客文章。其计算公式为:

                                                高反差保留 = 原始图像 - 高斯模糊图像 + 127

加上127的目的,是为了不让太多的像素由于不在有效范围内而导致图像太黑,从而丢失信息。

该算法与“非锐化掩蔽”(Unsharp Mask)算法 [ref-1]的原理具有相似之处。

 

(2)划分图层混合模式:

关于划分图层混合模式的介绍,详见Photoshop图层混合模式详解-知乎专栏

高反差保留滤镜的结果记为A,“高反差保留滤镜+高斯模糊”的结果记为B。教程中是将A与B进行图层混合,混合方式为划分(Divide)。这一步是为了将高反差滤镜提取到的边缘转化为接近灰色,背景转化为白色。

3. 基于深度学习的线稿提取方法

项目名称:sketchKeras(基于U-net的线稿提取网络,由Style2Paints作者团队开发)

引用次数:5次(截止2020.9)

项目地址:sketchKeras,非官方复现:sketchKeras-pytorch

 

最后,感谢作者开源了相关代码与模型!(注意:作者禁止将代码用于商业和盈利目的,请尊重版权!)


参考资料:

[ref-1] Sharpening Using an Unsharp Mask

[ref-2] Photoshop图层混合模式详解-知乎专栏

[ref-3] Kim H, Jhoo H Y, Park E, et al. Tag2pix: Line art colorization using text tag with secat and changing loss[C]//Proceedings of the IEEE International Conference on Computer Vision. 2019: 9056-9065.

[ref-4] Xin Y, Wong H C, Lo S L, et al. Progressive Full Data Convolutional Neural Networks for Line Extraction from Anime-Style Illustrations[J]. Applied Sciences, 2020, 10(1): 41.

[ref-5] 插画和线稿来自:SAI超详细赛璐璐上色教程


相关论文:

Pre- and Post-Processes for Automatic Colorization using a Fully Convolutional Network

发表会议:SIGGRAPH Asia 2018 Posters

论文下载:ACM

相关文章:

  • 2021-10-10
  • 2022-12-23
  • 2021-05-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-29
  • 2021-04-12
猜你喜欢
  • 2021-07-09
  • 2022-12-23
  • 2022-01-19
  • 2021-12-06
  • 2021-12-15
  • 2021-12-05
  • 2022-12-23
相关资源
相似解决方案