该论文发表于计算机图形学顶级国际学术会议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

《General Virtual Sketching Framework for Vector Line Art》论文介绍相关推荐

  1. 论文介绍《CrowdFormer: An Overlap Patching Vision Transformer for Top-Down Crowd Counting 》

    paper [ijcai2022] CrowdFormer: An Overlap Patching Vision Transformer for Top-Down Crowd Counting co ...

  2. 论文阅读-ViTDet:Exploring Plain Vision Transformer Backbones for Object Detection

    目录 A.写在前面 B.有个工作我得说说 C.摘要拆分 D.先看看结果 E.代码细节 1.MaskRCNN部分的修改 2.数据增强部分 3.SFP的实现 F.参考文献 A.写在前面 ViTDet[1] ...

  3. 深度学习:论文阅读:(ICLR-2021)Vision Transformer

    这里写目录标题 论文详情 transormer与cnn 预备知识- Self-Attention和Multi-Head Attention Self-Attention Multi-head atte ...

  4. 品论文:VISION TRANSFORMER (VIT)

    今天上午看了个论文,每当遇到全英文论文的时候,就会发现自己的英文水平属实是太一般,但是看完这篇论文确实是感触良多!!! 论文标题:<AN IMAGE IS WORTH 16X16 WORDS: ...

  5. Vision Transformer(ViT) 2: 应用及代码讲解

    文章目录 1. 代码讲解 1.1 PatchEmbed类 1)`__init__ `函数 2) forward 过程 1.2 Attention类 1)`__init__ `函数 2)forward ...

  6. 【神经网络】2021-ICCV-Pyramid Vision Transformer:用于无卷积密集预测的多功能骨干

    2021-ICCV-Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction Without Convolutions ...

  7. A Survey on Vision Transformer(1/2)

    摘要 Transformer是一种基于自注意力机制的深度神经网络,最初被用于NLP,后逐步被应用于计算机视觉任务中去.论文探讨了Transformer的主干网络.高/中级视觉处理.低级视觉处理及视频处 ...

  8. Vision Transformer详解

    论文名称: An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale 论文下载链接:https://arxi ...

  9. PVT(Pyramid Vision Transformer)学习记录

    引言与启发 自从ViT之后,关于vision transformer的研究呈井喷式爆发,从思路上分主要沿着两大个方向,一是提升ViT在图像分类的效果:二就是将ViT应用在其它图像任务中,比如分割和检测 ...

  10. Crowd Counting论文小结(持续更新)

    Crowd Counting论文小结(持续更新) CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly ...

最新文章

  1. mdAAPP:安装后会一直存在手机中,安装数据及缓存都会占用大量内存,而且各家全家桶APP之间都有一些藕断丝连的唤醒关系。 小程序:不需要安装在手机上,微信有严格的小程序内存管理机制,和微信共用内存使
  2. 使用ros发布UVC相机和串口IMU数据
  3. MYSQL 在当前时间加上或减去一个时间段
  4. 写完程序 看 蜡笔小新 的有木有
  5. 关停近300家门店,海底捞:苦果只能一口一口咽下去
  6. PHP 五大运行模式
  7. R读写Excel文件中数据的方法
  8. CISP 和 NISP差别一览
  9. 堆排序算法过程图解_堆排序算法
  10. 内存带宽测试工具 mbw
  11. 创业的几条至理名言,每条对创业者都大有帮助,值得收藏!
  12. c语言编译器w7,wintc下载|c语言编译器wintc win7/win8兼容版 v2.0下载 64位32位 - 3322软件站...
  13. 智能仓储系统作业流程及价值
  14. Spark~~SparkCore
  15. 直接在html打开ppt,PPT内如何直接看网页
  16. python与金融工程的区别_科研进阶 | 纽约大学 | 金融工程、量化金融、商业分析:Python金融工程分析...
  17. Java+MySQL基于SSM的爱心救助车队管理系统的设计与实现 开题 毕业设计
  18. 影视剪辑高清视频素材怎么找?附全网视频下载工具使用教程方法
  19. Mac电脑上最好的3个azw3阅读器
  20. 数据库恢复挂起解决办法

热门文章

  1. DM8 分析core 文件
  2. 应急响应流程以及入侵排查
  3. OpenCV中的相机失真、内外参、不失真图像、相机校准
  4. POJ 2240 Arbitrage(最短路 套汇)
  5. MySql---关键字 limit和offset
  6. 挑战“数据霸权”,巴克云筑起去中心化网络
  7. 【玩转云函数】腾讯云函数 Python 依赖安装
  8. Leetcode刷题之二叉树遍历——迭代(显示栈)【CSDN博客】
  9. 软件与中国古代史:政界往事(中)
  10. Web简单快捷的指纹识别小工具_在线指纹识别平台设计