王 瑜 罗广征 田恒屹
(北京工商大学人工智能学院 北京 100048)
铅笔画是很多平面设计的基础,具备简约、和谐的特点,富有艺术感染力。但铅笔画绘制需要有很深的绘画基本功,且细致刻画需要较长时间,因此,利用图像处理技术,将自然图像全自动地转化为铅笔画,已成为目前影视、娱乐等产业的迫切需求。
目前,铅笔画的仿真生成主要分为两类,一类基于3D模型[1-2],一类基于二维2D图像[3-4]。3D模型需要构建复杂的三维空间结构,而随着相机性能的不断提高,获取清晰的2D图像比建立3D模型更加容易,因此学者们更倾向于采用二维图像的方式获得铅笔画。李瑞瑞等[5]利用量子切割原理生成多层次的映射图,再利用映射图对铅笔画轮廓图和色调纹理进行建模,最后通过灰度变换和纹理合成生成铅笔画。Mao等[6]利用线积分卷积得到流畅的纹理方向,产生具有铅笔画风格的纹理图像。王权等[7]利用结合梯度最小化和范数约束的混合梯度算法生成铅笔画,较好地保持了原图像的结构和细节信息。Li等[8]提出基于傅里叶变换的图像素描生成算法,利用灰度图像分别进行傅里叶变换和傅里叶反变换,再将每个点的灰度值倒置求反,最后对图像进行锐化和平滑等处理,从而实现铅笔画效果。利用骨架与色调两阶段生成铅笔画是一个图像转换[9]的过程,也是一种很优秀的基于2D图像的铅笔画生成方法,并获得了很好的结果。本文在此方法基础上,使用具有多尺度、多方向特性的可变局部边缘模式(Varied Local Edge Pattern,VLEP)生成边缘轮廓图,再通过原始图像的色阶直方图获得色调图,最后将边缘轮廓图和渲染后的色调图融合,获得效果逼真的铅笔画,由于VLEP纹理分析方法的多尺度和多分辨特性,以及不易受噪声和光照变化影响的优势,保证了本文提出的铅笔画生成算法的优越性。
本文提出的全自动铅笔画生成方法包括两个主要步骤,即铅笔画轮廓图生成和色调图绘制。轮廓图表达场景的一般结构,而色调图更注重形状和阴影,对于感知全局光照、强调阴影和暗区是非常有效的。
1.1.1于VLEP算法的边缘提取
(a) 一组算子
用VLEP算子对原始灰度图进行边缘提取,公式如下:
(1)
(2)
式中:Θ=2π/P。
1.1.2铅笔画轮廓图的生成
选择8个间隔45度的参考方向,将线段表示为{φi},i∈{1,2,3,4,5,6,7,8}。计算其中某一方向的响应,公式如下:
Gi=φi⊗G
(3)
式中:φi是第i个方向的线段。根据经验,φi的长度设置为图像高度或宽度的1/30。“⊗”为卷积运算,它将沿i方向的梯度大小分组,形成滤波器响应Gi。选取各个方向的响应中最大值作为结果,记为:
(4)
(5)
沿φi方向将附近的像素聚集在一起,并在原始梯度图中连上边缘像素,这个过程对弱化噪声和图像信息的提取也非常有效。最后的铅笔画轮廓图S是通过对S′像素值进行反演,并将其映射到[0,1]区间得到。
通过观察发现,铅笔画里经常使用密集的线条来突出阴影和比较暗的物体,本文采用了一种渲染铅笔纹理的方案[11]。
1.2.1色调图分布的确定
因为铅笔画是纸和石墨相互作用的结果,主要由两个基本色调组成,对于非常明亮的区域,无需任何处理,显示白色,相反,重笔画用于强调边界和突出黑色区域,而在这两个色调之间,产生柔和的色调笔画,用来丰富图像信息。因此,使用如下参数模型表示目标图像的色调分布:
(6)
为了对色调分布进行建模,高光层使用拉普拉斯分布,色调分布定义如下:
(7)
式中:σb表示分布的规模。与明亮层不同,中间调层并不一定在特定的灰度水平达到峰值,因此使用均匀分布,具体表示为:
(8)
式中:ua和ub是定义分布范围的两个控制参数。
最后,阴影层的笔画强调物体的深度变化和几何轮廓,利用如下公式建模:
(9)
式中:μd是暗线条的平均值,而σd是尺度参数,并且阴影层像素值的变化一般要比高光层像素值的变化大得多。
1.2.2参数的确定
高质量的铅笔纹理生成可以有效去除噪声,保持强纹理信息。色调纹理值没有明显方向的铅笔图案,只提取色调信息,本文在提出的框架中利用计算的色调映射,并学习手工绘制的色调模式,手工色调模式如图2所示,其中P为手工绘制的铅笔纹理,P的深浅随着β变化。
图2 手工色调模式
在手绘铅笔画中,色调铅笔纹理是在同一位置重复绘制产生的。本文使用指数函数模型H(x)β(x)≈J(x)进行纹理的渲染[11],其中H(x)即为P,J(x)为通过式(6)得到的色调图。绘图模式中的Hβ倍近似对应于J中的局部色调值,β通过求解式(10)得到。
(10)
式中:“∘”表示哈达玛积运算。
(β∘log(P)-log(J))T∘log(P)+
(11)
然后两边取转置,可得到式(12)。
β∘log(P)∘log(P)-log(J)∘log(P))+
(12)
并可得到如下转换形式:
log(J)∘log(P)
(13)
T=Hβ*
(14)
本文将铅笔画轮廓图S和色调纹理T结合起来,通过将每个像素的笔划和纹理值相乘来突出重要的轮廓,得到素描铅笔画,公式如下:
R=S·T
(15)
本文整个算法流程如下:
(1) 将原始输入图像利用式(1)和式(2)得到边缘轮廓图G,然后利用边缘轮廓图和式(3)-式(5)得到铅笔画轮廓图S。
(2) 利用式(14)得到纹理渲染图T。
(3) 利用式(15)得到素描铅笔画R。
此外,本文将生成的素描铅笔画R作为高光层,将本文方法扩展到彩色铅笔绘图,即将YUV颜色空间重新映射回RGB空间。由于此方法的色调调整可以有效地产生铅笔画一样的外观,最终的彩绘也呈现出适当的色调。
为了证明本文方法的有效性,精心分析了一系列的实验结果。图3显示了本文方法和Lee等[12]方法的比较结果。
(a) 原始彩色图像 (b) 生成的边缘轮廓
从实验结果可以看出,Lee等提出的方法由于是基于局部梯度生成的,图像模糊,真实感差,而本文方法的结果展示了另一种不同的风格,形象逼真,具有更细致的纹理信息,更接近画手的手绘铅笔画。
图4(a)为另一幅彩色图像,利用本文方法,生成轮廓图4(b)和色调图4(c),最终得到彩色铅笔画如图4(d)所示。
(a) 原始彩色图像 (b) 边缘轮廓图
可以看出,本文方法可以生成彩色铅笔画,并连接了在原始边缘图中不一定连接的像素,有效抵抗噪声的影响,使最后生成的彩色铅笔画包含了重要的结构信息和线条绘画风格。
在铅笔画生成过程中,因为不仅要有选择地保存结构信息,同时要使铅笔的外观接近真实的绘画,因此将自然图像转换为铅笔画是一个难题。本文提出一个基于轮廓图与色调图的全自动铅笔画生成方法,主要思想是先用VLEP算法提取出原始图像的边缘轮廓图,再基于铅笔画的特点进行纹理渲染,最后再将纹理渲染图与轮廓图结合,生成铅笔画。该方法生成的铅笔画能够很有效地保留原始图像的信息,视觉感更逼真,更接近人类手绘获得的铅笔画。