專利名稱:一種基于匹配相容性的紋理合成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種紋理合成方法,屬于計算機算法、計算機圖形技術(shù)、紋理生成技術(shù)領(lǐng) 域,具體說是一種基于匹配相容性來提高紋理合成效率的合成算法。
背景技術(shù):
紋理合成技術(shù)能根據(jù)一小塊的樣本生成視覺上很相似的大塊樣本,這樣可有效重用光 照和色彩的計算或測量的結(jié)果,以便以較少的開銷生成高質(zhì)量的繪制結(jié)果。這種技術(shù)在真 實感繪制、虛擬現(xiàn)實等很多領(lǐng)域有著很重要而廣泛的應(yīng)用。目前紋理合成技術(shù)主要是根據(jù) 馬爾可夫鏈概率模型進行計算,即任一位置的色彩是由它附近一定范圍內(nèi)的其它色彩分布 所決定的。根據(jù)計算的范圍大小,紋理合成技術(shù)分為局部合成技術(shù)和全局合成技術(shù)。局部 合成技術(shù)就是根據(jù)較小的一個范圍內(nèi)的色彩分布來推斷鄰近區(qū)域位置的色彩,這類方法一 般來說速度比較快,但對于紋理的全局性特征難以有效保持。而全局合成技術(shù),則先隨機 生成目標紋理大小的一個紋理,然后基于全局性的紋理特征的相似性度量,對目標紋理進 行整體性的逐步優(yōu)化,以得到最后的目標紋理,這種方法能有效反映紋理的全局性特征, 但計算速度比較慢。目前,合成質(zhì)量最好的方法是全局合成方法紋理優(yōu)化(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)。從 紋理合成的應(yīng)用需求來看,快速生成高質(zhì)量的紋理是必須的,因此,紋理合成技術(shù)近年來 一直是國際上的熱點研究內(nèi)容。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明提出一種基于匹配相容性的紋理合成方法。
本發(fā)明的技術(shù)方案如下
一種基于匹配相容性的紋理合成方法,包括以下步驟
1) 將樣本紋理分成可反映其全局性紋理特征的紋理塊;
2) 為每個紋理塊生成其相應(yīng)的匹配相容紋理塊集合;3) 隨機選擇一個紋理塊,放置在待合成的目標紋理的一個角上,從相應(yīng)的匹配相容 紋理塊集合中選擇相配的紋理塊,開始紋理合成;
4) 根據(jù)已合成部分紋理塊逐步地約束生成待合成部分,直至完成目標紋理合成。 所述步驟1)采用紋理塊的信息包容性度量參數(shù)和周期性度量參數(shù)來劃分紋理塊。 所述步驟2)根據(jù)紋理塊在重疊區(qū)域的誤差計算兩紋理塊是否匹配,以窮舉搜索方法
找到每個紋理塊的左、右、上和下4個匹配相容紋理塊集合。
進一步,所述誤差計算方法為error=;0,-^)2, i表示重疊區(qū)域的一個象素坐標,
尸,表示位于i位置的來自紋理塊尸的象素的色彩,G表示位于i位置的來自紋理塊。的象 素的色彩。
進一步,對匹配相容紋理塊集合進行優(yōu)化處理,具體步驟如下
對每個紋理塊,根據(jù)其所生成的左、右、上、下4個匹配相容紋理塊集合,生成其左 上、左下、右上、右下4個匹配相容紋理塊集合;并根據(jù)這4個新生成的匹配相容紋理塊 集合,對原來的4個匹配相容紋理塊集合進行優(yōu)化計算,即刪去那些可能引起匹配沖突的
紋理塊。不失一般性,根據(jù)左上集合進行優(yōu)化計算的步驟如下
對左集合中的任一紋理塊,如果它的上集合與左上集合沒有交集,則將這一紋理塊從
左集合中刪去;同理對右、上、下集合進行同樣的處理,完成優(yōu)化處理。
所述步驟3)開始紋理合成時,根據(jù)該塊的右上匹配相容紋理塊集合,從中選擇一個 紋理塊放置在其右上方向的位置;最后根據(jù)這兩個紋理塊開始分別向左、向下進行逐步的 紋理塊選擇,完成一個層次的紋理合成。
所述步驟4)通過回溯計算來化解一些匹配沖突,具體步驟如下-.
當約束尋找一個待合成的紋理塊時,如果其相鄰的已合成的紋理塊在約束計算時的相 關(guān)交集為空,則要對這些相鄰的已合成的紋理塊進行更換,以使得相關(guān)的交集不為空,能 生成待合成的紋理塊;
對由這些被更換的紋理塊所約束生成的紋理部分,也要進行重新的合成計算以進行更新。
本發(fā)明的優(yōu)點和積極效果
通過計算每個紋理塊可以拼合的匹配相容紋理塊集合,使得合成計算時可方便地從這 樣的集合中選用合適的紋理塊,而不需要在線地進行復(fù)雜的相似性計算,并且這樣也可極 大地減少每次選用紋理塊時需要考察的紋理塊數(shù)量。因此,本發(fā)明可很好地提高紋理合成
的速度,其時間復(fù)雜度是0(n),這里n是目標紋理的象素數(shù)目;基于匹配相容紋理塊集合的建立能極大地減少匹配計算的數(shù)據(jù)搜索空間,因此本發(fā)明可以以交互的速度生成 1024*1024大小的紋理,這是現(xiàn)有技術(shù)做不到的。
圖l是本發(fā)明的方法流程圖
圖2是本發(fā)明合成紋理的處理順序示意圖(a)表明貼有紋理的部分是己合成的部分,陰影部分是正要合成的部分,而空白部 分是將要合成的部分;
圖(b)表明,先合成對角線上的一塊紋理,然后沿著箭頭方向分別向左、向下合成紋 理,以完成一個層次的紋理合成;
圖(c)表明多個層次的紋理合成順序;
圖3是本發(fā)明與并行可控紋理合成方法的計算時間對比; 圖4是本發(fā)明與紋理優(yōu)化方法、并行可控紋理合成方法合成質(zhì)量的對比; 圖5a)是本發(fā)明以交互速度生成的1024*1024的大紋理,用時350ms; 圖5b)是本發(fā)明以交互速度生成的1024*1024的大紋理,用時261ms。
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細描述
如圖1所示,本發(fā)明的方法包括下列兩個主要步驟第一階段是預(yù)處理階段,對樣本 紋理進行優(yōu)化的分塊計算,然后為每個紋理塊建立相應(yīng)的優(yōu)化的匹配相容紋理塊集合;第 二階段是根據(jù)第一階段的結(jié)果在紋理合成計算時采用高效的紋理塊選擇計算,以快速生成 高質(zhì)量的紋理。
上述第一階段的實現(xiàn)步驟如下
1)根據(jù)文獻[l](王一平,王文成,吳恩華.塊紋理合成的優(yōu)化計算.計算機輔助設(shè)
計與圖形學學報,2006, 18(10): 1502-1507)的方法計算紋理塊的優(yōu)化劃分尺寸和形狀, 即探測不同尺寸和矩形形狀的紋理塊劃分對樣本紋理周期性全局特征的反映程度,以此來 決定紋理塊的劃分。具體地,要計算兩種度量參數(shù),紋理塊的信息包容性度量和紋理塊的 周期性度量,并以這兩種度量參數(shù)都比較好的紋理塊大小作為劃分的選擇(這是相對而言 的,對不同的紋理的要求是不同的; 一般先取各自前20%最好的,然后看這兩者所選出的 塊大小是否有重疊的,如果有,則進一步提高要求,比如前10%最好的;如果沒有,則降低要求;直至找到這樣的重疊的塊大小的個數(shù)很少時即停止)。這兩種參數(shù)的計算步驟如 下
紋理塊的信息包容性度量
一種尺寸大小的紋理塊的信息包容性是指這樣大小的紋理塊對樣本紋理信息的包容 反映程度。其計算步驟如下-
(1) 計算樣本紋理的灰度直方(2) 依次取出每一個這樣大小的紋理塊,計算其灰度直方(3) 將紋理塊和樣本紋理的灰度直方圖歸一化,并計算它們之間的歐式距離。距離越 近,則紋理塊對樣本紋理的信息全局性特征有更好的反映。
(4) 如果該尺寸下的大部分(比如90%以上的)紋理塊都與樣本紋理的全局性特征相近, 那么該尺寸下的紋理塊就具有好的信息包容性。
紋理塊的周期性度量
將樣本紋理均勻地劃分成比較大的網(wǎng)格,然后對每一種可能尺寸的塊,在各個網(wǎng)格中 隨機選取一個這樣大小的參考塊;隨后,對這些參考塊根據(jù)紋理結(jié)構(gòu)特征的相似性進行分 類處理,最后,對各個類的參考塊的個數(shù)進行平均(分成網(wǎng)格的目的,是在周期性度量計 算時可減少需要采樣的紋理塊個數(shù);否則,要窮舉地采樣,計算量太大)。如果一種尺寸 下的參考塊都能找到相似的塊,并且這些塊的個數(shù)具有較高的平均值,則這種尺寸的塊對 紋理信息周期性變化的反映就比較好。
2) 根據(jù)1)所得的結(jié)果對樣本紋理進行紋理塊的劃分,并以窮舉搜索的方法找到每個 紋理塊的左、右、上、下4個匹配相容紋理塊集合。在此,兩個紋理塊是否能匹配拼合, 是根據(jù)它們在邊沿的重疊區(qū)域的誤差計算來決定的。如果誤差小,則可匹配;否則不行。 這里的誤差計算方法是按照文獻[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產(chǎn);(尸廠g,.)2,這里,;表示重疊區(qū)域的一個象素坐標,^表示
位于/位置的來自紋理塊戶的象素的色彩,0表示位于/位置的來自紋理塊g的象素的色彩。
3) 根據(jù)2)的結(jié)果來生成各個紋理塊的左上、左下、右上、右下的匹配相容紋理塊集 合,并由此對各個紋理塊的左、右、上、下4個匹配相容紋理塊集合進行優(yōu)化處理。不失 一般性,以生成左上匹配相容紋理塊集合為例說明其生成過程如下
1)對左集合中的每個紋理塊,比如A,和上集合中的每個紋理塊,比如B,考察A的上集合與B的左集合是否有交集。如果有交集,則集合屬于左上匹配相容紋理塊集合。 如此考察各種組合,就能生成最后的左上匹配相容紋理塊集合。
2)匹配相容紋理塊集合的優(yōu)化就是去掉那些會引起匹配沖突的紋理塊。比如,左集合中 紋理塊A,對于上集合中所有紋理塊的左集合,如果A的上集合與它們均沒有交集,則將 A從左集合中刪去。
上述第二階段的實現(xiàn)步驟如下
1) 合成紋理的處理順序如圖2所示,隨機選擇一個紋理塊放置在待合成目標紋理的一個 角,比如左下角,如圖2中(a)所示,然后根據(jù)該塊的右上匹配相容紋理塊集合,從中 選擇一個紋理塊放置在其右上方向的位置;最后根據(jù)這兩個紋理塊開始分別向左、向下進
行逐步的紋理塊選擇,完成一個層次的紋理合成,如圖2中(b)所示。
2) 然后如同1)的計算方式,逐層(每個對角線上的紋理塊對應(yīng)一個層次的紋理)地生 成紋理,直至完成目標紋理的生成,如圖2中(c)所示。
3) 在以上各個步驟中進行紋理塊的選擇計算中,可能發(fā)生匹配沖突,即根據(jù)相鄰紋理塊 的約束('約束'是指待合成紋理塊與將相鄰拼接的紋理塊,它們在它們之間的邊界重疊 區(qū)域的差距很小)來生成一個待合成的紋理塊時,它們的交集為空,找不到合適的紋理塊。 此時,就要進行回溯計算,通過回溯計算來化解一些匹配沖突,盡可能降低合成過程中的 匹配沖突,使合成計算能比較平滑地進行。具體的,回溯計算涉及下面的兩種計算
1) 當約束尋找一個待合成的紋理塊時,如果其相鄰的已合成的紋理塊在約束計算時的相 關(guān)交集為空,則要對這些相鄰的已合成的紋理塊進行更換,以使得相關(guān)的交集不為空,能 生成待合成的紋理塊。
2) 由于1)的計算,使得有些已經(jīng)合成的紋理塊被更換。于是,對由這些被更換的紋理 塊所約束生成的紋理部分,也要進行重新的合成計算以進行更新。
經(jīng)過上述步驟完成完成目標紋理的生成
經(jīng)理論分析和實驗表明,本發(fā)明的時間復(fù)雜度是O(n)的,這里n是目標紋理的象素數(shù)。 在生成128*128、 256*256、 512*512等大小的紋理時,本發(fā)明在運算效率較低的處理器上 的計算時間與目前最快的并行可控紋理合成方法相當,并且可交互地生成1024*1024大小 的紋理,這是已有方法難以達到的。而在合成質(zhì)量方面,本發(fā)明生成的紋理質(zhì)量,可媲美 于目前合成質(zhì)量最好的紋理優(yōu)化方法。本發(fā)明的時間復(fù)雜度分析和實驗結(jié)果如下。
時間復(fù)雜度分析不失一般性,設(shè)每個塊的鄰接集合平均有k個紋理塊,目標紋理可劃分為m2個塊。
本發(fā)明的合成時間由兩部分組成, 一部分是在合成時處理當前區(qū)域,從鄰域中搜索得出當
前待合成塊的交集;另一部分是因其它區(qū)域回溯而需重新處理此區(qū)域。因為這里的集合求 交運算的時間復(fù)雜度是k2,所以第一部分的時間復(fù)雜度為0(k、m2);而第二部分,因為回 溯最多引起一個區(qū)域被重新處理的次數(shù)為k,因此這部分的時間復(fù)雜度是0(k* k2 *m2)。 綜合起來,新方法的時間復(fù)雜度是O( k3 *m2)。大量實驗表明,k是小于20的,因為k比 較小,對復(fù)雜度的影響不大,因此本文方法的時間復(fù)雜度與目標紋理的塊數(shù)(m2)是大致 成線性關(guān)系的。又由于塊的數(shù)目與目標紋理的象素個數(shù)之間的線性關(guān)系,因此本文方法的 復(fù)雜度是與目標紋理的象素個數(shù)成線性關(guān)系的。
實驗1:本發(fā)明與并行可控紋理合成方法的計算時間對比,如圖3所示,ins表示時 間,pixel表示象素。本發(fā)明的數(shù)據(jù)是其運行于一個主頻為1. 86GHz的IntelCore Duo CPU 上獲取的,而并行可控紋理合成方法的計算時間是從其文獻中提取的參見文獻[3],其實 驗運行于一個NVIDIA GeForce 6800 Ultra GPU上(該GPU的處理效率優(yōu)于本發(fā)明實驗所 用的CPU)。
實驗2:本發(fā)明與紋理優(yōu)化方法、并行可控紋理合成方法合成質(zhì)量的對比,如圖4所示。
實驗3:本發(fā)明以交互速度生成的1024*1024的大紋理,如圖5a) 、 5b)所示,這是 已有方法難以達到的。
實驗表明,生成128*128, 256*256, 512*512大小的紋理時,本發(fā)明在處理器工作的 效率比并行可控紋理合成方法[3]的處理器工作效率要慢的情況下,具有相似的速度,并 且本發(fā)明因為匹配相容紋理塊集合的建立極大地減少了匹配計算時要處理的數(shù)據(jù)空間的 大小,因而能以交互的速度生成1024*1024大小的紋理,這是已有方法難以達到的。
在合成質(zhì)量方面,本發(fā)明利用文獻[l]的工作對樣本紋理進行優(yōu)化的分塊,使得紋理 塊能高效地反映樣本紋理的全局性特征,由此本發(fā)明可基于局部的合成計算生成能高效反 映樣本紋理全局性特征的紋理。同時,本發(fā)明采用回溯計算以化解合成過程中可能產(chǎn)生的 匹配沖突,以使合成計算能平順地進行。實驗表明,本發(fā)明的合成紋理結(jié)果,能媲美于全 局合成方法,如紋理優(yōu)化方法[2]。
權(quán)利要求
1、一種基于匹配相容性的紋理合成方法,包括以下步驟1)將樣本紋理分成可反映其全局性紋理特征的紋理塊;2)為每個紋理塊生成其相應(yīng)的匹配相容紋理塊集合;3)隨機選擇一個紋理塊,放置在待合成的目標紋理的一個角上,從相應(yīng)的匹配相容紋理塊集合中選擇相配的紋理塊,開始紋理合成;4)根據(jù)已合成部分紋理塊逐步地約束生成待合成部分,直至完成目標紋理合成。
2、 如權(quán)利要求l所述的方法,其特征在于,所述步驟l)采用紋理塊的信息包容性度 量參數(shù)和周期性度量參數(shù)來劃分紋理塊。
3、 如權(quán)利要求l所述的方法,其特征在于,所述步驟2)根據(jù)紋理塊在重疊區(qū)域的誤 差計算兩紋理塊是否匹配,以窮舉搜索方法找到每個紋理塊的左、右、上和下4個匹配相容紋理塊集合。
4、 如權(quán)利要求3所述的方法,其特征在于,所述誤差計算方法為error=;CP,-0)2,J'表示重疊區(qū)域的象素坐標,A表示位于i位置的紋理塊尸的象素的色彩,G表示位于i 位置的紋理塊C的象素的色彩。
5、 如權(quán)利要求3所述的方法,其特征在于,生成左上、左下、右上、右下4個匹配 相容紋理塊集合,對生成的左、右、上、下4個匹配相容紋理塊集合行優(yōu)化處理,具體為對左集合中的任一紋理塊的上集合,與左上集合沒有交集,則將這一紋理塊從左集合 中刪去,同理對右、上、下集合進行同樣的處理。
6、 如權(quán)利要求l所述的方法,其特征在于,所述步驟3)開始紋理合成時,根據(jù)兩個 已知紋理塊分別向左、向下逐步選擇紋理塊,完成一個層次的紋理合成。
7、 如權(quán)利要求l所述的方法,其特征在于,所述步驟4)約束生成待合成部分時,其 相鄰的已合成的紋理塊在約束計算時的相關(guān)交集不為空,否則對相鄰的巳合成的紋理塊進 行更換,且對更換的紋理塊所約束生成的紋理部分,重新合成計算進行更新。
全文摘要
本發(fā)明公開了一種基于匹配相容性的紋理合成方法,屬于計算機算法、計算機圖形技術(shù)、紋理生成技術(shù)領(lǐng)域,該方法包括以下步驟1)將樣本紋理分成可反映其全局性紋理特征的紋理塊;2)為每個紋理塊生成其相應(yīng)的匹配相容紋理塊集合;3)隨機選擇一個紋理塊,放置在待合成的目標紋理的一個角上,從相應(yīng)的匹配相容紋理塊集合中選擇相配的紋理塊,開始紋理合成;4)根據(jù)已合成部分紋理塊逐步地約束生成待合成部分,直至完成目標紋理合成。本發(fā)明不需要在線地進行復(fù)雜的相似性計算,可極大地減少每次選用紋理塊時需要考察的紋理塊數(shù)量,由此很好地提高紋理合成的速度,能以交互的速度生成1024*1024大小的紋理。
文檔編號G06T15/20GK101441775SQ20081023942
公開日2009年5月27日 申請日期2008年12月9日 優(yōu)先權(quán)日2008年12月9日
發(fā)明者劉飛彤, 吳恩華, 王文成, 黃沛杰 申請人:中國科學院軟件研究所