一种新的神经风格画笔能够生成矢量形式的绘画作品

一种新的神经风格画笔,可以生成矢量形式的绘画,在统一的框架下支持油画、马克笔、水彩画等笔触,并且可以进一步风格化。

在 CVPR 2021 的一篇论文中,来自网易伏羲和密歇根大学的研究人员提出了一种图像到绘画的转换方法,可以产生生动且风格可控的绘画。目前,该方法的实现代码已经开源。

论文地址:

Github地址:

与之前在逐像素预测框架下生成绘画的风格转移方法不同,该方法在向量空间中生成物理上有意义的顺序画笔参数,可以进一步用于渲染。由于画笔本身是不可微分的,本研究设计了一种新的神经渲染器来模拟画笔的行为,并将画笔预测问题转化为参数空间中的搜索问题,从而最大化渲染输出和输入图像之间的差异. 相似。本研究揭示了搜索过程中的零梯度问题,并提出从最优处理的角度来解决它。

此外,该研究还揭示了之前神经渲染器中参数耦合的问题,并对渲染网络进行了重新设计。新网络包含一个光栅化网络和一个阴影网络,可以更好地分离形状和颜色。实验表明,本研究提出的方法在全局和局部纹理级别均具有更高的真实感。此外,该方法还可以在神经风格迁移框架下进行联合优化,进一步迁移其他绘画的视觉效果。

图 1:该研究提出了一种基于画笔的渲染方法,可以生成逼真的绘画。图片中的画作是以矢量格式生成的,可以进一步优化渲染成不同的风格。

生成向日葵画。

该研究的主要贡献包括:

提出了一种新的基于画笔的图像到绘画的转换方法,将画笔预测问题转化为参数搜索问题来解决。该方法还可以在神经风格迁移框架下进一步联合优化,达到风格化效果。

揭示参数搜索中的零梯度问题,从最优处理的角度看待画笔优化问题。本研究引入了一种可微处理损失函数来改善画笔收敛和绘画效果。

设计了一个新的神经渲染框架,其中包括两遍渲染管道(光栅化 + 着色)。与以前的神经渲染器相比,新的渲染器可以更好地处理笔刷形状和颜色的解耦。

神经风格画笔

研究主要由3个功能模块组成:1)Neural Renderer,可以根据输入的画笔参数生成画笔图像;2)Differentiable Brush Mixer,可以将多个画笔组合在一起;3)一个模块用于测量输入和输出图像的相似度。

神经风格画笔解决了参数化艺术绘画的问题。对于给定的空白画布 h_0,此方法逐渐将画笔覆盖到画布上。例如,在步骤 t,经过训练的神经渲染器 G 会将一组画笔参数 X_t 渲染成前景图像 s_t 和对应的透明度遮罩,然后该方法使用软混合来组合当前画布,添加新画笔动软代码生成器 总结,叠加对应掩码并确保整个过程是可区分的:

最后,该方法将所有T步的画笔参数收集在一起,以自监督的方式寻找画笔参数的最优解,即最终的渲染输出h_T需要尽可能与输入图像:

其中表示从画笔参数到渲染画布的递归映射。表示所有 T 步的画笔参数集。

假设有一个损失函数用于衡量绘画h_T与输入图像的相似度,该方法直接优化参数空间中的所有输入画笔并最小化相似度损失函数,并使用梯度下降来更新画笔参数:

其中是预定义的学习率。

图 2:研究从空白画布开始,逐个渲染画笔,并使用软混合覆盖它们。该方法利用梯度下降来找到最佳的画笔参数集,以使生成的绘画尽可能与输入图像相似。图中黑色箭头代表前向传播,红色箭头代表梯度反向传播。

神经渲染器

Neural Style Brush 的核心模块是 Neural Renderer。之前的神经渲染器只能在比较简单的渲染场景中工作,但是当遇到过渡色、笔刷纹理等比较复杂的渲染场景时,上面的渲染器将无法很好地表达耦合的笔刷形状和颜色。. 本研究借鉴了传统的渲染管线,设计了一种双通道神经渲染器,可以很好地解决颜色/形状/材质耦合问题。

图 3:该研究设计了一个两遍神经渲染器,它由一个着色网络 G_s 和一个光栅化网络 G_r 组成,能够将一组输入的画笔参数渲染成一个光栅化的前景图像并对应透明蒙版。

新的神经渲染器由两个子网络组成:着色网络 G_s 和光栅化网络 G_r,输入的画笔参数 X 分为三组:颜色、形状和透明度。着色网络 G_s 由一组堆叠的转置卷积层组成,用于根据输入颜色和形状参数生成具有可靠前景色的画笔。光栅化网络 G_r 被设计为位置编码器 + 像素解码器,它忽略了颜色信息,但因此能够生成边缘锐利的画笔轮廓。最后,根据轮廓图像对彩色图像进行遮罩可以得到画笔前景图像s,通过输入透明度对轮廓图像进行缩放可以得到透明度遮罩。

该研究使用标准的逐像素回归损失函数训练上述渲染器:

其中和表示由图形引擎渲染的前景图像和透明度掩码的ground truth值。表示从画笔参数空间中随机采样的画笔参数。

像素相似度和零梯度问题

神经画笔画的关键是相似度的定义,比如可以直接用逐像素求和损失函数来定义渲染结果与输入图像的相似度。但是,神经风格画笔不仅在像素空间进行了优化,还需要进一步优化画笔参数。此时,逐像素损失函数并不总能保证有效的梯度下降。尤其是当渲染的画笔和它的ground truth不重叠时,可能会出现零梯度问题。本研究进一步引入了一个最优处理损失函数来解决这个问题,如图4和图5所示。

图 4:一个简单的例子可以解释为什么像素级损失函数在优化画笔参数时可能会遇到零梯度问题( )。

如图4(a)所示,当方形画笔A沿方向移动到目标B时,其逐像素梯度始终为常数,尤其是A与B不相交时,梯度为零,如图4(b)所示。相比之下,如图4(c)所示,本研究提出的最优处理损失函数不存在上述问题,可以很好地描述A和B之间的物理距离。

图片[1]-一种新的神经风格画笔能够生成矢量形式的绘画作品-老王博客

图 5:将画笔从初始值推到目标位置时像素损失函数(第一行)和最佳处理损失函数(第二行)的比较。

使用最优处理损失函数,画笔可以很好地收敛到目标位置,而逐像素损失函数由于零梯度问题而无法收敛。

最优处理损失函数

本研究将最小处理工作(即 Wasserstein 距离)定义为画布和输入图像之间的相似性度量。对于给定的画布h和输入图像,它们的归一化像素值之和定义为概率边际函数。表示联合概率矩阵,其中第(i,j)个元素表示h中第i个像素和h中第j个像素的联合概率,n表示图像中像素的个数。D 表示成本矩阵,其第 (i,j) 个元素表示 h 中的第 i 个像素与 h 中的第 j 个像素之间的欧几里得距离。因此,矩阵 D 列出了将单位质量从 h 中的一个位置移动到 h 中的另一个位置所需的劳动力成本。在离散情况下,经典的最优处理距离可以写成线性优化问题,其中

.

在这项研究中,研究人员提供了经典最佳处理距离的平滑版本,即众所周知的 Sinkhorn 距离。这个距离具有良好的数学特性,与原始版本相比可以大大降低计算成本。通过引入拉格朗日乘子和附加熵约束,上述优化问题可以进一步写成:

哪里熵。

基于上述形式,最优处理损失函数可以很容易地融入参数搜索过程,并与其他损失函数联合优化。因此,神经风格画笔的总相似度损失函数定义如下:

用于平衡两个目标函数。

图7:上图是画笔绘制的结果,第一行是用记号笔生成的,第二行是用油画笔生成的。右图显示了优化过程中的损失函数曲线。

神经风格迁移的联合优化

由于神经风格画笔是在参数搜索范式下实现的,因此这种方法非常适合神经风格迁移框架。由于神经风格迁移旨在通过更新图像像素来最小化内容损失和风格损失,我们进一步将风格损失纳入神经风格画笔以实现风格化输出。扩展的相似性度量函数可以定义如下:

其中有相似度损失函数,采用与 Gatys 等人相同的形式。在本研究中,即根据 VGG-19 提取的特征计算 Gram 矩阵。

实验

风格化绘画生成实验

得益于联合损失函数的设计动软代码生成器 总结,Neural Style Brush 不仅可以生成写实的艺术画作,还可以生成风格化的渲染结果。此外,由于笔刷参数具有明确的物理意义,因此您可以在对输出进行风格化时进一步控制风格化的范围(颜色或材质)。

图 8:(a)-(c)显示了神经风格画笔的绘画结果。(d)中显示了高度抽象的卡通人物肖像。

图 9:基于神经风格画笔的风格迁移结果。

比较实验

以前的绘画参数化方法主要依靠强化学习,例如“Learning-to-Paint”算法,而神经风格画笔通过引入神经渲染器来解决画笔不可微的问题。因此,神经风格画笔可以产生比基于 RL 的方法更真实的结果。

图 10:神经风格画笔和学习绘画算法的比较

除了与以往的方法进行比较外,研究人员还与人工绘画进行了比较,也取得了更好的生成效果。

图 11:Artist (Adam Lister) 绘图结果和自动生成的结果

对照实验

研究人员还分别研究了传输损失函数和两遍神经渲染器的作用。

图 12:使用最佳处理损失函数之前和之后的结果比较。最优处理损失函数可以有效地恢复图像中的更多细节,尤其是当画笔初始化位置与目标区域不重合时。

图 13:不同神经渲染器(包括 DCGAN-G、UNet、PxlShuffleNet)的验证集准确度。本研究提出的双通道神经渲染器可以有效提高验证集准确率,加快收敛速度​​。

图 14:不同神经渲染器渲染的可视化结果对比

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论