论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)

Paper:CLIPasso: Semantically-Aware Object Sketching

Code:https://clipasso.github.io/clipasso/

简介:

    CLIPasso 要做的事情如图 1 所示,要由一张语义清晰的图像生成其对应的抽象简笔画,要求用较少的比划勾勒出原图的轮廓,并且与原图具有相同的语义内容,即原图是头公牛,生成的抽象简笔画也要能看出来是头公牛。

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第1张图片

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第2张图片

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第3张图片

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第4张图片

方法:

    生成简笔画的方法肯定不是直接做图到图的生成,这里是使用图形学中的贝塞尔(贝兹)曲线(随机初始化)来完成简笔绘画。贝塞尔曲线通过定义平面上的几个点来确定一条曲线。CLIPasso 的模型框架如下图所示,中间的 Rasterizer 是图形学方向根据参数绘制贝塞尔曲线的一种方法,其将曲线画在空白的画布上使可视化,本文方法的创新点主要在损失函数和初始化方法两个方面。

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第5张图片

    贝塞尔曲线是空间上一系列2维的点控制的曲线,这篇文章里一个笔画用四个点表示,每个点在空间上是二维的,P可以用(x,y)表示,通过模型训练更改四个点的位置,然后通过贝塞尔曲线的计算慢慢改变曲线形状得到简笔画。

损失函数:

    生成的简笔画有两个要求:一是要在语义上与输入图像一致,即马还是马、牛还是牛;二是生成的简笔画的几何轮廓也要与原图一致,不能虽然还是马,但是马头的朝向反了,或者是趴着的马。即满足语义和几何需求。在 CLIPasso 中,这两个要求分别由两个损失函数几何损失 L_g 和语义损失L_s 来保证。

  • 语义损失的思路与蒸馏学习类似,要让模型提取到的图像特征和 CLIP 图像编码器提取的特征接近,从而在语义上保证原图和简笔画图都是马。这样做的依据是 CLIP 能做到对无论是自然图像、简笔画图等还是其他任何风格的图像,都能准确提取出语义特征,这种能力来自于 CLIP 400M 规模的训练数据。

  • 几何损失类似于感知损失,是在约束模型前几层的的特征图。因为在模型的前几层,学习到的还是相对低层的几何纹理信息,而非高层语义信息,因此约束浅层特征可以保证原图和简笔画图的几何轮廓接近。

初始化:显著性 (saliency) 图用来对贝塞尔曲线参数进行初始化,作者发现,如果完全随初始化贝塞尔曲线的参数,会使得模型训练很不稳定。因此他们使用显著性图来辅助贝塞尔曲线参数的初始化,从语义明确的区域采点进行初始化,改善了训练的稳定性。具体来说,将图片输入一个已经训练好的ViT,把最后一层的多头自注意力做加权平均得到一个saliency MAP,在这个图上观察哪些区域更显著,就在这些显著的区域上去确定点的位置,其实我们已经知道显著性区域是有一个物体的,即按照这个显著区域的边界去画贝塞尔曲线,所以初始化曲线与最后简笔画相差不多,提高生成性能。

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第6张图片

a.随机初始化得到右边简笔画,文中提出的方法对于头发部分笔画更少且五官清晰。

b.增加后处理,根据一张输入生成三张简笔画,再根据两个损失算算哪个简笔画loss最低,并当成最后的输出。

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第7张图片

  • 作者指出,模型训练2000个iteration,在第100个iteration时就可以看出简笔画形状。

  • 模型训练很快,用一张V100GPU就能在6分钟时间里,完成2000个iteration。

  • 可以给不常见的物体生成简笔画,得益于clip模型zero-shot的能力。

  • 无论笔画多还是笔画少,本文模型都更具备语义的信息。

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第8张图片

论文阅读-CLIPasso-Semantically-Aware Object Sketching(生成-SIGGRAPH 2022 的最佳论文)_第9张图片

局限性:

  1. 图像有背景时,模型效果大打折扣,必须在纯白背景上的物体效果才很好。本文使用U2NET先将带背景的物体抠出来,再去用clipasso生成简笔画,这样变成了两阶段可能不是最优的方法。

  2. Clipasso初始化笔画是同时生成的,而不是序列生成的,之后可以考虑为序列形式,即画了前一笔再去考虑下一笔画在哪里,一步一步生成简笔画。

  3. 虽然可以通过控制笔画数控制抽象程度,但其实即使想得到同等程度抽象画,不同图片也是不同的笔画数,可以尝试把笔画数做成一个可优化的参数,让模型自己考虑用多少笔画。

你可能感兴趣的:(读论文,人工智能,深度学习,神经网络)