具有不同类型和抽象级别的场景素描

摘要

在本文中,我们提出了一种方法,可以将给定的场景图像转换为使用不同类型的抽象和多个抽象级别的素描。我们区分了两种类型的抽象。第一种是考虑素描的保真度,从更精确地描绘输入到更松散的描绘,其表现方式有所不同。第二种是根据素描的视觉简洁性来定义,从详细描绘到稀疏素描。通过将两个抽象轴进行显式解耦(每个轴有多个级别),为用户提供了额外的控制,使他们能够根据个人目标和偏好选择所需的素描。为了在给定的保真度和简化级别下形成素描,我们训练了两个MLP网络。第一个网络学习所需笔画的位置,而第二个网络学习逐渐从素描中移除笔画,同时不损害其可识别性和语义。我们的方法能够生成包括复杂背景(例如自然和城市环境)和主体(例如动物和人)在内的复杂场景的素描,同时在保真度和简洁性方面描绘输入场景的逐渐抽象。
image.png
图1:我们的方法通过将抽象分解为两个控制轴:忠实度和简洁性,将场景图像转换成具有不同类型和层次的抽象草图。左侧的草图是从我们方法生成的完整矩阵中选择的(右侧显示了一个示例),涵盖了给定图像可能的草图抽象的广泛范围。我们的草图以矢量形式生成,设计师可以轻松地用于进一步编辑。

1 引言

多项研究表明,抽象的、简洁的表示不仅在视觉上令人愉悦,而且有助于通过强调主题的本质更有效地传达一个想法[16, 4]。在本文中,我们专注于将自然场景的照片转换成草图作为突出的简介草图表示。

将照片转换成草图涉及抽象,这需要理解、分析和解释视觉场景的复杂性。一个场景由多个复杂程度不同的对象组成,以及前景和背景之间的关系(见图2)。因此,在草图场景时,艺术家在如何表达各种组件及其之间的关系方面有很多选择(见图3)。

类似地,计算草图方法必须处理场景的复杂性,并考虑多种抽象层次。我们的工作专注于具有不同类型和多个层次的抽象的场景草图的挑战性任务。只有少数先前的工作尝试产生具有多个抽象层次的草图。然而,这些工作专门关注对象草图[43, 29]或肖像草图[2]的任务,并且通常简单地使用笔画的数量来定义抽象层次。我们不知道有任何先前的工作试图分离不同的抽象类型。此外,现有的场景草图工作通常侧重于基于某些风格产生草图,而没有考虑到抽象层次,这是草图中的一个基本概念。最后,大多数现有的场景草图方法不产生矢量格式的草图。提供基于矢量的草图是草图的一个自然选择,因为它允许设计师进一步编辑(如图6所示)。
image.png
图2:场景的复杂性。(A)包含一个具有简单背景的单个中心物体,(B)包含多个物体(猫和花瓶)和稍微复杂一些的背景,(C)包含前景和背景,其中包含许多细节。我们的工作处理所有类型的场景。
image.png
图3:不同艺术家绘制的不同场景。注意绘图之间在风格和抽象级别上存在显著差异——从更详细和精确的(左)到更抽象的(右)。第二行展示了抽象级别不仅在绘图之间变化,而且在同一绘图内变化。每个绘图都包含相对更详细(红色)和更抽象(蓝色)的区域。
我们定义了代表两种抽象类型的两个轴,并通过逐渐沿这些轴移动来生成素描。第一个轴控制素描的保真度。这个轴从更精确的素描开始,其中素描构图遵循照片的几何形状和结构,到更随意的素描,其中构图更多地依赖于场景的语义。图4中给出了一个例子,其中最左边的素描遵循地平线上山脉的轮廓,当我们向右移动时,山脉和前面的花朵逐渐偏离输入中的边缘,但仍然传达了场景的正确语义。第二个轴控制素描的细节级别,从详细描绘到稀疏描绘,看起来更抽象。因此,我们将这个轴称为简洁轴。图5中给出了一个例子,其中所有素描都捕捉到了场景的一般特征(例如山脉和花朵),但细节逐渐减少。

为了处理场景的复杂性,我们将前景和背景元素分开,并分别绘制它们。这种显式的分离和解耦为两个抽象轴提供了一个更灵活的计算素描框架,用户可以根据他们的目标和个人品味从一系列可能性中选择所需的素描。

我们将素描定义为一组贝塞尔曲线,并训练一个简单的多层感知机(MLP)网络来学习笔画参数。训练是逐图像进行的(例如,没有外部数据集),并由预先训练的CLIP-ViT模型[34, 9]指导,利用其强大的捕捉整个场景语义和全局上下文的能力。

为了实现保真度轴,我们利用CLIP-ViT的不同中间层来指导训练过程,其中浅层保留图像的几何形状,深层则鼓励创建更随意的素描,强调场景的语义。
image.png
图4:保真度轴。从左到右,使用相同数量的笔画,素描逐渐偏离输入图像的几何形状,但仍然传达场景的语义。
image.png
图5:简洁轴。在左边,我们从一个更详细的素描开始,随着向右移动,素描逐渐简化,但仍然与初始素描的整体外观保持一致。
为了实现简洁轴,我们联合训练了一个额外的MLP网络,该网络学习如何最好地逐渐和平滑地丢弃笔画,而不损害素描的可识别性。如后文将讨论的,使用网络而不是直接的优化方法,使我们能够以可学习的方式隐式地定义细节级别,而不是显式地确定笔画的数量。

生成的素描展示了我们处理各种场景和捕捉其核心特征的能力,同时在保真度和简洁轴上提供了逐渐的抽象,如CLIPascene所示:具有不同类型和抽象级别的场景素描。我们将我们的结果与现有的场景素描方法进行了比较。此外,我们还对我们的结果进行了定量评估,并证明了生成的素描,尽管是抽象的,但成功地保留了输入场景的几何形状和语义。
image.png
图6:使用Adobe Illustrator进行笔画的艺术风格化。

2 相关工作

手绘草图生成与边缘图提取[5, 46]不同,它试图产生代表人类绘画风格的草图。然而,由于个人目标、技能水平等因素,绘制风格之间存在显著差异(见图3)。因此,计算草图方法必须考虑各种草图表示。

这包括旨在产生基于输入图像边缘图的草图的方法[20, 47, 42, 23],以及旨在产生更抽象草图的方法[3, 11, 43, 14, 31, 13, 33, 27, 52]。一些工作试图开发一个统一的算法,能够输出具有多种风格的草图[6, 50, 25]。然而,只有少数工作尝试提供不同层次的抽象[2, 29, 43]。以下,我们将重点放在场景草图方法上,并建议读者参考[48]获取计算草图技术的全面综述。

照片草图合成
各种工作将此任务表述为使用成对图像和草图数据的图像到图像转换任务[22, 49, 20, 26]。其他人通过非成对数据来处理转换任务,通常依赖于循环一致性约束[50, 40, 6]。Li等人[20]引入了一个基于GAN的轮廓生成算法,并利用多个地面真实草图来指导训练过程。Yi等人[50]通过使用循环一致性目标和训练有素的判别器来学习特定风格,使用非成对数据生成肖像画。

最近,Chan等人[6]提出了一种基于非成对GAN的方法。他们训练一个生成器,将给定的图像映射到一个草图,该草图具有从四个现有草图数据集中明确定义的多种风格,每个所需风格都有一个专门训练的模型。他们利用基于CLIP的损失来实现语义感知的草图。由于这些工作依赖于精选的数据集,它们需要为每个所需风格训练一个新模型,同时支持单一层次的草图抽象。相比之下,我们的方法不依赖于任何显式数据集,并且不限于预定义的一组风格。相反,我们利用预训练的CLIP模型[34]捕获的强大语义。此外,我们的工作是备选场景草图方法中唯一提供具有多种层次抽象和矢量形式草图的工作,这允许更广泛的编辑和操作。

草图抽象
虽然抽象是草图的基本要素,但只有少数工作尝试在多个抽象层次上创建草图,而没有任何先前的工作尝试在整个场景上这样做。Berger等人[2]从七位艺术家那里收集了不同抽象层次的肖像草图,以学习从面部照片到肖像草图的映射。他们的方法仅限于面部,并且需要每个所需抽象层次的新数据集。Muhammad等人[29]训练一个强化学习代理,从给定的草图中移除笔画,同时不损害草图的可识别性。识别信号由在QuickDraw数据集[14]的九个类别上训练的草图分类器提供。因此,他们的方法仅限于在训练期间看到的类别中的对象,并且需要广泛的训练。

CLIPasso
与我们的工作最相似的是CLIPasso[43],它旨在在多个抽象层次上进行对象草图绘制。他们将草图定义为一组贝塞尔曲线,并优化笔画参数,以实现输入图像和生成草图之间的基于CLIP的[34]相似性损失。通过减少构成草图的笔画数量来实现多个抽象层次。与CLIPasso相比,我们的方法不限于对象,并且可以处理场景草图绘制的挑战性任务。此外,虽然Vinker等人[43]只检查了抽象的一种形式,但我们将抽象分解为两个不同的轴,这两个轴分别控制草图的简洁性和忠实度。此外,在CLIPasso中,用户需要明确定义获得所需抽象所需的笔画数量。然而,不同的图像需要不同数量的笔画,这很难预先确定。相比之下,我们通过训练两个MLP网络来隐式学习所需的笔画数量,以实现输入图像在简洁性和忠实度之间的所需权衡。

3 方法

给定一个场景的输入图像ℐ,我们的目标是生成一组对应的草图,这些草图在忠实度的n个层次和简洁性的m个层次上,形成一个大小为m×n的草图抽象矩阵。我们首先沿着忠实度轴生成一组草图(第3.1节和第3.2节),没有简化,从而形成抽象矩阵的顶部行。接下来,对于每个忠实度级别的每个草图,我们通过学习如何最好地移除选定的笔画并调整剩余笔画的位置来进行迭代视觉简化(第3.3节)。为了清晰起见,在以下部分中,我们描述了我们的方法,考虑到整个场景作为一个整体。然而,为了允许对输出草图的外观有更大的控制,并处理整个场景呈现的高复杂性,我们的最终方案将图像分为两个区域——突出的前景对象和背景。我们分别将我们的两个轴抽象方法应用于每个区域,然后将它们组合以形成草图矩阵(第3.4节的详细信息)。

3.1 训练方案

我们定义一个草图为一组n个笔画,放置在白色背景上,其中每个笔画是一个二维贝塞尔曲线,具有四个控制点。我们通过其控制点集合zi={ (xi, yi)j }j=1^4来标记第i个笔画,并将n个笔画的集合表示为Z={ zi }i=1^n。我们的目标是找到产生足够描绘输入场景图像的笔画参数集。

图7中灰色区域展示了用于生成单个草图图像的训练方案的概述。我们训练一个MLP网络,表示为MLPloc,它接收一组初始控制点Zinit∈Rn×4×2(标记为蓝色)并返回一个相对于初始笔画位置的偏移向量MLPloc(Zinit)=ΔZ∈Rn×4×2。最终的控制点集合由Z=Zinit+ΔZ给出,然后传递给一个可微分的光栅化器ℛ[21],该光栅化器输出光栅化草图,

S=ℛ(Zinit+ΔZ)。(1)
为了初始化n个笔画的位置,我们遵循Vinker等人[43]中介绍的基于显著性的初始化方法,在该方法中,笔画基于自动提取的相关性图在显著区域初始化[7]。

为了指导训练过程,我们利用预训练的CLIP模型,因为它能够编码来自草图和自然图像的共享信息。与Vinker等人[43]使用基于ResNet的[15]CLIP模型进行草图绘制(并努力描绘场景图像)不同,我们发现基于ViT的[9]CLIP模型能够捕捉生成整个场景连贯草图所需的全局上下文,包括前景和背景。这也遵循了Raghu等人[35]的观察,即与基于ResNet的模型相比,ViT模型在较低层次上更好地捕捉全局信息。我们在补充材料中进一步分析了这一设计选择。

然后,损失函数被定义为图像ℐ和草图S在层ℓk上CLIP激活之间的L2距离:

LCLIP(I, S, ℓk) = ‖CLIPℓk(S) - CLIPℓk(ℐ)‖22。(2)
在训练的每个步骤中,我们将损失通过CLIP模型和可微分的光栅化器ℛ反向传播,其权重被冻结,只更新MLPloc的权重。这个过程被重复迭代直到收敛。请注意,引导训练过程不需要外部数据集,因为我们完全依赖于预训练的CLIP模型捕获的表达力和语义。这个训练方案产生了一个单一层次的忠实度和简洁性的单个草图图像。以下,我们将描述如何控制这两个抽象轴。
image.png
图7:单个素描生成方案。在灰色部分,我们展示了在单个保真度级别下生成单个素描图像的训练方案。在底部左部,我们展示了生成单个简洁度级别的单个素描所需的额外组件。

3.2 保真度轴

为了实现不同层次的忠实度,如我们的抽象矩阵中的一行所示,我们选择CLIP-ViT模型的不同激活层来计算方程2中定义的损失。通过更深层次的优化,可以生成更具有语义性质的草图,这些草图不一定局限于输入的精确几何结构。具体来说,在我们所有的例子中,我们使用CLIP-ViT的层{ℓ2, ℓ7, ℓ8, ℓ11}来训练一个单独的MLPloc,并将笔画数量设置为n=64。请注意,可以使用剩余的层来实现额外的忠实度层次(参见补充材料)。

3.3 简洁性轴

给定一个忠实度层次k的草图Sk,我们的目标是找到一组草图{Sk1, …, Skm},这些草图在视觉和概念上与Sk相似,但外观逐渐简化。实际上,我们希望学习如何从给定的草图中最好地移除选定的笔画,并调整剩余笔画的位置,同时不损害草图的整体可识别性。

我们在图7左下角区域展示了用于生成单个简化草图Skj的草图简化方案。我们训练一个额外的网络,表示为MLPsimp(标记为橙色),它接收一个随机值向量,并负责学习一个n维向量P={pi}i=1^n,其中pi∈[0, 1]表示第i个笔画在渲染草图中出现的概率。P作为额外输入传递给ℛ,输出简化草图Skj。

为了将基于概率的笔画移除或添加(这些是离散操作)纳入我们的学习框架,我们将每个笔画zi的宽度乘以pi。在渲染草图时,由于宽度很小,具有非常低概率的笔画将被“隐藏”。

与Mo等人[28]类似,为了鼓励草图的稀疏表示(即笔画较少的表示),我们最小化P的归一化L1范数:

Lsparseness§ = ‖P‖1/n。(3)
为了确保生成的草图仍然类似于原始输入图像,我们还最小化方程2中提出的CLIP损失,并在训练MLPsimp期间继续微调MLPloc。形式上,我们最小化总和:

LCLIP(Skj, ℐ, ℓk) + Lsparseness§。(4)
我们将LCLIP的梯度反向传播到MLPloc和MLPsimp,而Lsparseness仅用于训练MLPsimp(如图7中红色和紫色虚线箭头所示)。
image.png
图8:损失函数之间的权衡。随着草图变得更加稀疏,Lsparseness获得较低的分数。然而,草图相对于输入图像的可识别性也降低,导致LCLIP的惩罚更高。

请注意,使用MLP网络而不是像Vinker等人那样直接对笔画参数进行优化至关重要,因为它允许优化恢复可能之前被移除的笔画。如果我们使用直接优化,删除笔画的梯度将保持移除状态,因为它们被乘以0的概率。

在这里,两个MLP网络都是具有SeLU[18]激活的简单3层网络。对于MLPsimp,我们在输出后附加一个Sigmoid激活,将其转换为概率。

平衡损失。
自然地,Lsparseness和LCLIP之间存在权衡,这影响了简化草图的外观(见图8)。我们利用这种权衡来逐渐改变简洁性的层次。

在Lsparseness和LCLIP之间找到平衡对于实现具有不同程度抽象的可识别草图至关重要。因此,我们定义了以下损失:

Lratio = ‖Lsparseness * LCLIP - r‖22,(5)
其中标量因子r(表示两个损失的比例)控制简化的力量。当我们减少r时,我们鼓励网络输出更稀疏的草图,反之亦然。生成单个简化草图Skj的最终目标由以下公式给出:

Lsimp = LCLIP + Lsparseness + Lratio。(6)
为了获得一组逐渐简化的草图{Sk1, …, Skm},我们定义了一组相应的因子{rk1, …, rkm},这些因子将在方程5中应用。第一个因子rk1直接从方程5得出,旨在复制Sk中存在的简化强度:

rk1 = 1 / LCLIP(Sk, ℐ, ℓk),(7)
其中Lsparseness等于1意味着不进行简化。接下来描述了剩余因子rkj的推导。
感知平滑简化
image.png
图9:平滑与非平滑简化。第一行中,简化看起来在视觉上是平滑的,其中抽象程度的一致变化被实施。第二行展示了非平滑简化,因为第二和第三张草图之间存在明显的“跳跃”。这些视觉模式在相应的图表中以定量方式展示,图表中的每个点代表一个单独的草图。

如上所述,因子集合决定了视觉简化的强度。在定义因子集合rkj时,我们的目标是实现平滑简化。当我们说平滑时,我们指的是在两个连续步骤之间没有大的视觉变化。这在图9的第一行中得到了体现,其中提供了平滑过渡的例子,而第二行则展示了非平滑过渡,其中第二和第三张草图之间存在大的视觉“跳跃”,而在接下来的层次中几乎没有视觉变化。

我们发现,当Lsparseness相对于LCLIP呈指数关系时,简化看起来更平滑。图9底部的两个图表定量地描述了这一观察结果,展示了每个草图的Lsparseness和LCLIP之间的权衡。第一行的平滑过渡在Lsparseness和LCLIP之间形成了指数关系,而第二行中的大“跳跃”在右侧的图表中非常明显。

鉴于此,我们通过递归定义一个指数函数f(j) = f(j-1)/2。对于每个忠实度层次k,函数的初始值定义为f(k)(1) = rk1。为了定义接下来的一系列因子{rk2, …, rkj},我们对函数f(k)进行采样,对于每个k,采样步长与在层次k处的LCLIP损失强度成正比设置。因此,那些产生较大LCLIP值的层次以较大的步长进行采样。我们发现这个过程实现了在视觉上平滑的简化。这一观察结果与韦伯-费希纳定律[45, 10]相符,该定律指出人类感知相对于指数变化的信号是线性的。我们设计选择的因子和额外细节的分析在补充材料中提供。
image.png
图10:素描𝒮𝑘的迭代简化。为了生成简化的素描𝒮𝑘𝑗,我们根据每个r𝑘𝑗定义的ℒ𝑟𝑎𝑡𝑖𝑎𝑛损失,迭代微调MLPloc(蓝色)和MLPSimp(橙色)。
生成简化的素描
为了生成简化的素描集{𝒮𝑘1,…,𝒮𝑘𝑚},我们按照图10所示的步骤进行迭代训练。我们从根据r𝑘1生成𝒮𝑘1开始,通过微调MLPloc并从头开始训练MLPSimp。生成𝒮𝑘1后,我们依次生成每个𝒮𝑘𝑗,其中2≤𝑗≤𝑚,通过继续训练两个网络500步,并应用对应因子r𝑘𝑗的ℒ𝑟𝑎𝑡𝑖𝑎𝑛损失。
image.png
图11:场景分解。右上角 - 分离技术的一个示例。左 - 通过和不通过分解场景得到的场景素描结果。底部 - 通过修改笔画风格进行素描编辑的示例。

3.4 场景分解

上述过程将整个场景作为一个整体进行处理。然而,在实践中,我们将场景的前景主体与背景分离,并独立地绘制它们。我们使用预训练的U2-Net[32]来提取突出的对象,然后应用预训练的LaMa[41]修复模型来恢复缺失的区域(见图11,右上角)。

我们发现这种分离有助于产生更视觉上令人愉悦和稳定的结果。在进行对象素描时,我们还在层l4上计算ℒ𝐶𝐿𝐼𝑃。这有助于保留对象的几何形状和更精细的细节。在图11的左部分,我们展示了在不应用场景分离时可能出现的伪影。例如,在低保真度级别下,主体的特征可能被过度夸张,如熊猫的脸,或者对象可能会“融入”背景。此外,这种显式的分离为用户提供了更多控制最终素描外观的能力(图11,右下角)。例如,用户可以通过修改画笔的风格或将前景和背景素描以不同的抽象级别组合来轻松编辑矢量文件。

4.结果

下面,我们从定性和定量的角度展示我们场景素描技术的性能,并提供与最先进的素描方法的比较。进一步的分析、结果和用户研究在补充材料中提供。

4.1 定性评估

在图13和CLIPascene:具有不同类型和抽象级别的场景素描中,我们展示了使用我们的方法在不同抽象级别下生成的各种场景的素描。注意,即使它们的抽象级别存在显著差异,但很容易识别出这些素描描绘的是同一个场景。
image.png
图12:沿着两个抽象轴的草图。
在CLIPascene: 使用不同类型和层次的抽象进行场景草图绘制中,4和12(顶部)我们展示了沿着忠实度轴的草图抽象,其中草图从左到右变得不那么精确,但仍传达了图像的语义(例如在CLIPascene: 使用不同类型和层次的抽象进行场景草图绘制中的背景山脉,以及图12中的树和长颈鹿的身体)。在CLIPascene: 使用不同类型和层次的抽象进行场景草图绘制中,5和12(底部)我们展示了沿着简洁性轴的草图抽象。我们的方法成功地以平滑的方式简化了草图,同时仍然捕捉了场景的核心特征。例如,注意佛像雕塑的形状在所有层次中都被保留。观察到这些简化是通过我们的迭代草图简化技术隐式实现的。更多结果请参见补充文件。

4.2 与现有方法的比较

在图13中,我们与CLIPasso[43]进行了比较。为了公平比较,我们使用我们的场景分解技术将输入图像分为前景和背景,并分别使用CLIPasso绘制每个部分,然后再将它们组合起来。此外,由于CLIPasso需要预定义的笔画数量作为输入,我们将CLIPasso的笔画数量设置为与我们方法隐式学习的数量相同。对于每张图像,我们展示了两个不同抽象层次的两个草图。正如预期的那样,CLIPasso能够准确地描绘对象,因为它就是为此目的而设计的。然而,在某些情况下,例如沙发,CLIPasso在更高层次的抽象上无法描绘对象。这一缺点可能源于抽象是根据给定的笔画数量从头开始学习的,而不是逐步学习。此外,在大多数情况下,即使使用许多笔画,CLIPasso也完全无法捕捉背景(例如在第一行和第四行)。我们的方法由于采用了我们学习到的简化方法,能够以视觉愉悦的方式捕捉前景和背景。例如,我们的方法能够仅用少量简单的涂鸦传达第一行的建筑物概念或第二行的山脉概念。同样,我们的方法成功地描绘了所有场景中的主体。

在图14中,我们与三种最先进的场景草图绘制方法[50, 20, 6]进行了比较。在左侧,作为简单基线,我们展示了使用XDoG[46]获得的输入图像的边缘图。在右侧,我们展示了我们的方法生成的三个草图,展示了三个代表性的抽象层次。
image.png
图13:与CLIPasso[43]的比较。请注意,在大多数情况下,尤其是在较高抽象级别时,CLIPasso无法捕捉到背景,尽管它具有相同的笔画预算。
UPDG[50]和Chan等人[6]生成的素描非常详细,非常接近输入图像的边缘图(如第二行中的建筑物)。这些素描与我们结果中左列所示的素描最相似,这些素描也与输入场景的结构非常吻合。Photo-Sketching[20]生成的素描细节较少,可能缺乏输入场景的语义意义。例如,在第一行中,很难将素描识别为一个人。重要的是,其他场景素描方法都不能生成具有不同抽象级别的素描,也不能生成矢量格式的素描。我们注意到,与图14所示的方法相比,我们的方法逐图像操作,不需要训练数据。然而,这带来了较长的运行时间的缺点,在商业GPU上生成一个素描需要6分钟。
image.png
图14:场景草图绘制结果与比较。从左到右分别是使用XDoG[46]、UPDG[50]、Photo-Sketching[20]和Chan等人[6]获得的草图。在右侧,是我们方法生成的三个代表性的草图,展示了三个抽象层次。请注意,UPDG和Chan等人可以生成三种不同风格的草图,但所有草图代表了相似的抽象层次。我们选择了一种代表性的风格,但在补充材料中提供了更多风格比较。

4.3 定量评估

在本节中,我们提供了我们方法在简单性和忠实度轴上产生草图抽象能力的定量评估。为此,我们收集了五类场景图像的多种图像:人物、城市、自然、室内和动物,每类七张图像。对于每张图像,我们创建了4×4的草图抽象矩阵——总共产生了560张草图,并使用第4.2节中介绍的不同方法创建了草图。为了与CLIPasso进行公平比较,我们生成了四个抽象层次的草图,使用我们方法在四个简洁性层次上获得的平均笔画数量。对于UPDG和Chan等人,我们获得了三种不同风格的草图,并对三种风格的定量分数进行了平均,因为它们代表了相同的抽象层次。对于Photo-Sketching,只支持一种抽象层次和一种风格。

忠实度变化
为了衡量生成草图的忠实度水平,我们计算每个输入图像的边缘图(使用XDoG提取)与相应草图之间的MS-SSIM[44]分数。在表1中,我们展示了所有类别中的平均结果分数,其中较高的分数表示较高的相似性。检查我们方法的结果矩阵,随着我们沿着忠实度轴向右移动,分数逐渐降低。这表明草图相对于输入几何结构变得更加“宽松”,正如我们所期望的。UPDG和Chan等人的草图获得了高分,这与我们的观察结果一致,即他们的方法生成的草图遵循输入图像的边缘。CLIPasso的分数表明,他们的草图在简化层次上的忠实度水平变化不大,并且与我们方法在最后两个层次(最右侧两列)的草图忠实度相似。这表明CLIPasso无法产生忠实度抽象的大变化。

表1:输入图像边缘图与生成草图之间的平均MS-SSIM分数比较。
image.png
草图可识别性
成功抽象的一个关键要求是输入场景在不同抽象层次的草图中仍然可识别。为了评估这一点,我们为上述图像集设计了以下识别实验。使用一个预先训练好的ViT-B/16 CLIP模型(与用于训练的模型不同),我们对每个输入图像及其来自不同方法的相应结果草图进行了零样本图像分类。我们使用一组200个类名,这些类名来自常用的图像分类和物体检测数据集[24, 19],并计算至少有2个输入图像的前5个预测类别也出现在草图的前5个类别的百分比。我们考虑前5个预测类别,因为场景图像自然包含多个对象。

表2显示了每种描述方法在所有图像上的平均识别率。我们方法生成的草图的可识别性在不同简洁性和忠实度层次上保持相对一致,随着简洁性层次的增加,自然会略有下降。我们确实观察到第一列中的识别分数大幅下降。这种差异可以归因于第一忠实度层次紧密跟随图像结构,这使得用更少的笔画描绘场景变得更加困难。CLIPasso的忠实度层次与我们的最右侧两列(如表1所示)最为相似。当将我们的识别率与这些列的结果进行比较时,可以观察到在更高的简洁性层次上,他们的方法失去了场景的语义。

表2:使用CLIP ViT-B/16模型对输入图像和生成的草图进行零样本分类的可识别性分数。
image.png

5. 结论

我们提出了一种方法,用于进行具有不同类型和多个抽象级别的场景素描。我们将素描抽象的概念解耦为两个轴:保真度和简洁性。我们展示了在各种具有挑战性的场景图像上覆盖广泛抽象范围的能力,以及使用矢量表示和场景分解来提供更大的艺术控制的优势。我们希望我们的工作能够为计算生成视觉抽象这一新兴领域的进一步研究打开大门。未来的研究可以专注于进一步扩展这些轴,并提出控制视觉抽象的创新想法。

附录A:实现细节

在本节中,我们将提供我们方法实现的具体细节。我们还将进一步发布用于评估的所有代码和图像集,以促进进一步的研究和比较。
image.png
图15:对象重新缩放程序。

A.1 图像预处理

正如论文中所述,我们使用一个预先训练的U2-Net显著对象检测器[32]来提取场景的显著对象。为了获得二值图,我们将U2-Net的结果图阈值化,使得值小于0.5的像素被分类为背景,其余像素被分类为显著对象。然后,我们使用这个掩码作为输入,输入到一个预先训练的LaMa[41]修复模型中,以恢复背景图像中的缺失区域。

对象缩放
在显著性检测过程只检测到一个对象,并且该对象填充小于图像大小的70%的情况下,我们在草图绘制之前执行一个额外的预处理步骤,以增加对象的大小。这有助于在使用大量笔画时绘制对象的关键特征。具体来说,我们首先取掩码对象并计算其边界框。然后,我们将掩码对象平移到图像中心,并调整对象的大小,使其覆盖约70%的图像。我们在缩放的对象上应用草图绘制过程,然后将生成的草图重新调整大小并平移回输入图像中的原始位置。请注意,由于我们的草图是以矢量表示的,因此可以在不改变分辨率的情况下重新缩放和平移它们。这个过程在图15中进行了说明。

A.2 MLP训练

超参数
在所有实验中,我们在草图绘制的第一阶段设置笔画数量为n=64,并训练MLPloc 2000次迭代。对于生成一系列简化草图(主论文第3.4节),我们执行8次迭代步骤。如第3.4节所述,对于每个忠实度层次k,我们定义一个单独的函数fk来定义在Lratio中使用的比率集合。与这个函数一起,我们为采样函数fk定义一个单独的步长。为了简化背景草图,我们将这个步长设置为对于层{2, 7, 8, 11}分别为{0.35, 0.45, 0.5, 0.9}。为了简化对象草图,我们将步长设置为{0.45, 0.4, 0.5, 0.9}。每次简化步骤是通过训练MLPsimp和MLPloc 500次迭代获得的。我们使用Adam优化器,学习率为1e-4,用于训练两个MLP网络。MLPsimp的输入设置为一个随机值向量,维度为n。

增强
也如Vinker等人[43]所做的那样,在将它们作为输入传递给CLIP模型计算损失之前,我们对输入图像和生成的草图应用随机仿射增强(即随机透视和随机裁剪变换)。

GradNorm
我们使用三个不同的损失同时训练MLPsimp和MLPloc,以实现我们的视觉简化。由于这些损失相互竞争,训练有可能非常不稳定。例如,在使用多个损失进行训练时,一个损失的梯度可能比另一个更强,导致需要相应地加权损失。为了帮助实现更稳定的训练过程,并确保每个损失对优化过程的贡献相等,我们使用GradNorm[8],它通过动态调整梯度幅度来自动平衡训练过程。这种平衡是通过将损失的权重与它们对整体梯度的贡献成反比来实现的。

A.3 矩阵组合

正如主论文中所述,我们将场景分为两个区域(基于它们的显著性图),并分别应用草图绘制方案,然后将结果草图组合成最终矩阵。为了组合前景和背景,我们简单地聚合了给定忠实度和简洁性层次的相应笔画。请注意,如果用户希望将掩码放置在对象后面以避免笔画碰撞,我们也会导出用于分离它们的掩码。我们还导出单独的矩阵,允许用户将不同抽象层次的草图作为后处理步骤组合在一起。
image.png
图16:用户研究中向参与者展示图像的示例。
image.png
图17:用于我们定量评估的示例图像和代表性草图。
image.png
图18:检查在不同精度和简化级别下用于构成草图的笔画数量。结果是所有场景类别的所有图像的平均值。在补充材料中,我们还展示了前景和背景以及五个场景类别之间的笔画数量分布。

附录B 用户研究

在主论文的第4.3节中,我们展示了基于自动指标测量的草图的精度和可识别性的定量评估。与可以通过测量输入场景的边缘图距离来确定的精度度量不同,验证可识别性更具挑战性。为此,我们还进行了用户研究,以进一步验证CLIP零样本分类方法提出的发现。
用户研究检查了草图在多大程度上描绘了输入场景,同时考虑了前景和背景。使用第4.3节中描述的30张图像,我们将我们的草图与三种替代方法进行了比较:CLIPasso [43],Chan等人 [6],和Photo-Sketching [20]。参与者被展示了输入图像以及两幅草图,一幅是我们的方法生成的,另一幅是替代方法生成的(草图以随机顺序展示)。图16中提供了一个示例。向参与者提出了以下问题:
image.png
表3:我们用户研究的结果。我们将我们方法生成的30幅素描与三种替代方法:CLIPasso[43]、Chan等人[6]和Photo-Sketching[20]进行了比较。对于每种方法,我们指定了选择我们素描的回答百分比,选择替代方法素描的百分比,或者认为两种素描在捕捉场景语义方面相似的百分比。
哪幅素描更好地描绘了图像内容?

在你的回答中,请参考:

(1) 前景和背景的保留。

(2) 语义保持 - 即反映元素的含义。

参与者可以在三个选项中选择:“A”、“B”和“A和B在相似水平上”。

需要注意的是,为了进行公平的比较,我们将生成抽象素描的方法(CLIPasso[43]和Photo-Sketching[20])与我们的抽象素描进行了比较(在矩阵的第4行,即最高抽象级别)。相反,我们将Chan等人[6]的素描与我们最详细的素描进行了比较(矩阵的左上角)。我们使用我们的场景分解技术应用了CLIPasso,并使用了与我们方法学习到的相同数量的笔画,对于Chan等人,我们使用了轮廓风格的素描。我们从25名参与者那里收集了调查问卷的回答,总共包含了90个问题(即总共收集了2250个回答)。

所有参与者和图像的平均结果如表3所示。在第一、第二和第三列中,我们分别显示了与CLIPasso[43]、Chan等人[6]和Photo-Sketching[20]进行比较时获得的分数。与CLIPasso和Photo-Sketching相比,我们的方法获得了显著更高的比率(84.8%和75.6%的回答更倾向于我们的方法而不是相应的替代方法)。相反,只有7%和15.8%的回答更倾向于替代方法的结果。虽然Chan等人[6]生成的素描非常详细,但52.5%的回答更倾向于我们的素描,而只有20%的人认为我们的素描和Chan等人的素描相似。

用户研究的结果支持了论文中提出的主要发现,证明了我们方法生成的素描在不同抽象级别下都能忠实地捕捉场景中的前景和背景元素。

附录C 额外的定量分析

在本节中,我们将提供关于论文中介绍的定量评估的额外细节、示例和结果。首先,在图17中,我们展示了在评估中使用的五个场景类别中的每个类别的输入示例和代表性生成素描。

C.1 素描可识别性

为了计算我们的可识别性指标,我们使用预训练的ViT-B/16[9]CLIP模型进行了零样本分类。请注意,这个模型与用于生成素描的ViT-B/32模型不同,以确保对我们的素描进行更公平的评估。在进行零样本分类时,我们遵循CLIP[34]中使用的评估设置,并在定义CLIP文本编码器的200个类别时应用80个提示模板。这包括“一个{}的渲染”、“一个{}的绘图”和“一个{}的素描”等形式的提示。然后,我们计算所有文本嵌入和对应于我们输入图像或生成素描的嵌入之间的余弦相似性。

在图19中,我们展示了在我们五个场景类别中的各种输入图像和素描上获得的零样本分类结果示例。

C.2 简洁级别下的笔画数量

我们研究了我们方法生成不同简洁级别素描的能力。为此,我们测量了生成素描所使用的最终笔画数量。我们从所有560个生成素描的SVG中提取了这些信息。我们在图18中展示了结果,按照不同的保真度级别(由不同的颜色表示)和简洁级别(沿x轴显示)进行分类。如图所示,随着我们沿着简洁轴移动,所有保真度级别下的笔画数量都在减少。

在图20中,我们展示了相同的结果,但按照不同的场景类别和组成前景和背景素描进行分类。如图所示,不同保真度级别的结果函数在我们加强简洁级别时遵循指数关系。
image.png
图19:CLIP零样本类别预测在各种输入图像和不同抽象级别的典型素描上的例子。这些预测随后用于计算每个场景类别在不同抽象级别下的可识别性指标(见主论文的第4.3节)。

附录D 消融研究:通用设计选择

D.1 ViT 与 ResNet

在图21中,我们展示了使用基于ResNet101的CLIP与本文中使用的基于ViT的CLIP模型所获得的场景素描结果的比较。当使用ResNet的单个层(即第2层、第3层或第4层)计算ℒ𝐶𝐿𝐼𝑃时,我们无法捕捉到输入场景,这表明必须使用多层组合来捕捉完整场景的更全局细节。然而,即使使用多个ResNet层计算ℒ𝐶𝐿𝐼𝑃(如CLIPasso中所做的那样),网络仍然难以捕捉场景的细节。例如,在第3行中,尽管我们能够大致捕捉到公牛头部和角的轮廓,但网络无法捕捉到公牛的身体和场景背景。相比之下,当用更强大的ViT模型替换ResNet模型时,我们能够捕捉到场景的前景和背景,即使只使用一个层来计算损失。这自然允许我们通过简单地改变用于计算ℒ𝐶𝐿𝐼𝑃的单个ViT层来控制生成素描的保真度级别。

D.2 前景-背景分离

在主论文的第3.4节中,我们引入了场景分解技术,其中输入的前景和背景部分分别进行素描,然后合并。在图22中,我们提供了沿着两个抽象轴,使用和不使用场景分解的附加素描结果。在顶部,我们展示了沿着保真度轴获得的素描。请注意,第一行中最左边的素描中的房子似乎消失在了整个场景中。此外,请注意,随着抽象级别的增加,狗的脸上出现了伪影。相比之下,通过显式地分离前景和背景,我们可以对前景素描应用额外的约束,以帮助减轻不希望出现的伪影。因此,我们能够更好地保持所提供示例中房子和狗的正确结构。

在图22的底部,我们展示了沿着简化轴获得的素描。请注意,第一行中的房子几乎完全消失了,并且没有足够的笔画来描绘背景中的山脉。如果将整个场景作为一个整体来考虑,模型对如何在对象和背景之间平衡细节级别没有明确的控制。因此,通常更多的笔画用于素描背景,这会消耗整个图像的更大部分(因此导致ℒ𝐶𝐿𝐼𝑃的更大减少)。
image.png
图 22:在分解场景和未分解场景的情况下获得的场景草图结果。我们展示了在保真度轴(前四行)和简单性轴(底部四行)上生成的草图
image.png
图 23:与使用我们的隐式简化方案(右)相比,显式定义笔划数(左)的消融结果。所有三个输入图像的草图均具有最后的保真度级别(使用 CLIP-ViT 层 11 获得)
image.png
图 24:将 ℒ𝑟𝑎𝑡𝑖𝑜 损失替换为由所需笔划数 𝑛𝑡𝑎𝑟𝑔𝑒𝑡 引导的替代损失 ‖ℒ𝑠𝑝𝑎𝑟𝑠𝑒−𝑛𝑡𝑎𝑟𝑔𝑒𝑡‖ 的消融结果。

  • 13
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值