Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

邹征夏、石天阳、袁燚作者

有了这支矢量神经风格画笔,无需GAN也可生成精美绘画

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


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


  • 论文地址:https://arxiv.org/abs/2011.08114

  • Github 地址:https://github.com/jiupinjia/stylized-neural-painting


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

此外,该研究还揭示了此前神经渲染器存在参数耦合的问题,并重新设计了渲染网络。新的网络包含一个栅格化网络和一个着色网络,能够更好地对形状和颜色解耦合。实验表明该研究提出的方法在全局和局部纹理层面上具有更高的真实度。另外,该方法还可以在神经风格迁移框架下联合优化以进一步迁移其他画作的视觉效果。

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

生成一幅向日葵画作。

该研究的主要贡献包括:

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

  • 揭示了参数搜索中存在的零梯度问题,并从最优搬运视角来看待画笔优化问题。该研究引入了可微的搬运损失函数改善画笔收敛性和绘画效果。

  • 设计了一种新的神经渲染框架,该框架包含双通道的渲染管线(栅格化 + 着色)。新的渲染器可以更好地处理画笔形状和颜色的解耦合,性能优于此前的神经渲染器。


神经风格画笔

该研究主要由 3 个功能模块组成:1)可以根据输入画笔参数生成画笔图像的神经渲染器;2)可以将多个画笔组合在一起的可微画笔混合器;3)用于度量输入输出图像相似度的模块。

神经风格画笔解决了艺术绘画参数化的问题。对于给定的一张空白画布 h_0,该方法逐步地将画笔叠加到该画布上。例如在第 t 步时,一个训练好的神经渲染器 G 会将一组画笔参数 X_t 渲染成前景图像 s_t 和对应的透明度遮罩,然后该方法利用软混合(soft blending)的方式将当前画布、新增画笔、对应遮罩进行叠加并保证整个过程是可微的:


其中。最终该方法将全部 T 步的画笔参数收集在一起,并在自监督方式下搜索画笔参数的最优解,即最终渲染输出 h_T 需要与输入图像尽可能相似:


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

假定是用于度量画 h_T 和输入图像相似度的损失函数,该方法直接在参数空间内优化所有的输入画笔并最小化相似度损失函数,并利用梯度下降来更新画笔参数


其中是预定义的学习率

图 2:该研究从一张空白画布开始,逐个对画笔进行渲染,并利用软混合的方式将画笔叠加起来。该方法利用梯度下降法来寻找最优的画笔参数集合,从而使生成的画作与输入图像尽可能相似。图中黑色箭头表示前向传播,红色箭头表示梯度反向传播。

神经渲染器

神经风格画笔中的核心模块是神经渲染器。以往的神经渲染器只能够在比较简单渲染场景中工作,但当遇到如过渡色和画笔纹理等更复杂的渲染场景时,上述渲染器将难以很好地表达耦合在一起的画笔形状和颜色。该研究借鉴了传统的渲染管线并设计了一个双通道的神经渲染器,该渲染器可以很好地解决颜色 / 形状 / 材质的耦合问题。

图 3:该研究设计了一种双通道神经渲染器,该渲染器由一个着色网络 G_s 和一个栅格化网络 G_r 组成,它能够将输入的画笔参数集合渲染成栅格化的前景图像和对应的透明度遮罩。

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

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


其中表示利用图形引擎渲染出的前景图像和透明度遮罩真值。表示从画笔参数空间中随机采样得到的画笔参数

像素相似度和零梯度问题

神经风格画笔作画的关键在于相似度的定义,例如逐像素的损失函数就可以直接用于定义渲染结果和输入图像之间的相似度。然而神经风格画笔并非是仅在像素空间中进行优化,而是需要进一步优化画笔参数,此时逐像素损失函数并非总是能够保证梯度的有效下降。特别是当渲染的画笔和其真值不重叠时,就会造成零梯度问题。该研究进一步引入了最优搬运损失函数来解决该问题,如图 4 和图 5 所示。

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

如图 4(a)所示,当沿着方向移动一个正方形画笔 A 到目标 B 时,它的逐像素梯度始终为一个常数,特别是当AB 没有交集时,就会出现零梯度的情况,如图 4(b)所示。作为对比,如图 4(c)所示,该研究提出的最优搬运损失函数不存在上述问题,且可以很好地描述 AB 之间的物理距离。

图 5:逐像素损失函数(第一行)和最优搬运损失函数(第二行)在将画笔从其初始值推向目标位置的对比。

利用最优搬运损失函数,画笔可以很好地收敛到目标位置,而逐像素损失函数则由于零梯度问题未能收敛

最优搬运损失函数

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

在该研究中,研究者提供了一个经典最优搬运距离的平滑版本,即著名的 Sinkhorn distance。该距离具有良好的数学性质,并且相比于原始的版本能够大幅度降低计算成本。通过引入拉格朗日乘子和额外的熵约束,上述优化问题可以进一步写为如下形式:


其中熵

基于上述形式,最优搬运损失函数可以轻易地整合进参数搜索流程并且和其他损失函数联合优化。因此,神经风格画笔的总相似度损失函数定义如下:


其中用于平衡两个目标函数

图 7:上图展示了逐画笔的绘画结果,其中第一行基于马克笔生成,第二行基于油画笔生成。右侧图像展示了优化过程中的损失函数曲线。

与神经风格迁移联合优化

由于神经风格画笔是在参数搜索范式下实现的,因此该方法天然地适合神经风格迁移框架。由于神经风格迁移被设计为通过更新图像像素来最小化内容损失函数(content loss)和风格损失函数(style loss),因此研究者进一步将风格损失函数融入神经风格画笔中,以实现风格化的输出。扩展后的相似度度量函数可以定义为如下形式:


其中为相似度损失函数,该研究中采用与 Gatys 等人相同的形式,即计算基于 VGG-19 所提取特征的 Gram 矩阵。

实验

风格化绘画生成实验

得益于联合损失函数的设计,神经风格画笔不仅可以生成逼真的艺术画作,还可以生成风格化的渲染结果。此外,由于画笔参数具有明确的物理意义,因此在风格化输出时还可以进一步控制风格化的范围(颜色 or 材质)。

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

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

对比实验

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

图 10:神经风格画笔与 Learning-to-Paint 算法对比

除了与此前的方法进行对比,研究者还与人工画作进行了比较,同样取得了较好的生成效果。

图 11:艺术家(Adam Lister)绘画结果和自动生成的结果

受控实验

研究者还分别研究了搬运损失函数和双通道神经渲染器的作用。

图 12:使用最优搬运损失函数前后的结果对比。最优搬运损失函数可以有效地恢复图像中的更多细节,特别是当画笔初始化的位置与目标区域不重合的时候。

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

图 14:不同神经渲染器渲染的可视化结果对比
理论CVPR网易伏羲
相关数据
网易机构

网易成立于1997年6月24日,是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

https://www.163.com/
VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

推荐文章
暂无评论
暂无评论~