APP下载

基于加权最小二乘滤波的水墨特色风格渲染算法

2022-08-19赵杨

电子测试 2022年15期
关键词:笔划纹理水墨画

赵杨

(云南师范大学传媒学院动画系, 云南昆明, 650500)

0 引言

中国水墨画源远流长,有着朴素抽象、注重神似的画风,是东方文化的象征与瑰宝[1]。如何运用数字技术对极为随意挥洒的水墨画进行风格迁移及转换是当前极具挑战性的研究课题[2]。

目前,实现水墨画风格渲染的技术路线主要分为两类:一类是基于笔刷的方法(Stroke-Based Rendering,简称SBR),另一类是基于图像的方法(Image-Based Rendering,简称 IBR) 。但是由于中国水墨画在表现手法上不遵循客观规律,使得现有的仿真技术无法直接应用于水墨画的快速模拟及风格转换方面。为了解决目前存在的问题,本文主要探讨基于图像的水墨画风格渲染算法,重点研究水墨画笔划提取,水墨画扩散模拟的相关问题。

本文的创新点在与提出将基于加权最小二乘滤波应用与水墨画风格渲染方面的思想,并以此构建了一个较为简单的水墨画扩散模型。该模型能够使目标图像自动生成具有不同抽象度和扩散效果的水墨画特效。最后,本文进一步提出采用GPU对整个水墨画风格渲染算法进行硬件加速处理,使得水墨风格渲染实现了实时处理的可能。

1 图像及视频水墨特色风格化研究发展概况

过去十多年,实现水墨画仿真的主流技术路线包括粒子系统法、纹理合成法、机理动态扩散法和应用分形法[3]等几类,虽然取得了较好渲染效果,但由于计算复杂未能达到水墨的实时渲染或风格迁移。

2004年,Chu和Tai等研究者设计了一个名为“MoXi”的水墨画交互绘制系统,该系统可以实时地生成各种复杂的水墨特效。算法的核心思想是通过运用改进的LBE方法模拟水墨在宣纸上的自然的形状演变,从而产生水墨画特殊的扩散效果。该系统首次运用了较为严谨的物理模型来模拟水墨画这一写意为主的特殊绘画艺术风格[4]。

2010年,赵凡等研究者提出基于流体动力学仿真的水墨渲染方法。该方法通过人机交互实现对水墨的动态模拟[3]。此方法简化了水墨仿真的物理模型,通过流体动力学模拟,快速仿真水墨在宣纸纹理上流动的过程。

2014年,马燕等研究者针对现有基于图像的水墨画渲染模型存在的不足,提出一种强化细节的水墨画扩散模拟算法。经该算法处理的图像其水墨风格更接近实际的绘制效果[5]。

2014年,梁凌宇构建了一个自适应水墨画特色扩散模型。该模型能灵活地对水墨画特色扩散的模式进行控制,从而使目标图像自动生成具有不同抽象度、扩散范围和模式的水墨画特效,实现多样化的水墨画渲染效果[6]。

2016年,陈添丁等研究者提出将真实图像转换为水墨风格的渲染算法。该方法首先对图像进行边缘提取;接着运用各向异性 Kawahara滤波实现水墨晕染效果;最后与宣纸纹理进行背景合成得到风格迁移图像[7]。该算法思想简洁,计算简单,可实现实时的视频风格迁移。

2020年,杨丽洁等研究者为实现数字化创作中国水墨画,设计了一个触摸式交互绘画工具。该软件可通过对输入图像上粗略勾勒的线条进行风格化,并快速生成具有花卉水墨风格的艺术笔划,满足了用户低门槛创作水墨画作品的需求[8]。

2021年,高华明提出基于人工智能的风格迁移算法实现对图像的水墨风格迁移和渲染。该算法的主要思想是基于循环式生成对抗网络(Cycle GAN),通过采用单个环路以生成自然的留白效果。同时为了实现水墨扩散效果,算法将内容图像和风格图像编码后的特征图通过Ada In模块进行整合[9]。该算法能够很好地对普通输入照片进行水墨风格的迁移。

2 基于加权最小二乘滤波的水墨特色风格渲染算法设计与实现

由于中国水墨画主要的特点是讲求“以形写神”,所以,本文设计算法时保留了输入图像中物体的主要形状特征,而舍去其他的细节。在水墨扩散环节,本文提出将LIC-DoG线条提取的结果作为输入,然后运用WLS(Weighted Least Square)模型进行渲染处理。本文讨论的水墨风格绘制算法本质上属于基于图像的渲染方法。

受梁凌宇的思想启发,本文设计的水墨画风格化渲染模型将根据原始图像的特征把物体主要形状位置的像素值信息均匀传播到其邻近区域,从而产生水墨扩散的效果[6]。通过设置不同的模型参数,可以得到不同扩散范围与抽象程度的水墨画风格图像。

由于基于该模型的求解涉及到对大型稀疏矩阵的运算,为提高计算速度,本文利用CUDA语言及其提供的稀疏矩阵求解库及API实现了上述水墨扩散模型的实时求解操作。下面将详细介绍算法的基本思想和具体实现,以及采用GPU对本文提出的算法进行改进和优化。

2.1 加权最小二乘滤波模型

加权最小二乘滤波能够在平滑图像的同时较好地保持图像边缘信息,对一幅输入图像进行加权最小二乘滤波操作可以形式化定义为[10]:

α决定梯度权重项对图像边缘的敏感度,引入ε是可防止表达式分母为0。WLS模型通过对二次能量泛函最小化问题的求解从而实现边缘保持滤波。

通过实验、类比与分析,本文发现加权最小二乘滤波与水墨扩散之间具有一定的相似性。WLS(Weighted Least Square)模型中保真项可理解为水墨笔迹扩散时,需要保证笔迹骨架图像不走样,不失真。正则项则可理解为水墨笔迹信息在一定条件下进行均匀的扩散。本文认为,如果把水墨像素信息看作一种特殊的信息,水墨笔迹扩散效果实际上就是一种特殊的图像平滑过程。本文设计的模型是梁凌宇水墨扩散模型的一种简化形式。

2.2 水墨画笔划提取技术

在进行水墨扩散时,首先需对任意输入图像中的笔划进行线条特征提取,并以此作为水墨扩散的输入。与真实水墨画的绘制作类比,笔划特征提取后的线条位置代表画师画笔落下的位置,而像素的灰度值则代表该点的灰度特征信息[6]。为了能够通过GPU加速实现水墨扩散算法,本文采用了LICDoG预处理方法提取任意输入图像的笔划。

2.2.1 DoG滤波器预处理

DoG滤波器通过高斯卷积得到二阶导数∇2G,其可形式化定义为[11]:

得到滤波结果E(x,y)后,通过二值处理可得到最终的边缘效果,可形式化定义为:

图1 基于DoG滤波器预处理的水墨笔划提取图

2.2.2 计算图像结构张量

令F表示输入图像,Gσ,x和Gσ,y表示高斯分布在x轴方向和y轴方向的导数,形式化定义为[12]:

局部方向定义为:θ= a rg(t)。对DoG滤波得到的边缘图像,以特征向量的方向场作为引导进行LIC滤波即可渲染得到柔化的边缘图像。

2.2.3 LIC线积分卷积

LIC以DoG滤波得到的非连续边缘作为输入,对矢量场中的像素点沿特征向量方向计算流线,然后将流线对应像素点的边缘值进行卷积,结果作为输出边缘值[13]:

式中Δst是第t步的步长,st是第t步后流线的长度,th表示权值,由此可得LIC卷积像素灰度值[22],即:

Fou t(x , y )是输出像素(x , y)处的灰度值,Fin(pt)是边缘图像像素pt处的灰度值,pt和pt’分别是沿流线正、反方向第t步的像素坐标值。l和l'分别是流线正、反方向的积分步数,ht是权值,ht'表示反向权值[14]。

图2 基于LIC线积分卷积的水墨笔划柔化提取图

2.3 水墨画宣纸纹理生成算法

水墨画绘制过程中,其采用的宣纸纹理有一定细微的随机褶皱。为模拟这一特征,本文采用Perlin噪声函数来生成较为自然的随机分形效果,如何利用二维Perlin噪声模拟宣纸纹理的褶皱感,实现方法可参考文献[7]。

2.4 水墨画纹理图像融合算法

通过运用WLS计算模型将输入的水墨画笔迹图像进行滤波渲染,就可得到水墨扩散图像。将输出的水墨特色渲染图像与水墨画宣纸纹理进行融合,即可得到具有水墨风格的最终输出图像。纹理图像颜色混合模型类似于Photoshop软件提供的图像正片叠底运算[15],其可以形式化定义为:

公式中A代表基色;B代表混合色;C代表图层混合后的颜色值,称为结果色。

图3 水墨画纹理图像融合效果图

图4 水墨特色风格渲染例图

2.5 基于GPU加速的水墨风格化渲染技术

通过实验分析,受季智坚的启发,本文发现能量函数的最优化问题可转换为对一个N×N的大型稀疏线性方程组的求解[16]。为了提高算法的处理性能,本文采用CUDA库中提供的基于稀疏矩阵运算和求解的API函数,利用GPU的高并行性有效减少了能量函数求解过程所需时间。

在进行水墨特色风格渲染时,对输入分辨率为256×256的图像处理过程中,解方程耗时只需1秒左右,基本达到实时处理要求。关于如何利用GPU进行稀疏矩阵的求解运算可采用多种方式进行,其中一类解法具体实现原理及伪码可参考王敬轩等人的工作[17],这里不再赘述。

图5 CUDA稀疏矩阵求解架构图

3 实验结果及分析

本文采用Visual C++语言及CUDA语言实现核心算法。本文的创新点在与提出将加权最小二乘滤波应用于水墨画风格渲染方面的思想,并以此构建了一个较为简单的水墨扩散模型,取得了较为良好的合成效果,并通过GPU加速实现了基于图像的水墨特色实时扩散渲染算法。但该模型仍存在大量需要改进和优化的工作,主要改进方向就是如何实现随宣纸纹理结构进行随机的水墨扩散羽化效果。

猜你喜欢

笔划纹理水墨画
水墨画作品
自由的畅想与表达——读杨辰小朋友的水墨画
书法线条的“一波三折”
肺纹理增多是病吗?
童梦
TEXTURE ON TEXTURE质地上的纹理
韩潮水墨画作品
加笔划成新字
消除凹凸纹理有妙招!
KD357:模拟汉字笔划的汉字键盘输入法