三維模型檢索方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種三維模型檢索方法及裝置,以及構(gòu)建其中的三維模型數(shù)據(jù)庫的方法和裝置。所述三維模型檢索方法包括:將待檢索的三維模型分別分割為多個子塊;根據(jù)子塊的形狀特征對子塊進行分類;根據(jù)各個子塊的尺寸將待檢索的三維模型中的多個子塊分為多層;以及根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度;以及根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
【專利說明】三維模型檢索方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機模式識別領(lǐng)域,更具體地涉及三維模型檢索的技術(shù)。
【背景技術(shù)】
[0002]隨著計算機技術(shù)、CAD (計算機輔助設(shè)計)技術(shù)的發(fā)展,越來越多的三維模型被設(shè)計出來。三維模型是繼音頻、圖像以及視頻之后所出現(xiàn)的第四種多媒體數(shù)據(jù)類型,日益發(fā)達的互聯(lián)網(wǎng)和性能不斷增強的計算機為人們對三維模型的共享和處理提供了條件。如何管理以及重復(fù)使用這些三維模型對客戶來說變得尤為重要,因為這有助于縮短產(chǎn)品周期、降低設(shè)計成本。
[0003]三維模型的檢索方式同其他的多媒體數(shù)據(jù)檢索方式類似,主要分為基于文本的檢索和基于內(nèi)容的檢索?;谖谋镜臋z索方法依賴于人工標注并且?guī)в腥藶橹饔^性的缺點,基于內(nèi)容的檢索方法使用三維模型的形狀來檢索相似的模型,其效果優(yōu)于基于文本的方式。
[0004]但是,上述三維模型的檢索方法普遍存在檢索速度慢、匹配效果不佳等缺點。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的實施例提供了一種高效的基于多層結(jié)構(gòu)特征的三維模型的檢索方法以及裝置。
[0006]在下文中給出關(guān)于本發(fā)明的簡要概述,以便提供關(guān)于本發(fā)明的某些方面的基本理解。應(yīng)當理解,這個概述并不是關(guān)于本發(fā)明的窮舉性概述。它并不是意圖確定本發(fā)明的關(guān)鍵或重要部分,也不是意圖限定本發(fā)明的范圍。其目的僅僅是以簡化的形式給出某些概念,以此作為稍后論述的更詳細描述的前序。
[0007]根據(jù)本發(fā)明的一個方面,公開了一種三維模型檢索方法,包括:將待檢索的三維模型分割為多個子塊;根據(jù)子塊的形狀特征對子塊進行分類;根據(jù)各個子塊的尺寸將待檢索的三維模型中的多個子塊分為多層;以及根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度;以及根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
[0008]根據(jù)本發(fā)明的另一方面,公開了一種三維模型檢索系統(tǒng),包括:三維模型分割單元,用于將待檢索的三維模型分割為多個子塊;子塊分類單元,用于根據(jù)子塊的形狀特征對子塊進行分類;子塊分層單元,用于根據(jù)子塊的尺寸將待檢索的三維模型的多個子塊分為多層;多層特征提取單元,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;以及相似度計算單元,用于根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度,以及根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
[0009]根據(jù)本發(fā)明的另一方面,公開了一種構(gòu)建三維模型數(shù)據(jù)庫的裝置,包括:三維模型分割模塊,用于將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊;子塊分類模塊,用于根據(jù)子塊的形狀特征對子塊進行分類;子塊分層模塊,用于根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;以及多層特征提取模塊,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
[0010]根據(jù)本發(fā)明的另一方面,公開了一種構(gòu)建三維模型數(shù)據(jù)庫的方法,包括:將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊;根據(jù)子塊的形狀特征對子塊進行分類;根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;以及根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
【專利附圖】
【附圖說明】
[0011]參照下面結(jié)合附圖對本發(fā)明實施例的說明,會更加容易地理解本發(fā)明的以上和其它目的、特點和優(yōu)點。
[0012]圖1示出了根據(jù)本發(fā)明的實施例的三維模型檢索方法的示意性流程圖;
[0013]圖2示出了根據(jù)本發(fā)明的實施例的構(gòu)建三維模型數(shù)據(jù)庫的方法的示意性流程圖;
[0014]圖3示出了根據(jù)本發(fā)明的實施例的三維模型檢索系統(tǒng)的功能性框圖;
[0015]圖4示出了根據(jù)本發(fā)明的實施例的構(gòu)建三維模型數(shù)據(jù)庫的裝置的功能性框圖;
[0016]圖5示出了兩種具有不同形狀的示例性三維模型a和b ;
[0017]圖6示出了對三維模型a進行分割的示意圖;
[0018]圖7示出了對三維模型a進行分層的示意圖;
[0019]圖8示出了提取三維模型a的多層結(jié)構(gòu)特征的示意圖;
[0020]圖9示出了對三維模型b進行分層的示意圖;
[0021]圖10示出了可用于實施根據(jù)本公開的實施例的計算機的示意性結(jié)構(gòu)圖。
【具體實施方式】
[0022]圖1示出了根據(jù)本發(fā)明的實施例的三維模型檢索方法的示意性流程圖。
[0023]其中,在步驟SlOl中,將待檢索的三維模型分割為多個子塊;在步驟S102中,根據(jù)子塊的形狀特征對子塊進行分類,所述每個類別對應(yīng)一特定的形狀特征,所述每個類別中可包含一個或多個子塊;在步驟S103中,根據(jù)各個子塊的尺寸將待檢索的三維模型中的多個子塊分為多層;接下來,在步驟S104中,根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;最后,在步驟S105中,根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度,并輸出檢索結(jié)果。
[0024]在上述三維模型檢索方法中,還包括:將三維模型數(shù)據(jù)庫中的各個三維模型分割為多個子塊;根據(jù)子塊的形狀特征對所述多個子塊進行分類,并根據(jù)子塊的尺寸將所述多個子塊分為多層;以及根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
[0025]在上述步驟SlOl中,可以利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0026]在上述步驟S102中,可以根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0027]在上述步驟S103中,可以通過將各個子塊的尺寸與針對每個層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。并且,將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每個層中各個子塊之間的連接關(guān)系。其中,各個子塊的尺寸可以是子塊相對于所述三維模型的相對尺寸。
[0028]在上述步驟S104中,進一步包括根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0029]在上述步驟S105中,可以分別計算待檢索的三維模型中的各個層與數(shù)據(jù)庫中的三維模型的各個層之間的相似度,并計算各個層之間的相似度的和或加權(quán)和,作為待檢索的三維模型與數(shù)據(jù)庫中的三維模型之間的相似度。
[0030]圖2示出了根據(jù)本發(fā)明的實施例的構(gòu)建三維模型數(shù)據(jù)庫的方法的示意性流程圖。
[0031]其中,在步驟S201中,將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊;在步驟S202中,根據(jù)子塊的形狀特征對子塊進行分類;在步驟S203中,根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;最后,在步驟S204中,根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
[0032]在上述步驟S201中,可以利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0033]在上述步驟S202中,可以根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0034]在上述步驟S203中,可以通過將各個子塊的尺寸與針對每個層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。并且,將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每個層中各個子塊之間的連接關(guān)系。其中,各個子塊的尺寸可以是子塊相對于所述三維模型的相對尺寸。
[0035]在上述步驟S204中,進一步包括根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0036]圖3示出了根據(jù)本發(fā)明的實施例的三維模型檢索系統(tǒng)300的功能性框圖。
[0037]所述三維模型檢索系統(tǒng)300包括三維模型分割單元301,用于將待檢索的三維模型分別分割為多個子塊;子塊分類單元302,用于根據(jù)子塊的形狀特征對子塊進行分類;子塊分層單元303,用于根據(jù)子塊的尺寸將待檢索的三維模型的多個子塊分為多層;多層特征提取單元304,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;以及相似度計算單元305,用于根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度,以及根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
[0038]上述系統(tǒng)300中進一步包括三維模型數(shù)據(jù)庫306,其中存儲有該數(shù)據(jù)庫中的每個三維模型的多層結(jié)構(gòu)特征。稍后將結(jié)合附圖4對如何構(gòu)建該三維模型數(shù)據(jù)庫進行詳細說明。
[0039]上述三維模型分割單元301進一步被配置為利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0040]上述子塊分類單元302進一步被配置為根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0041]上述子塊分層單元303進一步被配置為將各個子塊的尺寸與針對每個層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。并且,將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每個層中各個子塊之間的連接關(guān)系。其中,各個子塊的尺寸為子塊相對于所述三維模型的相對尺寸。
[0042]上述多層特征提取單元304進一步被配置為根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0043]上述相似度計算單元305進一步被配置為分別計算待檢索的三維模型中的各個層與數(shù)據(jù)庫中的三維模型的各個層之間的相似度,并計算各個層之間的相似度的和或加權(quán)和,作為待檢索的三維模型與數(shù)據(jù)庫中的三維模型之間的相似度。
[0044]圖4示出了根據(jù)本發(fā)明的實施例的構(gòu)建三維模型數(shù)據(jù)庫的裝置400的功能性框圖。
[0045]所述構(gòu)建三維模型數(shù)據(jù)庫的裝置400包括三維模型分割模塊401,用于將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊;子塊分類模塊402,用于根據(jù)子塊的形狀特征對子塊進行分類;子塊分層模塊403,用于根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;以及多層特征提取模塊404,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
[0046]其中的三維模型分割模塊401進一步被配置為利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0047]其中的子塊分類模塊402進一步被配置為根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0048]其中的子塊分層模塊403進一步被配置為將各個子塊的尺寸與針對每個層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。并且,將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每個層中各個子塊之間的連接關(guān)系。其中,各個子塊的尺寸為子塊相對于所述三維模型的相對尺寸。
[0049]其中的多層特征提取模塊404進一步被配置為根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0050]圖5示出了兩種具有不同形狀的示例性三維模型a和b,所述三維模型a和b可以是三維模型數(shù)據(jù)庫中三維模型,也可以是待檢索的三維模型。
[0051]以下將針對圖5中所示出的三維模型a,并參照附圖6-8來詳細描述如何提取三維模型a的多層結(jié)構(gòu)特征。
[0052]首先,如圖6所示,將的三維模型a分割為4個子模型,即子塊P1、P2、P3和P4,P1-P4具有如圖所示的連接關(guān)系。對三維模型進行分割的方法可采用基于面片的技術(shù),例如,采用區(qū)域增長的方法對深度圖進行分割,或通過三角形聚類的方法,也可以采用基于立體部件的技術(shù),或者使用2009年7月8日提交的,公布號為CN101944239A的中國發(fā)明專利申請中所公開的三維模型分割方法。
[0053]接下來,對分割后的子塊P1、P2、P3和P4進行分類??梢曰谧訅K的特征,例如形狀描述符(Shape Distribut1n),和/或基于視圖的特征等,采用例如支持向量機(SVM),和/或K均值聚類等方法實現(xiàn)子塊的分類。通過分類處理,子塊P1、P2對應(yīng)于類別Cl,子塊P3對應(yīng)于類別C2,子塊P4對應(yīng)于類別C3。
[0054]然后,根據(jù)三維模型的各個子塊的尺寸,并基于預(yù)設(shè)的層數(shù)、尺寸閾值對三維模型進行分層,從而確定各層中所包含的子塊,并基于路徑閾值確定各層中的子塊的連接關(guān)系。其中,將各個子塊的尺寸與尺寸閾值進行比較,從而確定各層中所包含的子塊;并且,對于被分在相同層中的子塊,如果子塊之間在三維模型中即存在連接,則所述子塊在該層中也存在連接,如果子塊之間在三維模型中不存在連接,并且所述子塊之間在該層中也不存在其他子塊,則將所述子塊之間的路徑長度與路徑閾值進行比較,當所述路徑長度小于路徑閾值時,則在該層中為所述子塊之間添加連接。如圖7所示,在該實施例中,層數(shù)被預(yù)設(shè)為3層,各層的尺寸閾值分別被預(yù)設(shè)為1/3、1/4以及1/6 (該實施例中的尺寸閾值為子塊與三維模型的相對尺寸),路徑閾值被預(yù)設(shè)為2。其中,尺寸大于尺寸閾值1/3的只有子塊P3,因此,第一層中僅包括子塊P3。尺寸大于尺寸閾值1/4的子塊為P3和P4,因此,第二層中包括子塊P3和P4 ;由于P3與P4在三維模型a中即存在連接,因此可以確定P3和P4在第二層中存在連接。尺寸大于尺寸閾值1/6的子塊為P1、P2、P3和P4,因此,第三層中包括子塊PU P2、P3和P4 ;由于在三維模型a中,Pl與P3、P2與P3以及P3與P4即存在連接,因此可以確定Pl與P3、P2與P3以及P3與P4在第三層中存在連接。
[0055]在確定三維模型a各層中所包括的子塊以及各個子塊的連接關(guān)系后,分別針對各層,并結(jié)合子塊所對應(yīng)的類別,確定各層中的各個子塊所對應(yīng)的類別的連接關(guān)系,并根據(jù)各個類別之間的連接關(guān)系,建立各個類別的共生矩陣,作為各層的結(jié)構(gòu)特征。
[0056]圖8示出了提取三維模型a的多層結(jié)構(gòu)特征的示例。三維模型的多層結(jié)構(gòu)特征由三維模型各層的結(jié)構(gòu)特征所組成,而三維模型各層的結(jié)構(gòu)特征由各層的共生矩陣來表示。所述各層的共生矩陣均為KxK的矩陣,其中,K為總的類別數(shù)目,共生矩陣中的元素表示該層中的子塊所對應(yīng)的類別之間的連接數(shù)量,如果相應(yīng)的類別之間不存在連接或該層中不存在該類別時,則相應(yīng)位置處的值為O。通過構(gòu)建三維模型各層的KxK的共生矩陣,使各個三維模型的多層結(jié)構(gòu)特征的長度一致,以便于方便地實現(xiàn)各個三維模型之間的特征比較。構(gòu)建各層的共生矩陣的步驟如下:圖8中第一層的矩陣代表了第一層的結(jié)構(gòu)特征,第一層中僅包括子塊P3,其對應(yīng)于類別C2,因此,第一層的共生矩陣中各個元素均為O ;圖8中第二層的矩陣代表了第二層的結(jié)構(gòu)特征,第二層中包括子塊P3和P4,分別對應(yīng)于類別C2和C3,并且C2和C3中具有一個連接,因此,在第二層的共生矩陣中,C2和C3交點處的值為1,其余位置處的值均為O ;圖8中第三層的矩陣代表了第三層的結(jié)構(gòu)特征,第三層中包括子塊P1、P2、P3和P4,其中Pl和P2對應(yīng)于類別C1、P3對應(yīng)于類別C2、P4對應(yīng)于類別C3,并且,Cl與C2之間具有2個連接,C2和C3之間具有一個連接,因此,Cl和C2交點處的值為2,C2和C3交點處的值為I,其余位置處的值均為O。
[0057]通過以上步驟,三維模型a的各層的結(jié)構(gòu)特征被提取。
[0058]下面將針對圖5中所示出的三維模型b,并參照附圖9來進一步說明如何基于尺寸閾值進行分層,以及基于路徑閾值確定各個子塊之間的連接關(guān)系。
[0059]對于三維模型b的分割、分類步驟與三維模型a類似,因此,下文中不再對上述類似的步驟進行重復(fù)描述。
[0060]如圖9所示,三維模型b被分割為4個子塊,分別為ΡΓ,P2’,P3’和P4’,ΡΓ -P4’在三維模型b中具有如圖所示的連接關(guān)系。在該實施例中,層數(shù)被預(yù)設(shè)為3層,各層的尺寸閾值分別被預(yù)設(shè)為1/3、1/4以及1/6 (該實施例中的尺寸閾值為子塊與三維模型的相對尺寸),路徑閾值被預(yù)設(shè)為2。其中,尺寸大于尺寸閾值1/3的只有子塊P4’,因此,第一層中僅包括子塊P4’。尺寸大于尺寸閾值1/4的子塊為P3’和P4’,因此,第二層中包括子塊P3’和P4’ ;由于P3’與P4’在三維模型b中即存在連接,因此可以確定P3’和P4’在第二層中存在連接。尺寸大于尺寸閾值1/6的子塊為P1’、P3’和P4’,因此,第三層中包括子塊P1’、Ρ3’和Ρ4’ ;由于Ρ3’與Ρ4’在三維模型b即存在連接,因此可以確定Ρ3’與P4’在第三層中存在連接;ΡΓ與P3’在三維模型b不存在連接,并且在第三層中,ΡΓ與P3’之間也不存在其他的子塊,由于ΡΓ與P3’之間的路徑長度小于路徑閾值2,因此,在第三層的子塊ΡΓ與P3’之間添加一新的連接。
[0061]在確定三維模型b各層中所包括的子塊以及各個子塊的連接關(guān)系后,使用與三維模型a的處理類似的步驟提取各層的結(jié)構(gòu)特征,在此不再進行重復(fù)說明。
[0062]通過對三維模型數(shù)據(jù)庫中的各個三維模型進行如上的處理,可以實現(xiàn)將三維模型數(shù)據(jù)庫構(gòu)建為使用多層結(jié)構(gòu)特征進行描述的三維模型的集合。
[0063]對于待檢索的三維模型,通過上述處理,提取出待檢索三維模型的多層結(jié)構(gòu)特征,從而基于所述多層結(jié)構(gòu)特征,計算待檢索三維模型與三維模型數(shù)據(jù)庫中的三維模型的相似度,以實現(xiàn)三維模型的匹配。
[0064]三維模型的匹配可以通過以下兩種方式實現(xiàn)。
[0065](I)首先分層計算待檢索三維模型與三維模型數(shù)據(jù)庫中的三維模型的相似度,然后對各層的相似度求和或加權(quán)和,從而得到三維模型的相似度。其中,通過各層的結(jié)構(gòu)特征間的距離來表示相似度。該方式可通過以下公式來實現(xiàn):
I
[0066]D = y] U * d.1 = l
[0067]其中,D表示三維模型的相似度,I表示層數(shù),Cli表示第i層結(jié)構(gòu)特征間的距離,Wi表示相應(yīng)的權(quán)重。
[0068](2)采用分層匹配的方式,即逐層進行篩選,將相似度最低的三維模型排除,直到剩下相似度最高的三維模型。
[0069]通過上述的匹配處理,將三維模型數(shù)據(jù)庫中與待檢索三維模型相似度最高的三維模型輸出,作為檢索結(jié)果。
[0070]通過以上各個步驟的處理,根據(jù)本發(fā)明的三維模型檢索方法得以實現(xiàn)。
[0071]應(yīng)理解,上述實施例和示例是示例性的,而不是窮舉性的,本公開不應(yīng)被視為局限于任何具體的實施例或示例。
[0072]作為一個示例,上述方法的各個步驟以及上述設(shè)備的各個組成模塊和/或裝置可以實施為軟件、固件、硬件或其組合。例如,可以作為具有圖像處理功能的各種設(shè)備(如計算機、個人數(shù)字助理、照相機、攝像機及其他圖像處理設(shè)備等,這里不一一列舉)的一部分。上述設(shè)備中各個組成模塊通過軟件、固件、硬件或其組合的方式進行配置時可使用的具體手段或方式為本領(lǐng)域技術(shù)人員所熟知,在此不再贅述。
[0073]如上所述,上述方法和設(shè)備中對圖像進行處理的步驟和模塊可以通過軟件來實現(xiàn)。從存儲介質(zhì)或網(wǎng)絡(luò)向具有專用硬件結(jié)構(gòu)的計算機(例如圖10所示的通用計算機1000)安裝構(gòu)成該軟件的程序,該計算機在安裝有各種程序時,能夠執(zhí)行各種功能等。
[0074]在圖10中,中央處理單元(CPU) 1001根據(jù)只讀存儲器(ROM) 1002中存儲的程序或從存儲部分1008加載到隨機存取存儲器(RAM) 1003的程序執(zhí)行各種處理。在RAM1003中,也根據(jù)需要存儲當CPU1001執(zhí)行各種處理等等時所需的數(shù)據(jù)。CPU1001、R0M1002和RAM1003經(jīng)由總線1004彼此連接。輸入/輸出接口 1005也連接到總線1004。
[0075]下述部件連接到輸入/輸出接口 1005:輸入部分1006 (包括鍵盤、鼠標等等)、輸出部分1007(包括顯示器,比如陰極射線管(CRT)、液晶顯示器(IXD)等,和揚聲器等)、存儲部分1008 (包括硬盤等)、通信部分1009 (包括網(wǎng)絡(luò)接口卡比如LAN卡、調(diào)制解調(diào)器等)。通信部分1009經(jīng)由網(wǎng)絡(luò)比如因特網(wǎng)執(zhí)行通信處理。根據(jù)需要,驅(qū)動器1010也可連接到輸入/輸出接口 1005??刹鹦督橘|(zhì)1011比如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等根據(jù)需要被安裝在驅(qū)動器1010上,使得從中讀出的計算機程序根據(jù)需要被安裝到存儲部分1008中。
[0076]在通過軟件實現(xiàn)上述系列處理的情況下,從網(wǎng)絡(luò)比如因特網(wǎng)或存儲介質(zhì)比如可拆卸介質(zhì)1011安裝構(gòu)成軟件的程序。
[0077]本領(lǐng)域的技術(shù)人員應(yīng)當理解,這種存儲介質(zhì)不局限于圖10所示的其中存儲有程序、與設(shè)備相分離地分發(fā)以向用戶提供程序的可拆卸介質(zhì)1011??刹鹦督橘|(zhì)1011的例子包含磁盤(包含軟盤(注冊商標))、光盤(包含光盤只讀存儲器(⑶-ROM)和數(shù)字通用盤(DVD))、磁光盤(包含迷你盤(MD)(注冊商標))和半導(dǎo)體存儲器。或者,存儲介質(zhì)可以是R0M1002、存儲部分1008中包含的硬盤等等,其中存有程序,并且與包含它們的設(shè)備一起被分發(fā)給用戶。
[0078]本公開還提出一種存儲有機器可讀取的指令代碼的程序產(chǎn)品。所述指令代碼由機器讀取并執(zhí)行時,可執(zhí)行上述根據(jù)本公開實施例的方法。
[0079]相應(yīng)地,用于承載上述存儲有機器可讀取的指令代碼的程序產(chǎn)品的存儲介質(zhì)也包括在本公開的公開中。所述存儲介質(zhì)包括但不限于軟盤、光盤、磁光盤、存儲卡、存儲棒等坐寸ο
[0080]在上面對本公開具體實施例的描述中,針對一種實施方式描述和/或示出的特征可以用相同或類似的方式在一個或更多個其它實施方式中使用,與其它實施方式中的特征相組合,或替代其它實施方式中的特征。
[0081]應(yīng)該強調(diào),術(shù)語“包括/包含”在本文使用時指特征、要素、步驟或組件的存在,但并不排除一個或更多個其它特征、要素、步驟或組件的存在或附加。
[0082]此外,本公開的方法不限于按照說明書中描述的時間順序來執(zhí)行,也可以按照其他的時間順序地、并行地或獨立地執(zhí)行。因此,本說明書中描述的方法的執(zhí)行順序不對本公開的技術(shù)范圍構(gòu)成限制。
[0083]通過以上的描述可以看出,根據(jù)本公開的實施例,提供了如下的方案:
[0084]附記1.一種三維模型檢索方法,包括:
[0085]將待檢索的三維模型分割為多個子塊;
[0086]根據(jù)子塊的形狀特征對子塊進行分類;
[0087]根據(jù)各個子塊的尺寸將待檢索的三維模型中的多個子塊分為多層;以及
[0088]根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;
[0089]根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度;以及
[0090]根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
[0091]附記2.如附記I所述的方法,進一步包括
[0092]將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊;
[0093]根據(jù)子塊的形狀特征對所述多個子塊進行分類,并根據(jù)子塊的尺寸將所述多個子塊分為多層;以及
[0094]根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
[0095]附記3.如附記I所述的方法,其中將各個三維模型的多個子塊分為多層包括:
[0096]將各個子塊的尺寸與針對每層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。
[0097]附記4.如附記3所述的方法,其中將各個三維模型的多個子塊分為多層還包括:
[0098]將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每層中各個子塊之間的連接關(guān)系。
[0099]附記5.如附記1-4任一項所述的方法,其中提取各層的結(jié)構(gòu)特征進一步包括:
[0100]根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0101]附記6.如附記1-4任一項所述的方法,其中計算所述相似度進一步包括:
[0102]分別計算待檢索的三維模型中的各個層與數(shù)據(jù)庫中的三維模型的各個層之間的相似度,并計算各個層之間的相似度的和或加權(quán)和,作為待檢索的三維模型與數(shù)據(jù)庫中的三維模型之間的相似度。
[0103]附記7.如附記1-4任一項所述的方法,其中各個子塊的尺寸為子塊相對于所述三維模型的相對尺寸。
[0104]附記8.如附記1-4任一項所述的方法,其中將每個三維模型分割為多個子塊包括:
[0105]利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0106]附記9.如附記1-4任一項所述的方法,其中對所述多個子塊進行分類包括:
[0107]根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0108]附記10.—種構(gòu)建三維模型數(shù)據(jù)庫的方法,包括
[0109]將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊;
[0110]根據(jù)子塊的形狀特征對子塊進行分類;
[0111]根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;以及
[0112]根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
[0113]附記11.如附記10所述的方法,其中將多個子塊分為多層包括:
[0114]將各個子塊的尺寸與針對每個層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。
[0115]附記12.如附記11所述的方法,其中將多個子塊分為多層還包括:
[0116]將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每個層中各個子塊之間的連接關(guān)系。
[0117]附記13.如附記10-12任一項所述的方法,其中提取各層的結(jié)構(gòu)特征進一步包括:
[0118]根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0119]附記14.如附記10-12任一項所述的方法,其中各個子塊的尺寸為子塊相對于所述三維模型的相對尺寸。
[0120]附記15.如附記10-12任一項所述的方法,其中將每個三維模型分割為多個子塊包括:
[0121]利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0122]附記16.如附記10-12任一項所述的方法,其中對所述多個子塊進行分類包括:
[0123]根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0124]附記17.—種三維模型檢索系統(tǒng),包括:
[0125]三維模型分割單元,用于將待檢索的三維模型分割為多個子塊;
[0126]子塊分類單元,用于根據(jù)子塊的形狀特征對子塊進行分類;
[0127]子塊分層單元,用于根據(jù)子塊的尺寸將待檢索的三維模型的多個子塊分為多層;
[0128]多層特征提取單元,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;以及
[0129]相似度計算單元,用于根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度,以及根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
[0130]附記18.如附記17所述的系統(tǒng),其中所述三維模型數(shù)據(jù)庫還存儲有該數(shù)據(jù)庫中的每個三維模型的多層結(jié)構(gòu)特征。
[0131]附記19.如附記17所述的系統(tǒng),其中的子塊分層單元被配置為:
[0132]將各個子塊的尺寸與針對每個層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。
[0133]附記20.如附記17所述的系統(tǒng),其中的子塊分層單元進一步被配置為:
[0134]將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每個層中各個子塊之間的連接關(guān)系。
[0135]附記21.如附記17-20任一項所述的系統(tǒng),其中的多層特征提取單元被配置為:
[0136]根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0137]附記22.如附記17-20任一項所述的系統(tǒng),其中的相似度計算單元被配置為:
[0138]分別計算待檢索的三維模型中的各個層與數(shù)據(jù)庫中的三維模型的各個層之間的相似度,并計算各個層之間的相似度的和或加權(quán)和,作為待檢索的三維模型與數(shù)據(jù)庫中的三維模型之間的相似度。
[0139]附記23.如附記17-20任一項所述的系統(tǒng),其中各個子塊的尺寸為子塊相對于所述三維模型的相對尺寸。
[0140]附記24.如附記17-20任一項所述的系統(tǒng),其中的三維模型分割單元被配置為:
[0141]利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0142]附記25.如附記17-20任一項所述的系統(tǒng),其中的子塊分類單元被配置為:
[0143]根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0144]附記26.—種構(gòu)建三維模型數(shù)據(jù)庫的裝置,包括:
[0145]三維模型分割模塊,用于將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊;
[0146]子塊分類模塊,用于根據(jù)子塊的形狀特征對子塊進行分類;
[0147]子塊分層模塊,用于根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;以及
[0148]多層特征提取模塊,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
[0149]附記27.如附記26所述的構(gòu)建三維模型數(shù)據(jù)庫的裝置,其中子塊分層模塊被配置為:
[0150]將各個子塊的尺寸與針對每個層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。
[0151]附記28.如附記27所述的構(gòu)建三維模型數(shù)據(jù)庫的裝置,其中將子塊分層模塊進一步被配置為:
[0152]將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每個層中各個子塊之間的連接關(guān)系。
[0153]附記29.如附記26-28任一項所述的構(gòu)建三維模型數(shù)據(jù)庫的裝置,其中多層特征提取模塊被配置為:
[0154]根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
[0155]附記30.如附記26-28任一項所述的構(gòu)建三維模型數(shù)據(jù)庫的裝置,其中各個子塊的尺寸為子塊相對于所述三維模型的相對尺寸。
[0156]附記31.如附記26-28任一項所述的構(gòu)建三維模型數(shù)據(jù)庫的裝置,其中三維模型分割模塊被配置為:
[0157]利用基于面片的分割方式或基于立體部件的分割方式將每個三維模型分割為多個子塊。
[0158]附記32.如附記26-28任一項所述的構(gòu)建三維模型數(shù)據(jù)庫的裝置,其中子塊分類模塊被配置為:
[0159]根據(jù)各個子塊的形狀特征利用K均值聚類算法或者支持向量機SVM分類算法對子塊進行分類。
[0160]盡管上面已經(jīng)通過對本發(fā)明的具體實施例的描述對本發(fā)明進行了披露,但是,應(yīng)該理解,上述的所有實施例和示例均是示例性的,而非限制性的。本領(lǐng)域的技術(shù)人員可在所附權(quán)利要求的精神和范圍內(nèi)設(shè)計對本發(fā)明的各種修改、改進或者等同物。這些修改、改進或者等同物也應(yīng)當被認為包括在本發(fā)明的保護范圍內(nèi)。
【權(quán)利要求】
1.一種三維模型檢索方法,包括: 將待檢索的三維模型分別分割為多個子塊; 根據(jù)子塊的形狀特征對子塊進行分類; 根據(jù)各個子塊的尺寸將待檢索的三維模型中的多個子塊分為多層;以及根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征; 根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度;以及 根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
2.如權(quán)利要求1所述的方法,進一步包括: 將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊; 根據(jù)子塊的形狀特征對所述多個子塊進行分類,并根據(jù)子塊的尺寸將所述多個子塊分為多層;以及 根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
3.如權(quán)利要求1所述的方法,其中將各個三維模型的多個子塊分為多層包括: 將各個子塊的尺寸與針對每層的預(yù)定尺寸閾值進行比較,以確定各層中所包括的子塊,其中,各層中可以包括相同的子塊,以及各層中的子塊數(shù)量介于零到其所在的三維模型所包括的子塊總數(shù)之間。
4.如權(quán)利要求3所述的方法,其中將各個三維模型的多個子塊分為多層還包括: 將各層中各個子塊之間在所述三維模型中的路徑長度與預(yù)定路徑長度閾值進行比較,以確定每層中各個子塊之間的連接關(guān)系。
5.如權(quán)利要求1-4任一項所述的方法,其中提取各層的結(jié)構(gòu)特征進一步包括: 根據(jù)各個子塊的類別以及該層中各子塊之間的連接關(guān)系來構(gòu)建每個層的類別結(jié)構(gòu)矩陣,所述類別結(jié)構(gòu)矩陣反映該層中各類別的子塊在所述三維模型中的鄰接關(guān)系。
6.如權(quán)利要求1-4任一項所述的方法,其中計算所述相似度進一步包括: 分別計算待檢索的三維模型中的各個層與數(shù)據(jù)庫中的三維模型的各個層之間的相似度,并計算各個層之間的相似度的和或加權(quán)和,作為待檢索的三維模型與數(shù)據(jù)庫中的三維模型之間的相似度。
7.如權(quán)利要求1-4任一項所述的方法,其中各個子塊的尺寸為子塊相對于所述三維模型的相對尺寸。
8.—種構(gòu)建三維模型數(shù)據(jù)庫的方法,包括: 將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊; 根據(jù)子塊的形狀特征對子塊進行分類; 根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;以及根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
9.一種三維模型檢索系統(tǒng),包括: 三維模型分割單元,用于將待檢索的三維模型分割為多個子塊; 子塊分類單元,用于根據(jù)子塊的形狀特征對子塊進行分類; 子塊分層單元,用于根據(jù)子塊的尺寸將待檢索的三維模型的多個子塊分為多層; 多層特征提取單元,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征;以及 相似度計算單元,用于根據(jù)所述多層結(jié)構(gòu)特征,計算待檢索的三維模型與三維模型數(shù)據(jù)庫中的各個三維模型的相似度,以及根據(jù)上述相似度的計算結(jié)果,輸出檢索結(jié)果。
10.一種構(gòu)建三維模型數(shù)據(jù)庫的裝置,包括: 三維模型分割模塊,用于將三維模型數(shù)據(jù)庫中的各個三維模型分別分割為多個子塊; 子塊分類模塊,用于根據(jù)子塊的形狀特征對子塊進行分類; 子塊分層模塊,用于根據(jù)子塊的尺寸將所述三維模型數(shù)據(jù)庫中的各個三維模型的多個子塊分為多層;以及 多層特征提取模塊,用于根據(jù)各層中的各子塊在其所在的三維模型中的連接關(guān)系來提取各層的結(jié)構(gòu)特征,作為該三維模型的多層結(jié)構(gòu)特征。
【文檔編號】G06F17/30GK104239299SQ201310223505
【公開日】2014年12月24日 申請日期:2013年6月6日 優(yōu)先權(quán)日:2013年6月6日
【發(fā)明者】王月紅, 劉汝杰, 遠藤進, 上原祐介, 馬場孝之 申請人:富士通株式會社