APP下载

一种基于样本传播的图像风化方法

2021-03-15王玉铭郭小明张曼琳贾方利

辽宁石油化工大学学报 2021年1期
关键词:风化补丁外观

王玉铭,潘 斌,郭小明,殷 立,张曼琳,贾方利

(1.辽宁石油化工大学理学院,辽宁抚顺113001;2.辽宁石油化工大学计算机与通信工程学院,辽宁抚顺113001)

现实世界中大部分物体随着时间的推移,其表面会根据材料属性和周围的环境而产生外观上的变化,被称为风化作用。在计算机图形学中,利用风化作用可以有效地提高场景的真实感。现有方法通常改变的是饱和度和反射度等材质属性,实现落叶或者污渍等效果[1⁃2]。然而,在现实世界中,许多风化现象具有更加复杂详细的纹理上的变化。此外,随着时间的推移,风化的物体表面会具有更复杂的颜色分布。

目前,有许多种基于物理模拟来产生风化效应的研究,为特定的场景创造出逼真的风化效果,例如流体模拟[3]、石像的风化侵蚀[4]、苔藓生长[5]等。但是,这些方法都需要物体精确的几何形状和物理参数,这些参数很难从单幅图像中估算出来。还有一些基于图像的物体表面风化算法。例如,S.Xue等[6]通过修改物体的几何外观,对图像中的石头模拟出风化效果;文献[7-8]研究了一种基于粒子模拟的方法,在物体表面产生流体的侵蚀效果。这些方法通过限制目标物体的材料和风化作用来获得逼真的效果。

为了更逼真地模拟风化效果,J.Wang等[1]研究了一种可视化的模拟方法,从单一材料表面上不同点的BRDF(双向反射分布函数)中获得时变外观,构造出一种外观流形,这种外观流形近似于一种利用风化度生成的外观子空间,以此来计算风化程度的分布,并模拟材料表面的时变效果。D.Bandeira等[9]基于一种外观图像,将外观流形简化为二维特征空间。Y.Endo等[10]通过添加用于表示阴影变化的高频分量来细化外观图的显示结果。G.Hwang等[11]基于时间的外观流形模拟风化效应,并且用于风化视频的处理。

A.A.Efros等[12]提出了一种基于纹理补丁拼接的纹理合成技术,该算法对基于图像分割的拼接技术和能量优化等方面进行了改进[13]。关于图像补全技术,D.Simakov等[14]提出了一种基于全局优化的技术,可以达到更加细致的填充效果。文献[15-16]研究了一种名为Patch Match的快速随机补丁搜索算法来加速算法运算。白宏阳等[17]提出一种利用加权矩阵补全图像的方法。R.Bellini等[18]提出了一种估算部分风化纹理的“年龄图”方法,该方法能够模拟合成风化效应在时变演化过程的序列。Y.Zhou等[19]提出一种自动分析和控制合成高度不均匀纹理的新方法。结果表明,当待补全区域相较采样区域较大时,结果很难令人满意,得到的效果并不理想,视觉感不真实。综合来看,风化效果的模拟可以大致看成一种图像补全问题,其中未风化区域是待修补区域,风化区域则是修补的补丁,也就是样本。

利用径向基函数(RBF)方法可以合理地计算风化区域的分布程度,模拟出具有丰富颜色变化的风化效果。从风化样本中取样,并根据风化程度和外观一致性将其传播到目标区域,以此来模拟外观特征。该算法可以更加快速地生成风化模拟,效果更加逼真。

1 图像风化

图像风化模拟流程如图1所示。

图1 图像风化模拟流程

图像风化基本流程如图2所示。

图2 图像风化基本流程

首先,使用Grab Cut算法[20]或者图像编辑工具提取目标对象的像素点,并且指定提取点分别为风化程度最高和最低的点。具体方法,利用算法或者提取工具,人为选择提取风化程度最高与最低的一个点。将这些提取的像素点作为风化程度的一种基准,然后利用径向基函数的方法对这些像素进行函数插值,构建一个在高维特征空间中的风化度平滑函数。利用构造的非线性函数,可以计算出风化程度图像。最后,利用图像分割算法从高度风化的像素中提取出风化程度最高的区域。与此同时,基于风化程度图像提取着色图像,着色图像大致包含图像中物体的表面细节。当进行风化度图像更新时,从风化样本中提取风化补丁在风化度图像上传播。为保持外观效果的一致性,风化补丁由全局优化算法生成。最终,将风化效果与着色图像结合,得到输出图像。

1.1 基于RBF的风化度计算

利用RBF算法进行函数插值计算的方法已经广泛地应用于计算机图形学中,例如基于点数据的三维重建[21]、目标检测[22]、图像去噪[23]等。利用一种光滑函数表示高维特征空间中的风化度分布。这种算法可使图像的风化程度平稳变化,合理地计算具有广泛颜色分布变化的图像风化程度。因为指定像素为中心的RBF数值,通常只需要几十个或几百个像素值,所以这种算法的速度特别快。

首先要确定每个RBF的系数,计算每个像素的风化程度,以此作为RBF的线性组合。设Ω为用户指定区域的一组像素。将径向基函数φ(r)=e-r2赋给每个像素i∈Ω,并通过求解以下最小二乘问题来计算其系数:

式中,fi=(Li/σa,ai/σa,bi/σa,xi/σs,yi/σs)为视觉特征和空间特征组成的特征向量,其中Li、ai、bi为Lab颜色空间中的亮度和色度值,而xi,yi为归一化后的像素坐标,σa和σs为控制外观效应和空间局部性的参数;根据测试,令σa=0.2,σs=50,αj为未知系数;di为每个像素的风化度,其中风化程度最低的像素的di=0.01,最高的像素的di=1.00;fj为像素j的特征向量。

利用系数α,计算每个像素p的风化度:Dp∈[0,1]。

式中,fp为像素p的特征向量。

1.2 全局着色

利用补丁合成的方法模拟风化物体表面的外观特征效果。然而,将补丁直接合成到目标位置上,有时会影响下方物体的原有形状。因此,预先计算出物体表面的着色图像,然后再进行补丁合成。

根据物体表面的风化程度来计算整体着色。利用风化样本描述的二值分割结果来识别风化程度较少的区域,将风化程度较低的区域均匀划分为20个离散区间,并计算出每个区间k的平均亮度值μk。然后,将区间k中的每个像素p的亮度Ilump,k除以对应的μk来计算全局着色Sp,k,即Sp,k=Ilump,k/μk。其余的高度风化区域保持原有亮度,因为在模拟风化的过程中,这些区域的外观不发生变化。

1.3 风化效应模拟

利用风化补丁在待风化区域进行传播,以此来模拟风化效果。这种方法与以前仅仅改变色度或反射率的方法不同。

首先,使用图像分割算法在高度风化的区域中识别并分割出风化程度最高的图像块,并标记为风化样本。然后,利用风化程度引导的全局能量优化算法来找到最佳的风化补丁。最后,将补丁和着色区域进行合成,以此来模拟风化效应。

1.3.1 风化样本 风化样本的定义包含最明显风化特征的矩形区域。给定风化图像,首先进行二值分割,以此来标记风化区域和未风化区域。最显著的风化像素通常会在图像中颜色密集的地方出现,利用风化度D定义代价函数E(L):

式中,Lp∈;N为相邻像素组的集合;Vp为平滑项;λ为决定平滑项相对重要性的平滑系数;[]如果参数为正,则指示函数取值为1,否则为0。

根据文献[24],使用Vp(Dp,Dq)=exp(-β(Dp-Dq)2/dist(p,q)),其中dist(p,q)是相邻像素的欧氏距离,是一个常数,表示平均值。对于所有的结果,λ取值都为20。利用图像分割方法可以有效地解决能量最小化问题。然后,提取一个矩形,其中包含标记为“风化”的大多数像素。在系统中使用文献[25]算法进行实时计算矩形的尺寸为150×150像素。提取的区域通常存在孔洞,会引起风化效应噪声。即使明显地提高风化度,孔洞内像素还是保持不变。为了避免这些问题,使用Patch Match[15]来填充孔洞。

1.3.2 基于全局优化的风化补丁搜索 在生成风化样本之后,将采集风化补丁分布到整个目标区域,也就是待风化区域。在这个过程中,标记为“风化”的像素将保持不变,也就是处在风化区域。为保证风化后效果具有较好的视觉纹理性,需要在输入图像I中处理从风化样本T中采样的风化补丁,具体步骤为:首先,从风化样本中随机抽取补丁,并与相邻补丁重叠,两块补丁重叠的面积为补丁面积的1/4,这种方法类似于图像拼接技术[14];然后,基于全局测量距离d(I,T),对修补程序进行迭代更新。风化样本传播如图3所示。为寻找输入图像的每个补丁中匹配度最高的风化像素块,将重叠像素和相邻像素以及标记为“风化”的像素颜色度的平方差之和(SSD)最小化,d(I,T)定义为:

式中,Gdat为风化像素颜色度的SSD;Gnei为相邻像素与重叠像素之间颜色度的SSD;Kp为校正风化度,“未风化”像素的风化度设置为0,而“风化”像素的风化度不变。

图3 风化样本传播

测量距离d(I,T)优先考虑高度风化区域的外观相似性,否则保持相邻补丁之间的视觉一致性。这种优化可以生成一种自然的风化纹理,既可以和风化区域无缝过渡,又能保持风化样本的外观特征。在实现过程中,会有两步由粗到细的细化。与此同时,会改变风化补丁的大小。首先,使用60×60像素搜索补丁以保留风化样本的整体结构。然后使用20×20像素更新补丁以达到更详细的特征效果。使用Patch Match[15]可以加速补丁搜索过程,修改偏移量以查找相邻补丁。在合成过程中,使用最小边界误差分割算法[16]来确定相邻重叠块之间的分割。

1.4 风化效果渲染

利用全局着色和风化补丁,生成了最终图像I′,然后将Lab颜色空间中的亮度值与着色值相乘。因为设定的风化效应出现在风化程度超过一定阈值τ的区域,所以在风化度D大于阈值的像素中合成风化纹理。计算最后的图像:

式中,I为输入图像;Z为对未风化区域处理后的风化纹理;S为着色图像;*为卷积乘积;下标lum表示亮度通道,下标hue表示Lab空间中的色度通道。与以往的方法不同,这种方法在视觉上保证了风化纹理效果的连续性。

1.5 风化模拟

通过自动更新风化度图像的办法来模拟风化效果。采用添加平滑度图像技术来平滑地扩展风化区域[9]。风化度图像整体更新基于粒子模拟的方法[7]。利用粒子模拟方法可以轻易地实现模拟风化效果,具体的方法是将算法中流体染色中的粒子替换成风化度。当粒子穿过像素时,每个像素的风化程度将会增加。

2 结果分析

利用C++实现了原型系统编写,并在配置为i5⁃8400型号CPU、8 GB内存和GTX1060显卡的电脑上运行。计算风化程度的平均时间约0.1 s,风化样本的生成时间约0.5 s,风化补丁的搜索时间约3.0 s。

基于样本传播,在图像中的物体表面模拟出精细的风化效果,选取大量的风化图像进行模拟处理,并且与以往的算法进行了比较。模拟风化效果如图4所示。

图4 模拟风化效果

不同算法的模拟风化效果图5所示。从图5可以看出,文献[9-10]算法生成的图像效果非常不自然,颜色十分趋近并且单一。本文算法与以往的算法不同,为了可以处理颜色差异较大的风化图像,利用RBF插值算法计算风化度图像,利用样本传播的方法模拟风化效果,合理地模拟了风化效应,并保留了风化区域的详细特征,效果更为理想。

图5 不同算法的模拟风化效果

模拟风化图像的生成时间如表1所示。

表1 模拟风化图像的生成时间 s

3 结 论

研究了一种基于图像的风化效应模拟方法,可以生成纹理复杂且精细的风化效果。利用RBF插值的算法可以很好地处理颜色差异大的风化图像。利用图像分割算法和全局优化引导的风化度图像方法来传播详细的风化特征,可以生成效果逼真的风化图像,并且保证风化后图像中的纹理仍然连贯、一致,与原图的差异很小。在接下来的研究中,还可以利用圆形的补丁来进行风化传播。此外,也希望可以实现一种系统,能够自动地提取风化样本,这些样本中包含着不同等级的风化程度,以此构造出不同程度的风化效果。

猜你喜欢

风化补丁外观
外观动作自适应目标跟踪方法
鸟类能识别植物的外观等
A Shopping Story to Remember
补丁
不论外观还是声音,它都很美 Yamaha(雅马哈)A-S3200合并功放
健胃补丁
王者之翼
绣朵花儿当补丁
随风化作满天星——吴江涛诗词读后
土壤来之不易