邱泳鋒 高雪瑤 劉嘉源 林威良 張家豪 賈龍雨
(哈爾濱理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 黑龍江 哈爾濱150080)
近年來,三維CAD 模型的數(shù)量和種類急劇增加,CAD 模型庫的規(guī)模也隨之變大。據(jù)統(tǒng)計(jì)目前全世界已有300 多億個三維模型。從模型庫中精確地尋找滿足用戶設(shè)計(jì)意圖的模型無疑會縮短開發(fā)周期,提高設(shè)計(jì)效率,為企業(yè)帶來更多的利益。同時,重用已有CAD 模型也會讓企業(yè)節(jié)約更多的成本。
常見的三維模型檢索方法主要有:基于文本的三維模型檢索、基于特定指令的三維模型檢索和基于內(nèi)容的三維模型檢索。
1.1 基于文本的三維模型檢索。通過對目標(biāo)三維模型進(jìn)行恰當(dāng)描述,與海量數(shù)據(jù)中的三維模型文本標(biāo)簽進(jìn)行自動匹配來完成檢索、但是,三維模型的文本描述相對有限、無法真正將三維模型特征一一列舉。
1.2 基于特定指令的三維模型檢索。使用定義好的筆畫或者筆畫集合來表示基本圖形,然后利用筆畫來完成三維模型檢索。但是,這種方法僅適用于極少部分三維模型的檢索,適應(yīng)范圍太小。
1.3 基于內(nèi)容的三維模型檢索。以反應(yīng)對象自身的視覺特征的內(nèi)容索引為基礎(chǔ),計(jì)算視覺特征的相似性來查找用戶所需要的目標(biāo)模型。但是,這種方法不僅依賴于文本,而且也依賴于三維模型和草圖等[1]。
本文利用固定投影方法獲取三維模型的二維視圖[2],提取草圖和二維視圖的集成特征,并以此為基礎(chǔ)來度量草圖與三維模型之間的相似程度。
基于手繪草圖的三維模型檢索過程分為在線檢索與線下處理兩個階段,如圖1 所示。線下檢索部分,主要包括:二維視圖提取模塊、全局特征提取模塊和二維形狀特征提取模塊。為了便于實(shí)現(xiàn)基于草圖的三維模型檢索,不僅需要存儲三維模型,而且還需要存儲三維模型的二維視圖以及二維視圖所對應(yīng)的特征向量。在線檢索部分主要包括:二維草圖繪制模塊、全局特征提取模塊、二維形狀特征提取模塊、模型相似性計(jì)算模塊和三維模型檢索模塊(圖1)。
在線下處理過程中,首先利用固定投影方法對三維模型進(jìn)行降維處理,獲取三維模型的二維視圖集。選擇固定的角度和固定的投影數(shù)量進(jìn)行投影。在水平面以上30 度角位置,每隔60度放置一個虛擬攝像機(jī),指向三維模型的中心,可以生成6 個二維視圖,如圖2 所示。
圖1 三維模型檢索框架
圖2 三維模型的固定投影
所提取的二維視圖是三維模型在某個角度的投影圖片,即投影圖像。提取每幅視圖的全局特征與二維形狀特征,其中,全局特征主要包括視圖的D1 形狀分布特征、D2 形狀分布特征、D3 形狀分布特征和Gist 特征。同時,根據(jù)視圖的像素灰度數(shù)值來提取二維形狀特征。組合全局特征與二維形狀特征,獲得了視圖的集成特征。因此,每一個三維模型都對應(yīng)著6 個二維視圖,每一個二維視圖都對應(yīng)著一個集成特征。利用這6 個二維視圖的集成特征來表示三維模型。草圖與三維模型的相似度計(jì)算將被轉(zhuǎn)化為草圖與其6 個二維視圖之間的相似度計(jì)算問題。三維模型A 對應(yīng)的6 個二維視圖為{v1, v2, v3, v4, v5, v6}。二維視圖v1、v2、v3、v4、v5、v6的集成 特征向 量分別 為Xv1、Xv2、Xv3、Xv4、Xv5、Xv6。
按上述方法抽取所有三維模型的二維視圖的集成特征向量。按照每一個三維模型進(jìn)行分類組織,形成三維模型數(shù)據(jù)庫,其邏輯結(jié)構(gòu)如圖3 所示。在三維模型數(shù)據(jù)庫中,主要包括:模型層、視圖層和向量層。在模型層中,存儲三維模型的存儲地址。在視圖層中,存儲二維視圖的存儲地址。在向量層中,存儲二維視圖的集成特征向量。因此,每一個三維模型與二維視圖之間存在著一對多關(guān)系,每一個二維視圖與集成特征向量之間存在著一對一關(guān)系。
圖3 三維模型數(shù)據(jù)庫的邏輯結(jié)構(gòu)
在檢索過程中,用戶在界面中手動繪制二維草圖s。系統(tǒng)提取草圖s 的全局特征與二維形狀特征,其中,全局特征主要包括草圖s 的D1 形狀分布特征、D2 形狀分布特征、D3 形狀分布特征和Gist 特征。同時,根據(jù)草圖s 的像素灰度數(shù)值來提取二維形狀特征。組合全局特征與二維形狀特征,獲得了草圖s 的集成特征Xs。
草圖s 和三維模型A 之間的相似度計(jì)算如公式(1)所示。
其中,|X-Y|為向量X 與向量Y 之間的歐式距離。
計(jì)算草圖s 與二維視圖vi之間的距離。若距離越小,則表明二者之間的相似程度越高。反之,則說明二者之間的相似程度越低。計(jì)算草圖s 與三維模型A 的每幅視圖之間的距離。從這6 幅視圖中,選擇距離最小的一幅視圖作為三維模型A 的代表,并將二者之間的距離的倒數(shù)作為草圖s 和三維模型A 之間的相似度。
計(jì)算草圖s 與數(shù)據(jù)庫中的每一個三維模型之間的相似度。按相似度從大到小依次排序,將相似度最高的前8 個模型顯示在檢索界面之中。
本文使用VS2012 C++開發(fā)了一個基于草圖的三維模型檢索系統(tǒng),使用了MySQL 數(shù)據(jù)庫存儲三維模型、二維視圖和集成特征向量,如圖4 所示。
圖4 基于草圖的三維模型檢索系統(tǒng)
從ModelNet40 中抽取了4 類三維模型作為源模型,分別是“car”、“chair”、“dresser”和“person”。從每個類中抽取了10 個模型,每個模型對應(yīng)于6 二維視圖。從SHEREC13 中抽取1 個“car”草圖、1 個“chair”草圖、1 個“dresser”草圖和1 個“person”草圖作為目標(biāo)草圖。利用所開發(fā)的系統(tǒng)分別檢索與目標(biāo)草圖最相似的三維源模型,使用F 測度來度量系統(tǒng)的檢索性能,如表1所示。系統(tǒng)檢索的F 測度為0.460。
表1 系統(tǒng)的檢索性能
本文在分析了現(xiàn)有三維模型檢索技術(shù)的基礎(chǔ)上,提出了一種基于手繪草圖的三維模型檢索框架。在水平面以上30 度角位置,每隔60 度放置一個虛擬攝像機(jī),抽取6 個二維視圖,提取二維視圖的集成特征。同時,提取二維草圖的集成特征,以草圖和二維視圖的集成特征為基礎(chǔ),計(jì)算二者之間的相似度,并選擇相似度最大的三維源模型作為匹配結(jié)果。