專利名稱:基于遺傳操作的三維模型生成方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機圖像學(xué)領(lǐng)域,尤其涉及一種基于遺傳操作的三維模型生成方法。
背景技術(shù):
三維建模是當(dāng)前計算機圖形學(xué)領(lǐng)域的難點之一。如何根據(jù)已有三維模型,自動生成新的三維模型,是解決三維建模,豐富現(xiàn)有三維模型數(shù)據(jù)集的重要途徑?,F(xiàn)有的自動生成三維模型的方法主要包括過程式建模和結(jié)構(gòu)保持形變兩個方法。過程式建模方法的主要缺點是需要由用戶定義用于生成三維模型的形狀語法。形狀語法通常由若干個產(chǎn)生式規(guī)則構(gòu)成一個語法系統(tǒng)。而且,人造物體的結(jié)構(gòu)往往較為復(fù)雜,其結(jié)構(gòu)與物體功能密切關(guān)聯(lián),因而定義用于生成人造物體三維模型的形狀語法非常困難,特別是對于普通用戶而言,更是難以完成。盡管現(xiàn)在有基于若干輸入樣例自動生成形狀語法的方法,即逆向過程建模,但是這類方法目前還只能適用于植物、裝飾圖案等,不能用于結(jié)構(gòu)與功能關(guān)聯(lián)較強的人造物體;另一類方法是結(jié)構(gòu)保持形變,該方法的缺點是主要通過形變(部件比例縮放、位移等)來生成三維模型的新的變種,但是無法生成新的結(jié)構(gòu)。生物學(xué)中的遺傳保證了物種的相對穩(wěn)定性及多樣性,將遺傳學(xué)中的交叉遺傳應(yīng)用于三維模型的生成尚未見類似的報道。
發(fā)明內(nèi)容
基于此,有必要針對現(xiàn)有三維模型生成方法存在的缺陷,提供一種基于遺傳操作的三維模型生成方法。一種基于遺傳操作的三維模型生成方法,包括下述步驟輸入三維模型集合;從所述三維模型集合中任意選取兩個三維模型,分別記為三維模型A、三維模型B ;計算所述三維模型A的功能部件與所述三維模型B的功能部件的對應(yīng)值;基于所述對應(yīng)值選取所述三維模型A及所述三維模型B的相應(yīng)部件,分別記為功能部件集合A10、功能部件集合BlO ;組裝所述功能部件集合AlO及所述功能部件集合BlO得到組裝模型;將所述組裝模型進行結(jié)構(gòu)優(yōu)化得到新的三維模型。在本實施例中,其中,輸入三維模型集合,還包括下述步驟標(biāo)注所述三維模型集合中的三維模型的功能部件;將所述三維模型集合中的三維模型的朝向設(shè)置一致。在本實施例中,其中,計算所述三維模型A的功能部件與所述三維模型B的功能部件的對應(yīng)值,包括下述步驟調(diào)整所述三維模型A及所述三維模型B,使所述三維模型A的功能部件及所述三維模型B的功能部件具有相同的大小比例;將經(jīng)調(diào)整后的三維模型A及三維模型B平移至同一坐標(biāo)系下;基于同一坐標(biāo)系下的三維模型A及三維模型B,計算所述三維模型A的功能部件與所述三維模型B的功能部件的對應(yīng)值;其中,所述對應(yīng)值的計算方法為
C1,2 = Di1(BvB2) = max{max min d{x, y), max min d{x,y)}1xGB-ι yE^2ye^2
式中,BI和B2分別是三維模型A的功能部件和三維模型B的功能最小包圍盒,其中,最小包圍盒為包含三維模型A的功能部件和三維模型B的功能部件的體積最小長方體, Dh是上述兩個長方體之間的Hausdorff距離,x和y為最小包圍盒的頂點,d代表三維空間歐式距離。
在本實施例中,所述對應(yīng)值的閥值為所述功能部件集合AlO與所述功能部件集合 BlO之間對應(yīng)值的最大值的O. 5倍。
在本實施例中,所述功能部件集合AlO和功能部件集合BlO之和覆蓋所述三維模型A的功能部件或所述三維模型B的功能部件。
在本實施例中,所述功能部件集合AlO與功能部件集合BlO具有不同的功能。
在本實施例中,其中,組裝所述功能部件集合AlO及所述功能部件集合BlO得到組裝模型,包括下述步驟檢測所述三維模型A的邊界部件,其中,所述邊界部件為所述三維模型A中未被選中且與所述功能部件集合AlO相鄰的部件;處理所述邊界部件使其與所述功能部件集合BlO相吻合;將經(jīng)處理后的邊界部件和功能部件集合AlO進行組裝得到新的三維模型。
在本實施例中,所述處理所述邊界部件包括將所述邊界部件進行移動、形變。
在本實施例中,所述結(jié)構(gòu)優(yōu)化包括對所述組裝模型的部件之間的相鄰關(guān)系進行處理,使所述連接關(guān)系相匹配,所述相鄰關(guān)系包括連接關(guān)系、對稱關(guān)系、正交關(guān)系及平行關(guān)系。
上述生成三維模型的方法基于遺傳操作中的交叉遺傳。首先輸入三維模型A、三 維模型B作為基本三維模型,再通過計算三維模型A的功能部件與三維模型B的功能部件的對應(yīng)值選取功能部件集合AlO及功能部件集合B10,并將功能部件集合AlO及功能部件集合BlO交叉組合最終得到新的三維模型,有效利用了交叉遺傳的優(yōu)點,方法簡單、可靠性高,大大豐富了三維模型數(shù)據(jù)集;同時,由于新生成的三維模型可以進一步作為輸入的基本三維模型,參于新一輪的交叉組合中,不斷演化生成更多的三維模型,極大豐富了三維模型數(shù)據(jù)集。
圖1為本發(fā)明實施例提供的基于遺傳操作的三維模型生成方法的步驟流程圖。
圖2為本發(fā)明實施例提供的輸入三維模型集合的步驟流程圖。
圖3為本發(fā)明實施例提供的基于遺傳操作生成三維模型的原理示意圖。
圖4為本發(fā)明實施例提供的計算三維模型A的功能部件與三維模型B的功能部件的對應(yīng)值的步驟流程圖。
圖5為本發(fā)明實施例提供的組裝功能部件集合AlO及功能部件集合BlO得到組裝模型的步驟流程圖。
具體實施方式
請參閱圖1,圖1為本發(fā)明實施例提供的基于遺傳操作的三維模型生成方法的流程不意圖。
基于遺傳操作的三維模型生成方法包括下述步驟步驟SllO :輸入三維模型集合。在本發(fā)明提供的實施例中,三維模型主要是指由人造物體(如桌子、椅子、臺燈等)的三維模型,每個人造物體三維模型通常由若干個部件(都是獨立的幾何形體)構(gòu)成,為了便于說明,本發(fā)明將三維模型的部件分為功能部件,功能部件主要是指發(fā)生作用的主要部件,例如,在椅子中,靠背、椅座及扶手等為功能部件。在本發(fā)明中,在本發(fā)明中,輸入三維模型集合主要來源是互聯(lián)網(wǎng)的三維模型庫,這些三維模型是有大量三維建模人員使用三維建模軟件方法建立并共享??梢岳斫猓诒景l(fā)明提供的實施例中,輸入的三維模型集合一般是由同類的三維模型組成的集合,比如全部桌子或椅子或臺燈等同類的人造三維模型構(gòu)成的三維模型集合。為了便于說明,本發(fā)明實施例全部以椅子作為說明,可以理解,本發(fā)明的保護范圍并不局限于椅子,比如桌子、臺燈等其他的人造三維模型均在本發(fā)明的保護范圍之內(nèi)。請參閱圖2,為本發(fā)明實施例提供的輸入三維模型集合的步驟流程圖,其包括下述步驟步驟Slll :標(biāo)注三維模型集合中的三維模型的功能部件。在本發(fā)明提供的實施例中,一般采用人工交互的方法將三維模型集合中的主要功能部件標(biāo)注出來。本發(fā)明以椅子作為說明,首先通過人工交互的方法將輸入的椅子的主要功能部件,如靠背、座、扶手和腿標(biāo)注出來,加以區(qū)分。步驟S112 :將三維模型集合中的三維模型的朝向設(shè)置一致。在本發(fā)明提供的實施例中,通過計算機操作,將椅子的朝向設(shè)置為同一方向,比如將椅子的正向朝Z軸正向,向上方向朝Y軸正向??梢岳斫?,經(jīng)步驟SllO后,三維模型集合中的所有三維模型均具有相同的方位,以便后續(xù)的操作。步驟S120 :從輸入的三維模型集合中任意選取兩個三維模型。請參閱圖3,為本發(fā)明實施例提供的基于遺傳操作生成三維模型的原理示意圖。從圖3中可以看出,從椅子集合中任意選取兩個椅子,并標(biāo)記為三維模型A、三維模型B。步驟S130 :計算三維模型A的功能部件與三維模型B的功能部件的對應(yīng)值。基于步驟S120中選取的三維模型A、三維模型B,計算三維模型A的功能部件及三維模型B的功能部件的對應(yīng)值。請參閱圖4,為本發(fā)明實施例提供的計算三維模型A的功能部件與三維模型B的功能部件的對應(yīng)值的步驟流程圖,其包括下述步驟步驟S131 :調(diào)整三維模型A及三維模型B,使三維模型A的功能部件及三維模型B的功能部件具有相同的大小比例。在本發(fā)明提供的實施例中,通過采用縮小或放大一定的比例,來調(diào)整三維模型A及三維模型B的大小,使得三維模型A的功能部件及三維模型B的功能部件具有相同的大小比例。步驟S132 :將經(jīng)步驟S131調(diào)整后的三維模型A及三維模型B平移至同一坐標(biāo)系下,這樣就保證了三維模型A及三維模型B具有相同的參照體系。步驟S133 :基于步驟S132下的同一坐標(biāo)系的三維模型A及三維模型B,計算三維模型A的功能部件與三維模型B的功能部件的對應(yīng)值。在本發(fā)明提供的實施例中,對應(yīng)值的計算方法為
ci,2 = DhCB1, B2) = max{max mm d(x, y) , max mm d{x, y)}
式中,BI和B2分別是三維模型A的功能部件和三維模型B的功能部件最小包圍 盒,其中,最小包圍盒為包含三維模型A的功能部件和三維模型B的功能部件的體積最小長 方體,Dh是上述兩個長方體之間的Hausdorff距離,即上述公式右邊的表達式,x和y為最 小包圍盒的頂點,d代表三維空間歐式距離。其中,所有對應(yīng)值被歸一化到O到I之間???以理解,由于三維模型A的功能部件及三維模型B的功能部件有多種,不同功能部件的對應(yīng) 值各不相同。
步驟S140 :基于步驟S130中計算的對應(yīng)值選取三維模型A的功能部件及三維模 型B的功能部件,分別記為功能部件集合A10、功能部件集合B10。在本發(fā)明提供的實施例 中,功能部件集合AlO及功能部件集合BlO的選取首先基于計算的對應(yīng)值,所選取的功能部 件集合AlO中的功能部件及功能部件集合BlO中的功能部件之間不應(yīng)有較大的對應(yīng)值,該 對應(yīng)值的閾值為功能部件集合AlO與功能部件集合BlO中之間對應(yīng)值的最大值的O. 5倍, 這樣才能保證功能部件集合AlO與功能部件集合BlO具有不同的功能部件,例如,三維模 型A及三維模型B不需要都選取“座”這個功能部件,這是為了避免選取部件的重復(fù),可以 理解,滿足對應(yīng)值的三維模型A的功能部件與三維模型B的功能部件不止一組,可能有很多 組;其次,選取功能部件時應(yīng)考慮部件的對稱性關(guān)系,當(dāng)某個功能部件被選取時,與其對稱 的功能部件也應(yīng)該選取,例如,三維模型A選取的功能部件集合AlO是其中的一條“腿”,那 么與選取的“腿”的對稱的其他的腿也要相應(yīng)選?。蛔詈?,從三維模型A及三維模型B中所選 取的功能部件應(yīng)該覆蓋所有的功能部件,可以理解,功能部件集合AlO和功能部件集合BlO 之和覆蓋三維模型A的功能部件或三維模型B的功能部件,即功能部件集合AlO與功能部 件集合BlO —起能夠?qū)崿F(xiàn)三維模型A及三維模型B的功能,例如,從椅子A中選取了一個集 合的功能部件包括靠背、座和前腿;從椅子B選取了一個集合的功能部件包括后退、扶手, 這樣兩個集合總共五個功能部件用于組裝一個新的椅子,這樣就能夠?qū)崿F(xiàn)椅子A或椅子B 的功能。
步驟S150 :組裝功能部件集合AlO及功能部件集合BlO得到組裝模型。
請參閱圖3,假設(shè)三維模型A和三維模型B已經(jīng)分別選取了一個子集的功能部件, 其中,功能部件集合AlO為三維模型A的功能部件,功能部件集合BlO為三維模型B中選取 的功能部件?,F(xiàn)將三維模型A中的功能部件集合AlO逐一放置到三維模型B中。
請參閱圖5,為本發(fā)明實施例提供的組裝功能部件集合AlO及功能部件集合BlO得 到組裝模型的步驟流程圖,其包括下述步驟
步驟S151 :檢測三維模型A的邊界部件,其中,邊界部件為三維模型A中未被選中 且與功能部件集合AlO相鄰的部件,如圖3中All為邊界部件。
步驟S152 :處理邊界部件All使其與功能部件集合BlO相吻合。在本發(fā)明提供的 實施例中,處理所界部件包括將所述邊界部件進行移動、形變,首先將這些邊界部件移動、 形變使其與三維模型B中的對應(yīng)的功能部件集合BlO (根據(jù)上述對應(yīng)值計算得到)吻合,這 一過程主要通過計算機操作完成。
步驟S153 :將經(jīng)處理后的邊界部件和功能部件集合AlO置于三維模型B中進行組 裝得到組裝模型。在本發(fā)明提供的實施例中,以步驟S151選取的邊界部件為約束,根據(jù)邊 界部件與放置部件之間的相鄰關(guān)系,將功能部件集合AlO逐一放置到三維模型B中,得到組裝模型。在本發(fā)明提供的實施例中,邊界部件與放置部件之間的相鄰關(guān)系包括上述部件包圍盒之間的角度關(guān)系和空間位置關(guān)系。步驟S160 :將步驟S150中組裝模型進行結(jié)構(gòu)優(yōu)化得到新的三維模型。在本發(fā)明提供的實施例中,結(jié)構(gòu)優(yōu)化包括對組裝模型的部件之間的相鄰關(guān)系進行處理,使所述連接關(guān)系相匹配,其中,相鄰關(guān)系包括連接關(guān)系、對稱關(guān)系、正交關(guān)系及平行關(guān)系,這一過程主要是采用計算機圖形處理??梢岳斫?,經(jīng)優(yōu)化后的組裝模型的部件之間的相鄰關(guān)系更加精確、合理。比如部件之間的相鄰關(guān)系為連接關(guān)系時,經(jīng)處理使得連接關(guān)系更為緊密,盡可能恢復(fù)原有模型的連接關(guān)系??梢岳斫猓?jīng)上述步驟后生成的新的三維模型進一步可以作為原三維模型集合的數(shù)據(jù)集,并重復(fù)上述步驟,生成新的三維模型。上述生成三維模型的方法基于遺傳操作中的交叉遺傳,有效利用了交叉遺傳的優(yōu)點,方法簡單、可靠性高,大大豐富了三維模型數(shù)據(jù)集;同時,由于新生成的三維模型可以進一步作為輸入的基本三維模型,參于新一輪的交叉組合中,不斷演化生成更多的三維模型,極大豐富了三維模型數(shù)據(jù)集。以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容作出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
權(quán)利要求
1.一種基于遺傳操作的三維模型生成方法,其特征在于,包括下述步驟 輸入三維模型集合; 從所述三維模型集合中任意選取兩個三維模型,分別記為三維模型A、三維模型B ; 計算所述三維模型A的功能部件與所述三維模型B的功能部件的對應(yīng)值; 基于所述對應(yīng)值選取所述三維模型A的功能部件及所述三維模型B的功能部件,分別記為功能部件集合A10、功能部件集合BlO ; 組裝所述功能部件集合AlO及所述功能部件集合BlO得到組裝模型; 將所述組裝模型進行結(jié)構(gòu)優(yōu)化得到新的三維模型。
2.根據(jù)權(quán)利要求1所述的基于遺傳操作的三維模型生成方法,其特征在于,其中,輸入三維模型集合,還包括下述步驟 標(biāo)注所述三維模型集合中的三維模型的功能部件; 將所述三維模型集合中的三維模型的朝向設(shè)置一致。
3.根據(jù)權(quán)利要求1或2所述的基于遺傳操作的三維模型生成方法,其特征在于,其中,計算所述三維模型A的功能部件與所述三維模型B的功能部件的對應(yīng)值,包括下述步驟 調(diào)整所述三維模型A及所述三維模型B,使所述三維模型A的功能部件及所述三維模型B的功能部件具有相同的大小比例; 將經(jīng)調(diào)整后的三維模型A及三維模型B平移至同一坐標(biāo)系下; 基于同一坐標(biāo)系下的三維模型A及三維模型B,計算所述三維模型A的功能部件與所述三維模型B的功能部件的對應(yīng)值;其中,所述對應(yīng)值的計算方法為 C1 2 = Di1(BAtB7) = maxi max min d(x, y), max min d(x,y)} 'XEB1 yEB2 vyEB2 X^B1 v 川 式中,BI和B2分別是三維模型A的功能部件和三維模型B的功能部件最小包圍盒,所述最小包圍盒為包含功能部件的體積最小長方體,Dh是上述兩個長方體之間的HausdorfT距離,X和I為最小包圍盒的頂點,d代表三維空間歐式距離。
4.根據(jù)權(quán)利要求1或3所述的基于遺傳操作的三維模型生成方法,其特征在于,所述對應(yīng)值的閥值為所述功能部件集合AlO與所述功能部件集合BlO之間對應(yīng)值的最大值的O. 5倍。
5.根據(jù)權(quán)利要求1所述的基于遺傳操作的三維模型生成方法,其特征在于,所述功能部件集合AlO與功能部件集合BlO之和覆蓋所述三維模型A的所有功能部件或所述三維模型B的所有功能部件。
6.根據(jù)權(quán)利要求1所述的基于遺傳操作的三維模型生成方法,其特征在于,所述功能部件集合AlO與功能部件集合BlO具有不同的功能。
7.根據(jù)權(quán)利要求1所述的基于遺傳操作的三維模型生成方法,其特征在于,其中,組裝所述功能部件集合AlO及所述功能部件集合BlO得到組裝模型,包括下述步驟 檢測所述三維模型A的邊界部件,其中,所述邊界部件為所述三維模型A中未被選中且與所述功能部件集合AlO相鄰的部件; 處理所述邊界部件使其與所述功能部件集合BlO相吻合; 將經(jīng)處理后的邊界部件和功能部件集合AlO置于所述三維模型B中進行組裝得到組裝模型。
8.根據(jù)權(quán)利要求7所述的基于遺傳操作的三維模型生成方法,其特征在于,所述處理所述邊界部件包括將所述邊界部件進行移動、形變。
9.根據(jù)權(quán)利要求1所述的基于遺傳操作的三維模型生成方法,其特征在于,所述結(jié)構(gòu)優(yōu)化包括對所述組裝模型的部件之間的相鄰關(guān)系進行處理,使所述連接關(guān)系相匹配,所述相鄰關(guān)系包括連接關(guān)系、對稱關(guān)系、正交關(guān)系及平行關(guān)系。
全文摘要
本發(fā)明涉及一種基于遺傳操作的三維模型生成方法,包括下述步驟輸入三維模型集合;從三維模型集合中任意選取兩個三維模型,分別記為三維模型A、三維模型B;計算三維模型A的功能部件與三維模型B的功能部件的對應(yīng)值;基于對應(yīng)值選取三維模型A的功能部件及三維模型B的功能部件,分別記為功能部件集合A10、功能部件集合B10;組裝功能部件集合A10及功能部件集合B10得到組裝模型;將組裝模型進行結(jié)構(gòu)優(yōu)化得到新的三維模型。本發(fā)明利用了交叉遺傳的優(yōu)點,方法簡單、可靠性高,豐富了三維模型數(shù)據(jù)集;同時,新生成的三維模型可以進一步作為輸入的基本三維模型,參于新一輪的交叉組合中,不斷演化生成更多的三維模型,極大豐富了三維模型數(shù)據(jù)集。
文檔編號G06T17/00GK102999940SQ20121045433
公開日2013年3月27日 申請日期2012年11月13日 優(yōu)先權(quán)日2012年11月13日
發(fā)明者徐凱, 陳寶權(quán) 申請人:中國科學(xué)院深圳先進技術(shù)研究院