Print

发布时间: 2018-05-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.170376
2018 | Volume 23 | Number 5




    GDC 2017会议专栏    




  <<上一篇 




  下一篇>> 





自适应的线条画绘制
expand article info 王少荣1,2, 敖知琪1, 要曙丽1, 陈毅松2,3, 汪国平2,3
1. 北京林业大学信息学院, 北京 100083;
2. 北京市虚拟仿真与可视化工程技术研究中心, 北京 100871;
3. 北京大学图形与交互技术实验室, 北京 100871

摘要

目的 基于参考图像的线条画生成是非真实感绘制最为常见的应用之一。尽可能模拟艺术家的创作风格生成疏密得当、具有层次感的线条画是这类工作的主要目标和挑战。本文提出一个自适应线画图绘制算法。方法 首先,将场景图像分割成若干个区域,分别计算每个区域亮度的方差以及每个像素到边界的最小距离,将每个区域的方差和面积的比值作为该区域的复杂度。然后,计算能反映其显著视觉特征的边缘切向流场。最后,使用基于流的各向异性高斯差分滤波生成线条画。在构造边缘切向流时,每个位置的切向量由其邻域的切向量加权而得到。文中增加了一个新的系数项,对于邻域的任意一个位置,如果它和参考位置在区域分类中属同一个类别。则该位置的权值更大。基于流的高斯差分自适应滤波过程中,高斯差分滤波的尺度参数和复杂度以及到区域边界距离有关。细节越丰富,离边界越近,尺度参数取值越小,这样得到的边缘比较细,同时可以防止将相邻小细线条连接成粗线条。然后,将高斯差分滤波结果沿着流线方向进行高斯滤波,对于细节丰富的区域,边缘比较多,尺度参数取值比较小,所连接边缘比较短,可以减少错误边缘可能。结果 对生物、树林、建筑、山河等具有代表性的图像,采用本文算法进行自动实时进行线条绘制,实验结果表明,采用本文算法所生成的线条随着区域场景的复杂程度呈现不同粗细和浓淡的变化,具有一定的层次感。因而本文算法能生成视觉特征鲜明、风格化效果突出的线条画,且能处理各种复杂场景的图像。结论 本文自适应参数的线条画生成算法,其算法参数调节以及算法效果优于固定参数的算法,本文算法在处理日常生活中各类主题场景的图像时均能取得良好效果。

关键词

非真实感绘制; 线条画绘制; 边缘切线场; 图像分割

Adaptive line drawing
expand article info Wang Shaorong1,2, Ao Zhiqi1, Yao Shuli1, Chen Yisong2,3, Wang Guoping2,3
1. School of Information Science and Technology, Beijing Forestry University, Beijing 100083, China;
2. Beijing Research Center of Virtual Simulation and Visualization, Beijing 100871, China;
3. Graphics and Interactive Technology Lab, Peking University, Beijing 100871, China
Supported by: National Natural Science Foundation of China (61421062)

Abstract

Objective Generating line drawings based on reference images is the most common application of non-photorealistic rendering, which is widely used in creative arts, scientific graphing, animation, video games, and print advertisement. During the creation of a line drawing, artists outline the contours of objects. The artists emphasize the main structure with long and thick lines and present the simple details with short and thin lines. Meanwhile, the artists barely use any ink for those unimportant regions on visual observation. A good line drawing successfully balances density and thickness features, thereby providing a sense of layering. Method A line-drawing-simulating algorithm initially analyzes the features and visual importance of an input image and subsequently detects the edges to generate a contour line and form a line drawing with a certain flavor. Given its simplicity, difference of Gaussians (DoG) may be calculated as a simple approximation of the Marr operator, which is widely used for edge detection. A flow-based anisotropic filtering framework is produced to improve the continuity of edges. The new filtering framework initially forms an edge tangent field and subsequently applies a flow-based difference of Gaussians (FDoG) on the intermediate results. Finally, the hyperbolic tangent function in the framework will soften the calculated result and link the detected edge points to form a line drawing. Different spatial parameters of DoG can only detect the edge of different scales in the image. DoG with small-scale parameter finds thin edges, but most probably takes noise as an edge. By contrast, DoG with large-scale parameter finds thick edges and is capable of ignoring some noise, but most probably takes neighboring edges as noise. Thus, selecting the appropriate parameters of DoG is important. For images with multiple edge scales, the FDoG method based on fixed parameters is not adapted to detect the edges, which leads to unsatisfactory line drawings. This study presents an adaptive non-photorealistic rendering technique for stylizing a photograph in the line drawing style. Generating the final line drawing has three main steps. 1) We segment the reference image into different regions. In each region, we calculate the intensity variance and minimum distance to the region boundary of all of its pixels. We define the ratio of the intensity variance to the region boundary as its complexity. 2) We use the preprocessed results to construct a smooth and direction-enhanced edge flow field to indicate the visual significance of the region. 3) We use the flow field to guide the line drawing process with anisotropy Gaussian filter, in which the parameters are adaptively determined. Finally, the hyperbolic tangent function in the framework will soften the calculated result and link the detected edge points to form a line drawing. Several improvements have been made on the three steps. During the procedure acquiring the edge flow field, the tangential vector of each pixel is the weighted mean of the tangential vector of its neighbor. The tangent vectors from the same category have a similar direction, whereas the tangent vectors from different categories may behave differently. We introduce a new weight item to balance the weight of these vectors. If the pixel of the neighbor and the reference pixel are located in the same segmented region, then the weight is strong. During the DoG filtering process, the scale parameter of each pixel is based on the regional complexity of the pixel and the precomputed minimum distance between the pixel and the region boundary. If a pixel is in a detailed area or near the region boundary, then a small-scale parameter is set and weak and thin lines are highlighted. By applying this strategy, we prevent the formation of thick curves from thin curves. During Gaussian filtering of the DoG flow, if a pixel is in a detailed area or near the region boundary, then the scale parameter is small and short and thin lines are observed in complex areas. Thus, we have an improved chance of decreasing the possibility of incorrectly highlighting long and thick lines. Result Experimental results show that the thickness and shade of the line produced by our approach change with the complexity of the image. Therefore, our approach can produce attractive and impressive line illustrations with a variety of photographs. Conclusion Compared with the fixed-parameter line drawing algorithm, our line drawing algorithm is more adaptive and has better results.

Key words

non-photorealistic rendering; line drawing; edge tangent flow; image segmentation

0 引言

基于参考图像的线条画生成是非真实感绘制最为常见的应用之一,其广泛应用于美术创作、科技插图、动漫游戏以及平面广告设计等领域。艺术家在创作线条画时用线条勾勒物体的轮廓,对物体的主要结构用长而粗的线条;对于不重要的细节使用短而细的线条;对于那些对视觉观察不重要的区域则不用任何线条。一幅好的线条画作品,线条的疏密、粗细处理得当,画面具有层次感。

线条画模拟算法首先对输入图像的结构特征及其视觉重要性进行分析,检测图像中的边缘连接成轮廓线,形成具有一定风格的线条画。高斯差分(DoG)由于其计算简单并可以作为Marr算子[1]的简单近似,被广泛用于边缘检测。Gooch等人[2]提出了针对人脸图像的风格化系统,基于人眼感知的原理,利用高斯差分来提取线条。Winnemller等人[3]使用双曲正切函数对各向同性的高斯差分滤波结果进行柔和阈值化处理,从而提高了线条画的连续性。由于DoG各向同性导致所检测出来的边缘像素不能清晰地展现线条的方向性;在一些存在图像噪声或者弱对比度的区域,使用阈值的边缘图可能会出现一些孤立的、分散的边缘部分。Kang等人[4-5]提出的基于流的各向异性滤波框架提高了边缘的连贯性.该方法首先对图像生成边缘切向场(ETF),然后在ETF上进行基于流的高斯差分(FDoG)滤波。使用双曲正切函数对计算结果进行柔和阈值化处理, 所检测到的边缘点自动组成线条画。FDoG滤波器很好地保存了图像里的方向性结构特征,使得生成的线条空间一致性得到保障。基于FDoG的方法生成的线条一致性好,同时具有一定的噪声滤除能力,因而广泛应用于线条画生成及相关应用中。

不同空间参数的DoG只能检测出图像中不同尺度的边缘。图 1为对输入信号使用不同参数的DoG进行边缘检测。小参数的DoG检测出来的边缘比较细, 它也可能把噪声检测成边缘。而更大参数的DoG检测出的边缘更粗,有一定忽略噪声的能力, 但有可能把相邻的多个边缘检测成一个边缘。因此,空间尺度参数的选择是基于FDoG线条画的重要问题。对于包含多种尺度边缘的图像,基于固定参数的FDoG方法无法自适应检查边缘而导致生成的线条画效果不够理想。对于复杂的如日常生活常见场景的图像,图像中往往同时存在细节丰富变化较大的区域以及变化平缓细节不明显的区域,算法参数选择更为困难。

图 1 使用不同尺度参数的DoG边缘检测
Fig. 1 DoG with different parameters
((a) input; (b) DoG, $\sigma = $0.8; (c) DoG, $\sigma = $3.5)

为此,本文提出一个自适应的线条画绘制(adaptive line drawing)算法,本文算法能根据场景的复杂度来动态调节ETF中双边滤波窗口的大小,动态调节FDoG中空间尺度参数大小,以期取得最佳的表现效果。

1 相关工作

线条画的生成和图像边缘检测相关,比较早的Canny检测算子[6-7]生成的边缘效果比较好,所以被广泛应用于一些非真实感绘制应用中[8-11]。Son等人[12]使用似然函数估计计算像素点属于真正边缘点的概率,然后对图像中极大概率像素点进行曲线拟合形成边缘线。该方法所生成的线条画风格化效果较好,但曲线拟合会导致轮廓的连续性较差。Gooch等人[2]利用高斯差分来提取线条,生成线条画。

基于流的滤波器方法通过沿着给定方向的卷积将局部的小边缘连接成长的光滑边缘,进而可以提高线条画的质量。Winnemller等人[3]使用双曲正切函数对各向同性的高斯差分滤波结果进行柔和阈值化处理,从而提高了线条画视频的帧间连续性。Kang等人[4]提出基于特征流的高斯差分滤波算法(FDoG)。文献[5, 13]等提出采用分离滤波核的快速FDoG算法。文献[14]通过增强该特征边切向流中直线的权重,然后在此基础上利用基于流的高斯差分得到建筑物的线条画。Kim等人[15]通过这种特征流线进行点画优化。FDoG算法生成的线条连续性较好,同时滤除噪声的能力也非常突出,但由于所采用的高斯差分算子本质上是一个灰度图边缘检测算子,通常无法有效识别和检测差别主要体现在色度份量上的那些区域的线条。王山东等人[16-17]提出将高斯一阶导滤波结果和高斯差分滤波结果进行适当的混合作为边缘检测的微分响应来提取边缘。Stone等人[18]提出基于滤波的黑白图生成方法,也可以用于生成质量良好的线条画。

此外, 基于流的滤波方法也可以用在图像视频摘要应用中[19-21]。Winnemöller等人[22]进一步对DoG算法进行了拓展, 提出XDoG算法以生成多种风格的艺术效果。

2 自适应的抽象线条画算法

本文线条画生成算法框架如图 2所示,首先,对图像做一个分割,将场景分割成若干个内部色彩较为一致的区域,分别计算每个区域亮度的方差以及每个像素到边界的最小距离。然后,计算能反映其显著视觉特征的边缘切向流场;最后使用基于流场的各向异性滤波生成线条画。

图 2 本文算法流程
Fig. 2 The algorithm flow

2.1 场景分割

本文利用初始分割的结果作为后续算法的推荐,以减少分割方法不稳定造成的误差。本文采用Chen等人[23]的算法来进行分割,对图 3(a)所示的原始图像进行分割,图 3(b)为分割区域的图像亮度方差。图 3(c)是分个区域的距离场图,图 3(b)(c)将数值线性映射成灰度图像,灰度值越大,代表数值越大。图中包含树和花的区域图像细节丰富。图像分割结果大致给出了场景的一个比较粗的划分,而距离场给出每个像素到区域边界的最短距离。考虑到图像细节变化较大的地方往往发生在边界位置,因此距离值越大,离边界越远,该处细节变化的可能性越小。如图 3(b)中亮度值比较高的区域对应着原图中颜色比较一致的区域,亮度值低的区域则对应原图中颜色变化比较剧烈的纹理区域。

图 3 图像分割
Fig. 3 Image segmentation ((a) source image (b) image segmentation; (c) distance field)

2.2 自适应的边缘切向流

构造边缘切向流(Edge Tangent Flow, ETF)的方法有很多种,Kyprianidis等人[13]提出从结构张量获得方向场,该方法计算简单,但对噪声比较敏感。本文借鉴Kang等人[4]采用基于滤波核的非线性向量平滑技术构造切向流场。该方法的本质是一个双边滤波过程,模权重函数和方向权重函数的选取有效保证了平滑后的方向向量顺从于显著特征的初始切方向,同时又避免了涡旋流的产生。为了更好地处理彩色图像,先将其转换成灰度图像[24],然后生成灰度图像的梯度场,而不是将其转换到Luv空间后使用L分量来计算梯度场。

首先使用Sobel算子计算图像的梯度,将此向量逆时针旋转90°度得到一个与之垂直的初始切向量${t^0}\left( x \right)$。迭代生成ETF,即

${t^{{\rm{new}}}}\left( x \right) = \frac{1}{k}\sum\limits_{y \in \Omega \left( x \right)} {\varphi \left( {x,y} \right)} $ (1)

式中, $\varphi \left( {x, y} \right) = {t^{{\rm{cur}}}}\left( y \right){\omega _{\rm{s}}}\left( {x, y} \right)$${\omega _{\rm{m}}}\left( {x, y} \right){\omega _{\rm{d}}}\left( {x, y} \right){\omega _{\rm{l}}}\left( {x, y} \right)$, $\Omega \left( x \right)$$x$的邻域,$k$为归一化项。${t^{{\rm{cur}}}}\left( x \right)$为当前时刻$x$处的切向量,${t^{{\rm{new}}}}\left( x \right)$为下一个时刻$x$处的切向量。${\omega _{\rm{s}}}$$\left( {x, y} \right)$为距离权值,${\omega _{\rm{m}}}$$\left( {x, y} \right)$为梯度权值项, ${\omega _{\rm{d}}}$$\left( {x, y} \right)$为向量方向权值项, ${\omega _{\rm{l}}}$$\left( {x, y} \right)$为类别差异项。

${\omega _{\rm{s}}}$$\left( {x, y} \right)$表明邻域内不同距离的切向量对新切向量贡献,其定义为

${\omega _\mathit{s }}\left( {x,y} \right) = \left\{ {\begin{array}{*{20}{c}} \begin{array}{l} 1\\ 0 \end{array}&\begin{array}{l} \left\| {x - y} \right\| < r\\ 其他 \end{array} \end{array}} \right.$ (2)

式中,$r$为邻域的半径。$r$和场景复杂度$c$有关。给定点对${P_1} = P\left( {{x_0}, {y_0}} \right)$, ${P_2} = P\left( {{x_1}, {y_2}} \right)$,为了拟合过这两个点的数据,通过Sigmoid函数定义函数$S$,即

$S\left( {x,{P_1},{P_2}} \right) = S\left( y \right)\left( {{y_1} - {y_0}} \right) + {y_0}$ (3)

式中,$y = \frac{{x - \left( {{x_0} + {x_1}} \right)/2}}{{\left( {{x_1} - {x_0}} \right)/2}} \times k$$k$为Sigmoid参数系数,本文取值为4。容易看出,$S$的取值范围在${{y_0}}$${{y_1}}$之间,当$k$足够大时, $S\left( {{x_0}} \right) \approx {y_0}$, $S\left( {{x_1}} \right) \approx {y_1}$。本文根据经验值,$r$取值在3和5之间,$c$越大$r$越小,使用拟合函数进行计算,即

$r = S\left( {c,P\left( {30,5} \right),P\left( {100,3} \right)} \right)$ (4)

同一个类别的切向量方向相近,而不同类别的切向量则可能差异比较大。用$l\left( x \right)$表示$x$位置像素的类别,${\omega _{\rm{l}}}$$\left( {x, y} \right)$用于描述$xy$之间的类别差异,即

${\omega _1}\left( {x,y} \right) = \left\{ {\begin{array}{*{20}{c}} \begin{array}{l} 1\\ 1\\ 0 \end{array}&\begin{array}{l} l\left( x \right) = = l\left( y \right)\\ l\left( x \right)! = l\left( y \right)\& \& D\left( y \right) < {d_0}\\ 其他 \end{array} \end{array}} \right.$ (5)

式中,${d_0}$为给定阈值, 本文取为2。对于给定位置$x$,选择周围的切向量进行加权平滑时,尽量选择同一类别的切向量,对于不同类别的区域,只选择距离$x$比较近的切向量。

${\omega _{\rm{m}}}$$\left( {x, y} \right)$为梯度权值项,用于保持切向量特征,${\omega _{\rm{d}}}$$\left( {x, y} \right)$为向量方向权值项,其计算公式为

${\omega _{\rm{m}}}\left( {x,y} \right) = \frac{1}{2}\left( {1 + \tanh \left[ {\eta \left( {\hat g\left( y \right) - \hat g\left( x \right)} \right)} \right]} \right)$ (6)

${\omega _{\rm{d}}}\left( {x,y} \right) = {t^{{\rm{cur}}}}\left( x \right){t^{{\rm{cur}}}}\left( y \right)$ (7)

式中,$\eta $本文取为1。

图 4所示为ETF场的局部放大示意,背景的不同颜色代表不同类别区域,图 4(a)为文献[4]算法的结果,图 4(b)为本文算法结果,比较可以发现,在同一个区域内,本文生成的ETF一致性更好。而文献[4]算法生成的ETF相对要杂乱一些。

图 4 ETF局部放大
Fig. 4 Local zoom in on ETF ((a) reference [4]; (b)ours)

2.3 基于流的高斯差分自适应滤波

图 5所示,${c_x}\left( s \right)$为过$x$的流线,$t\left( x \right)$${c_x}\left( s \right)$$x$处的切线,${l_s}$为过$x$垂直$t\left( x \right)$的垂线。

图 5 FDoG过程
Fig. 5 FDoG

首先,以$f\left( t \right)$为滤波算子,沿着直线${l_s}$对图像进行积分

$F\left( s \right) = \int_{ - T}^T {I\left( {{l_s}\left( t \right)} \right)f\left( t \right){\rm{d}}t} $ (8)

式中,$f\left( t \right)$为DoG函数,用于提取边缘

$f\left( t \right) = {G_{{\sigma _c}}}\left( t \right) - \rho {G_{{\sigma _s}}}\left( t \right)$ (9)

式中,${G_\sigma }$为方差为$\sigma $的1维高斯函数,$\rho $为0.99。如$F\left( s \right)$小于给定阈值,则$x$可能为边缘上的点。

对于细节丰富的区域,${\sigma _c}$的取值应该比较小,这样边缘比较细,可以防止将相邻的小细线条连接形成比较粗的线条;而在细节较少面积较大的区域,${\sigma _c}$的取值应该比较大,这样才可能捕捉到那些不明显的边缘。本文中,${\sigma _c}$的计算为

${\sigma _c}\left( x \right) = {S_1}\left( {c\left( x \right)} \right) + {S_2}\left( {d\left( x \right)} \right)$ (10)

式中,$c$为复杂度函数, $d$为距离场函数,${S_1}$为复杂度相关项,复杂度越高,${\sigma _c}$的取值越小,${S_2}$为距离相关项,距离值越小, 离边界越近,${\sigma _c}$的取值应越小。本文${\sigma _c}$取值范围为[0.2, 1.2],${S_1}$${S_2}$为经验值,计算为

$\left\{ \begin{array}{l} {S_1}\left( x \right) = S\left( {x,P\left( {20,0.5} \right),P\left( {100,0.25} \right)} \right)\\ {S_2}\left( x \right) = S\left( {x,P\left( {1.5, - 0.05} \right),P\left( {10,0.05} \right)} \right) \end{array} \right.$ (11)

图 6(a)所示为参数${\sigma _c}$的可视化结果(参考图像为图 3(a), 将${\sigma _c}$取值范围线性映射到灰度值0到255)。

图 6 参数图
Fig. 6 Visualization results of parameters ((a) ${\sigma _c}$; (b) ${\sigma _m}$)

然后,以高斯函数为滤波算子,$F\left( s \right)$沿曲线${c_x}\left( s \right)$积分,可以将流线附近的小的边缘连接成比较长的边缘,即

$H\left( x \right) = \int_{ - S}^S {{G_{{s_m}}}} \left( s \right)F\left( s \right){\rm{d}}s$ (12)

对于细节丰富的区域,边缘比较多,尺度参数${\sigma _m}$的取值应该比较小,这样连接的边缘比较短,从而减少出现错误边缘的可能;而在细节比较少边缘特征比较弱的区域,尺度${\sigma _m}$的取值应该比较大,这样才可能把潜在的边缘连接起来。另外在距离值比较小的区域,离边缘近的可能性比较大,因而需要较小的${\sigma _m}$,以减少过多相邻边缘合并的问题。${\sigma _m}$的参考取值范围为[2.0, 3.5]之间, 其计算为

${\sigma _m}\left( x \right) = {S_3}\left( {c\left( x \right)} \right) + {S_4}\left( {d\left( x \right)} \right)$ (13)

式中,${S_3}$${S_4}$分别为复杂度项和距离项,为经验值, 其定义为

$\left\{ {\begin{array}{*{20}{l}} {{S_3}\left( x \right) = S\left( {x,P\left( {20,3.4} \right),P\left( {100,2.1} \right)} \right)}\\ {{S_4}\left( x \right) = S\left( {x,P\left( {1.5, - 0.1} \right),P\left( {10,0.1} \right)} \right)} \end{array}} \right.$ (14)

参数${\sigma _m}$的可视化结果如图 6(b)所示(参考图像为图 3(a),将${\sigma _m}$取值线性映射到灰度值0到255之间)。

最后,将输出结果用tanh函数做一个柔和阈值化处理,即

$\hat H\left( x \right) = \left\{ {\begin{array}{*{20}{c}} \begin{array}{l} 1.0\\ 1.0 - \tanh \left( {\phi {\rm{ \times }}H\left( x \right)} \right) \end{array}&\begin{array}{l} H\left( x \right) > 0\\ 其他 \end{array} \end{array}} \right.$ (15)

3 实验和讨论

本文实验在Intel Core i7-6700K CPU 4.00GHZ 16 GB内存,Windows 10 64位操作系统上完成。使用基于多线程进行的并行计算。对于输入的照片图像,我们的算法可以全自动实时地生成线条画结。算法的具体处理时间由输入图像的分辨率和滤波核的尺寸决定,本文测试图像除图中的图像之外,分辨率均为1 200×900像素,本文算法2 s之内完成。为了得到更多的细节,请在屏幕上放大图片。

本文主要和文献[4]和文献[16]算法比较。如果没有经过特殊说明,文献[4]算法使用的是文中的推荐参数${\sigma _c}$=1.0, ${\sigma _m}$=3.0。本文算法的所有实验使用自适应生成的同一组参数。

图 7(a)为1 200×900像素原始图像,图 7(b)为选取一组比较小的参数基于FDoG生成线条画结果,线条比较细短, 图像整体效果比较淡,很多细节如天空区域的细节完全没有;图 7(c)为使用一组比较大参数的算法处理结果,虽然细节有所增加,但生成的线条比较粗重,整体效果也无改善。本文算法效果如图 7(d)所示,不同区域的线条粗细不一,呈现出明显的层次感,天空区域的细节也有所保留。图 8所示为图 7对应图像的局部放大结果。使用小参数的FDoG线条比较细而淡,较大参数的FDoG生成线条比较粗,而本文算法生成的线条粗细随着图像复杂度的变化而变化。

图 7 不同参数的FDoG以及本文ALD算法比较(可放大图像进行比较)
Fig. 7 FDoG with different parameters vs. our algorithm
((a) input image; (b) FDoG (${\sigma _c}$=0.3, ${\sigma _m}$=2.5); (c) FDoG(${\sigma _c}$=1.0, ${\sigma _m}$=3.0); (d) ALD)
图 8 图 7局部放大效果
Fig. 8 Local zoom in on Fig. 7

图 9为本文算法和FDoG算法的结果比较。输入图像带有重复性的纹理,图 9(b)为使用较小的参数得到的结果,右上鱼身上的细节很少,而图 9(c)为使用较大的参数得到的结果,右上鱼身上的细节较多,但背景的条纹明显和原图不符。本文算法根据图像分类结果和复杂度的不同,使用自适应的参数,因而基本保留了鱼身上的细节,背景的纹理也保持比较完整和清晰,结果如图 9(d)所示。

图 9 本文ALD算法和FDoG算法效果比较
Fig. 9 Compared with FDoG
((a) input image; (b) FDoG (${\sigma _c}$=0.3, ${\sigma _m}$=2.5); (c) FDoG(${\sigma _c}$=1.0, ${\sigma _m}$=3.0); (d) ALD)

图 10所示为一个带有建筑和花草树木的复杂场景,输入图像中建筑的细节相对较少。而花草的细节非常多,竹子篱笆的排列非常细密。图 10(b)为FDoG方法,虽然房子的表现不错,但花草生成的线条比较粗,几乎看不出草的形状,而篱笆的线条过于密集。另外树叶的表达也不够好。作为对比,本文ALD算法展现出来的房子效果是类似的,草的长度变短和线条更细,草的形状基本上展现出来了,而且呈现出明显的浓淡,这种粗细浓淡增强了效果。竹子篱笆的密集效果大为改善。平坦区域的建筑上部分则有效保留了绝大多数的重要细节。图 10(c)为Canny算子结果,效果明显不够好。

图 10 本文ALD算法和FDoG算法以及Canny算子效果比较
Fig. 10 Compared with FDoG and Canny detector ((a) input image; (b) FDoG; (c) Canny; (d) ALD)

图 11所示测试图像细节丰富。图 11(b)为iso DoG算法结果,其中的噪声点很多,较长的边缘也很少,其可视化效果欠佳。图 11(c)为本文算法结果,和图 11(b)所示FDoG算法结果相比。本文算法生成的树枝线条有明显的浓淡变化,整个树的线条相对较细,颜色更浅,因而呈现出一定的层次感。

图 11 本文ALD算法和FDoG、iso FDoG算法效果比较
Fig. 11 Our method vs. FDoG and iso FDoG ((a) input image; (b) ISO FDoG; (c) FDoG; (d) ALD)

图 12为本文算法和文献[16]算法结果比较。图 12为文献[16]生成结果,所生成的线条比较粗,颜色比较深,线条数量较少,图中左下区域有很多粗线条显得不自然。比较而言,图 12(c)本文算法结果保留了更多线条和细节,所生成的线条较细,整体图像的明暗和输入图像保持一致。文献[16]算法使用一阶高斯导数检测边缘,对噪声比较敏感,不容易展现比较细的边缘。而本文算法生成的线条和输入图像的复杂度相关,因而生成画面具有浓淡变化,具有一定的层次感。

图 12 本文ALD算法和文献[16]效果比较
Fig. 12 Compared with reference[16] ((a) input image; (b) reference[16]; (c) ours)

图 13为更多的测试图像,可以看出,本文的自适应算法对各类主题的图像均有较好的适应性。

图 13 Compared with reference[16] ((a) input image; (b) reference[16]; (c) ours)
Fig. 13 More line drawing results

4 结论

本文提出了一种自适应的基于ETF的各向异性滤波算法,可以实时生成具有一定艺术美感效果的线条画图像。线条画绘制的核心算法是设计合适的边缘检测算子,准确完整地检测出所有的边缘点。因为日常生活中的场景图像复杂度高,且细节分布不均匀,为此,我们利用图像复杂度自适应地指导ETF的生成以及基于流的滤波,获得区域自适应的、光滑连续的线条。实验结果表明,本文算法在处理日常生活中各类主题场景的图像时均能取得良好效果。

本文线条画生成算法建立在边缘检测算子之上,因此也存在着一些局限。比如由于本文算法提取的线条是由一系列边缘点组合而成,现有算法生成的线条在表现艺术性和抽象性方面仍不及基于笔刷绘制的方法。线条画的创作是一个复杂而主观的过程,后继工作可以考虑结合人工智能和其他交互手段,以获得更加满意的效。

参考文献

  • [1] Marr D, Hildreth E. Theory of edge detection[J]. Proceedings of the Royal Society B:Biological Sciences, 1980, 207(1167): 187–217. [DOI:10.1098/rspb.1980.0020]
  • [2] Gooch B, Reinhard E, Gooch A. Human facial illustrations:creation and psychophysical evaluation[J]. ACM Transactions on Graphics, 2004, 23(1): 27–44. [DOI:10.1145/966131.966133]
  • [3] Winnemöller H, Olsen S C, Gooch B. Real-time video abstraction[J]. ACM Transactions on Graphics, 2006, 25(3): 1221–1226. [DOI:10.1145/1141911.1142018]
  • [4] Kang H, Lee S, Chui C K. Coherent line drawing[C]//5th International Symposium on Non-Photorealistic Animation and Rendering. San Diego, California: ACM, 2007: 43-50. [DOI:10.1145/1274871.1274878]
  • [5] Kang H, Lee S, Chui C K. Flow-based image abstraction[J]. IEEE Transactions on Visualization and Computer Graphics, 2009, 15(1): 62–76. [DOI:10.1109/TVCG.2008.81]
  • [6] Canny J. A computational approach to edge detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, PAMI-8(6): 679–698. [DOI:10.1109/TPAMI.1986.4767851]
  • [7] Meer P, Georgescu B. Edge detection with embedded confidence[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2001, 23(12): 1351–1365. [DOI:10.1109/34.977560]
  • [8] Decarlo D, Santella A. Stylization and abstraction of photographs[J]. ACM Transactions on Graphics, 2002, 21(3): 769–776. [DOI:10.1145/566654.566650]
  • [9] Fischer J, Bartz D, Straber W. Stylized augmented reality for improved immersion[C]//Proceedings of 2005 IEEE Virtual Reality. Bonn, Germany: IEEE, 2005: 195-202. [DOI:10.1109/VR.2005.1492774]
  • [10] Kang H W, Chui C K, Chakraborty U K. A unified scheme for adaptive stroke-based rendering[J]. The Visual Computer, 2006, 22(9-11): 814–824. [DOI:10.1007/s00371-006-0066-7]
  • [11] Orzan A, Bousseau A, Barla P, et al. Structure-preserving manipulation of photographs[C]//5th International Symposium on Non-Photorealistic Animation and Rendering. San Diego, California: ACM, 2007: 103-110. [DOI:10.1145/1274871.1274888]
  • [12] Son M, Kang H, Lee S, et al. Abstract line drawings from 2D images[C]//Proceedings of the 15th Pacific Conference on Computer Graphics and Applications. Maui, HI, USA: IEEE, 2007: 333-342. [DOI:10.1109/PG.2007.63]
  • [13] Kyprianidis J E, Döllner J. Image abstraction by structure adaptive filtering[M]//Soo I, Tang W. EG UK Theory and Practice of Computer Graphics. Aire-la-Ville, The Eurographics Association, 2008: 51-58. [DOI:10.2312/LocalChapterEvents/TPCG/TPCG08/051-058]
  • [14] Liu Y Q, Wu Z S, Wang S D, et al. Line drawing technique for building images[J]. Journal of Software, 2012, 23(2): 34–41.
  • [15] Kim D, Son M, Lee Y, et al. Feature-guided Image Stippling[J]. Computer Graphics Forum, 2008, 27(4): 1209–1216. [DOI:10.1111/j.1467-8659.2008.01259.x]
  • [16] Wang S D, Wu E H, Liu Y Q, et al. Abstract line drawings from photographs using flow-based filters[J]. Computers & Graphics, 2012, 36(4): 224–231. [DOI:10.1016/j.cag.2012.02.011]
  • [17] [王山东, 刘学慧, 陈彦云, 吴恩华. 基于特征流的抽象线条画绘制[J]. 计算机学报, 2014, 3: 011. ] [DOI:10.3721/SP.J.1016.2014.006]
  • [18] Stone L A, Frank J A, Albert P S, et al. The effect of interferon-β on blood-brain barrier disruptions demonstrated by constrast-enhanced magnetic resonance imaging in relapsing-remitting multiple sclerosis[J]. Annals of Neurology, 1995, 37(5): 611–619. [DOI:10.1002/ana.410370511]
  • [19] Kyprianidis J E, Kang H, Döllner J. Image and video abstraction by anisotropic kuwahara filtering[J]. Computer Graphics Forum, 2009, 28(7): 1955–1963. [DOI:10.1111/j.1467-8659.2009.01574.x]
  • [20] Kyprianidis J E, Kang H, Döllner J. Anisotropic Kuwahara filtering on the GPU[M]//Engel W. GPU Pro-Advanced Rendering Techniques. Boca Raton, Florida: AK Peters, 2010: 247-264.
  • [21] Kyprianidis J E, Kang H. Image and video abstraction by coherence-enhancing filtering[J]. Computer Graphics Forum, 2011, 30(2): 593–602. [DOI:10.1111/j.1467-8659.2011.01882.x]
  • [22] Winnemöller H, Kyprianidis J E, Olsen S C. XDoG:an extended difference-of-Gaussians compendium including advanced image stylization[J]. Computers & Graphics, 2012, 36(6): 740–753. [DOI:10.1016/j.cag.2012.03.004]
  • [23] Chen Y S, Chan A B. Enhanced figure-ground classification with background prior propagation[J]. IEEE Transactions on Image Processing, 2015, 24(3): 873–885. [DOI:10.1109/TIP.2015.2389612]
  • [24] Liu C W, Liu T L. A sparse linear model for saliency-guided decolorization[C]//Proceedings of the 20th IEEE International Conference on Image Processing. Melbourne, VIC, Australia: IEEE, 2013: 1105-1109. [DOI:10.1109/ICIP.2013.6738228]