分享

【美术研究】她用计算机绘制油画,大师说我走了,比不过!

 王生不易 2021-09-03

摘要:基于图像的油画风格化绘制是计算机图形学领域非真实感绘制研究的热点之一.为了进一步提高图像油画风格化的质量,提出了一种基于多尺度笔刷的分层图像油画风格化绘制算法.该算法模拟艺术家的油画绘制过程,采用不同尺度的笔刷按照从粗到细的顺序逐层绘制.在每层笔刷绘制中,首先使用增量Voronoi序列采样点和图像切线方向场确定笔刷流线,然后结合笔刷形状与笔刷高度场进行纹理贴图,得到最终的图像油画风格化绘制结果.通过与现有算法比较,文中算法不仅能模拟真实的油画绘制过程,而且生成的油画效果层次感更强,充分体现了图像的结构特征和油画细节.

关键词:非真实感渲染;油画风格化;切线方向场;笔刷流线

图像风格化是非真实感渲染的主要研究对象之一,它在保留图像关键视觉信息的同时还展现出独特的艺术风格,如水彩、水墨、油画等.其中,油画以悠久的历史、深厚的底蕴和丰富的表现力而广为流传.创作一幅高质量的油画作品需将绘画工具、技巧和经验有效地结合.因而使用计算机模拟油画创作,生成具有油画风格的图像是图像风格化的热门研究话题之一。

为了实现逼真的油画效果,多数传统的图像油画风格化方法通过对油画笔刷的大小、方向等特征进行模拟来生成油画结果.还有一些方法从纹理合成的角度入手,从参考油画图像中提取纹理并应用到目标图像上,以得到油画风格化效果.此外,一些工作使用流体仿真来模拟笔刷、油、画布之间的交互,以获得高度真实感的油画细节.近年来,深度学习在计算机视觉、语音处理等领域取得了突破性的进展,同时它也被应用于图像风格化这一问题.目前,基于深度学习的图像油画风格化方法通常使用端到端的神经网络直接从输入图像得到油画风格化的绘制结果。

尽管现有算法在油画风格化问题上取得了一定的进展,能得到一些不错的结果,但这些方法并没有考虑实际的绘画过程.在实际绘画中,艺术家通常遵循由粗到精的绘画方式:首先对图像建立构图,安排画布的整体布局,并用较大尺寸的笔刷绘制底色;随后,通过较小尺寸的笔刷来增加画布细节,并不断精化以得到细节丰富的最终作品.为此,本文提出了基于多尺度笔刷的分层油画风格化算法,在模拟艺术家真实绘画过程的同时,进一步提高油画绘制效果。

1,相关工作

生成具有油画艺术风格图像的算法可以分为传统的图像油画风格化和基于深度学习的图像油画风格化.其中传统的图像油画风格化主要包括基于笔刷的风格化、基于纹理合成的风格化以及对物理过程建模的风格化[1]。

1.1基于笔刷的风格化

通过笔刷的尺寸、方向等特征来实现模拟油画的风格.这类方法首先由Hertzmann[2]提出,其通过建立参考图像层,使用多层绘制技术对静态图像进行绘制.该方法在构建参考图像层时只是简单地采用高斯滤波,并未参考画家真实的绘画过程.在这一工作基础之上,为了提高油画效果的真实感, Hertzmann[3]进一步提出了基于光照模型的油画绘制,将笔刷的透明度和高度考虑进来. Lee等[4]基于艺术家提供的真实笔刷样本,建立了3D笔刷模型. Huang等[5]提出了基于模板匹配的方法,根据局部区域的特征选择具有真实感的笔刷模板.Zeng等[6]将油画风格化与图像分割相结合,根据图像的语义信息绘制笔刷. Gooch等[7]通过图像分割区域的中轴生成笔刷。

陈佳舟等[8]利用图像分割得到自适应长度和宽度的方向流线,有效地确定了笔刷的大小和方向.使用图像分割技术的方法虽然能够得到较好的油画效果,但比较依赖图像分割的结果,影响图像细节区域的绘制.相较于多数利用图像梯度直接获取笔刷方向的方法, Hays等[9]将局部梯度较强的点设为种子点,通过径向基函数插值得到更加平滑、自然的笔刷方向,但该方法在处理纹理走向复杂的图像时有一定的缺陷。

1.2基于纹理合成的风格化

通过纹理合成技术模拟参考图像的风格,实现图像风格化. Hertzmann等[10]提出了图像类比的方法,它以亮度通道作为特征空间,通过参考图像对和目标图像逐像素的多尺度匹配,使目标图像具有参考图像的风格. Wang等[11]在风格图像中提取具有代表风格的区域,并与源图像进行合成.在此基础上, Lee等[12]增加了衡量目标图像梯度的指标,在表现图像纹理风格的同时保留源图像的方向特征,使绘制结果更加真实.这类方法处理具有明显纹理的图像时能得到不错的油画结果,但对于处理纹理不明显的图像具有一定的局限性。

1.3物理过程建模的风格化

通过对笔刷在绘画过程中的变形数据进行建模,实现图像风格化. Wang等[13]对水墨画的绘制进行建模,将水和墨的扩散分别建模,同时考虑了纸的特性. Chen等[14]仿真油画实时绘画系统,通过模拟笔刷、油彩和画布之间的交互,使用户自由创作逼真的油画作品。

1.4基于深度学习的风格化

Gatys等[15]利用卷积神经网络提取图像不同层级的特征,通过结合内容图像和风格特征得到风格化结果. Johnson等[16]引入感知损失函数并使用预训练的模型,缩短了生成图像的时间,提高了风格化的效率. Li等[17]使用对抗网络,通过生成网络和判别网络的相互竞争,提高油画风格化的质量. Sanakoyeu等[18]在对抗网络中使用自编码器,分别对图像和隐变量进行监督,进一步提高了油画风格化的结果.这类方法虽然能够获得一些较好的结果,但通过黑盒的方式模拟油画风格难以控制;且这些方法仅关注油画风格化的结果,忽略了绘画的过程。

2,算法实现

本文参考油画真实的绘画过程,提出基于多尺度笔刷的分层油画风格化绘制算法,其整体流程如图1所示.

图一,本文算法流程图

首先使用增量Voronoi序列采样点和图像切线方向场确定笔刷流线;然后依据笔刷流线使用笔刷形状与笔刷高度场进行纹理贴图模拟油画的物理效果;最后使用不同尺度的笔刷按照从大到小的顺序迭代并绘制出最终结果.该算法通过模拟实际绘画中由粗到精的绘制过程,得到了高质量的油画结果。

图一,本文算法流程图

2.1增量Voronoi序列采样

本文算法基于增量Voronoi序列采样[19]确定笔刷位置.油画绘制是画家不断地在画布上绘制笔刷、逐步求精得到最终油画结果的过程.这一过程中,通常大笔刷用于绘制背景,小笔刷用来勾勒细节.本文基于增量式采样来模拟这一过程,所使用的增量Voronoi序列具有良好的蓝噪特性,并且能保证在任何位置终止算法所得到的序列都有相对较好的样本分布.图2展示了在增量Voronoi序列不同位置截断后采样点的分布情况以及对应的频谱图.其中,图2a~图2c分别为N=1024, 2048,4096的样本分布及频谱图;图2d为N=4096的泊

图2增量Voronoi序列不同位置截断后采样点的分布

松圆盘采样及其频谱图.增量Voronoi序列的生成首先需要在采样空间内随机生成种子点,根据种子点划分Voronoi区域,再依据最远点策略生成新的采样点,通过不断地迭代得到采样序列.具体算法请参考文献[19]。

图2增量Voronoi序列不同位置截断后采样点的分布

2.2图像切线方向场

本文算法基于结构张量的特征向量计算图像切线方向场[20],通过该切线方向场指导笔刷流线的方向.首先,算法使用Sobel滤波获得图像在x和y方向上的梯度和,并构建结构张量。

对于给定的点n(x,y),利用结构张量T表示该点在图像上的方向变化率

通过求解Sn,得到该点的特征值

通过求解Sn,得到该点的特征值

特征向量

由于结构张量T是对称矩阵,因此所求特征向量为正交向量,即1v和v2分别表示沿该方向最小变化率和最大变化率,它们分别为切线和梯度方向.图3b展示了上述算法所生成的切线方向场,通过图3b的局部放大结果可以看出,该算法在梯度平坦的区域不稳定.而在实际作画时,对于梯度平坦的区域,画家往往会根据自身绘画经验确定一个主方向,从而对整体笔刷方向进行调整.因此,本文引入表示这种主方向的控制向量ν来得到最终切线向量ν=1ν+ν.图3c展示了主方向为水平方向的切线方向场,其中控制向量ν= (0.003, 0).

图3利用线积分卷积表示的切线方向场

2.3分层油画绘制算法

图3利用线积分卷积表示的切线方向场

本文提出的基于多尺度笔刷的分层油画风格化绘制算法模仿由粗到精的实际绘画过程,根据给定的笔刷大小将绘制过程分为若干层.在每层绘制中,算法根据目标图像及其切线方向场、当前已绘制的画布内容、当前层笔刷大小形状等信息来确定每一笔的绘制.本文算法使用RGB颜色的2L范数来衡量画布与目标之间的像素差异.基于生成的笔刷流线,算法使用纹理贴图的方法[3]在画布上进行笔刷的绘制.

本文算法步骤如下:

输入.目标图像I,切线方向场F,上一层画布Ck1,增量Voronoi序列S,笔刷kB.

输出.当前层画布Ck.

Step1.利用Ck1初始化当前层画布Ck.

Step2.计算C和目标图像I之间的像素差异,并设置采样点计数器i0.

Step3.比较i与length(S):

Step3.1.若i< length(S),执行下一步;否则,转Step4;

Step3.2.获取笔刷流线的初始位置,并计算该位置的切线方向场和颜色值;同时,定义笔刷流线的顶点数组L[],并将i增加1;

图3利用线积分卷积表示的切线方向场

Step3.3.比较L的长度与B的最长长度:k

Step3.3.1.若L的长度小于B长度,执行下一k步;否则,转Step3.4;

Step3.3.2.判断当前位置:画布与目标图像像素的误差、与初始位置颜色的差别以及与前一位置方向的差别是否超出给定阈值.若没有超出阈值,执行下一步;否则,转Step3.4;

Step3.3.3.判断当前位置是否在当前层已经被覆盖.若没有被覆盖,执行下一步;否则,转Step3.4;

Step3.3.4.将当前位置加入到L中,并根据该位置的切线方向场和笔刷大小bk确定笔刷流线的下一位置.同时,更新当前位置及其方向场,转Step3.3;

Step3.4.比较L的长度与bk的最短长度.若L长bk度大于Bk最短长度,执行下一步;否则,转Step3;

Step3.5.根据L绘制笔刷流线,并使用纹理贴图的方法进行笔刷绘制.同时,根据绘制后的画布更新画布与目标图像的误差,转Step3.

Step4.输出当前层画布Ck.

图3利用线积分卷积表示的切线方向场

3,实验结果与分析

本文实验平台为i73.40GHz CPU, 12GB内存、Windows 10系统,选取3种不同尺度的笔刷进行实验,其中从大到小笔刷的半径分别为26px,8px, 2px.图4所示为本文算法的一些中间结果,其中,图4a为输入图像.图4b~图4d分别为从大到小笔刷的流线图,其中蓝、绿、红线条分别表示第1~3层对应的笔刷流线.从图4可以看出,不同大小笔刷的使用次数随着绘制层数的增加而递增;笔刷的位置与笔刷大小及输入图像细节紧密相关.图4e所示为使用本文算法得到的输入图像的切线方向场.图4f~图4h分别是使用不同尺度笔刷分层绘制的结果.从图4可以看出,图4f使用大笔刷布置底色,表现出画布的整体布局;图4g在底色的基础上根据笔刷流线的指导加入了中等尺度的笔刷,增加了画布的细节;图4h使用小笔刷对细节进一步精化.为了模拟油画涂料的层叠感,本文采用Phong光照模型渲染笔刷高度场.图4i所示为各层笔刷叠加得到的高度场,图4j~图4l分别为各层笔刷绘制图加入高度场后渲染的结果.从最终结果图4l中可以看出,本文算法可以得到逼真的油画风格化结果.图5展示了本文算法的一些其他结果图.为了体现油画线条多样性和多元化的特性,图6展示了使用不同样式笔刷绘制的结果.

图7对比了本文和其他算法的绘制结果,通过对比表明,本文算法在模拟了实际绘画过程的同时,还能生成高质量的油画结果.但本文算法还存在一些局限性:如图7最后一组对比结果所示,当目标图像的前后景接近时,绘制结果将很难表现出图像的细节特征。

图4本文算法绘制过程图
图5本文算法其他绘制结果
图6多样式笔刷绘制结果
图7本文算法与其他算法绘制结果的对比

4,结语

本文提出了一种基于多尺度笔刷的分层油画绘制算法.该算法使用多尺度的笔刷按照从大到小逐层对油画进行绘制,模拟了真实绘画中由粗到精的绘画过程.在每一层的绘制中,利用增量Voronoi序列确定笔刷的位置;利用结构张量计算的切线方向场确定笔刷流线的方向.同时,算法对笔刷流线的长度和曲率等属性进行约束,使得流线更符合实际绘画.基于笔刷流线,本文使用笔刷形状和笔刷高度场进行纹理贴图模拟真实油画笔刷的效果.实验结果表明,本文算法在模拟实际绘画流程的同时能够生成高质量的油画结果,对于算法的局限性,将进行深入研究。#文化#

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多