时间:2024-09-03
陈佳舟, 胡文文, 何 栋, 缪永伟
(浙江工业大学计算机学院,浙江 杭州 310023)
提示笔刷的数字油画画布自动生成
陈佳舟, 胡文文, 何 栋, 缪永伟
(浙江工业大学计算机学院,浙江 杭州 310023)
传统的数字油画画布由区域边界线条和指定颜料数字构成,绘画者仅需在每个区域内部涂上与数字对应的颜料即可完成自己的手绘作品,是一种流传广泛的新艺术形式。然而,这些画布不仅需要专业人员花费大量时间设计,且无法提示笔刷的方向和大小,影响绘画的效果。为此,提出一种提示笔刷的自动生成方法,将任意图像转换为数字油画画布的同时,利用方向场流线合理提示出笔刷的宽度、长度和方向。实验结果表明,该方法生成的数字油画画布线条封闭光滑,数字清晰可辨,笔刷提示流线对绘画效果有明显的改善。
数字油画;图像聚类;方向流线;线条提取;非真实绘制
传统的油画是在一张空白的画布上完成的,需要轮廓勾勒、颜料调配、笔刷绘制等步骤,专业性极强,只有长期地学习才能掌握。近年来出现了一种新颖的油画艺术形式——数字油画,这种油画形式不仅提供给绘画者标有颜色、轮廓提示信息的画布,还为绘画者事先调配好所需颜料,可使那些爱好油画却不具备绘画基础的人能轻松地完成自己的绘画作品,如图1所示。数字油画继承了儿童填色画的简单直观,避免了传统油画的专业限制,具有较高的观赏性和体验性,深受广大业余绘画者的喜爱,自发明以来,迅速流行于世界各地。
图1 数字油画的绘画过程
但是,目前的数字油画画布仍需要由具有专业绘画基础的技术人员设计完成,不仅费时费力,且油画内容也比较局限,市场上常见的数字油画绝大部分都以特定的风景画作为主。通过观察发现,这种数字油画画布的设计确实并非想象中那么简单,每个步骤都依赖于设计者的绘画经验和美感:先要将整个场景中颜色接近的各个区域都用线条逐一勾勒区分开来,接着选出一组具有区域代表性的颜色,再在每个区域上标注出需要填入的颜色编号。一个内容丰富的场景通常都包含了数量众多的区域,这也使得画布设计的工作量大大增加。因此,亟需一种数字油画画布的自动生成方法,打破其专业设计的局限,进一步提高个性化定制的体验性。
近年来随着计算机技术的不断发展和数码成像设备的逐渐普及,采用基于图像的数字油画画布自动生成方法为解决上述困难提供了技术条件。用户只需提供一幅数码照片,计算机便可将其自动转换为带有区域线条和颜料数字编号的油画画布设计图。基于计算机技术的数字油画设计方法避免了专业、繁琐的设计过程,实现了数字油画的全程个性化定制。通过对数字油画画布的观察,不难发现,要将一幅图像自动转换为一幅数字油画画布,主要存在以下3个方面的挑战:
(1) 输入图像需要被划分为颜色接近且便于填色的若干个封闭子区域。可以实现这种区域划分的图像分割算法有很多种,例如图分割方法[1]、Mean-Shift方法[2]、分水岭法[3]和区域增长方法[4]等。这些分割方法虽然能有效地将颜色接近的像素分割到同一区域,但它们得到的子区域形状都不太规则,往往存在过于细长或其边缘带有较多锯齿的情况。图像处理领域中的图像边缘提取算法[5-6]虽然能获得较为光滑的线条,但无法保证它们能形成封闭的区域。
(2) 虽然数字油画有现成的颜料提供,但一般数字油画只提供 6~30种颜料,其数量远远无法达到场景中呈现的颜色数量。为了克服该局限性,可以采用聚类的方法,在设计画布的过程中把输入图像的所有颜色聚类成少量几种具有代表性的颜色,进而给这些聚类出来的颜色进行编号,并在每一个子区域内部标注出它们所对应的颜色编号。目前,较为通用的聚类算法有:基于层次的聚类[7]、K均值算法[8]、基于密度的聚类[9]等。然而,子区域中标注的颜色编号要求清晰呈现,且尽可能不与边界线条相交——这其实并不容易。为清晰显示,数字编号需保证一定的大小,但这又很容易造成与区域边界的重叠,反而降低其可辨度。
(3) 最为重要的是,艺术家在绘制油画过程中,除了颜料的颜色,每一次运笔的笔刷大小和方向也颇为讲究[10-12]。一般而言,在背景等面积较大的区域往往使用较大的笔刷,而在需要表现细节的区域中使用较小的笔刷;笔刷的方向则是主要沿着区域的边界或区域内纹理的走向。目前的数字油画画布只提示了颜料的使用区域和颜色,忽略了笔刷大小和方向等其他重要因素,缺乏绘画经验的人容易产生笔触杂乱的问题或如同儿童填色画一样缺乏层次感。因此,亟需一种在画布上提示笔刷的大小和方向的方法,进一步改善数字油画的艺术效果。
为克服上述困难,本文提出了一种提示笔刷的数字油画自动生成方法,能够将任意图像自动转换为数字油画画布,且添加了带有笔刷提示信息的流线,改进了现有数字油画的不足。首先,介绍一种统计滤波方法,去除Mean-Shift图像分割[2]产生的边界锯齿,获得光滑的边界线条;其次,采用K均值聚类[8]选出代表性颜色,并提出一种数字显示的调整方法,保证数字显示清晰可见、不与边界重叠;然后,计算图像空间的方向场,生成能够提示笔刷大小和方向的流线;最后,合成上述边界线条、颜色数字和笔刷流线,生成与输入图像内容一致的数字油画画布。
1.1 边界线条
数字油画的绘画者主要完成的是一个颜料填涂的过程,因此需要事先将一幅图像划分成一个个封闭的子区域,每个子区域仅可填入一种颜料。为了实现区域划分,本文采用Mean-Shift图像分割算法[2]来分割输入图像,利用位置-颜色空间的五维向量v=(αx,αy,R,G,B)来完成初始样本的构建,该五维向量表示p=(x,y)位置上的像素颜色为R,G,B。由此,Mean-Shift图像分割算法可以定义为一个搜索中心点位置的迭代过程:
Mean-Shift分割算法依赖于一定的参数调节。其中,参数δ 主要是控制分割子区域的大小,分割区域的面积随着参数δ 的增加而增加,而分割区域的数量随着参数δ 的增加而减少,它是本文方法需调节的参数之一。为避免分割产生面积过小的区域,本文将该算法的最小区域面积参数设为其中w表示图像的长,h表示图像的宽。参数α主要控制位置空间和颜色空间之间的尺度比例,本文方法将该参数值设定为一个自适应值
虽然Mean-Shift分割能得到封闭的区域,但其边界往往带有锯齿,不仅影响油画效果,也为绘画者带来了不便,如图2(c)所示。为此,本文提出一种基于局部统计的滤波方法,去除锯齿效应。对于像素p(其所属区域编号为λp),统计该像素局部邻域内全体像素的所属区域编号并用出现次数最多的区域编号λq代替当前像素p的区域编号。其中,参数s是一个代表滤波范围的整数,用于控制边界的光滑程度,s越大,边界线条越光滑。如图2(d)、(e)、(f)所示,该统计滤波方法不仅可以有效地解决边界锯齿问题,而且不会破坏图像的整体分割结果。
需要指出的是,去除边界锯齿的传统解决方法是首先矢量化边界线条(一般表示为多边形),然后对线条进行分段光顺处理,最后用原有的编号填充每个区域。这类方法不仅无法并行计算、效率低,且稳定性较差,分割产生的锯齿边界容易导致矢量化失败。而本文的基于统计滤波方法,区域编号滤波可以并行处理,能够有效去除复杂的锯齿,滤波的结果只需要一个简单的 4-邻域判断即可获得边界像素,避免了复杂的边界像素矢量化和区域填充。
图2 光滑边界线条的生成
1.2 数字编号
数字油画为绘画者提供所需的全部颜料,但出于成本考虑,其数量总是有限的,只是提供几种具有代表性颜色的颜料。为此,需要把图像中的所有颜色聚类成若干种代表性颜色,不妨设为M种,分别用{i}(1≤i≤M)表示。根据Mean-Shift算法分割后的图像,可以利用K均值算法对每个子区域的平均颜色{cj}(1≤j≤N,N为子区域数量,远远大于M)进行聚类分析。该分析是一个迭代求解的过程:在第k次迭代中,计算所有cj与代表颜色的距离并将cj归类到距离最近的代表颜色所在的类中。根据上述归类,重新计算每一个代表颜色的值,即对归类到i的所有颜色求平均并进入下一次迭代。
在每次迭代后都要计算聚类结果的误差,从而保证迭代过程具有较好的收敛性。误差的计算公式如下:
完成聚类后,每一个区域将获得了一个与颜色序号相对应的数字。但由于分割区域形状各异、大小不一,简单地直接显示这些数字,往往无法保证它们在画布上清晰可见,从而造成视觉混淆。如图3(a)~(c)所示,一般的方法是计算每个区域的中心位置,即该区域内所有像素的平均位置。其中,图3(a)是颜色聚类后的结果,图3(b)是每个区域显示数字编号的大小和位置,图3(c)是数字编号显示的结果。从图3(c)中不难发现,有些数字在面积较小的区域内与边界线条重叠在一起。此外,非凸区域的平均位置有可能在区域外部,从而导致出现数字编号显示到了其他区域的问题。
针对数字编号没有显示在区域内部的问题,本文方法沿着其中心位置的上、下、左、右 4个方向进行搜索,假设在其中一个方向首先遇到该区域内的像素 p1,继续沿着该方向搜索,直至找到离开该区域的位置或图像边界 p2,然后将数字的中心位置设为Ok=(p1+p2)/2。比如,图3(c)中的背景区域(数字编号为1)是中空的,其平均位置不在区域内部,而在其他区域内。本文的方法能够重新找到相应的区域内位置,即图3(f)中背景区域中编号为1的数字。
为克服数字编号在面积较小的区域内与区域边界重叠的问题,本文提出一种调整数字显示大小的方法。假设给定最大允许的数字显示半径为 R,面积较大的区域按照该半径大小显示;而在面积较小的区域,缩小该半径显示数字。换而言之,需要保证数字显示中心Ok与区域边界线的距离大于R;当做不到时,适当缩小 R,从而保证该数字与边界不重叠。为此,首先采用一种类似于Mean-Shift分割的迭代方法将显示中心搬离边界线(至少R距离):
该迭代通过计算局部邻域内区域编号相同的像素的平均位置,使得中心位置Ok逐渐远离区域边界,如图 3(d)中红点所示。当区域包含了所有局部邻域,或者当迭代次数多于10次,此迭代过程就结束。而对于面积很小或形状细长的区域,可能放不下大小为R的数字符号。为了不使数字与边界重叠,需要对数字符号的尺寸进行适当地缩小,如图3(e)所示。图3(f)展示了最终的数字符号显示效果。
1.3 笔刷流线
传统的数字油画帮助绘画者解决了颜料的调配和在画布上的使用区域等问题,但却没有提示如何用笔刷来使用这些颜料,即笔刷的大小和方向。由于数字油画的使用者往往缺乏绘画基础,并不清楚笔刷的正确使用,随意的笔刷放置容易产生笔触杂乱无章的问题。一般而言,在背景等面积较大的区域往往使用较大的笔刷,而在需要表现细节的区域中使用较小的笔刷;笔刷的方向则是主要沿着区域的边界或区域内纹理的走向等。
本文基于上述传统油画笔刷放置的简单规律,为数字油画添加提示笔刷大小和方向的流线信息。
首先,计算方向场。假设输入图像为 I,统计滤波后的图像为 F,分别计算其 Sobel梯度▽I和▽F,然后构建张量场▽IT·▽I+▽FT·▽F,高斯模糊该张量场后,分析其特征值,对应的特征向量即为梯度和切向方向,实现细节请参阅文献[13]。图4(a)利用线积分卷积展示了切向方向场。
其次,通过卷积的方法生成切向流线:其中,t(xk)是在xk处的单位切向量。由于xk往往不在整数像素位置上,可以采用双线性插值的方法计算t(xk)。每一次卷积,都可以获得表示为多边形的一条流线{xk}。
本文在图像空间撒1 000个随机点,逐一从这些点出发进行卷积。假设笔刷的长度和宽度分别是l和w,当卷积的长度超过l,或者遇到区域边界、数字符号或已经卷积过的位置时,卷积终止。此外,每次卷积后,都需要在图像空间做相应的记录,即以流线上的点{xk}为圆心、以w为半径的圆逐一进行标记,以保证流线之间的距离大于w。需要强调的是,笔刷的长度和宽度与所处区域的面积有关,即l=lmax×β,w=wmax×β,其中s取2.5, A为归一化的区域面积,如图4(b)所示。
图4(c)是本文方法的最终结果,合成了边界线条、数字符号和提示流线的数字油画画布。为了避免提示流线对区域边界产生干扰,特用灰色的细线绘制流线,而用黑色的粗线绘制边界线条,并加粗显示数字符号。
图4(f)是本文利用计算机对油画效果的模拟。为了逼真地模拟油画在光照下的物理呈现效果,采用Hertzmann[12]的基于笔刷的绘制方法,根据每一条流线的长度和宽度信息放置颜色笔刷如图4(d)和高度笔刷图4(e),并利用表面法向计算和Phone模型光照计算,模拟油画结果,见图4(f)所示。
图3 颜色聚类与数字显示(右上角的小圆圈代表数字编号与颜料之间的对应关系)
图4 提示笔刷信息的流线
本文提出了一种提示笔刷的数字油画画布自动生成方法。大量的实验证明,该方法可以自动地将任意图像转换为数字油画画布,能够保证边界光滑、数字编号显示清晰,且带有提示笔刷信息的方向流线,极大地方便和改进了现有的数字油画画布设计。
图5展示了调整数字编号的显示位置和大小的重要性。图 5(a)~(c)结果发现,初始的结果在可辨性上面效果较差。图 5(d)~(f)在数字编号清晰度和流线的美观性方面有了较大地改进。
从图5(g)和(h)中可见,通过平均位置计算得到的显示位置可能不在区域内部,数字编号为1和2的显示位置重叠在一起,其原因是编号1对应的背景区域是中空的。而本文的位置调整方法能够将其重新调整到正确的位置。此外,数字符号的初始位置有时靠近区域边界,不利于显示,即使调整大小也难以避免与边界的重叠,如图5(h)。通过对数字符号位置和大小的合理调整,绝大部分数字符号都能做到清晰可见,比如图5(j)所示的编号7。
图5 数字符号位置、大小调整前后的比较(R=10)和自适应笔刷宽度前后的比较
图 5(g)~(j)展示了本文方法通过笔刷调整来控制流线的长度和间距产生的效果比较。以笔刷宽度为例,如果对每个区域都采用相同的笔刷宽度,不管如何调整该宽度值都无法达到满意的效果。如图5(k)和(l)所示,笔刷宽度较大时,面积较小的区域流线太少;而笔刷宽度较小时,面积较大的区域流线过多,增加了使用者的绘画负担,也不符合绘画习惯。本文采用笔刷宽度调整方法,根据区域的面积大小,自动控制笔刷的宽度,并避免与数字符号重叠,如图5(n)所示。
图6给出了3个案例及其中间结果,包括边界线条的生成、颜料编号的显示、最终生成的数字油画画布,以及利用这些数字油画画布绘制出来的数字油画计算机模拟。所采用的颜料数量都是11种。
图6 本文方法的更多结果
本文利用GPU进行加速,算法中的滤波、边界提取、方向场计算、油画笔刷合成都是基于GLSL的脚本实现的,在NVIDIA GeForce 9800 GT的显卡上仅占0.05~0.20 s。由于避免了边界像素的矢量化和区域填充,其他计算量在 CPU上也不大,主要集中在Mean-Shift分割算法和K均值聚类上,根据图像大小的不同,基本需要0.1~0.5 s之间。上述时间是在Intel ® Core™2 DuoE 6550 @ 2.33 GHz的电脑上统计得到的。
本文的方法虽然能够全自动地生成数字油画画布,但其效果有赖于5个重要的参数(其他参数大都采用固定值,对结果影响较小):①图像分割中的δ 可用于控制区域的数量;②统计滤波中的 s可以调整边界线条的光滑程度;③颜色聚类K指定代表性颜色的数量;④R调整数字符号的最大尺寸;⑤lmax和wmax指定笔刷的最大长度和宽度。由于本文方法计算效率较高,整个算法达到了交互速度,包括油画画布和模拟在内的效果均可以在用户修改参数后立即获得,在一定程度上缓解了因为参数调节带来的用户负担。
本文提出一种提示笔刷的数字油画生成方法,通过一种基于局部统计的图像滤波,去除分割区域的边界锯齿;针对数字编号的位置和大小进行合理调整,保证其清晰可见;自适应长度和宽度的方向流线,有效地提示了笔刷这一重要信息。实验结果表明,该方法能够将任意图像转换为数字油画画布,不仅避免了传统数字油画设计的耗时费力,所生成的数字油画画布边界线条光滑、数字显示清晰、且带有提示笔刷大小和方向的流线,对提高油画质量具有显著的辅助作用。
今后的工作包括如何提高数字油画的艺术表现力,为此需要在画布生成过程中引入更多的艺术夸张效果,包括形状夸张和颜色夸张等。另一项工作是对分割算法和颜色聚类算法进一步加速实现[14-15],做到实时计算。
[1] Boykov Y, Funka-Lea G. Graph cuts and efficient N-D image segmentation [J]. International Journal of Computer Vision, 2006, 70(2): 109-131.
[2] Comaniciu D, Meer P. Mean shift: a robust approach toward feature space analysis [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(5): 603-619.
[3] Vincent L, Soille P. Watersheds in digital spaces: an efficient algorithm based on immersion simulations [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1991, 13(6): 583-598.
[4] Nock R, Nielsen F. Statistical region merging [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2004, 26(11): 1452-1458.
[5] Canny J. A computational approach to edge detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, 12(6): 679-698.
[6] Kang H, Lee S, Chui C K. Coherent line drawing [C]// Proceedings of the 5th International Symposium on Non-Photorealistic Animation and Rendering, San Diego, CA, USA, 2007: 43-50.
[7] Sibson R. SLINK: an optimally efficient algorithm for the single-link cluster method [J]. The Computer Journal, 1973, 16(1): 30-34.
[8] Kanungo T, Mount D M, Netanyahu N S, et al. An efficient k-means clustering algorithm: analysis and implementation [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(7): 881-892.
[9] Kriegel H P, Kröger P, Sander J, et al. Density-based clustering [J]. Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery, 2011, 1(3): 231-240.
[10] Zeng Kun, Zhao Mingtian, Xiong Caiming, et al. From image parsing to painterly rendering [J]. ACM Transactions on Graphics, 2009, 29(1): 1-11.
[11] Hays J, Essa I. Image and video based painterly animation [C]//Proceedings of the 3rd International Symposium on Non-Photorealistic Animation and Rendering, Annecy, France, 2004: 113-120.
[12] Hertzmann A. Painterly rendering with curved brush strokes of multiple sizes [C]//Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques, Orlando, FL, USA, 1998: 453-460.
[13] Kyprianidis J E, Döllner J. Image abstraction by structure adaptive filtering [C]//Proceedings of EG UK Theory and Practice of Computer Graphics, Manchester, UK, 2008: 51-58.
[14] 苏清华, 黄樟灿, 汪金水. 数字油画制作中的加速 K均值颜色聚类算法[J]. 武汉大学学报: 理学版, 2014, 60(2): 173-177.
[15] 李海洋, 文永革, 何红洲, 等. 基于随机权重粒子群和K-均值聚类的图像分割[J]. 图学学报, 2014, 35(5): 755-761.
Automatic Generation of Digital Oil Painting Canvas with Hinting Brushes
Chen Jiazhou, Hu Wenwen, He Dong, Miao Yongwei
(College of Computer Science, Zhejiang University of Technology, Hangzhou Zhejiang 310023, China)
A traditional digital oil painting canvas consists of lines that represent region boundaries and digits that represent specified pigments. It becomes a new popular art because amateurish users can easily draw their own oil painting by brushing provided pigments into each region. However, it costs professional artists much labor and time to design, and reduces the painting quality due to the lack of brush hints, such as their orientation and width. In this paper, we propose an automatic generation method with brush hints. It not only converts an arbitrary image into a digital oil painting canvas, but also provides effective brush hints on the canvas. Experiments demonstrate the smoothness of boundary lines, the legibility of color digits and the significant improvement of painting quality contributed by the hint of brush streamlines.
digital oil painting; image segmentation; field streamline; line extraction; non-photorealistic rendering
TP 391
A
2095-302X(2015)03-0331-08
2015-01-26;定稿日期:2015-02-11
国家自然科学基金资助项目(61303138,61272309);浙江大学CAD&CG国家重点实验室开放课题资助项目(A1428)
陈佳舟(1984-),男,浙江湖州人,讲师,博士。主要研究方向为计算机图形学、表达式绘制。E-mail:cjz@zjut.edu.cn
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!