一种基于匹配相容性的纹理合成方法

文档序号:6471635阅读:142来源:国知局
专利名称:一种基于匹配相容性的纹理合成方法
技术领域
本发明涉及一种纹理合成方法,属于计算机算法、计算机图形技术、纹理生成技术领 域,具体说是一种基于匹配相容性来提高纹理合成效率的合成算法。
背景技术
纹理合成技术能根据一小块的样本生成视觉上很相似的大块样本,这样可有效重用光 照和色彩的计算或测量的结果,以便以较少的开销生成高质量的绘制结果。这种技术在真 实感绘制、虚拟现实等很多领域有着很重要而广泛的应用。目前纹理合成技术主要是根据 马尔可夫链概率模型进行计算,即任一位置的色彩是由它附近一定范围内的其它色彩分布 所决定的。根据计算的范围大小,纹理合成技术分为局部合成技术和全局合成技术。局部 合成技术就是根据较小的一个范围内的色彩分布来推断邻近区域位置的色彩,这类方法一 般来说速度比较快,但对于纹理的全局性特征难以有效保持。而全局合成技术,则先随机 生成目标纹理大小的一个纹理,然后基于全局性的纹理特征的相似性度量,对目标纹理进 行整体性的逐步优化,以得到最后的目标纹理,这种方法能有效反映纹理的全局性特征, 但计算速度比较慢。目前,合成质量最好的方法是全局合成方法纹理优化(texture optimization) [2] (Kwatra V, Essa I, Bobick A, et al. Texture optimization for example-based synthesis. ACM Trans. Graph, 2005, 24(3): 795-802),而合成速度最快的方法是并行可 控纹理合成方法(parallel controllable texture synthesis) [3](Lefebvre S, Hoppe H. Parallel controllable texture synthesis. ACM Trans. Graph., 2005, 24(3): 777-786)。从 纹理合成的应用需求来看,快速生成高质量的纹理是必须的,因此,纹理合成技术近年来 一直是国际上的热点研究内容。

发明内容
为解决上述问题,本发明提出一种基于匹配相容性的纹理合成方法。
本发明的技术方案如下
一种基于匹配相容性的纹理合成方法,包括以下步骤
1) 将样本纹理分成可反映其全局性纹理特征的纹理块;
2) 为每个纹理块生成其相应的匹配相容纹理块集合;3) 随机选择一个纹理块,放置在待合成的目标纹理的一个角上,从相应的匹配相容 纹理块集合中选择相配的纹理块,开始纹理合成;
4) 根据已合成部分纹理块逐步地约束生成待合成部分,直至完成目标纹理合成。 所述步骤1)采用纹理块的信息包容性度量参数和周期性度量参数来划分纹理块。 所述步骤2)根据纹理块在重叠区域的误差计算两纹理块是否匹配,以穷举搜索方法
找到每个纹理块的左、右、上和下4个匹配相容纹理块集合。
进一步,所述误差计算方法为error=;0,-^)2, i表示重叠区域的一个象素坐标,
尸,表示位于i位置的来自纹理块尸的象素的色彩,G表示位于i位置的来自纹理块。的象 素的色彩。
进一步,对匹配相容纹理块集合进行优化处理,具体步骤如下
对每个纹理块,根据其所生成的左、右、上、下4个匹配相容纹理块集合,生成其左 上、左下、右上、右下4个匹配相容纹理块集合;并根据这4个新生成的匹配相容纹理块 集合,对原来的4个匹配相容纹理块集合进行优化计算,即删去那些可能引起匹配冲突的
纹理块。不失一般性,根据左上集合进行优化计算的步骤如下
对左集合中的任一纹理块,如果它的上集合与左上集合没有交集,则将这一纹理块从
左集合中删去;同理对右、上、下集合进行同样的处理,完成优化处理。
所述步骤3)开始纹理合成时,根据该块的右上匹配相容纹理块集合,从中选择一个 纹理块放置在其右上方向的位置;最后根据这两个纹理块开始分别向左、向下进行逐步的 纹理块选择,完成一个层次的纹理合成。
所述步骤4)通过回溯计算来化解一些匹配冲突,具体步骤如下-.
当约束寻找一个待合成的纹理块时,如果其相邻的已合成的纹理块在约束计算时的相 关交集为空,则要对这些相邻的已合成的纹理块进行更换,以使得相关的交集不为空,能 生成待合成的纹理块;
对由这些被更换的纹理块所约束生成的纹理部分,也要进行重新的合成计算以进行更新。
本发明的优点和积极效果
通过计算每个纹理块可以拼合的匹配相容纹理块集合,使得合成计算时可方便地从这 样的集合中选用合适的纹理块,而不需要在线地进行复杂的相似性计算,并且这样也可极 大地减少每次选用纹理块时需要考察的纹理块数量。因此,本发明可很好地提高纹理合成
的速度,其时间复杂度是0(n),这里n是目标纹理的象素数目;基于匹配相容纹理块集合的建立能极大地减少匹配计算的数据搜索空间,因此本发明可以以交互的速度生成 1024*1024大小的纹理,这是现有技术做不到的。


图l是本发明的方法流程图
图2是本发明合成纹理的处理顺序示意图(a)表明贴有纹理的部分是己合成的部分,阴影部分是正要合成的部分,而空白部 分是将要合成的部分;
图(b)表明,先合成对角线上的一块纹理,然后沿着箭头方向分别向左、向下合成纹 理,以完成一个层次的纹理合成;
图(c)表明多个层次的纹理合成顺序;
图3是本发明与并行可控纹理合成方法的计算时间对比; 图4是本发明与纹理优化方法、并行可控纹理合成方法合成质量的对比; 图5a)是本发明以交互速度生成的1024*1024的大纹理,用时350ms; 图5b)是本发明以交互速度生成的1024*1024的大纹理,用时261ms。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步详细描述
如图1所示,本发明的方法包括下列两个主要步骤第一阶段是预处理阶段,对样本 纹理进行优化的分块计算,然后为每个纹理块建立相应的优化的匹配相容纹理块集合;第 二阶段是根据第一阶段的结果在纹理合成计算时采用高效的纹理块选择计算,以快速生成 高质量的纹理。
上述第一阶段的实现步骤如下
1)根据文献[l](王一平,王文成,吴恩华.块纹理合成的优化计算.计算机辅助设
计与图形学学报,2006, 18(10): 1502-1507)的方法计算纹理块的优化划分尺寸和形状, 即探测不同尺寸和矩形形状的纹理块划分对样本纹理周期性全局特征的反映程度,以此来 决定纹理块的划分。具体地,要计算两种度量参数,纹理块的信息包容性度量和纹理块的 周期性度量,并以这两种度量参数都比较好的纹理块大小作为划分的选择(这是相对而言 的,对不同的纹理的要求是不同的; 一般先取各自前20%最好的,然后看这两者所选出的 块大小是否有重叠的,如果有,则进一步提高要求,比如前10%最好的;如果没有,则降低要求;直至找到这样的重叠的块大小的个数很少时即停止)。这两种参数的计算步骤如 下
纹理块的信息包容性度量
一种尺寸大小的纹理块的信息包容性是指这样大小的纹理块对样本纹理信息的包容 反映程度。其计算步骤如下-
(1) 计算样本纹理的灰度直方(2) 依次取出每一个这样大小的纹理块,计算其灰度直方(3) 将纹理块和样本纹理的灰度直方图归一化,并计算它们之间的欧式距离。距离越 近,则纹理块对样本纹理的信息全局性特征有更好的反映。
(4) 如果该尺寸下的大部分(比如90%以上的)纹理块都与样本纹理的全局性特征相近, 那么该尺寸下的纹理块就具有好的信息包容性。
纹理块的周期性度量
将样本纹理均匀地划分成比较大的网格,然后对每一种可能尺寸的块,在各个网格中 随机选取一个这样大小的参考块;随后,对这些参考块根据纹理结构特征的相似性进行分 类处理,最后,对各个类的参考块的个数进行平均(分成网格的目的,是在周期性度量计 算时可减少需要采样的纹理块个数;否则,要穷举地采样,计算量太大)。如果一种尺寸 下的参考块都能找到相似的块,并且这些块的个数具有较高的平均值,则这种尺寸的块对 纹理信息周期性变化的反映就比较好。
2) 根据1)所得的结果对样本纹理进行纹理块的划分,并以穷举搜索的方法找到每个 纹理块的左、右、上、下4个匹配相容纹理块集合。在此,两个纹理块是否能匹配拼合, 是根据它们在边沿的重叠区域的误差计算来决定的。如果误差小,则可匹配;否则不行。 这里的误差计算方法是按照文献[4]( Liang L, Liu C, Xu Y-Q, et al. Real-time texture synthesis by patch-based sampling. ACM Trans. Graph., 2001, 20(3): 127-150)中的相似性
度量计算进行的,即erro产;(尸厂g,.)2,这里,;表示重叠区域的一个象素坐标,^表示
位于/位置的来自纹理块户的象素的色彩,0表示位于/位置的来自纹理块g的象素的色彩。
3) 根据2)的结果来生成各个纹理块的左上、左下、右上、右下的匹配相容纹理块集 合,并由此对各个纹理块的左、右、上、下4个匹配相容纹理块集合进行优化处理。不失 一般性,以生成左上匹配相容纹理块集合为例说明其生成过程如下
1)对左集合中的每个纹理块,比如A,和上集合中的每个纹理块,比如B,考察A的上集合与B的左集合是否有交集。如果有交集,则集合属于左上匹配相容纹理块集合。 如此考察各种组合,就能生成最后的左上匹配相容纹理块集合。
2)匹配相容纹理块集合的优化就是去掉那些会引起匹配冲突的纹理块。比如,左集合中 纹理块A,对于上集合中所有纹理块的左集合,如果A的上集合与它们均没有交集,则将 A从左集合中删去。
上述第二阶段的实现步骤如下
1) 合成纹理的处理顺序如图2所示,随机选择一个纹理块放置在待合成目标纹理的一个 角,比如左下角,如图2中(a)所示,然后根据该块的右上匹配相容纹理块集合,从中 选择一个纹理块放置在其右上方向的位置;最后根据这两个纹理块开始分别向左、向下进
行逐步的纹理块选择,完成一个层次的纹理合成,如图2中(b)所示。
2) 然后如同1)的计算方式,逐层(每个对角线上的纹理块对应一个层次的纹理)地生 成纹理,直至完成目标纹理的生成,如图2中(c)所示。
3) 在以上各个步骤中进行纹理块的选择计算中,可能发生匹配冲突,即根据相邻纹理块 的约束('约束'是指待合成纹理块与将相邻拼接的纹理块,它们在它们之间的边界重叠 区域的差距很小)来生成一个待合成的纹理块时,它们的交集为空,找不到合适的纹理块。 此时,就要进行回溯计算,通过回溯计算来化解一些匹配冲突,尽可能降低合成过程中的 匹配冲突,使合成计算能比较平滑地进行。具体的,回溯计算涉及下面的两种计算
1) 当约束寻找一个待合成的纹理块时,如果其相邻的已合成的纹理块在约束计算时的相 关交集为空,则要对这些相邻的已合成的纹理块进行更换,以使得相关的交集不为空,能 生成待合成的纹理块。
2) 由于1)的计算,使得有些已经合成的纹理块被更换。于是,对由这些被更换的纹理 块所约束生成的纹理部分,也要进行重新的合成计算以进行更新。
经过上述步骤完成完成目标纹理的生成
经理论分析和实验表明,本发明的时间复杂度是O(n)的,这里n是目标纹理的象素数。 在生成128*128、 256*256、 512*512等大小的纹理时,本发明在运算效率较低的处理器上 的计算时间与目前最快的并行可控纹理合成方法相当,并且可交互地生成1024*1024大小 的纹理,这是已有方法难以达到的。而在合成质量方面,本发明生成的纹理质量,可媲美 于目前合成质量最好的纹理优化方法。本发明的时间复杂度分析和实验结果如下。
时间复杂度分析不失一般性,设每个块的邻接集合平均有k个纹理块,目标纹理可划分为m2个块。
本发明的合成时间由两部分组成, 一部分是在合成时处理当前区域,从邻域中搜索得出当
前待合成块的交集;另一部分是因其它区域回溯而需重新处理此区域。因为这里的集合求 交运算的时间复杂度是k2,所以第一部分的时间复杂度为0(k、m2);而第二部分,因为回 溯最多引起一个区域被重新处理的次数为k,因此这部分的时间复杂度是0(k* k2 *m2)。 综合起来,新方法的时间复杂度是O( k3 *m2)。大量实验表明,k是小于20的,因为k比 较小,对复杂度的影响不大,因此本文方法的时间复杂度与目标纹理的块数(m2)是大致 成线性关系的。又由于块的数目与目标纹理的象素个数之间的线性关系,因此本文方法的 复杂度是与目标纹理的象素个数成线性关系的。
实验1:本发明与并行可控纹理合成方法的计算时间对比,如图3所示,ins表示时 间,pixel表示象素。本发明的数据是其运行于一个主频为1. 86GHz的IntelCore Duo CPU 上获取的,而并行可控纹理合成方法的计算时间是从其文献中提取的参见文献[3],其实 验运行于一个NVIDIA GeForce 6800 Ultra GPU上(该GPU的处理效率优于本发明实验所 用的CPU)。
实验2:本发明与纹理优化方法、并行可控纹理合成方法合成质量的对比,如图4所示。
实验3:本发明以交互速度生成的1024*1024的大纹理,如图5a) 、 5b)所示,这是 已有方法难以达到的。
实验表明,生成128*128, 256*256, 512*512大小的纹理时,本发明在处理器工作的 效率比并行可控纹理合成方法[3]的处理器工作效率要慢的情况下,具有相似的速度,并 且本发明因为匹配相容纹理块集合的建立极大地减少了匹配计算时要处理的数据空间的 大小,因而能以交互的速度生成1024*1024大小的纹理,这是已有方法难以达到的。
在合成质量方面,本发明利用文献[l]的工作对样本纹理进行优化的分块,使得纹理 块能高效地反映样本纹理的全局性特征,由此本发明可基于局部的合成计算生成能高效反 映样本纹理全局性特征的纹理。同时,本发明采用回溯计算以化解合成过程中可能产生的 匹配冲突,以使合成计算能平顺地进行。实验表明,本发明的合成纹理结果,能媲美于全 局合成方法,如纹理优化方法[2]。
权利要求
1、一种基于匹配相容性的纹理合成方法,包括以下步骤1)将样本纹理分成可反映其全局性纹理特征的纹理块;2)为每个纹理块生成其相应的匹配相容纹理块集合;3)随机选择一个纹理块,放置在待合成的目标纹理的一个角上,从相应的匹配相容纹理块集合中选择相配的纹理块,开始纹理合成;4)根据已合成部分纹理块逐步地约束生成待合成部分,直至完成目标纹理合成。
2、 如权利要求l所述的方法,其特征在于,所述步骤l)采用纹理块的信息包容性度 量参数和周期性度量参数来划分纹理块。
3、 如权利要求l所述的方法,其特征在于,所述步骤2)根据纹理块在重叠区域的误 差计算两纹理块是否匹配,以穷举搜索方法找到每个纹理块的左、右、上和下4个匹配相容纹理块集合。
4、 如权利要求3所述的方法,其特征在于,所述误差计算方法为error=;CP,-0)2,J'表示重叠区域的象素坐标,A表示位于i位置的纹理块尸的象素的色彩,G表示位于i 位置的纹理块C的象素的色彩。
5、 如权利要求3所述的方法,其特征在于,生成左上、左下、右上、右下4个匹配 相容纹理块集合,对生成的左、右、上、下4个匹配相容纹理块集合行优化处理,具体为对左集合中的任一纹理块的上集合,与左上集合没有交集,则将这一纹理块从左集合 中删去,同理对右、上、下集合进行同样的处理。
6、 如权利要求l所述的方法,其特征在于,所述步骤3)开始纹理合成时,根据两个 已知纹理块分别向左、向下逐步选择纹理块,完成一个层次的纹理合成。
7、 如权利要求l所述的方法,其特征在于,所述步骤4)约束生成待合成部分时,其 相邻的已合成的纹理块在约束计算时的相关交集不为空,否则对相邻的巳合成的纹理块进 行更换,且对更换的纹理块所约束生成的纹理部分,重新合成计算进行更新。
全文摘要
本发明公开了一种基于匹配相容性的纹理合成方法,属于计算机算法、计算机图形技术、纹理生成技术领域,该方法包括以下步骤1)将样本纹理分成可反映其全局性纹理特征的纹理块;2)为每个纹理块生成其相应的匹配相容纹理块集合;3)随机选择一个纹理块,放置在待合成的目标纹理的一个角上,从相应的匹配相容纹理块集合中选择相配的纹理块,开始纹理合成;4)根据已合成部分纹理块逐步地约束生成待合成部分,直至完成目标纹理合成。本发明不需要在线地进行复杂的相似性计算,可极大地减少每次选用纹理块时需要考察的纹理块数量,由此很好地提高纹理合成的速度,能以交互的速度生成1024*1024大小的纹理。
文档编号G06T15/20GK101441775SQ20081023942
公开日2009年5月27日 申请日期2008年12月9日 优先权日2008年12月9日
发明者刘飞彤, 吴恩华, 王文成, 黄沛杰 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1