《General Virtual Sketching Framework for Vector Line Art》论文介绍

 

该论文发表于计算机图形学顶级国际学术会议SIGGRAPH 2021上,是中山大学、日本早稻田大学和华为加拿大研究院共同合作的成果。作者为:

论文链接:https://esslab.jp/publications/HaoranSIGRAPH2021.pdf

代码链接:https://github.com/MarkMoHR/virtual_sketching

项目主页链接:https://markmohr.github.io/virtual_sketching/

0. Abstract

矢量线稿图在图形设计领域扮演着一个很重要的角色。然而,人工构造矢量线稿图是一个繁琐且耗时的工作。我们构建了一个能从不同类型的图像生成矢量线稿图的通用框架,这个框架学习了一个从像素图空间到矢量图空间的映射。我们的方法基于一个循环神经网络,能够依次绘制线条。提出一个可微光栅化模块,能允许仅使用像素级的数据作为监督以进行训练。我们模拟使用一根虚拟笔(由一个动态窗口围绕在四周)去绘制线条,并提出对齐裁剪可微拼贴模块去实现这一过程。另外,我们提出一个笔划正则化机制(作为一个损失函数),去鼓励模型使用更少但更长的线条去对生成的矢量图进行简化。在实验中,通过消融实验、与现有方法对比,来证明我们方法的高效性,能够在更少的运行时间里生成视觉上质量更好的结果;同时,模型能够对各种类型的图像和应用均有较好的泛化性能。

1. Introduction

矢量图像在图形设计领域扮演着一个重要的角色,因其可以被渲染为任意分辨率而不丢失任何视觉信息,且被广泛应用于工程设计[Egiazarian et al. 2020]、2D动画[Su et al. 2018]和3D打印[Liu et al. 2017]等方向。矢量图形由于使用由少量参数描述的基本形状(如贝塞尔曲线的控制点,或者多边形的顶点)表示,因而不需要对像素图像直接修改像素的值。因此,与像素图像相比,矢量图像允许更自然和更便捷的编辑。

线稿草图通常使用矢量图形去表示,特别是参数化曲线。但是,目前大量的线稿草图都是以像素图像的格式存储和传播,比如扫描的图纸,因此有必要将它们转化为矢量图形。对于干净的线稿图,一些矢量化的方法[Bessmeltsev and Solomon 2019; Favreau et al. 2016; Noris et al. 2013; Stanko et al. 2020]可以直接生成矢量线稿。然而在更多的情况下,需要将粗糙草图而不是干净线稿图进行简化并矢量化。图像到图像转换的算法[Isola et al. 2017; Li et al. 2019; Simo-Serra et al. 2018a]可以将粗糙线稿草图转化为像素级的干净线稿,但需要后处理过程来将其转化为矢量图像。为此,我们提出一个能将任意输入图像都直接转化为矢量线稿图的框架,且能应用于各种各样的图像类型,如图1所示。

图1 给定任意分辨率的干净线稿图、粗糙草图或者自然图像作为输入,我们的框架可以直接生成对应的矢量线稿图。如(b)所示,这个框架建模了一根由一个动态窗口(红框)围绕的虚拟笔,可以随着绘制笔划而移动。虚拟笔通过对窗口进行缩放,并移动到未绘制区域来重新绘制((b)中下面的例子;蓝色箭头表示移动轨迹)的方式来学习到在图像上四处游走。在我们提出的笔划正则化机制下,框架能够扩大窗口,并绘制较长的笔划来使矢量表示更简洁((b)中上面的例子)。

我们的方法基于一个循环神经网络,会学习像素空间到矢量空间的直接映射,但却不需要依赖矢量数据进行训练监督。我们通过一个可微渲染模块实现这个功能,它能够将一个矢量参数表示渲染为像素级线稿图像,同时允许植入一个端到端训练的框架中。处理任意分辨率的图像对于大多数基于学习的矢量图形生成算法[Huang et al. 2019; Kim et al. 2018; Zheng et al. 2019]来说都是一个挑战,为了解决其中存在的问题,我们提出使用一个动态窗口对一根虚拟笔进行建模。这个动态窗口能够在每一时刻更新自己的位置和大小,如图1-(b)所示。模型能够学习到在让虚拟笔四处游走,或者希望绘制长笔划的时候扩大窗口,以及在绘制细节的时候缩小窗口。这个过程完全没有任何真实数据进行直接监督。动态窗口的引入要求进行图像裁剪和拼贴的操作,然而普通常用的裁剪和拼贴操作会导致不可微问题以及离散化和量化误差。我们提出对齐裁剪和可微拼贴模块来解决上述问题,可以避免离散化以及允许梯度的传播。

矢量图像的另一个重要属性是,由于相同的像素图像可以由不同的矢量图像渲染而来,我们实际上更加关心最简单的矢量表示,即包含最少的矢量参数。对于线稿图,这意味着用一个单独的参数化曲线来表示一根长线条,而不是用多个短线段。为了将这个思路融入我们的模型中,我们提出笔划正则化机制,能够鼓励模型使用更少但必要的矢量参数来表示一个线稿图。

我们通过充分的消融实验、与现有最新方法对比,在干净线稿矢量化粗糙草图简化自然图像到矢量线稿图转换三个任务上验证我们的方法。这些实验都证明我们的方法可以在更短的运行时间内的时候生成视觉效果更好的结果,同时能够泛化到不同类型的图像。

我们工作的主要贡献点如下:

  1. 一个面向矢量线稿图生成的通用框架,可以作用于多种类型的图像上,同时仅依赖像素级数据(不需要矢量数据)进行训练。
  2. 一个动态窗口机制,能够允许处理任意分辨率和高复杂度的图像。
  3. 一个笔划正则化机制,能够控制生成矢量图像的简洁程度。
  4. 在多种类型的任务上与现有方法进行了全面的比较。

2. Related Work

2.1 Vector Graphics Generation

基于学习的矢量图形生成工作主要分两大类:矢量数据驱动,或者不依赖矢量训练数据。近年来,大量利用矢量训练数据学习的工作被提出,比如:草图重构[Das et al. 2020; Graves 2013; Ha and Eck 2018]、基于图像的线稿草图生成[Egiazarian et al. 2020; Song et al. 2018]。虽然实际上使用矢量数据作为直接的监督更加直截了当和简单,但是收集矢量训练数据不总是一件简单可行的事情。为了避免这个问题,另一类的工作更希望绕过矢量数据。这些工作先将预测的矢量参数转换为像素级的线稿草图,然后在像素水平进行模型的优化。这种转换一般通过使用黑盒的渲染模拟器[Ganin et al. 2018; Mellor et al. 2019],或者可微的渲染模块[Huang et al. 2019; Li et al. 2020; Nakano 2019; Zheng et al. 2019]。

在不依赖矢量训练数据的工作中,Learning-To-Paint [Huang et al. 2019]是跟我们的框架最接近的工作,虽然也存在一些较大的区别。首先,Learning-To-Paint使用离散的笔划表示,但我们使用连续的表示,来保证笔划天生的连续性。其次,Learning-To-Paint局限在仅能处理较低且固定的分辨率图像,然而我们的可以处理任意分辨率的图像。

2.2 Vectorization

矢量化方法可以分为两大类:基于优化(optimization)的,和基于学习的。基于优化的算法已经被广泛地研究,但仍处于不断发展中[Bessmeltsev and Solomon 2019; Favreau et al. 2016; Noris et al. 2013; Stanko et al. 2020]。由于其优化过程中的高计算复杂度,这些方法需要花费较长的时间才能生成矢量图像。对比之下,我们的方法速度更快。最近,基于学习的方法被提出,以作为另一种可供选择的解决方法。VectorNet [Kim et al. 2018]将神经网络和优化算法相结合,将像素图像分割为路径的集合,然后使用现有的矢量化技术(如Potrace)来对每个路径进行矢量化。Guo等人[2019]使用神经网络去对线条进行细分,并对每个线条交汇点的拓扑结构进行重构。然后,每个笔划通过曲线最小二乘拟合方法进行矢量化。这两个工作的学习过程均集中在像素水平,而不是矢量化阶段。因此,与我们的工作的区别在于,它们需要第三方的矢量化技术。另外,上述两大类的工作均为干净线稿图而设计,难以应用到带有粗糙纹理的草图。相反,我们的工作可以广泛用于多种类型的图像上。

2.3 Line Generation from Other Domains

线稿图还可以由其他域的图像生成,比如粗糙草图或者自然图像。对于粗糙草图(也称为粗糙草图简化或者净化),ClosureAware [Liu et al. 2015]和StrokeAggregator [Liu et al. 2018b]使用矢量图像作为输入,然后输出干净矢量草图。[Simo-Serra et al. 2018a,b, 2016; Xu et al. 2019]中的模型作用于像素级的粗糙草图,并输出像素级的干净草图。从自然图像中提取线稿包括总所周知的边缘检测技术[Xie and Tu 2015],以及基于GAN的图像转化方法如Photo-Sketching [Li et al. 2019]。这些方法实现的是矢量到矢量的映射,或者像素到像素的映射。对比之下,我们的方法能够直接学习一个像素到矢量的映射。

2.4 Image and Feature Sampling

在物体检测和实例分割工作[Girshick 2015; He et al. 2017]中,基于Region-of-Interests (RoIs)的、使用浮点数位置和区域大小的图像或特征采样是基本的操作。在[Girshick 2015]中提出的RoIPool对RoIs进行了两次的量化操作,来提取固定大小的特征图。但是,量化操作会引入不对齐,并破坏了梯度。[Dai et al. 2016]中提出的RoIWarp以及Mask R-CNN [He et al. 2017]中提出的RoIAlign希望去解决上述问题,而RoIAlign实际上解决效果更好。RoIAlign将每个RoI划分为空间的网格块,并在每个小块内进行双线性的特征插值,来计算特征图。这个操作避免了量化过程,因此允许梯度的传播。因此,我们将此方法用于我们框架中需要准确对齐关系的对齐裁剪操作和需要为位置和窗口大小保留梯度的可微拼贴模块。

3. Line Drawing Generation Framework

3.1 Overview

图2 我们的框架以一种循环的方式一步步地生成参数化的笔划。框架使用一根由一个动态窗口(红色虚线框)围绕的虚拟笔去绘制笔划,能够移动或者改变窗口的大小。(a) 每个时刻的4个主要模块:对齐裁剪、笔划生成、可微渲染、可微拼贴。(b) 笔划生成模块的模型结构。(c) 每个时刻预测的结构型笔划;蓝色箭头表示仅移动,而不在画布上绘制笔划。

我们的方法构建了一个面向矢量线稿图生成的通用框架,能够接受任意图像作为输入。如图2所示,框架由一个基于循环神经网络的模型构建,会根据输入图像一步步地预测绘制的笔划。它整个设计基于一个方形的动态窗口,可以四处移动同时绘制笔划。这个带有大小W和一个坐标位置Q的窗口,可以在每个时刻之后进行移动或缩放。使用一个动态窗口有两个好处:首先,它允许我们对全分辨率(原分辨率)的图像进行直接的建模,同时避免训练难度的剧增;其次,它允许我们的模型在仅利用低分辨率图像训练的情况下仍能泛化到任意高的分辨率。

如图2-(a)所示,这个循环式的模型在每个时刻t包含4个主要阶段:

(1) 对齐裁剪:给定大小为 的图像,和一个相同大小的画布 作为输入,模块根据目前窗口裁剪出小块,并将它们重采样到固定大小 的图像。

(2) 笔划生成:以裁剪小块作为输入,笔划生成器(图2-(b))预测下一根笔划的参数 。笔划生成器由一个对图像水平信息建模的卷积神经网络(CNN)编码器,和一个以图像特征作为输入然后输出笔划参数的循环神经网络(RNN)解码器组成。RNN解码器同时接受一个来自前一时刻的隐向量作为输入,并将一个新的隐向量传递到下一时刻。

(3) 可微渲染:然后使用一个神经渲染器,来根据从预测参数 转化而来的贝塞尔曲线笔划参数 通过一个完全可微的方式去拟合笔划图像 。这过程允许在一个端到端的训练中使用像素水平的监督,而不需要配对的矢量数据(难以收集)。

(4) 可微拼贴:渲染得到的笔划图像此时是一个预定义的固定大小 ,然后会根据窗口坐标 和大小 拼贴到全分辨率的画布上。这个拼贴过程通过一个可微的方式实现,可以允许梯度传播给

在这之后,一个预测得到的指示值 用来决定一根笔划是否绘制。每个需要被绘制的笔划图像都会被置于画布上,来构成一个全分辨率的线稿图像,并用于后续跟目标线稿图的比对训练。

3.2 Stroke Generation

3.2.1 Stroke Representation

在我们的框架里,使用一种相对笔划(即连续笔划)的表示,这跟Sketch-RNN [Ha and Eck 2018]里面的stroke-3格式 很相似,其中 是下一个位置的偏移值, 是控制是否需要提笔的笔划状态。由于此表示会局限在直线和固定的线条宽度,我们增加了一个中间控制点 来构造一个二次贝塞尔曲线,以及一个宽度因子 来控制不同的宽度。我们还在笔划表示中增加了一个缩放因子,可以在每个时刻控制窗口大小,且允许模型在不同的情况下学习最优的窗口大小。总的来说,在t时刻笔划(位于坐标系)被表示为:

一个由三个控制点 指定的二次贝塞尔曲线表示为:

参考[Huang et al. 2019]中的参数设计,我们根据 定义一个二次贝塞尔曲线的笔划参数 : 

其中,起始控制点 应该总在动态窗口的中心, 是根据笔划 得到, 表示端点的宽度。在拼贴步骤后,笔划状态用来决定是否绘制改笔划。

 Relative Moving and Scaling

在每个时刻,虚拟笔以及动态窗口会移动到预测笔划的结束端点处。如果某个笔划不需要绘制,例如移动到图像的另一个部位,模型可以选择通过设置笔划状态 来使该笔画不绘制。我们称此为“仅移动”。另外,模型可以在每个时刻通过设置 去改变动态窗口的大小,从而允许扩大或者缩小窗口大小。给定窗口位置的移动 以及缩放因子 ,我们定义动态窗口的更新规则:

其中, 是输入图像的大小, 是预定义的动态窗口的最小值。会使用数值裁剪来避免可能发生的数值越界问题。在实验中,我们设置 ,初始值 是一个随机位置, 中的 。实际上,一个端点是两根连续的笔划中的交汇点。而两根连续笔划分属两个大小不同的窗口,所以在每个时刻这个端点用于前一个窗口的宽度因子均应该进行更新以适配下一个窗口。具体细节见补充材料。

Differentiable Pen State Binarizing

在训练中,笔划状态 是一个连续的值,但是我们希望它是一个离散的值,即0代表仅移动而不绘制,1代表绘制该笔划。直接的离散化操作(比如argmax)不可微,不能允许梯度的传播。为了解决这个问题,我们采用了softargmax [Luvizon et al. 2018]去拟合argmax函数,但同时保存梯度。这个可微的操作可以定义为:

本质上,softargmax操作输出一个连续的值,但极其接近由argmax操作生成的离散的索引值。在我们的场景下,当把softargmax应用于一个向量 (只有0/1的索引值),它将笔划状态 推到接近0或1。实验中我们设置

3.2.2  Stroke Generator

笔划生成器的结构图2-(b)所示,包含一个CNN encoder和一个使用LSTM cells [Hochreiter and Schmidhuber 1997]构建的RNN decoder。CNN encoder将从输入图像和画布中裁剪得到的小块作为输入。由于基于动态窗口的设计,模型往往会遇到一个情况是,裁剪小块内已经被绘制完毕,如图7的例子所示。为了促进模型学习移动到一个窗口外的未绘制区域,我们将整张输入图像和画布缩放到 大小,即裁剪小块的相同大小,并把他们传入生成器以作为额外的全局指引信息,能告诉模型哪里有未绘制笔划。 

CNN encoder在第一个层使用CoordConv [Liu et al. 2018a],后面接着卷积层、instance normalization [Ulyanov et al. 2016]和ReLU激活函数。然后,使用一个全连接层(FC)将图像特征投影到图像embedding 。接下来,RNN decoder将 以及前一个隐含状态 作为输入,并预测笔划参数 和一个新的隐含状态

3.3 Aligned Cropping and Differentiable Pasting

图3 不同类型的裁剪与拼贴操作。(a) 以虚线网格表示的图像正在被黑色实线的窗口裁剪。此时窗口的坐标和大小显然与离散的像素不对齐。普通常用的裁剪操作会量化为一个离散的窗口(淡蓝色区域),导致产生一个不对齐的小块。在拼贴阶段,这个淡蓝色小块区域由周围的白色像素pad,以构成拼贴后的画布。(b) 对齐裁剪能适用于一个无需与离散像素对齐的窗口。它依赖RoIAlign操作[He et al. 2017]实现,会将裁剪小块重采样到一个固定的大小 Wr(在这个例子中是2 × 2)。(c) 可微拼贴本质上与对齐裁剪有类似的工作原理,不同的是需要进行坐标系的变换。这里黑色实线表示进行裁剪的窗口,而虚线网格代表需要被裁剪的渲染小块。拼贴后的画布(黑色实线)能用于可微操作。网格块里面的小点表示用于RoIAlign的采样点(为了简洁仅画出了部分采样点)。

裁剪和拼贴模块在我们基于动态窗口的框架中扮演极其重要的角色。如图2-(a)所示,在第t个时刻,裁剪和拼贴操作基于均为浮点数值的窗口坐标 和大小 实现。如图3-(a)所示,对浮点数进行量化是一个直截了当的方法来进行空间的裁剪和拼贴,但是这会带来两个问题:窗口和裁剪或拼贴的小块不一定对齐;从拼贴后的画布中来的梯度无法传递回

为了解决在裁剪阶段的不对齐问题,我们提出一个对齐裁剪操作,能够适用于无需跟离散像素对齐的窗口坐标和大小。这个操作主要基于[He et al. 2017]提出的RoIAlign模块。如图3-(b)所示,这个操作先根据窗口大小 和重采样大小 将窗口划分为空间网格块。然后,在每个网格块内,设置若干个采样点,它们的值通过双线性图像插值方法计算。每个网格块的最终的值由上述采样点的值做平均得到。最后,得到固定大小的裁剪小块,而无需量化处理,且它们与窗口空间对齐。

在拼贴阶段,为了保证对齐以及梯度传播回窗口位置和大小,我们提出一个可微拼贴模块。如图3所示,类似对齐裁剪操作,可微拼贴操作也是基于双线性图像插值方法。其主要的不同在于,两者的2D插值在不同的坐标系下进行,因此需要进行坐标系的转换。在进行坐标系转换后,在连续数值空间下执行的双线性图像插值方法允许可微性。上述坐标系转换方法在补充材料有详细说明。

3.4 Differentiable Rendering

可微渲染器需要将1D笔划矢量参数渲染为2D笔划像素图像,从而允许在端到端的训练中使用一个像素水平的损失函数,且避免对矢量训练数据的依赖。为了允许梯度从渲染输出传播回笔划参数,我们参考一个类似工作Learning-To-Paint [Huang et al. 2019]的思路,即使用一个神经网络去根据给定的二次贝塞尔曲线参数 (3.2.1节提到)拟合笔划图像 。神经渲染器跟Learning-To-Paint里面使用的有类似的结构。在我们的实验中,渲染窗口大小设置为128 × 128,即跟笔划生成器中固定的图像大小 一致。更多关于神经渲染器的细节见补充材料。

4. Training

4.1 Overall Loss Function

我们的训练损失函数由3部分组成:(1) 一个像素水平的损失 用于进行视觉上的监督;(2) 一个数值越界惩罚 去避免带有相对移动和缩放因子的笔划参数的越界问题;(3) 一个笔划正则化损失 来鼓励模型去对生成的笔划矢量图进行简化。总的损失函数如下表示:

其中, 均为系数。

4.2 Raster-level Supervision

可微渲染模块允许我们使用一个像素水平的损失函数,来支持端到端的训练,且无需依赖矢量图像。使用L1或者L2损失来计算目标线稿图和渲染输出的逐像素的差是比较直接的方式,但是,我们实验中(5.5节)发现它们不适用于我们的任务,因为它们更关注局部细节从而导致较差的全局完整性。

为此,我们希望有一个像素水平的损失函数,可以同时保证线稿的细节和完整性。受感知相似性[Zhang et al. 2018]研究的启发,我们使用感知距离[Johnson et al. 2016](一种结构型的损失)作为像素水平的损失。具体地,我们使用VGG-16 [Simonyan and Zisserman 2015]作为感知模型,并在一个草图数据集QuickDraw [Ha and Eck 2018]上进行fine-tune以让其更好地适应线稿数据。

给定一个渲染后的线稿图像 (即画布的最后一个状态),一个目标线稿图 ,一个感知模型网络,我们定义 是第j层的激活后的特征图( )。第j层的感知损失定义为:

Loss Value Normalization

我们使用一个集合J的每个层的感知损失组合作为整体的像素水平的损失。但是,由于不同层的损失的值有不同的量级,像[Johnson et al. 2016]那样直接对原损失值相加可能导致层之间的不平衡。另外,简单的加权和不实用因为难以确定最好的权重。为了解决这个问题,我们对每个层损失的值进行归一化。具体地,在第j层,我们将其损失值除以之前所有训练步骤计算得到的损失的均值,然后得到归一化的感知损失 。最后,我们的像素水平损失如下计算:

4.3 Out-of-Bounds Penalty

笔划偏移值 和缩放因子 理论上可以根据像素水平的损失学习。但是,我们注意到由相对移动和缩放(在3.2.1节和公式(4)提及)导致的笔划参数越界问题,应该被惩罚,从而能够更好地教模型预测在边界内的相对数值。

给定在相对移动和缩放之后得到的原始值的窗口坐标 和大小 ,以及公式(4)中裁剪后的数值 ,我们对移动因子的数值越界惩罚损失定义为直接惩罚越界的距离:

对于缩放因子的惩罚定义为到上界 和下界 的归一化越界距离:

总的越界惩罚 定义为移动和缩放因子的损失的和: 。我们在补充材料展示了这个loss的效果。

4.4 Stroke Regularization Mechanism

任何的像素图像都可以由不同但视觉上等价的矢量图像渲染而来。尽管矢量图像可能在视觉上等价,但是它们有不同程度的复杂性。考虑到我们的方法使用像素水平损失训练,我们需要某种机制去鼓励矢量表示尽可能的简单,否则,可能存在如图4-(a)的冗余笔划,或如图4-(b)中长笔划可能由很多短笔划构成的问题。在图形设计中,冗余和不紧凑现象都会提升编辑的困难,所以我们希望得到矢量图像的最简单的表示。

图4 冗余和不紧凑现象样例。(a) 冗余笔划(如黑框所示)在已经绘制的笔划区域上重叠。(b) 橙色点表示每个笔划的端点。结果是一根直线被划分为很多短线段。

简洁程度越高,表示一个线稿所需的矢量参数越少。为此,我们提出一个笔划正则化机制,去约束笔划的数量,这与笔划状态 (1表示绘制,0表示提笔)有关。笔划正则化机制定义为绘制笔划的比例:

这个项是可微的,可以在端到端训练中加到公式(6)总的损失函数 中。当最小化总的损失,理论上模型能够学习到使用最少的笔划同时去绘制最好的线稿。结果是,冗余和不紧凑的笔划可以被避免。正如其他很多正则化项一样,对其权值过大会导致模型使用过于不足的笔划,从而使结果较差。我们在5.6节分析这个项的效果。

5. Experiments

我们在多个类型的图像到线稿生成任务,如干净线稿矢量化、粗糙草图简化,和自然图像到线稿转换,上验证我们的方法,去展示我们方法的泛化性能。

5.1 Dataset and Implementation Details

图5 矢量化和粗糙草图简化的训练样本。

Dataset

我们基于动态窗口的框架可以处理任意分辨率的图像。为了保证训练效率,我们使用低分辨率图像训练该模型,然后在高分辨率图像上验证其性能。对于矢量化和粗糙草图简化任务,我们使用包含矢量笔划数据的QuickDraw [Ha and Eck 2018]数据集,并将它们渲染为从128px到278px的不同分辨率的像素图像,如图5顶行所示。在粗糙草图简化任务,我们使用[Simo-Serra et al. 2018a,b]中铅笔画图像生成和粗糙度扩增技术来从干净线稿图中合成对应的粗糙草图(图5底行)。我们还另外测试自然图像到线稿草图转换任务,使用的是脸部图像数据集CelebAMask-HQ [Lee et al. 2020],其中我们可以根据人工标注的分割掩膜生成脸部草图。脸部图像和草图均渲染为256px分辨率大小。

我们还收集了独立的测试集,来进行量化评估。在矢量化和粗糙草图简化任务,我们从QuickDraw数据集的测试集中构造测试样本。会将渲染4个分辨率大小的像素图像:128, 256, 384 and 512。这样的测试集可以用于评估在更高分辨率下的泛化能力。对于自然图像到线稿草图转换任务,我们使用CelebAMask-HQ的测试集。

Training Details

对于矢量化任务,我们在VGG-16模型的relu1_2, relu2_2, relu3_3 and relu5_1层(简化为∪(12, 22, 33, 51))计算感知损失。对于粗糙草图简化和自然图像到线稿草图转换,我们分别采用∪(22, 33, 51)和∪(22, 33, 42, 51)。公式(6)的损失权重系数 设置为10。对于笔划正则化机制,我们采用一个线性递增而不是常量的损失权重系数 。我们在将全像素图像输入CNN来提供全局指引的时候,使用area插值方法来对该图像进行缩放。对于3个任务,我们分别训练了75𝑘/90𝑘/90k个迭代,均使用batch size为20。优化的方法使用Adam [Kingma and Ba 2014],使用初始学习率1e-4。训练时循环神经网络的最大步骤值设为48。

Testing Details

测试过程通过一个完全自动的方式一步步地实现,其中裁剪阶段、笔划生成、显式的渲染过程和拼贴过程在每个时刻按顺序地执行,正如训练阶段一样。当在更高分辨率和复杂度的图像上评估时,我们可以理论上使用无限大的笔划数量,因为我们的模型能够学习到利用笔划状态执行提笔操作。为了避免在模型绘制提前结束后仍进行没必要的提笔的预测,我们设置了一个提前停止策略。具体地,我们设置 个绘制的回合,每个回合都有最大数量 的绘制笔画。在每个回合里面,移动都是自动执行的。当连续预测了 个笔划状态均为提笔(p=0)时,我们终止该回合。在每个回合之后,我们将虚拟笔和窗口一起随机移动到一个远处的未绘制区域,这个操作对于高分辨率图像很有效。我们通过将窗口坐标随机移动到一个远离已绘制区域的方法来实现。这个策略能够最大化矢量绘制结果的完整性,且随机的移动到远处(可视为一种人为干预)仅在一个回合内模型不再能绘制更多笔划的时候执行。

对于矢量化、粗糙草图简化、自然图像到线稿草图转换三个任务,我们均设置 以及 发现效果较好。对于矢量化任务,我们还设置了一个方法来提前停止绘制,即不需要使用所有的绘制回合。这个方法、数据集和更多的实现具体细节见补充材料。

5.2  Quantitative Evaluation Metrics

图6 量化评估指标的工作机理样例。Chamfer distances (↓)数量级为10e-5,perceptual scores (↓)为10e-2。两个指标都是数值越低越好。

量化评估的目标在于衡量目标线稿图和渲染输出的像素水平的相似度。这个仍然是一个开放性的问题,因为目前还难以去定义能够跟人类感知完全一致的相似度指标。[Yan et al. 2020]中采用的Chamfer distance [Fan et al. 2017]能够高效地衡量草图与草图的相似性,但是我们仍然发现这个指标存在一些问题。如图6所示,A输出比B的chamfer distance值更低,但A的细节显然更差。

根据一个粗略的观察,我们注意到chamfer distance对绘制的完整性更敏感,但对细节不敏感。但是,绘制线稿中的细节也很重要。我们也注意到从4.2节的perceptual loss而来的perceptual score对细节更敏感,因此也使用它作为另一个指标。如图6所示,与B相比,A输出有一个更低的chamfer distance(即对应更高的完整性),但有一个更高的perceptual score(对应更差的细节)。C输出比B视觉上更完整,所以chamfer distance和perceptual score都更低。

与训练中的perceptual loss(4.2节)不同,测试时没有历史数据来计算损失归一化。因此,我们仅使用VGG-16的中间一个层relu3_3来计算perceptual score。对于测试集中不同的分辨率,我们取均值。

5.3 Effectiveness of Moving and Scaling

Moving

我们的模型学习到通过使用一个 的笔划状态,去打断连续的笔划或者移动到一个未绘制区域,来让虚拟笔以及动态窗口四处游动。图7展示了两个代表性的例子。顶行展示了一个常见的问题:窗口移动到一个窗口内不再有未绘制像素的位置。接下来,它从位置A往右上方向的位置B(包含未绘制像素)移动,而不进行绘制。然后,模型重新开始绘制。底行展示了在独立的笔划之间一些必要的中断。

图7 虚拟笔和窗口移动的结果。最后一列展示了笔划绘制顺序,以及仅移动但不绘制的轨迹。虚线红框表示目前里面再没有未绘制像素。黑色箭头指示移动的方向。

Scaling

尽管缺乏实际的缩放数据来进行直接的监督,模型仍能够学习一些普遍且有意义的规则,如图8所示。大多数情况下,模型使用小窗口去绘制细节。但是,当遇到窗口不再包含未绘制像素的情况(A1),模型会尝试去扩大窗口,来找到未绘制像素(A1-A3),然后使用一个大步幅移动到那里(A3-A4)。之后,模型迅速缩小窗口来重新绘制(A5)。这些结果表明模型可以学习选择一个合理的窗口大小来适应不同的情况。

图8 窗口缩放的结果。红框表示窗口。A1到A7是序列帧。右上角的数字指示窗口的大小。可以看到A1到A3,模型扩大了动态窗口来找到未绘制区域。A4中的蓝色箭头表示窗口的移动,而不绘制笔划。

我们还跟使用一个固定窗口大小的模型比较。为了对比的公平性,我们使用相同的神经渲染器和渲染大小128px,并设置窗口的固定大小为128px。表1的量化结果表明,固定窗口大小的模型(“Window”列中的“Fixed”)在两个指标上性能都更差。我们相信这很可能因为128px的窗口大小对于该模型用于绘制细节来说太大了,这是基于观察了我们动态窗口模型的窗口大小统计后的猜测。我们模型大多数用于绘制笔划的窗口的大小在30px到70px之间,不管是低分辨率图像还是高分辨率的。所以似乎更小的窗口能够绘制更短的笔划从而帮助复原细节。但是,过量使用小窗口会导致较差的整体完整性,这是因为在训练过程中我们仅允许使用有限数量的笔划。这个也解释了为什么我们的模型能够学习使用更大的窗口去进行仅移动不绘制。可视化结果和窗口大小的分布详见补充材料。

表1 消融实验结果。为了对比的公平性,我们仅改变其中一个参数(加粗),并维持其他参数与最后一行即我们模型的参数一致。“Perceptual Layers”里面的数字表示relu层。Perceptual score的值的数量级为e-2,chamfer distance的是e-3。

5.4 Effectiveness of Differentiable Pasting

如在3.3节讨论的,不对齐的裁剪和不可微的拼贴会导致不对齐和不可微性。后者在拼贴过程中会导致笔划参数中笔划位置和缩放因子的梯度的丢失,从而不利于端到端训练。因此,我们主要研究可微拼贴的效果。

我们计算了缩放因子的分布统计,发现在低和高分辨率下,有可微拼贴的模型均预测集中在[0.8, 1.2]区间的缩放因子的值。但是,在没有可微拼贴的情况下,会出现不正常的分布,会在0.5附近和2.0附近出现峰值。可视化结果显示,缩放因子的值在约0.5和约2.0之间交替改变,导致窗口大小的严重抖动,而不是如在基于可微拼贴的模型中有意义的改变。这不正常的缩放因子值是因为由于没有正常的梯度传播造成的学习失败。缩放因子数值分布和可视化结果详见补充材料。

图9展示了可微和不可微拼贴的可视化效果对比。可以看到,带有不可微拼贴的模型遇到线稿完整性较差的问题,且其笔划顺序表明窗口无法学到移动到未绘制区域。表1中的量化结果与可视化结果是一致的,显示在两个指标上都有明显的变差(“Pasting”列中的“Non-diff.”),特别是在对整体完整性更敏感的chamfer distance上。上述结果也说明,不对齐,以及特别是由不可微拼贴导致的梯度阻断阻止了模型学习好笔划位置的更新。

图9 可微(“diff.”)和不可微(“non-diff.”)拼贴的对比。

5.5 Ablation Study of Raster-level Loss

图10 不同像素水平损失的效果对比。“Perc.”后面的数字表示relu层的组合。

Other Raster Losses

我们先比较采用的感知损失(perceptual loss)和一个逐像素差异损失,即主要是L1距离(L2距离是类似的效果)。图10展示了使用L1损失的模型仅绘制草图的一小部分,且生成密集的短笔划。这很可能因为逐像素损失在考虑草图整体结构能力方面的局限。表1中明显更差的chamfer distance同样表明其在整体性上的不足。我们也研究了在利用GAN [Goodfellow et al. 2014]进行图像合成任务中广泛使用的对抗损失,但是,我们没有看到明显的提升。

Different Perceptual Layer Combinations

我们同时使用VGG-16模型中浅层(relu1_2、relu2_2)和深层(relu3_3、relu5_1)来构造感知损失,并验证它们各自的效果。图10表明使用浅层(Perc.12_22)的模型存在完整性更差的问题,虽然能够很好地绘制细节。基于深层(Perc.33_51)的模型能够绘制完整的草图,但在细节上存在不足。这些结果反映了不同层的不同优点。具体来说,浅层主要关注low-level信息,因而能够恢复局部细节,但存在绘制不完整的问题。相反,深层主要存储high-level信息,所以它们可以更好保证全局完整性,但生成细节较差。量化结果的对比进一步证明这个结论,即发现与∪(33, 51)相比,∪(12, 22)对细节更敏感的perceptual score更好,而对完整性更敏感的chamfer distance更差。我们提出的方法在两个指标表现都更优。这说明将浅层和深层组合来构造感知损失可以平衡两者的效果,且获得两者的优点。

Loss Value Normalization

我们从一个粗略的观察中注意到,越深层的损失的值有越高的数量级(即越大的数值)。因此,在没有损失值归一化时,越深层在感知损失中扮演越重要的角色。表1中的量化评估表明没有损失值归一化的模型(“Loss Norm.”列的“×”)在两个指标上比我们的模型表现均更差。这些都证明了有必要使用损失值归一化来平衡不同层的能力。更多消融实验的结果详见补充材料。

5.6 Stroke Regularization

Redundancy Removal

笔划正则化机制的一个功能在于能够避免冗余笔划,因此它强制模型去使用更少的笔划去绘制,但同时维持一个相似的线稿的样子。图11展示了一个没有正则化的模型( = 0.0)如何生成一些叠加在已经绘制的笔划区域上的冗余笔划。对比之下,带有正则化的模型能够极大地避免冗余笔划。例如,在模型带有权重 时仅生成4个重叠的笔划(蓝色框所示);带有更大的权重 时,没生成重叠笔划。

图11 通过调整笔划正则化项权重系数𝜆𝑟𝑒𝑔来去除冗余笔划的效果。灰色矢量输出上的红色笔划表示冗余或者重叠的笔划。

Compactness Improvement

笔划正则化机制的另一个功能是提升矢量笔划紧凑程度。图12表明,随着笔划正则化权重 增大,模型使用更少但更长的笔划来绘制草图,同时维持相当高的保真度。例如,巴士的最左部分(蓝色框),带有权重0.0、0.05、0.2的模型分别包含4、3、2个笔划。权重越大,矢量结果的紧凑性更高。

图12 通过调整笔划正则化项权重系数𝜆𝑟𝑒𝑔来提升笔划紧凑性的效果。橙色的点表示每个笔划的端点。

图13的统计结果也显示,随着权重 增大,average stroke number有一个下降的趋势,而average stroke length有一个上升的趋势。当 ,average stroke number是没有笔划正则化的模型的约76%,且在量化评估中维持可比的性能,没有明显的变差。这证明使用笔划正则化机制后,我们的模型确实能够学习到使用更少但必要的矢量笔划去表示一个线稿图像。

图13 笔划正则化项不同权重系数𝜆𝑟𝑒𝑔的量化评估实验。图中的数值均经过缩放调整来更好地可视化趋势。

Parameter Sensibility

根据图13,当加入权重为 的笔划正则化后,perceptual score和chamfer distance都有轻微的降低,且模型使用更少(85%)的笔划去绘制。这表明,少量的笔划正则化可以去同时提升保真度和简洁程度。但是,如在4.4节的描述,当加入过量的正则化约束,会导致整体性能的下降。图13也展示了当 ,模型使用特别少的笔划去绘制,但同时在量化评估上表现出明显的性能下降。可视化结果详见补充材料。

5.7 Vectorization: Comparison with Existing Approaches

Evaluation Settings

我们先与基于学习的方法Learning-To-Paint [Huang et al. 2019]比较,因其与我们的工作最接近。由于它仅适用于固定的分辨率,我们对于不同的图像大小训练不同的模型。我们使用官方实现代码中相同的超参数,除了将一个action bundle里面的笔划数量设置为1,这是因为要跟我们一样进行一个一个笔划的预测。我们仅在QuickDraw数据集的草图上做对比实验,因为在更高分辨率的图像上训练,Learning-To-Paint模型似乎无法收敛。

然后,我们与两个代表性的矢量化方法,Fidelity-vs-Simplicity [Favreau et al. 2016]和PolyVectorization [Bessmeltsev and Solomon 2019],在不同高分辨率的真正干净线稿图上比较。对于Fidelity-vs-Simplicity,我们像[Bessmeltsev and Solomon 2019]那样尝试两组参数,并选择视觉上最好的结果。对于PolyVectorization,我们使用默认参数。

Qualitative Results

跟Learning-To-Paint的对比如图14所示。在低分辨率(128px),Learning-To-Paint可以使用一个小的笔划数量(16)去绘制草图。但是,因其使用离散的笔划,在笔划连续性视觉效果上,它比我们使用连续笔划的结果更差。另外,因为缺乏一个信号来控制提笔,所以出现冗余的绘制。当使用更大的笔划数量(48),或者应用到更高分辨率图像(256px),它无法重构出该草图。这反映了由于使用强化学习,其在高分辨率图像上存在局限性,以及在对长序列建模存在不稳定性。

图14 与Learning-To-Paint [Huang et al. 2019]的比较。

图15展示了在干净线稿图上的比较。Fidelity-vs-Simplicity很容易生成连笔(绿框),且无法绘制独立分离的笔划(如眉毛)。连笔是由于其自身基于区域分割的骨架提取算法造成,会在比较靠近的线条之间加一个连笔来更好地对一个大的复杂区域进行划分。另外,这个算法对独立分离的笔划不敏感。PolyVectorization生成的结果在带有细节和复杂连接点的地方(红框)存在瑕疵。这原因在于这个方法主要对X型和T型连接点通过利用帧场追踪像素方向的方法来进行两者歧义消除,但对于更复杂的、带有急转弯和细节的连接点不鲁棒。相比之下,我们的模型在整体性和细节上都表现得更好。在有提出的动态窗口的情况下,我们的模型学习到寻找并滑动到未绘制区域,因此可以绘制独立分离笔划。与上面基于优化的方法(在不符合预定义的曲线参数化规则的情况下效果不行)不同,我们的模型学习去尽可能恢复未绘制像素,所以细节可以被保证。

图15 与现有矢量化方法在真正干净线稿图上的比较。我们的结果来自带有笔划正则化权重𝜆𝑟𝑒𝑔 = 0.02的模型。更多结果见补充材料。

Computation Time

对于所有方法,我们在相同环境下测试所有的例子,具体环境是:Windows PC,带有一个Intel i7-8700 @ 3.2GHz CPU,一个48GB RAM和一个NVIDIA GeForce RTX 2070 GPU。为了更好地对比,我们展示了我们模型在有或没有GPU条件下的运行时间。表2表明在没有GPU的相同环境下,我们的模型比Fidelity-vs-Simplicity快很多。与PolyVectorization相比,我们的方法在低分辨率图像上需要差不多的运行时间,但在复杂的高分辨率图像上速度更快。当使用GPU测试,我们的方法还能更快。

表2 在真正线稿上不同矢量化方法的运行时间。‘F-vs-S’表示Fidelity-vs-Simplicity [Favreau et al. 2016],‘PolyVec’表示PolyVectorization [Bessmeltsev and Solomon 2019]。

5.8 Other Applications

5.8.1 Rough Sketch Simplification

Evaluation Settings

我们与Learning-To-Paint [Huang et al. 2019]在固定分辨率的QuickDraw数据集和对应的合成粗糙草图上比较。据我们所知,目前还没有工作能够用在粗糙草图(带有背景纹理)简化且直接生成矢量线条。因此,我们将像素级的粗糙草图简化工作[Simo-Serra et al. 2018a]和一个矢量化方法进行组合作为一个基线(baseline)。矢量化方法直接用到粗糙草图上作为另一个基线。这里使用PolyVectorization [Bessmeltsev and Solomon 2019],因为它与Fidelity-vs-Simplicity [Favreau et al. 2016]相比有更好的视觉效果。我们同时在用铅笔画图像生成技术[Simo-Serra et al. 2018a]作用在真实干净线稿上得到的粗糙草图,和从一个最近公开的基准数据集[Yan et al. 2020]上得到的真实粗糙草图上比较我们方法和基线方法的性能。

对于在基准数据集[Yan et al. 2020]上的量化评估,我们遵从其提出的协定,为每个粗糙草图使用其所有输入的变体与所有真实干净线稿比较后最好的chamfer distance分值。跟如Fidelity-vs-Simplicity和PolyVectorization这些仅生成固定笔划粗细的是量化方法相比,我们方法能够生成不同粗细的线条。根据其针对来自[Simo-Serra et al. 2018a]方法的像素级结果的评估协定,我们使用形态学膨胀方法(核大小为3)作用在真实的线条上,来匹配我们渲染输出的线条粗细。这样能够避免因线条粗细不一样带来的错误惩罚。

Qualitative Results

在QuickDraw数据集上,Learning-To-Paint似乎无法在任何分辨率和任何笔划数量上表现得很好,跟图14第二行的结果类似。这很可能因为Learning-To-Paint本身仅为重构任务设计的,不适用于域迁移任务。

在复杂的粗糙草图上,PolyVectorization对笔划颜色深浅很敏感,如图16所示。由于在合成粗糙草图上笔划颜色很浅,PolyVectorization的结果往往有很差的完整性;在真实的粗糙草图上,PolyVectorization通常会丢失一些很细且颜色较浅的笔划。这是因为其中的阈值操作,即会保留有用的像素,但也通常错误地丢失了重要的像素。像素级的粗糙草图简化方法[Simo-Serra et al. 2018a]能够输出有平滑线条的简化草图,但还是存在瑕疵,比如由于粗糙草图中的噪声导致的冗余的平行笔划(红框),以及丢失一些重要的部分(Bird的眼睛、Penguin的额头,和Hand的袖子)。需要后续的矢量化方法来将像素级的结果图像转化为矢量图像,但上述瑕疵无可避免地重复出现。对比之下,在给定粗糙草图图像作为输入时,我们的模型能够生成可比的简化后的结果,且仅需一步即可生成矢量格式的输出。另外,它能在很大程度上避免了噪声的影响,且一些重要但颜色很浅的线条仍然能够很好识别。

图16 与现有粗糙草图简化方法的比较。Bird和Penguin是合成粗糙草图,Hand来自一个粗糙草图基准数据集[Yan et al. 2020]。第3列的小图是来自粗糙草图简化方法[Simo-Serra et al. 2018a]的像素水平输出。

Quantitative Results

我们为每个粗糙草图计算最好的chamfer distance,并得到一个均值结果0.001696。图17展示了跟其他方法的对比,表明我们的方法能够获得与其他方法可比的表现。我们方法比MasteringSketching [SimoSerra et al. 2018a]更差,是因为其在真实粗糙草图上进行训练,因此能够在大部分真实粗糙草图上表现更好。我们的模型由于在带有背景纹理的合成粗糙草图上进行训练,能够比大部分矢量化方法性能更好。我们相信,我们方法用真实粗糙草图数据集进行训练监督的话,很可能能够进一步提升性能。

图17 在粗糙草图基准数据集[Yan et al. 2020]上基于chamfer distance (↓)的量化评估。

5.8.2 Photograph to Line Drawing

Evaluation Settings

我们使用Flickr-Faces-HQ (FFHQ)数据集[Karras et al. 2019]的验证集,并将其缩放到256px,来进行验证评估。我们使用Learning-To-Paint [Huang et al. 2019]作为其中一个基线。与粗糙草图简化类似,我们将像素级图像转换方法Photo-Sketching [Li et al. 2019] 与PolyVectorization [Bessmeltsev and Solomon 2019]进行组合,作为另一个基线。

Qualitative Results

图18展示了我们方法与基线方法的对比。Learning-To-Paint无法绘制合理的草图,正如在粗糙草图简化任务表现那样,这进一步证明了Learning-To-Paint在域迁移任务上难以取得效果。Photo-Sketching在脸部草图生成任务的表现很好,但需要依赖额外的矢量化技术去得到矢量结果。对比之下,我们的方法生成可比的脸部草图,且更重要的是,同时支持域迁移和矢量化。

图18 在自然图像到线稿草图转换任务上与现有方法的比较。第3列的小图来自Photo-Sketching [Li et al. 2019]。

6. Limitations and Discussion

我们基于动态窗口的框架能够学习到滑动到一个未绘制区域,因此能够适用于任意分辨率的图像。但是,在一些复杂度极高的例子,它可能无法绘制所有的线条。图19展示了在生成的矢量线稿图中左边和底部的一些笔划丢失了,尽管最大的笔划数量被设置为一个相当大的值5000(作为参考,图15中的Dracolion仅使用了约1200个笔划绘制)。这是因为,当CNN encoder将该复杂图像缩小并作为全局指引信息时,会导致一个细线的消失。尽管我们在测试的时候使用随机移动的方法(5.1节),丢失的笔划因为太小而难以被注意到。因此,直接将全像素图像缩小,或者随机移动可以被视为用于全局检测未绘制的细线的一种可行,但不是最优的解决方法。为了更好捕获全局信息且不依赖随机移动,使用更高分辨率图像进行训练、另一种对全局指引编码的方法(如金字塔视野)、或者一种不同的全局指引信息可以被考虑,来解决这个问题。

图19 我们方法在一个复杂度极高的样例上的局限性。尽管最大笔划数量已经设置为5000,输出结果中一些短笔划(红框)仍然遗失了。

另一个局限性在于,我们的框架仍难以很好地泛化到复杂的粗糙草图和自然图像,且会在结果中生成瑕疵。例如,在图16,我们的结果的Penguin中的线条没有Sketch Simplification结果那么平滑;在图18,我们结果的鼻子与眉毛连接了,但在Photo-Sketching的结果中是明显分隔开的。不平滑问题可以通过使用曲线优化技术[Das et al. 2020]作为后处理来解决。另外,两个任务的表现都可以由将像素水平粗糙草图简化或图像到草图转换的模型与我们的方法组合成一个单独的端到端模型来提高,这也会是一个很有希望的后续研究方向。

尽管基于虚拟笔的方法能够在绘制短或长线条时候十分高效,但它在一些类型的笔划连接点处仍然表现得不尽如人意。例如,在图15的Puppy的笔划顺序中,有一些T型连接点(黑框),其中的横曲线没有一起绘制(从左到右或者相反)。原因在于我们的模型并没有专门考虑在对线稿矢量化过程中进行拓扑结构或者有意义的绘制顺序的恢复。我们觉得这个回是一个问题,但不是一个我们工作的局限性,因为本身对于绘制顺序并没有一个普遍的共识(比如一个方形,东亚人和西方人的绘制顺序不一样)。另外,现实中不同的人有不同的绘制方式。一些艺术家更喜欢先绘制轮廓,然后用短线段填充内部细节,但是另外的艺术家一部分一部分地绘制。正确的拓扑结构和特定的绘制顺序对一些特定的应用可能很有用,此时,可以结合后处理操作、预定义的规则作为先验或者约束信息,这些也是我们方法的后续扩展方向。

References

  1. Mikhail Bessmeltsev and Justin Solomon. 2019. Vectorization of line drawings via polyvector fields. ACM Transactions on Graphics (TOG) 38, 1 (2019), 1–12.
  2. Jifeng Dai, Kaiming He, and Jian Sun. 2016. Instance-aware Semantic Segmentation via Multi-task Network Cascades. In CVPR.
  3. Ayan Das, Yongxin Yang, Timothy Hospedales, Tao Xiang, and Yi-Zhe Song. 2020. BézierSketch: A generative model for scalable vector sketches. In The European Conference on Computer Vision (ECCV).
  4. Vage Egiazarian, Oleg Voynov, Alexey Artemov, Denis Volkhonskiy, Aleksandr Safin, Maria Taktasheva, Denis Zorin, and Evgeny Burnaev. 2020. Deep Vectorization of Technical Drawings. arXiv preprint arXiv:2003.05471 (2020).
  5. Haoqiang Fan, Hao Su, and Leonidas J Guibas. 2017. A point set generation network for 3d object reconstruction from a single image. In Proceedings of the IEEE conference on computer vision and pattern recognition. 605–613.
  6. Jean-Dominique Favreau, Florent Lafarge, and Adrien Bousseau. 2016. Fidelity vs. Simplicity: a Global Approach to Line Drawing Vectorization. ACM Transactions on Graphics (SIGGRAPH Conference Proceedings) (2016).
  7. Yaroslav Ganin, Tejas Kulkarni, Igor Babuschkin, SM Ali Eslami, and Oriol Vinyals. 2018. Synthesizing Programs for Images using Reinforced Adversarial Learning. In ICML.
  8. Ross Girshick. 2015. Fast r-cnn. In Proceedings of the IEEE international conference on computer vision. 1440–1448.
  9. Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. 2014. Generative adversarial nets. In Advances in neural information processing systems. 2672–2680.
  10. Alex Graves. 2013. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850 (2013).
  11. Yi Guo, Zhuming Zhang, Chu Han, Wenbo Hu, Chengze Li, and Tien-Tsin Wong. 2019. Deep Line Drawing Vectorization via Line Subdivision and Topology Reconstruction. In Computer Graphics Forum, Vol. 38. Wiley Online Library, 81–90.
  12. David Ha and Douglas Eck. 2018. A Neural Representation of Sketch Drawings. In International Conference on Learning Representations.
  13. Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross Girshick. 2017. Mask r-cnn. In Proceedings of the IEEE international conference on computer vision. 2961–2969.
  14. Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long short-term memory. Neural computation 9, 8 (1997), 1735–1780.
  15. Zhewei Huang, Wen Heng, and Shuchang Zhou. 2019. Learning to paint with modelbased deep reinforcement learning. In Proceedings of the IEEE International Conference on Computer Vision. 8709–8718.
  16. Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A Efros. 2017. Image-to-image translation with conditional adversarial networks. In Proceedings of the IEEE conference on computer vision and pattern recognition. 1125–1134.
  17. Justin Johnson, Alexandre Alahi, and Li Fei-Fei. 2016. Perceptual losses for real-time style transfer and super-resolution. In European conference on computer vision. Springer, 694–711.
  18. Tero Karras, Samuli Laine, and Timo Aila. 2019. A style-based generator architecture for generative adversarial networks. In CVPR.
  19. Byungsoo Kim, Oliver Wang, A. Cengiz Öztireli, and Markus Gross. 2018. Semantic Segmentation for Line Drawing Vectorization Using Neural Networks. Computer Graphics Forum (Proc. Eurographics) 37, 2 (2018), 329–338.
  20. Diederik P Kingma and Jimmy Ba. 2014. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980 (2014).
  21. Cheng-Han Lee, Ziwei Liu, Lingyun Wu, and Ping Luo. 2020. MaskGAN: Towards Diverse and Interactive Facial Image Manipulation. In CVPR.
  22. Mengtian Li, Zhe Lin, Radomir Mech, Ersin Yumer, and Deva Ramanan. 2019. Photosketching: Inferring contour drawings from images. In 2019 IEEE Winter Conference on Applications of Computer Vision (WACV). IEEE, 1403–1412.
  23. Tzu-Mao Li, Michal Lukáč, Michaël Gharbi, and Jonathan Ragan-Kelley. 2020. Differentiable vector graphics rasterization for editing and learning. ACM Transactions on Graphics (TOG) 39, 6 (2020), 1–15.
  24. Chenxi Liu, Enrique Rosales, and Alla Sheffer. 2018b. Strokeaggregator: Consolidating raw sketches into artist-intended curve drawings. ACM Transactions on Graphics (TOG) 37, 4 (2018), 1–15.
  25. Lingjie Liu, Duygu Ceylan, Cheng Lin, Wenping Wang, and Niloy J Mitra. 2017. Imagebased reconstruction of wire art. ACM Transactions on Graphics (TOG) 36, 4 (2017).
  26. Rosanne Liu, Joel Lehman, Piero Molino, Felipe Petroski Such, Eric Frank, Alex Sergeev, and Jason Yosinski. 2018a. An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution. In Advances in Neural Information Processing Systems.
  27. Xueting Liu, Tien-Tsin Wong, and Pheng-Ann Heng. 2015. Closure-aware sketch simplification. ACM Transactions on Graphics (TOG) 34, 6 (2015), 1–10.
  28. Diogo C Luvizon, David Picard, and Hedi Tabia. 2018. 2D/3D Pose Estimation and Action Recognition Using Multitask Deep Learning. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 5137–5146.
  29. John FJ Mellor, Eunbyung Park, Yaroslav Ganin, Igor Babuschkin, Tejas Kulkarni, Dan Rosenbaum, Andy Ballard, Theophane Weber, Oriol Vinyals, and SM Eslami. 2019. Unsupervised Doodling and Painting with Improved SPIRAL. arXiv preprint arXiv:1910.01007 (2019).
  30. Reiichiro Nakano. 2019. Neural painters: A learned differentiable constraint for generating brushstroke paintings. arXiv preprint arXiv:1904.08410 (2019).
  31. Gioacchino Noris, Alexander Hornung, Robert W Sumner, Maryann Simmons, and Markus Gross. 2013. Topology-driven vectorization of clean line drawings. ACM Transactions on Graphics (TOG) 32, 1 (2013), 1–11.
  32. Edgar Simo-Serra, Satoshi Iizuka, and Hiroshi Ishikawa. 2018a. Mastering sketching: adversarial augmentation for structured prediction. ACM Transactions on Graphics (TOG) 37, 1 (2018), 1–13.
  33. Edgar Simo-Serra, Satoshi Iizuka, and Hiroshi Ishikawa. 2018b. Real-time data-driven interactive rough sketch inking. ACM Transactions on Graphics (TOG) 37, 4 (2018), 1–14.
  34. Edgar Simo-Serra, Satoshi Iizuka, Kazuma Sasaki, and Hiroshi Ishikawa. 2016. Learning to simplify: fully convolutional networks for rough sketch cleanup. ACM Transactions on Graphics (TOG) 35, 4 (2016), 1–11.
  35. Karen Simonyan and Andrew Zisserman. 2015. Very Deep Convolutional Networks for Large-Scale Image Recognition. In International Conference on Learning Representations.
  36. Jifei Song, Kaiyue Pang, Yi-Zhe Song, Tao Xiang, and Timothy M Hospedales. 2018. Learning to sketch with shortcut cycle consistency. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 801–810.
  37. Tibor Stanko, Mikhail Bessmeltsev, David Bommes, and Adrien Bousseau. 2020. IntegerGrid Sketch Simplification and Vectorization. In Computer Graphics Forum, Vol. 39. Wiley Online Library, 149–161.
  38. Qingkun Su, Xue Bai, Hongbo Fu, Chiew-Lan Tai, and Jue Wang. 2018. Live sketch: Video-driven dynamic deformation of static drawings. In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems. 1–12.
  39. Dmitry Ulyanov, Andrea Vedaldi, and Victor Lempitsky. 2016. Instance normalization: The missing ingredient for fast stylization. arXiv preprint arXiv:1607.08022 (2016).
  40. Saining Xie and Zhuowen Tu. 2015. Holistically-nested edge detection. In Proceedings of the IEEE international conference on computer vision. 1395–1403.
  41. Xuemiao Xu, Minshan Xie, Peiqi Miao, Wei Qu, Wenpeng Xiao, Huaidong Zhang, Xueting Liu, and Tien-Tsin Wong. 2019. Perceptual-aware Sketch Simplification Based on Integrated VGG Layers. IEEE Transactions on Visualization and Computer Graphics (2019).
  42. Chuan Yan, David Vanderhaeghe, and Yotam Gingold. 2020. A benchmark for rough sketch cleanup. ACM Transactions on Graphics (TOG) 39, 6 (2020), 1–14.
  43. Richard Zhang, Phillip Isola, Alexei A Efros, Eli Shechtman, and Oliver Wang. 2018. The unreasonable effectiveness of deep features as a perceptual metric. In Proceedings of the IEEE conference on computer vision and pattern recognition. 586–595.
  44. Ningyuan Zheng, Yifan Jiang, and Dingjiang Huang. 2019. StrokeNet: A Neural Painting Environment. In International Conference on Learning Representations.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值