平滑矢量图形综述:表示、创建、光栅化和图像矢量化的最新进展

摘要

平滑矢量图形领域探索了轻量级图像表示的表示、创建、光栅化和自动生成,常用于可缩放图像内容。过去几十年中,出现了多种概念性方法来表示具有平滑渐变的图像,每种方法都引发了独立的研究线索,包括流行的梯度网格和扩散曲线。随着计算模型的成熟,数学描述开始分歧,文章开始集中于子问题,如矢量图形的表示和创建,或者从光栅图像的自动矢量化。大多数工作都集中在特定的数学模型上。通过这篇综述,我们使用一致的符号描述了已建立的计算模型,以促进知识的进一步传递,利用每个领域的最新进展。因此,我们根据矢量图形文章的基础数学表示和对矢量图形内容创建流程的贡献将其分类,包括表示、创建、光栅化和自动图像矢量化。这篇综述旨在为艺术家和研究人员提供一个入门点。我们以对未来有前途的研究方向和挑战的展望结束这篇综述。

1 引言

矢量图形是计算机图形学的一个分支,描述基于几何基本体的图像表示和合成。与光栅图形相比,矢量图形提供了更加紧凑的表示形式。特别是,矢量图形中的图像内容描述是分辨率独立的,这意味着它们可以被缩放和采样到任何所需的输出分辨率。矢量图形表示的简单性是一把双刃剑。虽然创建简单的颜色渐变很容易,但复杂的颜色变化,如平滑阴影、焦散效应和散焦模糊,很难通过基本渐变函数直接表示[101]。当所需细节增加时,矢量图形的编辑过程需要艺术家具备坚实的艺术技巧和大量的工作时间来获得复杂的结果。因此,矢量图形通常用于表示风格化的图像,如线条绘画[33],[37],[100]、字体[92],[107]、剪贴画[30],[38],[59],[114],[139]、图像三角剖分[76]和草图[12],[117]。为了提高平滑矢量图形的表达性,当前关于梯度矢量图形的研究可以分为两个方向。一个方向是增强矢量图形的艺术控制,以便更复杂的效果可以被构建和操作少量的努力。因此,渲染过程将矢量表示转换为光栅图像是一个关键组件,因为高质量的结果需要在交互或实时速度下生成。另一个方向是寻找最适合给定图像的矢量表示,以尽可能少的基本体,这称为矢量化。从两个方向生成的矢量表示通常位于表达性谱的两个极端。通常,复杂的颜色变化很难通过单个基本体或简单的艺术交互直接表示,因此矢量化方法通常会导致更丰富的基本体集合,结果因此更难以直接操作。两个方向并不完全正交。艺术家友好基本体的公式进步可能会激发矢量化方法,而矢量化结果可以作为进一步编辑和操作的基础。直到现在,两个方向都在其各自的矢量表示中被广泛研究。

目前,有两个主要的简单形状和渐变扩展:基于网格的和基于曲线的表示,如Barla和Bousseau[6]在他们的艺术家导向的梯度艺术简介中所解释的那样。基于网格的表示将图像域分割成2D补丁,其中颜色和其他属性存储在顶点或补丁内部。基于网格的方法的研究可以分为两个方向,aligning with the two aforementioned directions in vector graphics。一个路径集中于寻找颜色变化的更好拓扑表示,如分组小补丁[7],[8],[9]、使用细分技术[84],[144]或采用不规则形状的Bézigons[139]。这些方法主要集中于从给定图像中自动提取矢量描述。另一个路径通过定义补丁上的附加属性来添加表达性,从而提供更多的艺术控制。例如,梯度网格公式[74],[118]允许用户指定补丁顶点的切线。这样,颜色渐变可以被直接控制。尽管如此,基于网格的表示仍然可能不太直观,因为用户可能需要自己分割域。相比之下,基于曲线的方法的创建过程更接近自由手绘。基于曲线的方法使用具有不同属性的曲线,如颜色和法向导数作为基本体。用户可以绘制设计的轮廓然后添加颜色。基于曲线的表示的光栅化过程,如扩散曲线[101],通常需要在整个域上解决偏微分方程(PDE),这会阻碍局部控制。此外,解决步骤可能会遭受离散化问题,需要额外的模糊步骤来生成更平滑的结果。因此,大多数基于曲线的方法的研究要么集中于建立健全的公式以增强局部控制[41],[61],[64],[68],要么投入开发更好的渲染技术以避免固有的离散化问题[69],[120],[121]。由于基于曲线的表示通常描述图像中的颜色不连续性,因此仍然很难表示极其平滑或非常详细的区域。

随着研究的进行,基于网格和基于曲线的方法都取得了进展,添加了新的表示、创建工具、光栅化方法和矢量化算法。由于补丁的边缘通常与图像的曲线特征对齐,因此可能存在 synergetic effects。但是,总的来说,基于网格和基于曲线的方法的研究线索独立演化,各自具有自己的数学公式,使得将想法从一个分支转移到另一个分支变得具有挑战性。我们的目标不仅是展示平滑矢量图形的最新进展,还要传递对基础数学公式的solid理解,以便在未来开发一个统一的表示来结合之前方法的优点。

1.1 方法论

过去几十年的研究导致了各种矢量图形表示,我们将其分类为两种:
基于网格的表示将图像分割成2D补丁,其中颜色在每个补丁内部插值。在这篇综述中,我们将这种公式视为简单形状和渐变的泛化。

基于曲线的表示模拟传统艺术家的绘画习惯。曲线通常表示颜色渐变的极值,而结果图像通常通过解决偏微分方程(PDE)计算。
对于每种基本方法,我们将研究努力分类为内容创建流程的以下部分:
**表示。**研究这个主题引入了新的矢量图形表示,这些表示由两个成分组成:(1)定义存储在几何基本体上的信息,如颜色或其他特征,以及(2)填充基本体之间的空白区域的数学模型。
**创建。**矢量艺术的创建工具通常是为特定的矢量图形表示量身定制的。方法旨在简化创建和编辑过程或提供更多的灵活性和丰富性在最终结果中被分类到这个类别。
**光栅化。**给定矢量图形表示,光栅化计算光栅图像。方法在这个类别中旨在提高渲染质量或渲染速度在所需的输出设备上。当前,解算器紧密链接到特定的表示,即没有统一的解算器适用于所有现有的公式。
**矢量化。**对于任何输入图像或视频,矢量化方法输出矢量图形表示,该表示尽可能接近输入图像或视频。当提供了额外信息时,例如当曲线几何已知[68],[71],矢量化过程可能只解决模型的一部分。
如图1所示,研究主题之间存在内部连接。创建和编辑输出矢量图形表示,然后将其渲染到光栅图像或视频(即图像序列)。另一方面,矢量化描述了逆向过程,即将光栅图像(或图像序列)转换为矢量图形表示。
image.png
图1. 矢量图形研究主题之间的连接:矢量图形表示由其基础数学模型定义,可以根据需要创建或编辑。光栅化过程生成光栅图像(或图像序列)从矢量图形表示,而矢量化描述了逆向过程。

1.2 综述结构

本调查的结构是根据第1.1节提出的分类进行的。对于每一种向量图形原语,我们描述了在表示、创建、光栅化和向量化方面的最新方法。在第2节中,我们介绍了本文中使用的数学符号,并讨论了相关的数学基础。然后我们在第3节中集中讨论基于网格的表示,包括简单形状和渐变。随后,在第4节中我们彻底分析了基于曲线的向量图形表示。最后,在第5节中我们总结了这次调查,讨论了公式之间的联系,并探讨了未来工作的可能途径。

2 数学初步

2.1 符号

为了统一本文中的数学公式,我们采用了所有方程式相同的符号。标量和标量值函数用斜体字母表示,例如 s 或 s(t)。标量值基函数用大写斜体字母表示,例如 B(t)。向量和向量值函数用粗体小写字母表示,如 v 或 v(t)。所有向量都排列为列向量。矩阵用大写粗体字母表示,如 M。为了明确一个符号是表示常数还是函数,我们总是列出带有其参数的函数,例如 x(t)。需要时,离散值用下标索引,如 xi。请注意,用户参数在表达式中被视为常数,因此不在函数参数中明确列出。如果导数是用户定义的常数,我们使用 ∂ufi,j 来缩写在离散位置的导数 ∂f(u,v)|u=ui,v=vj。

2.2 贝塞尔曲线

贝塞尔曲线被广泛用作基于曲线方法的基本表示,以及基于网格方法中的补丁边界。贝塞尔曲线 x(t): [0,1] → R2 是:x(t) = ∑i=0n Bni(t) ⋅ bi,其中 Bni(t) 是 Bernstein 基函数,bi 是贝塞尔控制点。第一个和最后一个控制点总是被插值,即 x(0) = b0 和 x(1) = bn。三次贝塞尔曲线的多项式度为 n=3,由 4 个控制点 b0,…,b3∈R2 指定。从切线 x˙(t) = dx(t)/dt,曲线法线 n(t): [0,1] → R2 定义为:n(t) = (0−11 0) x˙(t) / ‖x˙(t)‖ = (nx(t) ny(t))。当插值多个点时,数值上更适合连接多条曲线,如下所述。

2.3 样条曲线

两条(或更多)曲线 x1(t): [t0,t1] → R2 和 x2(t): [t1,t2] → R2 可以在端点处用适当的连续性约束连接,形成贝塞尔样条曲线 x(t): [t0,t2] → R2。例如,C0-连续性要求匹配端点 x1(t1) = x2(t1),而 C1-连续性要求 C0 和匹配切向量 x˙1(t1) = x˙2(t1)。对于三次曲线,最严格的约束是 C2-连续性,即 C1 和匹配加速度向量 x¨1(t1) = x¨2(t1)。找到插值给定点 x(t0) = p0, x(t1) = p1 和 x(t2) = p2 的三次贝塞尔样条的控制点,对于给定的参数化 (t0, t1, t2) 需要解决一个线性问题,以找到唯一的解。当选择自然端条件 x¨1(t0) = x¨2(t2) = 0 时,得到的曲线最小化近似弯曲能量 ∫t0t2 ‖x¨(t)‖2 dt。类似于将这个最小化器扩展到表面,这条曲线有时也被称为薄板样条。如果放弃连续性约束,则可以避免全局线性问题的解决。例如,Catmull-Rom 和 Hermite 样条只是 C1 连续的三次曲线,可以局部计算。从 Bernstein 基函数 Bni(t) 切换到 B-样条基函数导致 B-样条,这在函数空间上等同于贝塞尔样条。B-样条的控制点称为 de Boor 点。有理 B-样条是一种扩展,包括为每个 de Boor 点设置一个权重项,使其也能表示圆锥曲线。我们参考 Farin [36] 对曲线设计的全面介绍。

3   基于网格的方法

我们从基于网格的方法开始概述矢量图形表示。表1中提供了现有方法的概述,该表按照1.1节的分类进行分类。我们从不同的网格表示开始。
image.png

3.1 表示

基于网格的方法将图像域分割成不重叠的 2D 补丁,以便在这些补丁之间插值颜色。表示主要关心补丁的放置和连接性,以确定颜色的插值方式。补丁的形状可以是三角形、矩形或不规则形,而颜色和其他属性则存储在顶点或补丁内部。图 2 提供了概述。接下来,我们根据域分解对方法进行分类。
image.png
图 2. 基于网格的表示的演变,包括渐变网格和拓扑基础的表示。

3.1.1 三角形网格

基于三角形的方法通过每个三角形的重心坐标 (u, v, w)(其中 (u+v+w=1))来插值函数 (f(u,v,w))。给定离散控制值 (f_{i,j,k}) 和相关的基函数 (F_{n_{i,j,k}}(u,v,w)) 的度数 (n)(其中 (i, j, k \in {0, \ldots, n}) 且 (i+j+k=n)),连续函数 (f(u,v,w)) 为:
[ f(u,v,w) = \sum_{i+j+k=n} F_{n_{i,j,k}}(u,v,w) \cdot f_{i,j,k} ]
使用伯恩斯坦多项式 (B_{n_{i,j,k}}(u,v,w) = \frac{n!}{i!j!k!} u^i v^j w^k) 作为基函数 (F_{n_{i,j,k}}(u,v,w)) 产生贝塞尔三角形,特殊情况 (n=1) 对应于线性重心插值。

使用三角剖分或三角形补丁来表示图像有着悠久的历史,特别是在图像矢量化中。基本三角形原语的概述如图 3 所示。如图 3a 中的基本三角剖分采用分段常数颜色,需要太多的三角形来描述复杂的颜色变化。此外,补丁边界的 (C_0) 连续性在高分辨率的平滑区域可能变得明显。一种更好的对齐特征的方法是使用曲线边缘围绕三角形补丁。夏等人提出了一种使用带曲线边缘的不重叠三角形补丁的表示,见图 3b。每个补丁都被建模为一个 2D 贝塞尔三角形,如方程 (3) 所指定,使得每个边界都是一个 2D 三次贝塞尔曲线,如方程 (1)。内部贝塞尔控制点的颜色通过薄板样条拟合。边界贝塞尔曲线与给定图像的颜色不连续性对齐,这使得边界处可以有更大的颜色变化并在补丁内部保持平滑的颜色。最近,肖等人使用二次贝塞尔曲线作为补丁边缘。边缘上放置的控制点通过优化过程计算。然而,无论是薄板样条拟合还是能量最小化都不能保证非边缘补丁边界的 (C_1) 连续性。另外,可以使用基于细分的方法来解决连续性问题,如图 3c 所示。廖等人改善了三角形补丁内部及其之间的连续性属性,使得边界曲线是 (C_2) 连续的。除了具有不连续特征的区域(例如,预期为尖锐的边缘),最终颜色不低于 (C_1) 连续。补丁是使用分段平滑的细分方案构建的。颜色属性存储在顶点上,并优化,使得整个图像上的颜色函数是 (C_1) 连续的。周等人也使用基于细分的三角形网格作为他们的基本原语。他们使用三次 B 样条描述图像中的曲线特征。三角形网格的构建和细化与廖等人类似。颜色属性存储在顶点上。为了模拟尖锐边缘,他们使用了两条相邻的具有不同颜色的曲线。此外,边缘的锐度因子存储在边缘上以控制边缘平滑度。通常,基于细分的方法可能会生成过多的原始图形,并且强烈依赖于特征提取输出。最近,朱等人提出使用二次三角形配置 B 样条(TCBs)忠实地描述复杂的颜色变化,同时保持 (C_1) 连续性。图像可以被视为 5D(几何和颜色)的表面,因此可以作为 TCB 样条面进行近似和细化。
image.png
图 3. 不同的三角形补丁。从左到右:基础三角形带直边;带曲边的贝塞尔三角形;基于细分的三角形。

3.1.2 矩形网格

矩形网格通过给定控制点 (f_{i,j}) 在 (u, v) 参数域上插值函数 (f(u, v)),其中 (i \in {0, \ldots, n}) 和 (j \in {0, \ldots, m}),通过计算基函数 (F_{n_i}(t)) 和 (F_{m_j}(t)) 的张量积:
[ f(u, v) = \sum_{i=0}^n \sum_{j=0}^m F_{n_i}(u) \cdot F_{m_j}(v) \cdot f_{i,j} ]
普莱斯和巴雷特使用双三次张量积表面,也称为贝塞尔补丁,其中基函数 (F_{n_i}(t)) 是来自方程 (1) 的伯恩斯坦基函数 (B_{n_i}(t)),且 (n = m = 3)。因此,每个补丁有四行四列的贝塞尔控制点 (x_{i,j}),每个代表一个三次贝塞尔曲线。颜色 (c_{i,j}) 存储在控制点上,同样使用方程 (4) 插值。

虽然双三次贝塞尔补丁公式简单直接,但从编辑角度仍缺乏对颜色变化的控制。一种替代方案是使用渐变网格。这种表示最初由 Adobe Illustrator 引入,用于手动创建复杂的颜色变化,尽管实际实现是专有的。2007年,孙等人发布了由 Ferguson 补丁组成的渐变网格的正式定义。Ferguson 补丁是一种双三次张量积表面,遵循方程 (4),通过四个角点 (f_{i’j’})(其中 (i’, j’ \in {0, 3}))和每个角点的 (u, v) 切线句柄 (∂_u f_{i’j’}) 和 (∂_v f_{i’j’}) 指定,见图 4a。根据定义,在角点处,二阶混合偏导数 (∂_u∂_v f_{i’, j’}) 被设为零,这被称为零扭曲。渐变网格由沿网格线对齐的 Ferguson 补丁组成,见图 4b。渐变网格的网格线的每个顶点 (q) 存储:

image.png
图 4. 最常见的渐变网格类型。图像 (a)(b) 灵感来自 [118],© 灵感来自 [74]。

位置。顶点的2D位置 (x_q = (x_q, y_q)^T)。

切线。每个角都有四个 (u, v) 切线,由四个相邻的补丁共享,见图 4b。这四个切线由两个方向 (\partial_u x_q) 和 (\partial_v x_q) 构建,而相反的方向则通过因子 (\alpha_u) 和 (\alpha_v) 缩放。

颜色。每个顶点都有一个 RGB 值 (c_q = (r_q, g_q, b_q)^T)。

颜色导数。对于每个顶点 (q),其颜色导数 (\partial_u c_q) 和 (\partial_v c_q) 沿着 (u, v) 切线通过单调三次样条插值估计每个颜色通道。例如,在图 4b 中,(u) 方向的颜色导数可以从顶点 (q-1, q) 和 (q, q+1) 之间的三次样条分析计算。(v) 方向的颜色导数可以类似计算。

Sun 等人 [118] 的一个限制是难以表示有洞的区域。因此,Lai 等人 [74] 提出了一种保持拓扑的渐变网格表示,通过复制连续的水平网格线来模拟表面的切割,见图 4c。设 (x(u) := x(u, v_c)) 是水平曲线,其中 (u \in [u_0, u_1]) 和 (v_c = const),沿此表面被切割。原来相邻的两个补丁得到不同的边界曲线 (\overline{x}(u)) 和 (\tilde{x}(u)),需要 (G_0) 连续性((\overline{x}(u_0) = \tilde{x}(u_0)) 和 (\overline{x}(u_1) = \tilde{x}(u_1)))以及 (G_1) 连续性((\partial_u \overline{x}(u_0) = -\partial_u \tilde{x}(u_0)) 和 (\partial_u \overline{x}(u_1) = -\partial_u \tilde{x}(u_1)))在端点形成闭环。如果网格中有多个洞,可以相应地进行多次切割。通过沿水平网格线分割保持拓扑的网格 [74] 带有 (n) 个洞,这种表示可以转换为 (n+1) 个渐变网格 [118]。这两种表示被许多后续工作采用 [127],[130],[136],[137]。后来,Barendrecht 等人 [5] 使用了三次矩形补丁并扩展了原语以支持局部细化。

3.1.3 不规则网格

Swaminarayan 和 Prasa [123] 使用了具有恒定颜色的多边形补丁,见图 5a,其中多边形的边缘与输入图像的曲线特征对齐。除了多边形补丁,恒定颜色和线性渐变也被用于其他形状,如同质特征区域 [43],见图 5b。最近,Yang 等人 [139] 使用 Bézigons(由贝塞尔曲线界定的封闭区域)来描绘剪贴画图像。每个区域的颜色由空间变化的颜色函数表示。
image.png
图 5. 填充恒定颜色的任意形状的补丁。
后来,Hettinga 等人 [53] 研究了几种方案来从边界条件插值颜色的值和梯度,包括 Lieng 等人 [86] 提出的无拓扑限制的渐变网格方法,Li 等人 [81] 的立方均值坐标法,以及基于格雷戈里广义贝塞尔补丁和 Charrot-Gregory 角插值器的两种新提出的插值方法。Lieng 等人 [86] 对任意拓扑渐变网格的扩展在图 6 中有所展示,每个补丁可以有任意数量的顶点和边缘。每个控制点都有一个指定的颜色值和颜色梯度,边缘可以设置不同的不连续性级别(C1 平滑,C0 折痕或 C-1 不连续)。
image.png
图 6. 任意连接的渐变网格。

3.2 创建

虽然简单的形状和渐变容易控制,但当所需细节的数量增加时,基于矢量的表示形式更难创建和编辑。接下来,我们将介绍手动和数据驱动的方法,以及替代的重新着色和纹理化方法,如图 7 所示的表示形式。

image.png

image.png
图 1.矢量图形中主要研究主题之间的联系:矢量图形表示由其底层数学模型定义,可以相应地创建或编辑。光栅化过程从矢量图形表示生成光栅图像,而矢量化则描述逆问题。

基于网格的方法将图像域划分为不重叠的 2D 色块,并在这些色块上插值颜色。表示主要涉及色块的位置和连接性,并确定颜色的插值方式。面片形状可以是三角形、矩形,甚至是不规则的,而颜色和其他属性则存储在顶点或面片内部。图 2 提供了概述。接下来,我们根据域分解对方法进行分类。
image.png
图2.基于网格的表示的演变,包括梯度网格和基于拓扑的表示。
image.png
图 3.不同的三角形斑块。从左到右:直边基本三角形; 具有弯曲边缘的贝塞尔三角形;基于细分的三角形。
尽管双立方贝塞尔贴片配方简单明了,但从编辑的角度来看,它仍然缺乏对颜色变化的控制。一种替代方法是使用渐变网格。这种表示形式最初是由 Adobe Illustrator 引入的,用于手动创建复杂的颜色变化,尽管实际实现是专有的。2007年,Sun等人[118]发表了由Ferguson斑块组成的梯度网格的正式定义[40]。Ferguson 面片是方程 (4) 中的双三次张量积曲面,通过四个角指定,四个角中的每一个角都有 和 -切线手柄,参见图 4a。根据定义,二阶混合部分在拐角处设置为零,这称为零捻度,参见后面的第 3.3.2 节。梯度网格是通过沿网格线对齐Ferguson面片组成的,见图4b。梯度网格的每个顶点的网格线存储:
image.png
图 4.最常见的渐变网格类型。图像 (a)(b) 灵感来自 [118], (c) 灵感来自
Swaminarayan 和 Prasa [123] 使用颜色恒定的多边形色块,见图 5a,其中多边形的边缘与输入图像的曲线特征对齐。 除了多边形斑块外,恒定颜色和线性渐变也被用于其他形状,例如同质特征[43],的区域,见图5b。最近,Yang 等人[139]使用 Bézigons(以 Bezier 曲线为界的封闭区域)来描绘剪贴画图像。 每个区域中的颜色由空间变化的颜色函数表示。
image.png
图 5.任意形状的斑块,填充恒定的颜色。
后来,Hettinga等人[53]研究了几种从边界条件中插值颜色值和梯度的方案,包括Lieng等人的拓扑无限制梯度网格方法, [86], Li等人的三次平均值坐标[81],,以及基于Gregory广义贝塞尔面片和Charrot-Gregory角插值器的两种新提出的插值方法。Lieng等人对任意拓扑的梯度网格的扩展[86]如图6所示,其中每个面片可以具有任意数量的顶点和边。每个控制点都具有指定的颜色值和颜色渐变,并且可以将边缘设置为不同的不连续级别(平滑、折痕或不连续)。
image.png
图 7. 使用不同网格框架创建的图像。

3.2.1 手动方法

简单的形状可以直接通过形状参数指定,例如圆的位置和半径。在Adobe Illustrator中,渐变网格是通过选择一个对象并指定每行和每列的顶点数量手动创建的。用户然后需要为每个网格点选择一个颜色。孙等人 [118] 使用户能够以类似的方式创建网格。在指定对象并将每个对象分成4个部分后,每个子对象都会被均匀地参数化分割。用户可以点击添加或移除网格线。顶点的位置可以拖动或输入,四个导数可以通过切线手柄拖动,颜色可以从调色板中选择。夏等人 [132] 允许用户选择感兴趣的补丁并使用薄板样条编辑颜色。类似地,廖等人 [84] 让用户选择并编辑单个顶点、特征或甚至通过定义选定顶点或特征周围的半径来编辑局部区域。选择变形中心后,可以通过最小化失真来精细调整几何形状。用户可以通过分配新颜色或将新颜色与旧颜色混合来更改所选顶点或特征的颜色。Sverja等人 [122] 通过交互式添加面片以及分割或合并网格边缘来编辑不规则网格。Verstraaten和Kosinka [126] 进一步允许用户在此公式中添加尖锐的颜色过渡。Barendrecht等人 [5] 添加了分支,使网格不受限于矩形网格。他们还扩展了尖锐的颜色过渡,使得一个控制点可以被分配多达4种不同的颜色。基于细分的方法为用户提供了多分辨率编辑 [147]。廖等人 [84] 和周等人 [144] 让用户在所需的分辨率级别上变形网格。Lieng等人 [86] 允许用户在更高的分辨率下更改颜色,同时在更粗糙的层面上操纵几何形状。

3.2.2 颜色转移、重新着色和纹理

与其依赖手动颜色编辑,不如使用颜色转移方法以简化颜色分配。肖等人 [136] 提出了一种基于示例的渐变网格颜色转移方法。给定一个参考图像,该算法使用由PCA基色转移算法 [1],[134] 构建的线性运算符来转换渐变网格的颜色。该方法假设参考图像和渐变网格中的颜色分布均为高斯分布,但在颜色转移后可能无法保留图像细节如纹理 [136],[137]。后来,他们提出了一种使用基于优化的线性运算符的改进方法 [137]。颜色转移过程通过最小化颜色分布差异来建模,这也使得可以添加图像渐变作为额外约束,以便在颜色转移后保留细节。Wan等人 [127] 开发了一种基于涂鸦的方法来重新着色渐变网格。给定一个输入网格和用户的涂鸦,构建一个名为控制网的辅助网格。控制网结构可以为经典渐变网格 [118] 或保拓扑渐变网格 [74] 计算,然后使用扩展的色度混合 [140] 进行重新着色,并最终转换回渐变网格表示。
高频图像细节在转换为基于网格的表示时通常会导致大量补丁,因此可能成为未来编辑的负担。已经提出了以不同方式添加纹理细节的方法。Hettinga等人 [55] 添加了Perlin、Worley和Gabor噪声。Baksteen等人 [3] 使用网格颜色为渐变网格添加纹理,这是2D中3D纹理映射的另一种选择 [142]。在这种表示中,颜色在顶点以及沿边缘和补丁内均匀采样的点上定义,以有限的补丁数量表示复杂的颜色变化。

3.3 光栅化

光栅化过程决定了每个补丁内的颜色如何计算,可以是常量、线性渐变、简单渐变的组合或从边界颜色拟合或插值的结果。基于网格的表示的光栅化过程大致可以分为基于细分的方法 [84],[86],[144],可能使用自适应GPU加速镶嵌 [52],和基于插值的方法 [81]。在本节中,我们讨论了各种网格公式的方法。

3.3.1 三角网格

夏等人 [132] 在三个步骤中渲染三角贝塞尔补丁。首先,他们递归地将每个补丁细分为4个较小的贝塞尔补丁,直到三角形小于一个像素。其次,他们为每个像素确定相关的补丁及其重心坐标。第三,使用重心坐标通过薄板样条拟合计算像素的颜色。廖等人 [84] 通过基于GPU的补丁细分加速了渲染。朱等人 [146] 使用TCB样条插值进行图像重构。

3.3.2 矩形网格

在矩形补丁中,颜色通过张量积进行插值。使用伯恩斯坦基函数B_n_i(t)和方程(1)中的n=m=3,在方程(4)中得到双三次贝塞尔补丁。不是指定16个控制点f_0,0, f_1,0, …, f_3,3来表示颜色函数,相同的张量积表面f(u,v)可以仅使用角控制点及其一阶和二阶混合偏导数来等效表达,参见孙等人[118]:f(u,v) = t(u)^T · C^T · Q · C · t(v)。其中单项基函数t(t) = (1, t, t^2, t3)T,C和Q如方程(6)所示。由于Ferguson补丁公式仅指定角控制点及其一阶偏导数,方程(6)中的混合二阶偏导数通常设为0,即∂u∂v f_0,0 = ∂u∂v f_0,3 = ∂u∂v f_3,0 = ∂u∂v f_3,3 = 0。通过将位置x_q和切线∂u x_q, ∂v x_q或颜色c_q和切线∂u c_q, ∂v c_q分别代入f_q及其切线∂u f_q, ∂v f_q中,允许插值位置和颜色。相应地,Barendrecht等人[5]使用了三次Hermite边界曲线。

3.3.3 不规则网格

SVGenie [9] 和 SVGWave [7] 都使用多边形网格表示,可以直接分配恒定颜色或简单的颜色渐变。Lecot和Lévy [77] 用每个颜色通道的恒定、线性和二次基函数的线性组合来近似每个多边形区域中的颜色。后来,开发了更高级的技术来插值多边形。李等人[81]使用三次均值来插值顶点处的颜色和渐变,这是从双调和函数的均值性质发展而来的。Beatson等人[10]随后将领域扩展到分段二次边界,他们提出了多边形的Hermite均值插值技术。Hettinga等人[53]进一步调整了从广义贝塞尔补丁[125]和Charrot-Gregory角插值补丁[22](都是多边形参数补丁)的插值方案,使得插值方案可以用于2D渐变网格。通过使用Chiyokura和Kimura[25]的算法,他们至少实现了颜色的G1连续性。Lieng等人[86]提出了一种基于Catmull-Clark细分的插值方法,用于渲染具有任意拓扑的渐变网格[21],[98]。

3.4 矢量化

与手动创建网格相反,矢量化过程将给定图像分解为2D补丁。常见的起点是基于边缘检测的图像分割和三角剖分。当使用复杂的颜色模型时,例如带有颜色切线的渐变网格[118]或具有参数边缘的贝济贡[139],通常使用最小化重建误差的优化技术。除了接下来讨论的通用网格类型外,还提出了几种基于学习的技术来矢量化线条图[33],[49]、草图或漫画[35],[117]以及平面图[91]。

3.4.1 三角形网格

三角形补丁通常分两步提取。第一步确定网格的几何形状,然后第二步提取或优化顶点或补丁内的颜色属性。夏等人[132]首先在像素分辨率上进行三角剖分。为了保持图像特征,在边缘插入子像素。通过将每个颜色通道视为高度场,每个像素被提升为3D领域中的一个顶点,每个子像素被转换为两个具有相同2D投影但颜色值不同的顶点,以避免边缘模糊。之后,3D网格根据二次误差度量[47]进行简化,并投影到2D图像空间。非重叠的三角贝塞尔补丁通过优化过程适配到三角形领域。颜色通过薄板样条拟合[103]适配到贝塞尔补丁。廖等人[84]以层次化方式进行矢量化。首先,使用Canny边缘检测器[18]提取图像特征。为了获得区域边界,应用GrabCut[109]进行图像分割。其次,构建初始网格,每个像素初始化一个顶点,如有需要在提取的特征处插入额外的顶点。然后在局部进行重新三角剖分。第三,使用二次误差度量[47]简化密集网格。顶点处的颜色进行全局优化。周等人[144]以类似方式为他们的基于细分的补丁开发了矢量化步骤。首先,使用轮廓检测[2]和角检测[96]提取曲线特征。然后,将三次B样条拟合到检测到的边缘。其次,进行受限Delaunay三角剖分以获得初始网格。颜色通过类似于Hoppe等人[58]的优化过程分配给细分补丁。然后通过最小二乘法优化每个顶点的颜色。在颜色拟合误差超过阈值的地方,添加新的顶点,并进一步应用受限Delaunay三角剖分进行细化。最近,Hettinga等人[51]将三次贝塞尔三角形拟合到输入图像,并通过优化过程将纹理映射为网格颜色。后来,他们扩展了矢量化框架,以增强用户控制和特征提取[54]。

3.4.2 矩形网格

早期方法如Price和Barret[105]分两步矢量化图像。首先,构建网格几何形状。为此,使用图割[16]提取对象轮廓,由用户指导。一旦检测到对象,就使用曲率在对象上定位四个角点。然后,通过执行最小成本搜索来找到最小成本路径,可以在对象上添加轴。通过细分对象并递归执行搜索,类似地添加网格线。然后每个网格单元都通过贝塞尔补丁进行拟合。其次,通过从输入图像采样颜色,将颜色属性分配给贝塞尔控制点。由于渐变网格具有更丰富的属性集,几何形状和属性通常在单一最小化步骤中一起优化。孙等人[118]需要用户手动初始化,用户首先将输入图像分解为多个子对象,然后将每个子对象的边界分为4段,拟合三次贝塞尔样条。用户可以交互式地进一步细分补丁。手动结果然后用作输入图像的Ferguson补丁拟合的非线性最小二乘法最小化的初始化,其中包括颜色值和颜色导数。非线性优化使用Levenberg-Marquardt算法[79],[99]解决。用户可以通过绘制网格线的优选方向来进一步指导优化。赖等人[74]将表示扩展到拓扑保持的渐变网格,并提出了此表示的全自动矢量化方法。他们首先使用基于图的方法进行粗略分割[39]将图像分割为对象,并使用Grab-Cut[109]细化边界。然后通过在显著性图的样本上进行受限Delaunay三角剖分将对象转换为三角形网格。这是通过在图像上应用指南针滤波器计算的。然后将三角形网格映射到矩形领域,并重新参数化以进行局部细化。从底层图像采样颜色,并通过插值计算每个控制点的颜色。使用单调三次插值[131]计算颜色的导数。魏等人[130]通过采用常用于几何处理任务的四边形技术开发了一种更快的方法。

3.4.3 不规则网格

数据依赖三角剖分方法(DDT[32])在SVGenie[9]和基于小波的三角剖分方法(WBT[78])在SVGWave[7]中都将图像领域分解为三角形,并根据相似性将三角形分组为多边形补丁。SVGenie[9]迭代寻求局部最优三角剖分。根据于等人[141],首先通过连接最低成本对角线将每个像素分为两个三角形。对于由相邻三角形组成的每个凸多边形,执行前瞻步骤以必要时交换多边形边缘。通过迭代最小化成本函数进一步优化三角剖分。SVGWave[7]层次化地执行小波变换。在每个层级,可以使用小波系数计算三角剖分,并进行迭代细化。Swaminarayan和Prasad[123]首先使用边缘检测器提取边缘像素链,并执行受限Delaunay三角剖分,使三角形的边缘与提取的边缘对齐。每个三角形被分配一个常数颜色,通过在三角形内采样几个点,构成所谓的trixel。相邻的trixel被组合在一起形成多边形,考虑到它们的接近性和连续性。三角剖分也可以用作加速矢量化的中间步骤。Lecot和Lévy[77]开发了一种计算由三次样条界定的封闭区域的矢量化技术。该算法将领域划分为Voronoi图。在每个区域中,颜色用二次多项式估计。在基本设置中,算法可以在像素级别执行。每个像素以贪婪方式成长为一个区域,多项式系数迭代更新。为了加速矢量化过程,而不是在每个像素上应用算法,构建了一个中间的三角形trixel结构。杨等人[139]提出了一种将剪贴画图像矢量化为Bézigons的方法。Bézigon是一个封闭的贝塞尔曲线,内部定义了一个颜色函数。最初的Bézigons可以使用图像分割[39]和曲线拟合方法[113]自动提取,或者可以手工创建。除了重建误差外,优化还旨在最小化失败案例,如自交和角度变化。何等人[50]为量化光栅图像引入了感知感知矢量化。

4 曲线基础方法

在他们的开创性工作中,Elder 等人 [34] 使用带有属性的边缘(强度、模糊尺度和梯度方向)来编码图像,这促使了后续的研究,如本节所述。基于第1.1节中的分类,表2提供了一个全面的概述。
表2 现有曲线基础方法概览
image.png

4.1 表示

首先,我们关注通过曲线来描述图像的已开发表示方法。图8提供了这些方法发展的概览
image.png
图8. 基于曲线方法中数学公式的演变。

4.1.1 基本公式

受到Elder等人[34]的启发,Orzan等人[101]提出了一种新的矢量图形原语,称为扩散曲线,它使用贝塞尔曲线作为几何原语,曲线的左右两侧定义了颜色。最终图像通过从曲线的两侧扩散颜色来构建,这允许对颜色不连续性进行建模。扩散过程可能会伴随一个模糊步骤以获得平滑的边缘。图9展示了一个扩散曲线的三个组成部分,如下所定义:
image.png
图9. 扩散曲线的组成部分:(a) 由4个控制点(用蓝色点表示)定义的三次贝塞尔曲线x(t)。(b) 曲线两侧的颜色源cl(t)和cr(t),其中颜色控制点由彩色点表示。© 模糊源函数σ(t)从控制点线性插值。(d) 最终图像是通过扩散和随后的模糊构建的。

三次贝塞尔曲线。几何曲线被指定为由三次贝塞尔曲线x(t):R→R2组成的样条,见方程(1)。

颜色控制点。在曲线x(t)的每一侧,用户指定一种颜色,正式表示为函数cl(t)和cr(t)。颜色从曲线上的一组颜色控制点进行分段线性插值。每组至少包含两种颜色,以定义曲线起点(t=0)和终点(t=1)的颜色。

模糊控制点。作为一种额外的自由度,Orzan等人[101]在曲线上引入了一个平滑参数σ(t),它控制了高斯平滑的滤波大小,该平滑在后处理中进行。与颜色一样,函数σ(t)从一组模糊控制点进行分段线性插值。

最终图像u(x)然后被定义为满足沿扩散曲线的颜色梯度w(x)以及图像边界上的特定颜色的最平滑图像,正式通过以下方式求解:
∇2u(x)=∂w(x)∂x+∂w(x)∂y, x∈Ω∖∂Ω
u(x)|∂Ω=g(x) (7)
(8)

方程(7)需要颜色场的x-和y-偏导数∂w(x)∂x:R2→R3和∂w(x)∂y:R2→R3,除了曲线x(t)上的点之外,其他所有点都为零:
∂w(x)∂x|x=x(t)=(cl(t)−cr(t))⋅nx(t)
∂w(x)∂y|x=x(t)=(cl(t)−cr(t))⋅ny(t) (9)
(10)

这需要曲线法线分量nx(t)和ny(t),见方程(2)。需要注意的是,在远离扩散曲线的区域,我们有∂w(x)∂x=∂w(x)∂y=0,以实现平滑。

方程(7)-(8)在离散图像上求解。为了将颜色放置在扩散曲线的左侧和右侧,Orzan等人[101]将颜色源沿曲线几何偏移了几个像素。值得注意的是,直接表示扩散曲线之间的平滑颜色过渡是困难的。因此,对于该模型,模糊后处理是必要的。后来,提出了几种变体来丰富扩散曲线的建模能力。根据扩散过程的公式,我们将这些模型分为以下类型。

4.1.2 调和方程

Jeschke等人[69]通过将扩散曲线视为具有颜色cl(t)和cr(t)的域边界曲线,对Orzan等人[101]的公式进行了推广,因此不需要像方程(7)中那样定义梯度场∂w(x)∂x和∂w(x)∂y。然后,可以将扩散过程公式化为拉普拉斯方程,也称为调和方程:
∇2u(x)=0, x∈Ω∖∂Ω
u(x)|∂Ω=g(x) (11)
(12)

在这个公式中,最终图像除了边界处外,其他地方都是平滑的,现在边界不仅包括矩形图像边界,还包括扩散曲线。与方程(8)一样,方程(12)中使用了狄利克雷边界条件。这个公式已经成为渲染方法[69]、[102]、[120]、矢量化技术[94]、[143]和编辑工具[71]、[93]中最受欢迎的一种。

调和公式的一个问题是缺乏对颜色梯度的控制。目前的公式在域内寻求平滑,而不是跨越扩散曲线,如图10所示。这可能会在曲线周围产生帐篷状伪影。Jeschke[68]通过使用调和函数的线性组合解决了这个问题:
u(x)=wl(x)⋅u1(x)+(1−wl(x))⋅u2(x)
u1(x)|∂Ω=g1(x), u2(x)|∂Ω=g2(x) (13)
(14)

其中u1(x)和u2(x)是两个单独的拉普拉斯方程的解,它们根据方程(11)在相同的贝塞尔曲线边界上定义,具有不同的颜色函数g1和g2作为狄利克雷边界条件。因此,wl(x)是一个插值函数,在空间上对u1(x)和u2(x)进行混合。函数wl(x)通过泊松方程计算,参数l控制u1(x)和u2(x)之间的混合速度。同样地,随后的模糊处理也进行了调整和优化。当u1=u2时,这简化为方程(7)。调和模型和组合模型都需要一个后续的模糊步骤,尽管在某些情况下,当形状几何和颜色控制点被优化时,这个过程有时可以省略[143]。
image.png
图10. 调和方程只在远离曲线约束的地方强制执行平滑,因此在曲线附近可能会出现伪影。图像改编自[6]。

4.1.3 双调和方程

基本的调和公式缺乏对平滑度和颜色梯度方向的控制。此外,每添加一条曲线,导数的连续性就会被破坏[41]。解决这个问题的一种方法是指定高阶导数的约束。Finch等人[41]提出了一种基于薄板样条的双调和公式,该公式寻求在拉普拉斯域中调和的解:
∇4u(x)=0, x∈Ω∖∂Ω
u(x)|∂Ω=g(x) (15)
(16)

这里,g(x)是一个柯西边界条件函数,可以看作是狄利克雷和诺伊曼边界条件的组合。边界曲线在颜色的值和梯度上都受到约束。后来,Illbery等人[64]推广了双调和方程的公式,使得调和扩散曲线可以被视为双调和公式的一个特例。

由于可以直接控制双调和扩散曲线的方向颜色导数,因此不需要后续的模糊处理。然而,双调和公式可能会带来其他伪影。一个问题是,插值可能会在未约束的位置产生新的极值,尤其是在共线控制点[15]、[41]处。这可以通过手动调整控制点的位置[41]或应用非线性优化[66]来解决。另一个问题是,当曲线几何被缩放时,扩散的颜色范围将与几何一起缩放,这可能导致颜色过饱和[68]。后来的方法是使用其他公式,如拉普拉斯方程的组合(方程(13))[68]或拉普拉斯方程和泊松方程的组合(方程(17))[61]来避免这种伪影。

4.1.4 泊松方程

Orzan的表示[101]和方程(11)中的调和方程可以进一步推广到泊松方程:
∇2u(x)=f(x), x∈Ω∖∂Ω
u(x)|∂Ω=g(x) (17)
(18)

因此,当f(x)=0时,方程(17)简化为方程(11)中指定的调和模型。当在曲线上设置f(x(t))=(cl(t)−cr(t))⋅(nx(t)+ny(t)),在其他地方设置f(x)=0时,方程(7)中的初始表示也可以被视为方程(17)的一个特例。

通过操作f(x)和g(x)的表达式,可以实现对扩散过程的更多控制。Bezerra等人[11]线性地解方程(17),向系统添加额外的扩散约束,以便可以控制扩散过程的强度和方向。后来,Hou等人[61]将f(x)设置为分段常数函数,以便局部和全局地控制颜色梯度。他们使用调和扩散曲线来描绘图像中的颜色变化,并添加由f(x)控制的泊松曲线或泊松区域来控制阴影细节。与调和方程一样,g(x)用于指定曲线颜色的狄利克雷边界条件。

如果f(x)=α∂u(x,t)∂t,则方程(17)是一个标准热方程,其中t是时间,α是热扩散率,即热量传递速率。通过引入时间t,结果图像扩展到u(x,t):R2×R→R3。Lin等人[88]修改了热方程,通过一个标量值扩散系数c(x):R2→[0,1]来控制扩散强度和方向:
∂u(x,t)∂t=∇2u(x)⋅c(x)+∇u(x)⋅∇c(x)+g(x)=(∂2u∂x2+∂2u∂y2)⋅c+∂u∂x∂c∂x+∂u∂y∂c∂y+g(x)
u(x,0)=g(x) (19)
(20)

方程(20)类似于先前的方法,其中g(x)除了边界曲线外其他地方都为零,在边界曲线上表示狄利克雷边界条件。在时间t=0时,图像的初始状态u(x,0)包含未扩散的颜色曲线。当c(x)≠0时,我们可以将方程(19)重写为一个泊松方程:
∇2u(x,t)=∂u(x,t)∂t−∇u(x)⋅∇c(x)−g(x)c(x) (21)

在这种情况下,方程(17)中的函数f(x)只是方程(21)的右侧。多层方法至少包含一个由边界曲线g(x)定义的颜色层。函数c(x)用于模拟控制扩散过程的强度和方向层。

Li等人[83]没有扩散到平衡状态,而是使用热方程仅在固定的时间间隔内扩散。这里,标量值不透明度φ:R2×R→[0,1]被扩散:
∂φ(x,t)∂t=c(x)⋅∇2φ(x,t)
φ(x,0)=g(x) (22)
(23)

与之前一样,c(x)是扩散系数,控制扩散宽度。当c(x)≠0时,可以类似地重写方程(22)以形成一个泊松方程f(x,t)=∂φ(x,t)∂t⋅1c(x)。标量值不透明度φ可以进一步修改以模拟不同的笔触效果,如水彩画和油画。不透明度分布与曲线颜色结合以确定最终图像u(x)。

通过将公式从拉普拉斯方程扩展到泊松方程,引入了一个大得多的解空间,从而对曲线有了更多的控制[60]。对于泊松模型,不需要额外的后处理步骤,因为它可以直接通过操作扩散系数添加到扩散过程中[88]。

4.1.5 光线追踪

可以通过类似于全局光照中的最终聚集概念的2D光线追踪来近似扩散。可以认为有颜色的曲线是虚拟光源[14]:
u(x)=∫2π0L(xi(x,θ))⋅w(xi(x,θ))dθ (24)

其中,像素颜色u(x)由所有方向上的加权辐射度积分确定。对于从2D点x沿方向θ发出的光线,光线与扩散曲线的最近交点是xi(x,θ),L(xi(x,θ))是它的辐射度。归一化权重w=wc⋅wd由曲线重要性wc确定,它模拟扩散屏障[11]、[14],以及距离加权wd(xi,x)=∥xi−x∥−p。当没有模糊发生且光线没有被遮挡时,光线追踪公式等效于均值值插值,它是拉普拉斯方程的一个解[14]、[42]、[72]。这个公式利用着色器进行灵活的颜色控制,并避免了原始表示[101]的光栅化问题[14]。后来被Prévost等人[104]采用,并由Lieng[87]进一步扩展到扩散点。

4.1.6 阴影曲线

阴影曲线[87]是建模阴影和照明效果的替代方法。阴影曲线由B样条曲线几何和曲线左侧和右侧的阴影轮廓组成。在创建过程中,用户手动绘制曲线为常数的区域,每个区域都用常数颜色填充,从而得到一个分段平坦的图像。然后使用附加到曲线左侧和右侧的阴影轮廓添加阴影效果,这些轮廓被渲染为网格而不是曲线,这使得它成为基于曲线和基于网格的方法的组合。

4.2 创建

关于增强艺术控制的方法的研究可以大致分为两个方向。第一个方向研究用户如何更好地与现有功能进行交互,以便他们可以更轻松地创建或编辑基元。第二个方向寻求丰富某一模型的功能集,以创建更具表现力的结果。在扩散曲线框架中的基本功能是操作曲线控制点。用户可以操作曲线几何,以及添加、删除、复制或更改属性的值。在本节中,我们讨论了在各种基于曲线的模型的基本编辑功能之上进一步提高艺术控制的方法和技术,并根据需要将它们进一步划分为用户交互或功能增强的贡献。图11显示了不同框架的结果。
image.png
图11. 使用不同的基于曲线的框架创建的图像,以及输入曲线和控制点的可视化。

4.2.1 调和方程

用户交互。Sun等人[119]提出了一种多点触控的草图界面,用于创建和编辑扩散曲线。Jeschke等人[68]、[71]采用了“点击并拖动”的交互方式。Sun等人[120]实现了无缝克隆,用户可以在区域内复制粘贴控制曲线。Lu等人[94]使用深度信息语义地将曲线分组为对象,并进行集体编辑。后来,他们允许用户向扩散曲线添加任意手柄,通过线性混合变形实现全局形状操作[93]。Bao和Fu[4]开发了一种基于涂鸦的界面来编辑扩散曲线,用户绘制涂鸦,颜色会自动分配给曲线点,使得渲染结果与输入对齐。

功能增强。由于扩散总是追求平滑区域,Jeschke等人[71]提出了以程序化方式添加纹理参数,使用Gabor噪声创建更精细的细节。噪声参数被自动估计以拟合具有相关扩散曲线的输入图像。这导致了点刻和交叉阴影线的使用。Sun等人[120]在调和方程的快速多极表示中使用高斯径向基函数作为扩散点。这使得用户可以向图像添加非调和的颜色场。

4.2.2 双调和方程

用户交互。双调和公式允许用户不仅改变颜色值,还可以改变曲线法线方向上的颜色导数。Finch等人[41]允许用户自由绘制曲线,并在不同点添加颜色约束。从矢量化得到的曲线通常过于复杂而无法直接编辑。Xie等人[138]通过他们分层提取的曲线改进了这一点。用户可以查看多尺度曲线,以便在不同的分辨率下操作曲线。

功能增强。Finch等人[41]的表示允许用户添加点值、临界点和五种曲线类型,包括值曲线、撕裂和褶皱曲线以及等高线和斜率曲线,这些曲线指定了不同的边界条件。Boyé等人[15]将Finch等人[41]的公式进行了推广,支持扩散、屏障、撕裂、褶皱、褶皱-值、值、值-斜率和斜率曲线,以及空曲线。Illbery等人[64]使用尖锐轮廓和平滑轮廓来控制边界和内部的颜色。

4.2.3 泊松方程

用户交互。Orzan等人[101]让用户通过草图手动创建扩散曲线。当仅在可见视口的低分辨率下扩散时,可以进行缩放和平移的交互。Lin等人[89]提供了移动设备的实现。为了更容易选择曲线,Lin等人[88]在光栅化过程中为扩散曲线贴标签,这样当选择属于曲线的任何像素时,可以立即选择整个曲线。为了实现无缝克隆,Hou等人[61]在曲线相交的地方添加了拉普拉斯约束,这样用户就不需要手动将扩散曲线拆分为短的不相交段。

功能增强。Bezerra等人[11]添加了额外的约束,包括不发射颜色但阻止其他曲线颜色的屏障曲线,他们支持各向异性扩散,并通过软约束平滑地在区域之间进行混合。Lin等人[88]通过使用扩散系数来解决扩散过程,从而实现了类似的效果。此外,他们混合了多个图层并添加了扩散点源。Hou等人[61]引入了泊松曲线和泊松区域,可以实现如核心阴影、镜面高光、光晕和半透明等效果。他们明确地分离了色调和饱和度,使得用户可以局部编辑色调或饱和度,从而有可能编辑镜面高光。Li等人[83]专注于通过引入不同的笔触样式来生成风格化图像,如水彩画或油画。

4.2.4 光线追踪

用户交互。Lieng等人[85]通过绘制点附近的三角剖分的线约束来控制颜色在局部如何传播。

功能增强。使用着色器,Bowers等人[14]为扩散曲线图像添加了渐变填充和纹理,并提供了方程(24)中影响wc和距离加权wd的参数。Prévost等人[104]具有曲线域着色器(附加在曲线上,类似于Bowers等人[14])和图像域着色器(在完整的图像域中定义),以避免由于稀疏插值而导致的欠采样。在框架中实现了多层方案,使得用户可以添加局部曲线(例如创建镜面高光)并在场景中克隆对象。类似于Prévost等人[104],Lieng等人[85]在特定的图像层中添加了局部扩散点。

4.3 光栅化

基于曲线的矢量图形通常被公式化为偏微分方程的解。因此,在光栅化过程中,有两个组件是至关重要的。曲线和域的离散化决定了渲染质量。特别是对于扩散曲线,较小的离散化误差可能导致扩散过程后出现较大的偏移[69]。求解方案决定了渲染结果的速度。在本节中,我们讨论了在两个组件上做出的贡献。

4.3.1 调和方程:离散化

根据求解器所应用的网格类型,我们将离散化步骤分为以下类型。

规则网格。Jeschke等人[69]提出了一种稳健的光栅化方案。首先将曲线离散化为更小的线段,并构建Voronoi图[57]。通过其在曲线上的最近点确定每个像素的颜色,这设置了初始条件。使用初始猜测和距离图进行扩散。通过从整个图像(初始条件)而不是从离散曲线进行扩散,减少了离散化误差。然而,在曲线附近的像素处,仍然可能出现频闪伪影[69]。

三角网格。Pang等人[102]在三角化域上渲染扩散曲线图像。他们首先将扩散曲线和图像边界离散化为线段,然后使用受约束的Delaunay三角化对域进行三角化。他们不是在每个像素上求解,而是在每个顶点上求解。三角化空间也被用作FEM求解器的中间表示[15]。Boyé等人[15]应用了受约束的Delaunay三角化,并使用二次Lagrange多项式作为基函数。Zhao等人[143]使用了来自Triangle包[115]的类似三角化方法,并使用了二阶基函数。

不规则网格。Dai等人[26]使用图像分割来避免单个曲线的离散化。他们的曲线是从输入图像的一组超像素中提取出来的。超像素边界左侧和右侧的相邻像素被认为是曲线的左侧和右侧颜色源。因此,在扩散过程中不会出现颜色源的重叠。

4.3.2 调和方程:求解方案

闭式解。Sun等人[121]使用Green函数推导出封闭扩散曲线的闭式解:
u(x)=∮∂Ω(u(x′)Gn(x,x′)−∂u(x′)∂n(x′)G(x,x′))dx′ (25)

其中x′∈∂Ω,且
G(x,x′)=12πln(∥x−x′∥),Gn(x,x′)=∂G(x,x′)∂n(x′) (26)

其中曲线法线n指向域外,G(x,x′)是Green函数,Gn(x,x′)是其法向导数。在这个公式中,图像中的每个点都可以直接作为方程(26)中的边界积分进行评估。在实践中,使用边界元方法(BEM)通过在每个扩散曲线上取样点来评估方程(25)。自适应采样方法在曲线上选择一个随机位置,并迭代添加更多样本,使得近似误差低于阈值。Sun等人[120]将方程(25)重写为快速多极表示。使用图像域上的层次网格,他们分层地仅在相邻网格单元中的曲线上计算边界积分,以加快计算速度。

迭代方案。可以使用Jacobi松弛法迭代求解调和方程。在每次迭代k中,更新像素(i,j)的离散像素颜色u i,j:
uk+1i,j={gi,j(i,j)在曲线上uk i−1,j+uk i+1,j+uk i,j−1+uk i,j+14其他情况 (27)

当所需的分辨率很高时,为每个像素求解这个方程会很慢。因此,Orzan等人[101]使用了多网格求解器,见后面的4.3.5节。Jeschke等人[69]设计了一个基于GPU的可变模板大小求解器,以便可以使用更大的步长。光栅化后,生成最近点映射和最终图像的初始猜测,并将其输入到求解器中。在此设置中,拉普拉斯算子不计算为4个相邻像素的平均值,而是根据均值定理[42]、[69]可以将其视为周围圆的平均值。只要不越过边界曲线,圆的半径就可以增加,这由最近点映射确定。或者,Dai等人[26]将扩散过程公式化为随机游走过程。

直接求解器。Pang等人[102]通过直接在三角化域上评估颜色来解决扩散过程。对于曲线节点,颜色定义在曲线上。对于其他三角形顶点,使用均值值坐标(MVC)[42]从有颜色的曲线节点进行插值得到颜色。MVC算法假设节点被封闭多边形包围。因此,在评估MVC之前,需要对每个非曲线节点执行额外的可见性测试,以选择其周围的最近曲线节点。然后可以使用重心插值简单地计算每个三角形内部的颜色。或者,Boyé等人[15]和Zhao等人[143]使用有限元方法在弱公式中线性求解调和方程。

4.3.3 双调和方程:离散化

除了曲线几何和颜色,双调和公式中使用的其他属性也需要进行离散化。基元可以光栅化到统一网格上,也可以离散化到不同的元素上,例如使用有限元(FEM)或边界元(BEM)。

规则网格。Finch等人[41]的公式包含一组临界点和特征曲线。他们根据其四个邻居像素的双线性权重对每个临界点进行光栅化。曲线通过计算曲线与像素边缘的交点进行光栅化。由于特征曲线用于控制局部梯度,这些约束被添加到交点处。

三角网格。Boyé等人[15]将域离散化为非重叠的二次三角补丁,用于调和和双调和公式。然而,对于双调和方程,需要满足另外两个条件。首先,双调和方程的弱公式要求C1连续性穿过符合元素。因此,与调和公式不同,具有C0连续性的二次Lagrange补丁不能直接用作FEM元素。Boyé等人[15]使用三阶非符合元素(Fraeijs de Veubeke(FV)[28],使得C1连续性不需要收敛。其次,双调和方程允许梯度约束,当使用FV作为FEM元素时,这些约束可以附加或在顶点和边上进行插值。

不规则网格。Illbery等人[64]通过使用曲线平滑度阈值的递归细分将曲线离散化为线段。对每个线段进行插值得到颜色值和法线方向上的颜色导数约束,并将其输入BEM求解器进行逐行评估。

4.3.4 双调和方程:求解方案

闭式解。Weber等人[129]和Illbery等人[64]使用Green函数推导出闭式解:
u(x)=∮∂Ωu(x′)GHn(x,x′)dx′①−∮∂Ω∂u(x′)∂n(x′)GH(x,x′)dx′②+∮∂Ω∇2u(x′)GBn(x,x′)dx′③−∮∂Ω∂∇2u(x′)∂n(x′)GB(x,x′)dx′④ (28)

其中x′∈∂Ω是一个边界点。Green函数GH及其法向导数GHn是调和方程的基本解,与方程(26)中的相同。双调和方程的Green函数GB和GBn为:
GB(x,x′)=18π(∥x−x′∥)2(ln(∥x−x′∥)+1)GBn(x,x′)=∂GB(x,x′)∂n(x′) (29)

为了提高计算效率,可以使用曲线感知的上采样方案。当点与线段的距离增加时,线段场会变得更平滑,其值可以通过插值进行近似。在多级公式中,大部分计算是在粗网格上进行的。

迭代方案。Finch等人[41]在较小的网格上求解,并使用层次化策略[13]进行上采样。在粗略域上求解时,他们采用直接求解器(见下文)。然后对这个解进行上采样到更精细的级别,并使用Gauss-Seidel迭代来细化该级别的解。

直接求解器。Finch等人[41]对小图像使用了直接求解器。他们将双调和公式表示为一个线性系统Ax=b。通过计算矩阵A的带状对角Cholesky分解(CD)来求解最终图像。当添加的值约束不足,使得A为正定而不是半正定时,会添加一个小的正则化权重以获得唯一的解。Boyé等人[15]使用了Lascaux和Lessant[75]的双调和方程的弱公式。最终图像可以近似为一个线性系统,并直接求解。

4.3.5 泊松方程:离散化

规则网格。原始的扩散曲线公式[101]需要光栅化颜色源、曲线上的色度导数以及额外的模糊源,见图12。颜色曲线在法线方向上偏移进行光栅化,以避免在光栅化结果中出现重叠。然而,重叠仍然可能发生,特别是在高曲率、细结构和交点处[101]。
image.png
图12. Orzan等人[101]提出的扩散曲线图像的渲染管道。

三角网格。Zhao等人[143]使用有限元方法来解决他们的扩散曲线的调和方程。此外,他们的方法在矢量化过程中的代价函数需要解决泊松方程。他们类似地对调和公式进行了描述,将域进行离散化,并将速度属性(用于矢量化)沿多边形线进行离散化。

不规则网格。Hou等人[60]首先将图像域分解为不相交的子区域,使得每个子域由封闭的扩散曲线限定。对于每个子域,他们在四叉树中离散化基元和约束,用于他们的闭式求解器。

4.3.6 泊松方程:求解方案
方程(17)中一般泊松公式的求解过程因f(x)和g(x)的不同定义而异。

闭式解。类似于调和和双调和函数,可以使用Green公式推导出泊松方程的闭式解。Hou等人[60]使用Green第三公式来构建他们公式的解:
u(x)=∫∫ΩG(x,x′)∇2u(x′)dx′①+∮∂Ωu(x′)Gn(x,x′)−∂u(x′)∂n(x′)G(x,x′)dx′② (30)

当∇2u(x′)=0时,积分①消失,方程简化为方程(25):调和方程的闭式解。G和Gn的定义与方程(26)中的相同。直观上,方程(30)可以像调和公式一样直接进行评估。然而,积分①在整个域上定义,计算起来很昂贵。Hou等人[60]将域离散到一个四叉树上,并为每个单元推导出一个近似值。Li等人[83]使用傅里叶变换来解决他们方程(22)-(23)中的热方程公式。因此,对于任何2D点x=(x,y),时间t的标量不透明度φ可以评估为:
φ(x,t)=14πt⋅c(x)∫+∞−∞φ(x′,0)⋅e−(x−x′)24t⋅c(x)⋅e−(y−y′)24t⋅c(x)dx′ (31)

闭式解提供了扩散过程中任意时间t的直接结果。计算结果然后根据所需的分辨率整体光栅化。

迭代方案。类似于方程(27),Orzan等人[101]的原公式可以使用Jacobi松弛法求解,其中对于迭代k,图像uk+1为:
uk+1i,j={gi,j在曲线上uk i−1,j+uk i+1,j+uk i,j−1+uk i,j+1−div(∇w)i,j4其他情况
梯度场的散度div(∇w)为:
div(∇w)i,j=∂xwi+1,j−∂xwi−1,j2+∂ywi,j+1−∂ywi,j−12 (32)

为了实现交互性,他们使用了多网格方法[17]、[48],并递归地减小域的分辨率,在较粗的域上求解,然后上采样直到达到原始分辨率。类似地,Lin等人[88]对方程(21)中的泊松公式的每个颜色层进行迭代求解。

直接求解器。Bezerra等人[11]将方程(7)中的泊松方程重构为受约束的优化问题,以增加对扩散的控制。由于存在非局部约束(例如,两个封闭区域可以链接以在它们之间启用扩散),多网格求解器会产生不令人满意的结果并且效率低下。他们使用了全局线性求解器。或者,可以使用有限元方法通过迭代或直接求解线性系统来解决调和方程,见4.3.1节。Zhao等人[143]使用二阶基函数来线性求解泊松方程的弱形式。

4.3.7 光线追踪:离散化
目前,光线追踪研究了两个域:规则网格或三角化域。对于规则网格,光线从域中的每个点开始,而在三角化域中,光线从每个三角形顶点开始。

规则网格。Bowers等人[14]将曲线细分为一组线段,用于他们的光线追踪算法。他们构建了一个均匀的加速网格,大小为2√n×2√n,其中n为线段数,使得曲线数量的增加不会导致性能急剧下降。

三角网格。Prévost等人[104]在三角化域上解决了光线追踪过程。类似地,他们将曲线离散化为线段,并使用受约束的Delaunay三角化对图像域进行三角化。Lieng[85]在扩散点的扩展中使用了相同的概念。对于每个三角形,采样评估点以计算最终结果。对于靠近扩散点的像素,评估点接收扩散点的颜色。

4.3.8 光线追踪:求解方案
光线追踪公式以随机方式求解。Bowers等人[14]在GPU上对每个像素进行并行光线追踪。光线的角度通过分层采样确定。也可以应用简单的自适应采样进行加速。这可以通过首先将图像划分为一组块,并使用较少的光线进行光线追踪来实现。在此过程中,每个块的最短交点距离被存储。如果此距离高于阈值,则进一步应用光线追踪以避免欠采样。Prévost等人[104]在每个三角形顶点上进行光线追踪。与Pang等人[102]使用重心插值不同,他们使用三次插值以避免马赫带效应。Lieng等人[85]类似Prévost等人[104]进行光线追踪。为了添加局部扩散点,他们渲染一个Catmull-Clark细分曲面[98]。最终结果是通过线性混合局部和全局结果来合成的。最近,已经引入了新颖的无网格随机PDE求解器[110]用于矢量图形[106]以避免离散化。

4.3.9 抗锯齿
一些方法中添加了抗锯齿技术以减少锯齿伪影。Bowers等人[14]在他们的光线追踪公式中使用了经典技术,使得每个光线的起点设置为2×2抖动模式。Pang等人[102]通过使用累积缓冲区在曲线边界上进行抗锯齿。Sun等人[121]提出了一种随机存取求解器,将图像平面视为连续域。他们评估一个小矩形区域的积分,而不是在每个单独的点上进行评估。然而,这个公式可能会导致快速多极公式的性能下降[120]。相反,Sun等人[120]使用每个像素9个样本的超采样。

4.4 矢量化
当前关于从图像中提取基于曲线的表示的研究主要关注于扩散曲线,特别是原始的、调和的和双调和的公式。由于原始公式和调和公式提取相同的属性,我们将它们放在一起讨论。

4.4.1 基本公式和调和方程
最简单的调和公式包括曲线几何、颜色控制点,通常还包括模糊控制点。

几何。扩散曲线基于边缘可以代表图像中大多数颜色变化的想法[73]、[97]、[101]。因此,边缘检测通常用于初始化。Orzan等人[101]在输入图像的高斯尺度空间(高斯模糊图像的集合)上使用了Canny检测器,它在不同尺度上捕捉梯度域中的局部最大值。进行尺度空间分析[34]、[90]以选择每个边缘的最佳尺度。这种方法也被几个后续工作[82]、[94]、[143]用作起点。然而,正如Orzan等人[101]所讨论的,在平滑区域中很难检测到边缘,这些区域通常被提取为几个较小的边缘,这需要一个平滑的后处理来代表平滑区域。

相反,Dai等人[26]将输入图像分割为多个超像素,然后通过二分图划分将它们合并为具有k个标记区域的单个超像素图。曲线后来被提取为超像素边界。平滑区域被分割为多个超像素,因此不需要重新模糊过程。Zhao等人[143]使用重构图像和原始图像之间差异的等值线作为优化步骤中的初始曲线。通过梯度下降迭代细化曲线,直到重建误差足够小。除了像素图像,该方法还可以用于生成其他颜色场(如3D渲染和梯度网格)的扩散曲线表示,其中初始重建使用对象轮廓或三角形边创建。Lu等人[94]使用额外的深度图像来改善对象轮廓检测。在多尺度颜色图像上使用Canny检测器,而增强的卡通边缘检测器[24]应用于深度图。将两个图像的边缘组合以生成扩散曲线,其中深度图中的粗略边缘表示对象轮廓,颜色图中的边缘表示颜色细节。Li等人[82]将矢量化过程从图像扩展到视频。在每个帧中,使用Canny检测器,并根据曲线上的平均梯度将曲线分类为显著曲线和非显著曲线。非显著曲线的平均梯度较小,是导致视频中闪烁伪影的曲线。通过假设每个曲线是一个刚体,非显著曲线使用光流从一个帧传播到另一个帧。曲线最终被转换为贝塞尔曲线。

颜色。给定曲线几何,接下来计算颜色控制点,例如通过在原始图像的曲线左侧和右侧采样颜色点[143]。在均匀采样颜色点后,Orzan等人[101]使用Douglas-Peucker[31]简化了分段线性颜色曲线,其中颜色差异在感知均匀的CIE Lab颜色空间中测量。Jeschke等人[71]首先使用几何启发式计算密集的颜色控制点集,并像Orzan等人[101]一样删除了离群值。拟合过程表示为一个线性系统Ax=b,其中x是颜色点,b是图像颜色,A是控制点对输入图像的影响。影响矩阵A在单个扩散过程中计算,最优颜色点使用线性最小二乘法计算。后来,Jeschke等人[68]进一步优化了影响矩阵的计算,导致了更简单的实现和更准确的重建。新方案为每个像素保留了一组最有影响的颜色控制点。为了在视频中实现时间一致性,Li等人[82]在显著曲线的左侧和右侧采样颜色作为初始猜测,并通过最小化颜色能量来迭代细化颜色点。

模糊。调和方程通常需要平滑步骤来实现平滑边缘,见4.1.2节。因此,需要在反向过程中提取模糊控制点。Orzan等人[101]计算了输入图像的高斯模糊图像,并通过尺度空间分析选择了最佳尺度来代表边缘。这个理想的尺度被用作边缘像素的模糊值。然后以类似于颜色控制点的方式对模糊控制点进行采样。Jeschke等人[68]首先在每个分段线性曲线段的每个位置估计模糊值。然后使用最小二乘优化将模糊值拟合到模糊控制点。

噪声。除了模糊控制点,Jeschke等人[71]估计了Gabor噪声参数的高斯分布,以模拟输入图像中的纹理。

4.4.2 双调和方程
双调和方程的反向问题比调和方程更难,因为需要更多的约束。目前只有Xie等人[138]提出了一种矢量化方法。

几何。Xie等人[138]指出,拉普拉斯域中的颜色变化不能被梯度域中提取的边缘适当描述。为了解决这个问题,他们分层地在输入图像的拉普拉斯和双拉普拉斯域上应用Canny检测器。这个多尺度表示避免了平滑过程,并将应用扩展到双调和扩散曲线。正如Illbery等人[64]所推导的,拉普拉斯曲线可以被视为双拉普拉斯曲线的特殊情况。因此,一个简单的方法是直接在双拉普拉斯域中求解所有曲线。然而,求解拉普拉斯曲线比求解双拉普拉斯曲线更快。因此,Xie等人[138]首先在拉普拉斯域中提取曲线,并使用投票方法来确定曲线是否为拉普拉斯曲线。然后,他们在双拉普拉斯域中提取曲线,并减去在拉普拉斯域中提取的未分类曲线。减去的双拉普拉斯曲线和分类的拉普拉斯曲线是输出的扩散曲线。

属性。由于使用了Sun等人[121]和Illbery等人[64]的Green公式,曲线颜色、颜色的法向导数、曲线上的拉普拉斯值以及拉普拉斯的法向导数通过直接线性系统求解。Xie等人[138]通过类似于Jeschke等人[69]的可变模板大小线性插值了大部分权重,同时求解拉普拉斯和双拉普拉斯,并使用贝塞尔样条共享控制点,从而减少了系统矩阵的大小。

5 结论和展望

我们全面概述了基于网格和基于曲线的矢量图形的表示、创建、光栅化和矢量化的最新方法。尽管基于网格和基于曲线的方法在底层数学表示上存在概念上的差异,但在它们的光栅化和矢量化过程中以及在实现艺术控制的交互技术中都存在潜在的协同作用。接下来,我们指出了未来工作的几个机会。

3D矢量图形。本文主要关注于平滑2D矢量图形的基于网格和基于曲线的方法。在几个作品中[11]、[14]、[26]、[69]、[70]中提到,它们的表示可以扩展到3D(2D动画或3D图像)甚至4D(3D+时间)。与3D图像相比,2D动画或矢量视频的研究更为深入。一个流行的商业工具用于创建和编辑矢量图形动画是Adobe Flash,它使用户能够使用简单的形状和渐变进行操作。还提出了用于基于曲线[82]和基于网格[128]表示的视频矢量化算法。另一方面,反向过程,如矢量视频的创建和光栅化,研究较少。Takayama等人[124]将2D的扩散曲线扩展到了3D的扩散曲面。类似地,Lu等人[65]提出了一种创建可以连接形成网格的2D路径的工具。然而,与2D图像的成就相比,当前的结果在表达能力上仍然相差甚远,据我们所知,4D矢量图形的概念仍然没有被触及。

矢量化。矢量化过程是网格基和曲线基方法的热门研究领域。两种表示都使用类似的步骤。对于许多基于网格和所有基于曲线的表示,当前的算法遵循两步方案。第一步从输入光栅图像中提取几何,其中通常使用边缘和角检测方法来获取图像特征。基于网格的方法将执行贴片拟合或三角化过程来定位贴片顶点,而基于曲线的方法通常使用参数曲线或样条来拟合检测到的特征。通常,几何形状可能通过重网格或形状优化过程进一步优化,以减少构造误差[84]、[144]。然后是第二步,即提取几何属性。两种表示都从输入图像中采样颜色。目前,只有一种方法设计用于双调和曲线,而所有其他方法都集中在原始或调和表示上。此外,还没有泊松表示的矢量化方法。相反,为了求解更多的属性,梯度网格表示在一步优化中同时计算几何和属性。

艺术自由度。目前,用户可以通过控制点自由编辑和控制颜色和形状,这是一种相当细粒度的用户控制。在光栅图形中,已经进行了大量研究来编辑外观、照明和材料[111]。可以想象,类似地,将为矢量艺术开发更多的高级编辑工具。特别是在风格化图像中,阴影可能不是物理上合理的,重新照明和外观编辑是具有挑战性的任务。

基于草图的系统。目前,只有基于曲线的方法支持自由手绘曲线几何。对于基于曲线和基于网格的表示,属性的输入和调整更受限于选择和更改格式。将草图输入扩展到所有公式中,使得属性可以以更直观的方式添加,这将是有趣的。此外,基于草图的系统和应用的想法也可以转移到矢量图形[62]、[133]中。

基于数据的方法。到目前为止,基于数据的方法已经广泛研究了生成新的基于矢量的图像或将给定图像矢量化,主要针对简单的基于网格的表示,尤其是在SVG格式中。例如,DeepSVG[20]提出了一种基于分层Transformer的网络,用于生成一组绘图命令,这些命令可以渲染为SVG图像。SVG-VAE[92]通过变分自编码器生成类似的绘图指令。后来,Reddy等人[107]提出了一种不需要直接监督的生成模型,通过可微光栅器[80]实现。到目前为止,训练数据通常限制在风格化图像[107]、[108]中。虽然最近已经扩展到照片级真实的图像[95],但更复杂的矢量表示,如扩散曲线和梯度网格,仍然没有被覆盖。一个原因是缺乏数据,因为这些表示对艺术家来说不太可用,并且自动矢量化结果往往导致过多的基元。因此,不容易生成足够的真实数据,这些数据在图像表达性和基元数量低之间有良好的平衡。另一个原因可能是这些表示中属性的丰富性,因为需要适当地学习更多的参数来生成令人信服的结果,这也增加了训练模型的复杂性。

标准化。SVG格式已成为基本矢量图形基元表示的行业标准。然而,对于许多基于曲线和基于网格的公式,还没有这样的默认格式。标准化将是在更广泛采用的道路上的重要一步,因为内容创建工具和渲染API需要一个共同的基础进行通信。

协同作用。基于曲线和基于网格的方法都有其各自的优点和缺点。虽然基于曲线的方法在编辑工具方面更先进,但基于网格的技术在矢量化方面更成熟。已经提出了一些混合技术。Lieung等人[87]引入了阴影曲线的概念,用户可以在平面图像上绘制线条,而阴影效果则沿着曲线渲染为Catmull-Clark曲面。Chen等人[23]将图像特征嵌入到参数化贴片中,并通过薄板样条插值来解决颜色,以实现实时矢量化。在未来,开发新的数学模型来统一基于曲线和基于网格的方法,以利用两种公式的优点,将是有益的。

应用。矢量图形已经在视觉计算的其他领域得到应用,例如用于纹理[70]、[121]或高度场[56]。扩散曲线表示的紧凑性也可以用于基于数据的方法中的图像压缩的中间表示。例如,泊松矢量图形已用于人脸和肖像的颜色传递[44]、[45]。随着未来在表示、创建、光栅化和图像矢量化方面的更多进展,我们期待着矢量图形在其他领域中更令人兴奋的应用。

参考

  • [1]A. Abadpour and S. Kasaei, “An efficient PCA-based color transfer method,” J. Vis. Commun. Image Representation, vol. 18, no. 1, pp. 15–34, 2007.
  • [2]P. Arbelaez, M. Maire, C. Fowlkes, and J. Malik, “Contour detection and hierarchical image segmentation,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 33, no. 5, pp. 898–916, May2011.
  • [3]S. D. Baksteen, G. J. Hettinga, J. Echevarria, and J. Kosinka, “Mesh colours for gradient meshes,” in Proc. Smart Tools Apps Graph. - Eurograph. Italian Chapt. Conf., 2021, pp. 91–96.
  • [4]B. Bao and H. Fu, “Scribble-based colorization for creating smooth-shaded vector graphics,” Comput. Graph., vol. 81, pp. 73–81, 2019.
  • [5]P. J. Barendrecht, M. Luinstra, J. Hogervorst, and J. Kosinka, “Locally refinable gradient meshes supporting branching and sharp colour transitions,” Vis. Comput., vol. 34, no. 6, pp. 949–960, 2018.
  • [6]P. Barla and A. Bousseau, “Gradient art: Creation and vectorization,” Image and Video-Based Artistic Stylisation, Berlin, Germany: Springer, 2013, pp. 149–166.
  • [7]S. Battiato, G. Barbera, G. Di Blasi, G. Gallo, and G. Messina, “Advanced SVG triangulation/polygonalization of digital images,” in Proc. SPIE Internet Imag., 2005, pp. 1–11.
  • [8]S. Battiato, G. Blasi, G. Gallo, and E. Messina, “Firemark: A Java tool for SVG watermarking,” in Proc. 4th Annu. Conf. Scalable Vector Graph., 2005, pp. 1–6.
  • [9]S. Battiato, G. Gallo, and G. Messina, “SVG rendering of real images using data dependent triangulation,” in Proc. 20th Spring Conf. Comput. Graph., 2004, pp. 185–192.
  • [10]R. Beatson, M. S. Floater, and C. E. Kåshagen, “Hermite mean value interpolation on polygons,” Comput. Aided Geometric Des., vol. 60, pp. 18–27, 2018.
  • [11]H. Bezerra, E. Eisemann, D. DeCarlo, and J. Thollot, “Diffusion constraints for vector graphics,” in Proc. Int. Symp. Non-Photorealistic Animation Rendering, 2010, pp. 35–42.
  • [12]A. K. Bhunia, P. N. Chowdhury, Y. Yang, T. M. Hospedales, T. Xiang, and Y.-Z. Song, “Vectorization and rasterization: Self-supervised learning for sketch and handwriting,” in Proc. IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2021, pp. 5672–5681.
  • [13]M. Botsch, D. Bommes, and L. Kobbelt, “Efficient linear system solvers for mesh processing,” in Mathematics of Surfaces XI. Berlin, Germany: Springer, 2005, pp. 62–83.
  • [14]J. C. Bowers, J. Leahey, and R. Wang, “A ray tracing approach to diffusion curves,” Comput. Graph. Forum, vol. 30, no. 4, pp. 1345–1352, 2011.
  • [15]S. Boyé, P. Barla, and G. Guennebaud, “A vectorial solver for free-form vector gradients,” ACM Trans. Graph., vol. 31, no. 6, pp. 1–9, 2012.
  • [16]Y. Boykov and V. Kolmogorov, “An experimental comparison of min-cut/max-flow algorithms for energy minimization in vision,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 26, no. 9, pp. 1124–1137, Sep.2004.
  • [17]W. L. Briggs, V. E. Henson, and S. F. McCormick, A Multigrid Tutorial. Philadelphia, PA, USA: SIAM, 2000.
  • [18]J. Canny, “A computational approach to edge detection,” IEEE Trans. Pattern Anal. Mach. Intell., vol. PAMI-8, no. 6, pp. 679–698, Nov.1986.
  • [19]J. Cao, Z. Chen, X. Wei, and Y. J. Zhang, “A finite element framework based on bivariate simplex splines on triangle configurations,” Comput. Methods Appl. Mech. Eng., vol. 357, 2019, Art. no. 112598.
  • [20]A. Carlier, M. Danelljan, A. Alahi, and R. Timofte, “DeepSVG: A hierarchical generative network for vector graphics animation,” in Proc. Int. Conf. Neural Inf. Process. Syst., 2020, pp. 16 351–16 361.
  • [21]E. Catmull and J. Clark, “Recursively generated B-spline surfaces on arbitrary topological meshes,” Comput.-Aided Des., vol. 10, no. 6, pp. 350–355, 1978.
  • [22]P. Charrot and J. A. Gregory, “A pentagonal surface patch for computer aided geometric design,” Comput. Aided Geometric Des., vol. 1, no. 1, pp. 87–94, 1984.
  • [23]K.-W. Chen , “Image vectorization with real-time thin-plate spline,” IEEE Trans. Multimedia, vol. 22, no. 1, pp. 15–29, Jan.2020.
  • [24]M.-M. Cheng, “Curve structure extraction for cartoon images,” in Proc. 5th Joint Conf. Harmonious Hum. Mach. Environ., 2009, pp. 13–25.
  • [25]H. Chiyokura and F. Kimura, “Design of solids with free-form surfaces,” in Proc. 10th Annu. Conf. Comput. Graph. Interactive Techn., 1983, pp. 289–298.
  • [26]W. Dai, T. Luo, and J. Shen, “Automatic image vectorization using superpixels and random walkers,” in Proc. Int. Congr. Image Signal Process., 2013, pp. 922–926.
  • [27]F. Davoine, M. Antonini, J.-M. Chassery, and M. Barlaud, “Fractal image compression based on Delaunay triangulation and vector quantization,” IEEE Trans. Image Process., vol. 5, no. 2, pp. 338–346, Feb.1996.
  • [28]B. F. De Veubeke, “Variational principles and the patch test,” Int. J. Numer. Methods Eng., vol. 8, no. 4, pp. 783–801, 1974.
  • [29]L. Demaret, N. Dyn, and A. Iske, “Image compression by linear splines over adaptive triangulations,” Signal Process., vol. 86, no. 7, pp. 1604–1616, 2006.
  • [30]E. A. Dominici, N. Schertler, J. Griffin, S. Hoshyari, L. Sigal, and A. Sheffer, “PolyFit: Perception-aligned vectorization of raster clip-art via intermediate polygonal fitting,” ACM Trans. Graph., vol. 39, no. 4, pp. 77–1, 2020.
  • [31]D. H. Douglas and T. K. Peucker, “Algorithms for the reduction of the number of points required to represent a digitized line or its caricature,” Cartographica: Int. J. Geographic Inf. Geovisualization, vol. 10, no. 2, pp. 112–122, 1973.
  • [32]N. Dyn, D. Levin, and S. Rippa, “Data dependent triangulations for piecewise linear interpolation,” IMA J. Numer. Anal., vol. 10, no. 1, pp. 137–154, 1990.
  • [33]V. Egiazarian , “Deep vectorization of technical drawings,” in Proc. Eur. Conf. Comput. Vis., 2020, pp. 582–598.
  • [34]J. H. Elder, “Are edges incomplete?,” Int. J. Comput. Vis., vol. 34, no. 2/3, pp. 97–122, 1999.
  • [35]K. Ellis, D. Ritchie, A. Solar-Lezama, and J. Tenenbaum, “Learning to infer graphics programs from hand-drawn images,” in Proc. Int. Conf. Neural Inf. Process. Syst., 2018, pp. 6062–6071.
  • [36]G. E. Farin and G. Farin, Curves and Surfaces for CAGD: A Practical Guide. San Mateo, CA, USA: Morgan Kaufmann, 2002.
  • [37]J.-D. Favreau, F. Lafarge, and A. Bousseau, “Fidelity vs. simplicity: A global approach to line drawing vectorization,” ACM Trans. Graph., vol. 35, no. 4, pp. 1–10, 2016.
  • [38]J.-D. Favreau, F. Lafarge, and A. Bousseau, “Photo2ClipArt: Image abstraction and vectorization using layered linear gradients,” ACM Trans. Graph., vol. 36, no. 6, pp. 1–11, 2017.
  • [39]P. F. Felzenszwalb and D. P. Huttenlocher, “Efficient graph-based image segmentation,” Int. J. Comput. Vis., vol. 59, no. 2, pp. 167–181, 2004.
  • [40]J. Ferguson, “Multivariable curve interpolation,” J. ACM, vol. 11, no. 2, pp. 221–228, Apr.1964.
  • [41]M. Finch, J. Snyder, and H. Hoppe, “Freeform vector graphics with controlled thin-plate splines,” ACM Trans. Graph., vol. 30, no. 6, pp. 1–10, 2011.
  • [42]M. S. Floater, “Mean value coordinates,” Comput. Aided Geometric Des., vol. 20, no. 1, pp. 19–27, 2003.
  • [43]M. Froumentin, F. Labrosse, and P. Willis, “A vector-based representation for image warping,” Comput. Graph. Forum, vol. 19, no. 3, pp. 419–425, 2000.
  • [44]Q. Fu , “Poisson vector graphics (PVG)-guided face color transfer in videos,” IEEE Comput. Graph. Appl., vol. 41, no. 6, pp. 152–163, Nov./Dec.2021.
  • [45]Q. Fu, Y. He, F. Hou, J. Zhang, A. Zeng, and Y.-J. Liu, “Vectorization based color transfer for portrait images,” Comput.-Aided Des., vol. 115, pp. 111–121, 2019.
  • [46]Q. Fu , “Decorating 3D models with poisson vector graphics,” Comput.-Aided Des., vol. 102, pp. 1–11, 2018.
  • [47]M. Garland and P. S. Heckbert, “Surface simplification using quadric error metrics,” in Proc. 24th Annu. Conf. Comput. Graph. Interactive Techn., 1997, pp. 209–216.
  • [48]N. Goodnight, C. Woolley, G. Lewin, D. Luebke, and G. Humphreys, “A multigrid solver for boundary value problems using programmable graphics hardware,” in Proc. ACM SIGGRAPH Courses, 2005, pp. 193–es.
  • [49]Y. Guo, Z. Zhang, C. Han, W. Hu, C. Li, and T.-T. Wong, “Deep line drawing vectorization via line subdivision and topology reconstruction,” Comput. Graph. Forum, vol. 38, no. 7, pp. 81–90, 2019.
  • [50]Y. He, S. H. Kang, and J.-M. Morel, “Topology and perception aware image vectorization,” Res. Square Preprint, 2022, doi: 10.21203/rs.3.rs-1817017/v1.
  • [51]G. Hettinga, J. Echevarria, and J. Kosinka, “Efficient image vectorisation using mesh colours,” in Proc. Ital. Chapter Conf. Smart Tools Apps Graph., 2021, pp. 139–150.
  • [52]G. J. Hettinga, P. J. Barendrecht, and J. Kosinka, “A comparison of GPU tessellation strategies for multisided patches,” in Proc. 39th Annu. Eur. Assoc. Comput. Graph. Conf., 2018, pp. 45–48.
  • [53]G. J. Hettinga, R. Brals, and J. Kosinka, “Colour interpolants for polygonal gradient meshes,” Comput. Aided Geometric Des., vol. 74, 2019, Art. no. 101769.
  • [54]G. J. Hettinga, J. Echevarria, and J. Kosinka, “Adaptive image vectorisation and brushing using mesh colours,” Comput. Graph., vol. 105, pp. 119–130, 2022.
  • [55]G. J. Hettinga, R. van Beckhoven, and J. Kosinka, “Noisy gradient meshes: Augmenting gradient meshes with procedural noise,” Graphical Models, vol. 103, 2019, Art. no. 101024.
  • [56]H. Hnaidi, E. Guérin, S. Akkouche, A. Peytavie, and E. Galin, “Feature based terrain generation using diffusion equation,” Comput. Graph. Forum, vol. 29, no. 7, pp. 2179–2186, 2010.
  • [57]K. E. Hoff III, J. Keyser, M. Lin, D. Manocha, and T. Culver, “Fast computation of generalized Voronoi diagrams using graphics hardware,” in Proc. 26th Annu. Conf. Comput. Graph. Interactive Techn., 1999, pp. 277–286.
  • [58]H. Hoppe , “Piecewise smooth surface reconstruction,” in Proc. 21st Annu. Conf. Comput. Graph. Interactive Techn., 1994, pp. 295–302.
  • [59]S. Hoshyari , “Perception-driven semi-structured boundary vectorization,” ACM Trans. Graph., vol. 37, no. 4, pp. 1–14, 2018.
  • [60]F. Hou , “Poisson vector graphics (PVG) and its closed-form solver,” 2017, arXiv:1701.04303.
  • [61]F. Hou , “Poisson vector graphics (PVG),” IEEE Trans. Vis. Comput. Graph., vol. 26, no. 2, pp. 1361–1371, Feb.2020.
  • [62]Z. Hu, H. Xie, T. Fukusato, T. Sato, and T. Igarashi, “Sketch2VF: Sketch-based flow design with conditional generative adversarial network,” Comput. Animation Virtual Worlds, vol. 30, no. 3/4, 2019, Art. no. e1889.
  • [63]T. Igarashi, T. Moscovich, and J. F. Hughes, “As-rigid-as-possible shape manipulation,” ACM Trans. Graph., vol. 24, no. 3, pp. 1134–1141, 2005.
  • [64]P. Ilbery, L. Kendall, C. Concolato, and M. McCosker, “Biharmonic diffusion curve images from boundary elements,” ACM Trans. Graph., vol. 32, no. 6, pp. 1–12, 2013.
  • [65]M.-Y. Iu, “DiffusionMesh,” in Proc. 45th Graph. Interface Conf., 2019, pp. 1–8.
  • [66]A. Jacobson, T. Weinkauf, and O. Sorkine, “Smooth shape-aware functions with controlled extrema,” Comput. Graph. Forum, vol. 31, no. 5, pp. 1577–1586, 2012.
  • [67]J. F. Jarvis, C. N. Judice, and W. H. Ninke, “A survey of techniques for the display of continuous tone pictures on bilevel displays,” Comput. Graph. Image Process., vol. 5, no. 1, pp. 13–40, 1976.
  • [68]S. Jeschke, “Generalized diffusion curves: An improved vector representation for smooth-shaded images,” Comput. Graph. Forum, vol. 35, no. 2, pp. 71–79, 2016.
  • [69]S. Jeschke, D. Cline, and P. Wonka, “A GPU Laplacian solver for diffusion curves and poisson image editing,” in Proc. ACM SIGGRAPH Asia Papers, 2009, pp. 1–8.
  • [70]S. Jeschke, D. Cline, and P. Wonka, “Rendering surface details with diffusion curves,” in Proc. ACM SIGGRAPH Asia Papers, 2009, pp. 1–8.
  • [71]S. Jeschke, D. Cline, and P. Wonka, “Estimating color and texture parameters for vector graphics,” Comput. Graph. Forum, vol. 30, no. 2, pp. 523–532, 2011.
  • [72]T. Ju, S. Schaefer, and J. Warren, “Mean value coordinates for closed triangular meshes,” in Proc. ACM SIGGRAPH Papers, 2005, pp. 561–566.
  • [73]J. J. Koenderink and A. J. Van Doorn, “The internal representation of solid shape with respect to vision,” Biol. Cybern., vol. 32, no. 4, pp. 211–216, 1979.
  • [74]Y.-K. Lai, S.-M. Hu, and R. R. Martin, “Automatic and topology-preserving gradient mesh generation for image vectorization,” ACM Trans. Graph., vol. 28, no. 3, pp. 1–8, 2009.
  • [75]P. Lascaux and P. Lesaint, “Some nonconforming finite elements for the plate bending problem,” Revue Française d’Automatique, Informatique, Recherche Opérationnelle. Analyse numérique, vol. 9, no. R1, pp. 9–53, 1975.
  • [76]K. Lawonn and T. Günther, “Stylized image triangulation,” Comput. Graph. Forum, vol. 38, no. 1, pp. 221–234, 2019.
  • [77]G. Lecot and B. Levy, “Ardeco: Automatic region detection and conversion,” in Proc. 17th Eurographics Conf. Rendering Techn., 2006, pp. 349–360.
  • [78]S.-M. Lee, “Wavelet-based multiresolution surface approximation from height fields,” PhD dissertation, Virginia Polytechnic Inst. State Univ., 2002. [Online]. Available: https://vtechworks.lib.vt.edu/handle/10919/26203?show=full
  • [79]K. Levenberg, “A method for the solution of certain problems in least squares,” Quart. Appl. Math., vol. 2, pp. 164–168, 1944.
  • [80]T.-M. Li, M. Lukáč, M. Gharbi, and J. Ragan-Kelley, “Differentiable vector graphics rasterization for editing and learning,” ACM Trans. Graph., vol. 39, no. 6, pp. 1–15, 2020.
  • [81]X.-Y. Li, T. Ju, and S.-M. Hu, “Cubic mean value coordinates,” ACM Trans. Graph., vol. 32, no. 4, 2013, Art. no. 126.
  • [82]Y. Li , “Video vectorization via bipartite diffusion curves propagation and optimization,” IEEE Trans. Vis. Comput. Graph., vol. 28, no. 9, pp. 3265–3276, Sep.2022.
  • [83]Y. Li, X. Zhai, F. Hou, Y. Liu, A. Hao, and H. Qin, “Vectorized painting with temporal diffusion curves,” IEEE Trans. Vis. Comput. Graph., vol. 27, no. 1, pp. 228–240, Jan.2021.
  • [84]Z. Liao, H. Hoppe, D. Forsyth, and Y. Yu, “A subdivision-based representation for vector image editing,” IEEE Trans. Vis. Comput. Graph., vol. 18, no. 11, pp. 1858–1867, Nov.2012.
  • [85]H. Lieng, “Ray-traced diffusion points,” in Proc. ACM SIGGRAPH Posters, 2016, pp. 1–2.
  • [86]H. Lieng, J. Kosinka, J. Shen, and N. A. Dodgson, “A colour interpolation scheme for topologically unrestricted gradient meshes,” Comput. Graph. Forum, vol. 36, no. 6, pp. 112–121, 2017.
  • [87]H. Lieng, F. Tasse, J. Kosinka, and N. A. Dodgson, “Shading curves: Vector-based drawing with explicit gradient control,” Comput. Graph. Forum, vol. 34, no. 6, pp. 228–239, 2015.
  • [88]H. Lin, J. Zhang, and C. Xu, “Diffusion curves with diffusion coefficients,” Comput. Vis. Media, vol. 4, no. 2, 2018, Art. no. 7.
  • [89]J. Lin, G. Zhang, L. Wang, X. Gao, M. Liao, and Y. Zhang, “Diffusion based vector graphics on mobile devices,” in Proc. Ninth Int. Conf. Front. Comput. Sci. Technol., 2015, pp. 153–156.
  • [90]T. Lindeberg, “Edge detection and ridge detection with automatic scale selection,” Int. J. Comput. Vis., vol. 30, no. 2, pp. 117–156, 1998.
  • [91]C. Liu, J. Wu, P. Kohli, and Y. Furukawa, “Raster-to-Vector: Revisiting floorplan transformation,” in Proc. IEEE Int. Conf. Comput. Vis., 2017, pp. 2195–2203.
  • [92]R. G. Lopes, D. Ha, D. Eck, and J. Shlens, “A learned representation for scalable vector graphics,” in Proc. IEEE/CVF Int. Conf. Comput. Vis., 2019, pp. 7930–7939.
  • [93]S. Lu, X. Ding, F. Gao, and J. Chen, “Shape manipulation of diffusion curves images,” IEEE Access, vol. 8, pp. 57 158–57 167, 2020.
  • [94]S. Lu , “Depth-aware image vectorization and editing,” Vis. Comput., vol. 35, no. 6, pp. 1027–1039, 2019.
  • [95]X. Ma , “Towards layer-wise image vectorization,” in Proc. IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2022, pp. 16 314–16 323.
  • [96]M. Maire, P. Arbeláez, C. Fowlkes, and J. Malik, “Using contours to detect and localize junctions in natural images,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2008, pp. 1–8.
  • [97]D. Marr and E. Hildreth, “Theory of edge detection,” Proc. Roy. Soc. London Ser. B Biol. Sci., vol. 207, no. 1167, pp. 187–217, 1980.
  • [98]M. Nießner, C. Loop, M. Meyer, and T. Derose, “Feature-adaptive GPU rendering of Catmull-Clark subdivision surfaces,” ACM Trans. Graph., vol. 31, no. 1, pp. 1–11, 2012.
  • [99]J. Nocedal and S. J. Wright, Numerical Optimization. Berlin, Germany: Springer, 1999.
  • [100]G. Noris, A. Hornung, R. W. Sumner, M. Simmons, and M. Gross, “Topology-driven vectorization of clean line drawings,” ACM Trans. Graph., vol. 32, no. 1, pp. 1–11, 2013.
  • [101]A. Orzan, A. Bousseau, H. Winnemöller, P. Barla, J. Thollot, and D. Salesin, “Diffusion curves: A vector representation for smooth-shaded images,” ACM Trans. Graph., vol. 27, no. 3, pp. 1–8, 2008.
  • [102]W.-M. Pang, J. Qin, M. Cohen, P.-A. Heng, and K.-S. Choi, “Fast rendering of diffusion curves with triangles,” IEEE Comput. Graph. Appl., vol. 32, no. 4, pp. 68–78, Jul./Aug.2012.
  • [103]M. Powell, “A thin plate spline method for mapping curves into curves in two dimensions,” in Proc. 7th Biennial Conf. Comput. Techn. Appl., 1996, pp. 43–57.
  • [104]R. Prévost, W. Jarosz, and O. Sorkine-Hornung, “A vectorial framework for ray traced diffusion curves,” Comput. Graph. Forum, vol. 34, no. 1, pp. 253–264, 2015.
  • [105]B. Price and W. Barrett, “Object-based vectorization for interactive image editing,” Vis. Comput., vol. 22, no. 9, pp. 661–670, 2006.
  • [106]Y. Qi, D. Seyb, B. Bitterli, and W. Jarosz, “A bidirectional formulation for walk on spheres,” Comput. Graph. Forum, vol. 41, pp. 51–62, 2022.
  • [107]P. Reddy, M. Gharbi, M. Lukac, and N. J. Mitra, “Im2Vec: Synthesizing vector graphics without vector supervision,” in Proc. IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2021, pp. 7342–7351.
  • [108]L. S. F. Ribeiro, T. Bui, J. Collomosse, and M. Ponti, “Sketchformer: Transformer-based representation for sketched structure,” in Proc. IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2020, pp. 14 153–14 162.
  • [109]C. Rother, V. Kolmogorov, and A. Blake, ““GrabCut” – Interactive foreground extraction using iterated graph cuts,” ACM Trans. Graph., vol. 23, no. 3, pp. 309–314, 2004.
  • [110]R. Sawhney and K. Crane, “Monte Carlo geometry processing: A grid-free approach to PDE-based methods on volumetric domains,” ACM Trans. Graph., vol. 39, no. 4, 2020, Art. no. 123.
  • [111]T.-W. Schmidt, F. Pellacini, D. Nowrouzezahrai, W. Jarosz, and C. Dachsbacher, “State of the art in artistic editing of appearance, lighting and material,” Comput. Graph. Forum, vol. 35, no. 1, pp. 216–233, 2016.
  • [112]D. Schmitt, “Bivariate B-splines from convex pseudo-circle configurations,” in Proc. Int. Symp. Fundam. Comput. Theory, 2019, pp. 335–349.
  • [113]P. J. Schneider, “An algorithm for automatically fitting digitized curves,” Graph. Gems, vol. 1, pp. 612–626, 1990.
  • [114]I.-C. Shen and B.-Y. Chen, “ClipGen: A deep generative model for clipart vectorization and synthesis,” IEEE Trans. Vis. Comput. Graphics, vol. 28, no. 12, pp. 4211–4224, Dec.2022.
  • [115]J. R. Shewchuk, “Triangle: Engineering a 2D quality mesh generator and Delaunay triangulator,” in Proc. Workshop Appl. Comput. Geometry, 1996, pp. 203–222.
  • [116]D. Su and P. Willis, “Image interpolation by pixel-level data-dependent triangulation,” Comput. Graph. Forum, vol. 23, no. 2, pp. 189–201, 2004.
  • [117]H. Su, J. Niu, X. Liu, J. Cui, and J. Wan, “Vectorization of raster manga by deep reinforcement learning,” 2021, arXiv:2110.04830.
  • [118]J. Sun, L. Liang, F. Wen, and H.-Y. Shum, “Image vectorization using optimized gradient meshes,” ACM Trans. Graph., vol. 26, no. 3, pp. 11–es, 2007.
  • [119]Q. Sun, C.-W. Fu, and Y. He, “An interactive multi-touch sketching interface for diffusion curves,” in Proc. SIGCHI Conf. Hum. Factors Comput. Syst., 2011, pp. 1611–1614.
  • [120]T. Sun, P. Thamjaroenporn, and C. Zheng, “Fast multipole representation of diffusion curves and points,” ACM Trans. Graph., vol. 33, no. 4, 2014, Art. no. 53.
  • [121]X. Sun , “Diffusion curve textures for resolution independent texture mapping,” ACM Trans. Graph., vol. 31, no. 4, pp. 1–9, 2012.
  • [122]J. K. Svergja and H. Lieng, “A gradient mesh tool for non-rectangular gradient meshes,” in Proc. ACM SIGGRAPH Posters, 2017, pp. 1–2.
  • [123]S. Swaminarayan and L. Prasad, “Rapid automated polygonal image decomposition,” in Proc. 35th IEEE Appl. Imagery Pattern Recognit. Workshop, 2006, pp. 28–28.
  • [124]K. Takayama, O. Sorkine, A. Nealen, and T. Igarashi, “Volumetric modeling with diffusion surfaces,” in Proc. ACM SIGGRAPH Asia Papers, 2010, pp. 1–8.
  • [125]T. Várady, P. Salvi, and G. Karikó, “A multi-sided Bézier patch with a simple control structure,” Comput. Graph. Forum, vol. 35, no. 2, pp. 307–317, 2016.
  • [126]T. W. Verstraaten and J. Kosinka, “Local and hierarchical refinement for subdivision gradient meshes,” Comput. Graph. Forum, vol. 37, no. 7, pp. 373–383, 2018.
  • [127]L. Wan, Y. Xiao, N. Dou, C.-S. Leung, and Y.-K. Lai, “Scribble-based gradient mesh recoloring,” Multimedia Tools Appl., vol. 77, no. 11, pp. 13 753–13 771, 2018.
  • [128]C. Wang, J. Zhu, Y. Guo, and W. Wang, “Video vectorization via tetrahedral remeshing,” IEEE Trans. Image Process., vol. 26, no. 4, pp. 1833–1844, Apr.2017.
  • [129]O. Weber, R. Poranne, and C. Gotsman, “Biharmonic coordinates,” Comput. Graph. Forum, vol. 31, no. 8, pp. 2409–2422, 2012.
  • [130]G. Wei, Y. Zhou, X. Gao, Q. Ma, S. Xin, and Y. He, “Field-aligned quadrangulation for image vectorization,” Comput. Graph. Forum, vol. 38, no. 7, pp. 171–180, 2019.
  • [131]G. Wolberg and I. Alfy, “Monotonic cubic spline interpolation,” in Proc. Comput. Graph. Int., 1999, pp. 188–195.
  • [132]T. Xia, B. Liao, and Y. Yu, “Patch-based image vectorization with automatic curvilinear feature alignment,” ACM Trans. Graph., vol. 28, no. 5, pp. 1–10, 2009.
  • [133]C. Xiao, D. Yu, X. Han, Y. Zheng, and H. Fu, “SketchHairSalon: Deep sketch-based hair image synthesis,” ACM Trans. Graph., vol. 40, no. 6, pp. 1–16, 2021.
  • [134]X. Xiao and L. Ma, “Color transfer in correlated color space,” in Proc. ACM Int. Conf. Virtual Reality Continuum Appl., 2006, pp. 305–309.
  • [135]Y. Xiao, J. Cao, and Z. Chen, “Image representation on curved optimal triangulation,” Comput. Graph. Forum, vol. 41, pp. 23–36, 2022.
  • [136]Y. Xiao, L. Wan, C.-S. Leung, Y.-K. Lai, and T.-T. Wong, “Example-based color transfer for gradient meshes,” IEEE Trans. Multimedia, vol. 15, no. 3, pp. 549–560, Apr.2013.
  • [137]Y. Xiao, L. Wan, C. S. Leung, Y.-K. Lai, and T.-T. Wong, “Optimization-based gradient mesh colour transfer,” Comput. Graph. Forum, vol. 34, no. 6, pp. 123–134, 2015.
  • [138]G. Xie, X. Sun, X. Tong, and D. Nowrouzezahrai, “Hierarchical diffusion curves for accurate automatic image vectorization,” ACM Trans. Graph., vol. 33, no. 6, pp. 1–11, 2014.
  • [139]M. Yang, H. Chao, C. Zhang, J. Guo, L. Yuan, and J. Sun, “Effective clipart image vectorization through direct optimization of Bézigons,” IEEE Trans. Vis. Comput. Graphics, vol. 22, no. 2, pp. 1063–1075, Feb.2016.
  • [140]L. Yatziv and G. Sapiro, “Fast image and video colorization using chrominance blending,” IEEE Trans. Image Process., vol. 15, no. 5, pp. 1120–1129, May2006.
  • [141]X. Yu, B. S. Bryan, and T. W. Sederberg, “Image reconstruction using data-dependent triangulation,” IEEE Comput. Graph. Appl., vol. 21, no. 3, pp. 62–68, May/Jun.2001.
  • [142]C. Yuksel, J. Keyser, and D. H. House, “Mesh colors,” ACM Trans. Graph., vol. 29, no. 2, pp. 1–11, 2010.
  • [143]S. Zhao, F. Durand, and C. Zheng, “Inverse diffusion curves using shape optimization,” IEEE Trans. Vis. Comput. Graphics, vol. 24, no. 7, pp. 2153–2166, Jul.2018.
  • [144]H. Zhou, J. Zheng, and L. Wei, “Representing images using curvilinear feature driven subdivision surfaces,” IEEE Trans. Image Process., vol. 23, no. 8, pp. 3268–3280, Aug.2014.
  • [145]J. Zhou, G. J. Hettinga, S. Houwink, and J. Kosinka, “Feature-adaptive and hierarchical subdivision gradient meshes,” Comput. Graph. Forum, vol. 41, no. 1, pp. 389–401, 2022.
  • [146]H. Zhu, J. Cao, Y. Xiao, Z. Chen, Z. Zhong, and Y. J. Zhang, “TCB-spline-based image vectorization,” ACM Trans. Graph., vol. 41, no. 3, 2022, Art. no. 34.
  • [147]D. Zorin, “Modeling with multiresolution subdivision surfaces,” in Proc. ACM SIGGRAPH Courses, 2006, pp. 30–50.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/602304.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工程技术SCI期刊,中科院三区,一投就中,国人友刊!

一、期刊名称 Industrial Management & Data Systems 二、期刊简介概况 期刊类型:SCI 学科领域:工程技术 影响因子:5.5 中科院分区:3区 出版方式:订阅模式/开放出版 版面费:$4120 三、期刊征稿范…

QT功能 实现静态内容国际化实验

文章目录 第一步:新建一个QT工程第二步:添加控件第三步:在pro文件中添加内容第四步:更新文件第五步:打开QT的Linguist第六步:添加翻译内容第七步:回到QT Creator中添加文件第八步:给…

Colibri for Mac v2.2.0激活版:专业级无损音乐播放器

Colibri for Mac是一款专为Mac用户设计的高分辨率无损音乐播放器。它基于BASS技术构建,为用户带来极致的音频体验。Colibri支持所有流行的无损和有损音频格式,如FLAC、MP3、AAC等,确保音乐播放的清晰度和完美度。其独特的清晰比特完美播放技术…

月均互动超50万!“仪式感”何以盛行?小红书数据分析揭示消费动力

现代年轻人:“赚不到钱,却爱花钱买仪式感”。审慎消费的当下,“仪式感消费”不减反增,小红书平台相关内容更是持续火爆,成为品牌圈粉消费者的关键词。 这届小红书用户,热衷为“仪式感”氪金 “XX的第一杯奶…

【mysql】mysql单表查询、多表查询、分组查询、子查询等案例详细解析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

常用的外贸软件有哪些

常用的外贸软件涵盖了多个方面,包括客户开发、订单管理、库存控制、客户关系管理(CRM)、财务管理以及跨境电商平台等。以下是一些代表性的外贸软件和平台: 客户开发与营销软件: 大镜山谷歌搜索大师易谷歌地图数据采集大师米贸搜 外贸管理软件 (ERP): 神卓…

【Kali Linux工具篇】使用Aircrack-ng破解wifi密码

前期准备 1、一个无线网卡 2、密钥爆破字典 实站过程 1、设置wlan为监听模式 airmon-ng start wlan0 #开启网卡wlan0监听模式 iwconfig #查看网卡状态,发现wlan0mon,表示已开启成功2、探测附近WiFi airdump-ng wlan0monBSSID 代表…

零售全渠道营销业务链分析,让企业管控能力大幅加强!

对于传统的、规模化的零售快消企业来讲,面临着很大的渠道管理和建设问题,如何尽快实现整个营销体系的全渠道数字化转型是当务之急、重中之重。 面对错综分散的经销商,零售快消企业订货流程会越复杂,加之对门店管理较为粗放&#…

技术速递|Java on VS Code 3月更新 - 大量 Spring 新功能!测试覆盖率功能正式发布!​

作者:Nick Zhu 排版:Alan Wang 大家好,欢迎来到2024年3月的 Visual Studio Code Java 更新!在本篇博客中,我们将分享大量 Spring 有关的新功能以及测试覆盖率的更新,让我们开始吧! Spring Boot…

【网络】网络层ICMP协议

🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…

新建的springBoot WEB项目无法自动返回html模版(gradle+kotlin版本)

最近研究了springBoot创建web项目, 第一步服务端返回字符串没有问题,第二步返回html时,还是返回的字符串。 文章目录 一、参考方案二、新建springBoot web项目三、启动项目的三种方式 一、参考方案 将控制器类的 RestController 改为 Contro…

【JavaWeb】网上蛋糕商城后台-订单管理

概念 前面通过多篇文章以完全实现了用户在网上蛋糕商城平台上的所有功能和操作,从本文开始,实现网站的后台管理功能的介绍和操作。 订单列表 想要进入后台管理系统,则登入的用户一定是管理员账号,这个账号和密码只有管理员才知…

图搜索算法 - 拓扑排序

相关文章: 数据结构–图的概念 图搜索算法 - 深度优先搜索法(DFS) 图搜索算法 - 广度优先搜索法(BFS) 拓扑排序 概念 几乎所有的工程都可分为若干个称作活动的子工程,而这些子工程之间,通常受…

多个开源的js补环境框架测试

原文链接:https://mp.weixin.qq.com/s/uEMFGpE5bqmTvzSgX2twvA 前言 在做js逆向时肯定会遇到补环境的情况,看到github开源了好几个补环境用的框架,这篇文章做个测试,看看哪个比较好用。 https://github.com/pysunday/sdenvhttp…

使用Tkinter实现数据预测工具的GUI界面展示

如果构建好预测模型后,想将预测模型通过一个交互式的页面显示,可以通过下边两种方式实现。 本文中代码有详细解析注释,便不再如往期一样分开讲解了,有需要的朋友可以直接拿去使用,代码可以直接运行,把预测…

【计算机网络原理】初始网络原理和一些名词解释​​

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

【读点论文】SAM-LIGHTENING: A LIGHTWEIGHT SEGMENT ANYTHING MODEL,改进自注意力机制,然后知识蒸馏提点

SAM-LIGHTENING: A LIGHTWEIGHT SEGMENT ANYTHING MODEL WITH DILATED FLASH ATTENTION TO ACHIEVE 30 ACCELERATION ABSTRACT 分割任意模型(SAM)由于其零样本泛化能力,在分割任务中引起了广泛的关注。然而,SAM在现实世界实践中…

一个圈圈的机制玩法

什么是一个圈圈,说白了就是一个撸广告的平台,只是引入了减产机制,九维机制和分成机制,再加上有央企背景,做的一个区块链平台。 玩法很简单,就是撸广告获取能量,然后获取绿色能量,等…

网络安全之ACL

ACL:访问控制列表——控制列表(策略列表),是一个控制工具。 功能:!、定义感兴趣路由(控制层面)。2、定义感兴趣流量(数据层面)。 例如: 假设在该…

记一次favicon.ico的折腾

某项目需要将前端和后台整合在一起 我也不知道为啥要整合 上面有要求就整呗 正常前端npm run build打包后 dist内会根据设置自动生成favicon.ico文件在根目录下 但由于前后端整合 需要打包后将图标放在dist下的static文件夹里 需要的效果 打包后 index.html里 <link rel&…