?

人體模型網格孔洞的快速修復方法

2018-08-14 09:05劉世凡梁晉董波
西安交通大學學報 2018年8期
關鍵詞:邊界點面片孔洞

劉世凡, 梁晉, 董波

(西安交通大學機械制造系統工程國家重點實驗室, 710049, 西安)

近年來,3D反求技術發展迅速,快速三維人體掃描廣泛應用于醫療外科、服裝、個性化定制等行業,因此快速獲取完整的人體三維模型數據具有重要的意義[1]。但是,人體掃描結果幾乎不可避免地會出現局部信息缺失,從而產生模型孔洞,對人體模型的整體外觀和后續處理產生巨大的不良影響[2],其中尤以大面積信息缺失所致的孔洞影響最深[3]。因此,在保證模型特征的情況下快速修復大面積復雜孔洞是三維模型后處理過程中的重要工作。

Davis等在孔洞附近設置符號距離函數,通過擴散來重建整體模型,該方法修復精度較高但效率低[4]。Van等通過將三維點映射到二維平面并進行德洛內三角化來修補孔洞,但難以修補空間形狀復雜的孔洞[5]。Centin等通過泊松驅動來封閉孔洞,但是需要依賴精確的頂點法線[6]。Brunton等利用最小能量方程獲取投影平面并插入新點,但邊界點數較多時,效率大大下降[7]。Altantsetseg等通過邊界邊輪廓線獲取均勻插入點,同樣存在效率問題[8]。Brunet等利用B樣條曲線獲取插入點信息,該方法體素化過程較為耗時[9]。張立國等采用徑向基函數擬合孔洞的隱式曲面,并將新增點投影上去,該方法對單一簡單孔洞修補較為理想,但對大面積孔洞擬合隱式曲面效率很低且可能擬合失敗[10]。Xia等通過特征線將孔洞分割后再修補,該方法依賴恰當的閾值[11]。劉震等通過動態規劃構建曲面并利用帶特征線約束的雙拉普拉斯系統修補孔洞,方法保持了較好的細節但孔洞面積大時效率較低[12]。Wang等通過粒子群優化算法在三次曲面上獲取新增點信息,該方法依賴優良的參數[13]。Wei等通過積分法產生最小三角面片來修補孔洞,但效率較低[14]。Hu等在細分三角面片后利用雙邊濾波重建缺失的特征,但生成的網格與原網格有較大差別[15]。高旋輝等先對孔洞進行異常值消除,再利用改進的多邊形三角化法進行修補[16]。以上算法在孔洞修復精度方面有較大改進,但多應用于單一孔洞,而人體掃描模型中存在大量大面積且空間形狀復雜的孔洞,這些方法難以快速甚至無法完成修補。

本文提出了一種利用邊界點周圍矢量信息建立權函數的孔洞修復算法,實現了對大面積復雜孔洞的快速、保持特征的均勻網格修補。該方法基于波前法,結合邊界點法向量、邊界點曲率和周邊局部邊界點聚攏方向建立權函數,通過最小化權函數確定新增點的空間坐標以產生新增面片,多次向孔洞內部推進直至孔洞修復完成。

1 傳統波前法

傳統波前法以遞歸的方式修補網格孔洞。首先用當前邊界點集初始化波前,而后計算相鄰邊界邊形成的內角,從最小內角開始遞歸推進,每次遞歸后都以新邊界點集對波前進行初始化,直至孔洞被新增三角面片完全填充。對最小內角θ進行推進時,通常根據最小內角的大小采取不同的推進策略[17],當最小角θ<75°,直接連接邊界點;當75°≤θ≤135°,新增點Vadd在θ角平分線上;當135°<θ≤180°,新增點Vadd1和Vadd2在θ角三等分線上,新增邊長度取Vi點鄰邊的平均長度,如圖1所示。

(a)0°≤θ<75° (b)75°≤θ≤135° (c)135°<θ≤180°圖1 最小角推進原則

波前法可以快速地修復趨于收攏的簡單孔洞,但無法保持孔洞特征,且當孔洞趨于發散時,孔洞修補會失敗。這是因為波前法的推進方向僅由最小內角決定,當推進方向不朝向孔洞中心時,新增的三角面片不能聚攏并封閉孔洞。圖2a、2b分別表示了趨于聚攏和趨于發散的孔洞在波前法迭代一次時的推進方向。

(a)趨于聚攏的孔洞 (b)趨于發散的孔洞圖2 兩種孔洞的波前法推進方向

本文采用了波前法的最小角迭代推進原則,但在推進策略上先通過邊界點周邊的聚攏矢量對大面積孔洞邊界點法向量進行修正,再通過修正后的頂點法向量與邊界點的兩個鄰點計算平均曲率,最后結合原插入向量建立加權函數,通過求解最小化的加權函數,得出新增點的空間坐標,使新增面片在孔洞趨于發散的情況下能夠快速向孔洞中心聚攏。

2 網格孔洞修補

首先,通過孔洞邊界點個數識別大面積的孔洞,對此類孔洞通過周邊邊界點的平均聚攏特征向量修正最小角頂點的法向量;然后,結合邊界頂點局部曲率和原插入向量,建立并求解最小化加權函數,以獲取新增點空間坐標,迭代推進直至網格封閉。本文算法適用的網格模型為流形網格模型。

對于任意孔洞,現定義邊界點按逆時針順序編號形成的集合為{Vi|i=0,1,…,nhole-1},其中nhole是孔洞邊界點總個數;定義vij為邊界點Vi指向邊界點Vj的向量,vij的單位向量為eij?,F以最小內角∠Vi-1ViVi+1=θ,75°≤θ<135°為例,此時應新增1個點Vx。

2.1 頂點法向量修正

本文以邊界點個數大于50的孔洞為大面積孔洞。對于大面積孔洞,為避免新增面片不能聚合收攏,利用頂點Vi的局部聚攏方向對其法向量進行修正。以頂點Vi在邊界點鏈表中指向前n個邊界點和后n個邊界點的單位向量的平均向量為局部聚攏方向,即計算單位向量

nr=αn0+βne

(2)

式中:n0為Vi原法向量,α+β=1,本文取α=0.85。

圖3 法向量的修正向量ne

2.2 權函數

確定新增點Vx的空間坐標實質是確定頂點Vi指向Vx的向量vix,該向量應包含Vi點的局部曲率特征信息、收攏趨勢信息,并能使新增的三角面片更規則。因此,本文建立了一個包含以上信息的權函數并求解,以獲取新增點最優的空間坐標,具體步驟如下。

(1)先通過Vi-1點和Vi+1點的平均Taubin曲率計算Vi的曲率,Vi的Taubin曲率為

式中:nr為頂點Vi的修正法向量,向量T為vix在頂點Vi切平面上的投影。

(2)計算原插入向量

vip=lave(ei(i-1)+ei(i+1))

(4)

(3)結合原插入向量和局部曲率建立加權函數

式中:ω1+ω2=1(本文取ω1=0.65)。

圖4 局部平面極坐標

(5)最后,可得插入向量vix=laveRnr,其中R為繞nS逆時針旋轉φ角的旋轉矩陣。

當需要新增2個點時,算法基本過程同上,只需對新增的兩個向量分別進行求解即可。對于非大面積孔洞,Vi的法向量無需修正。每次推進后,都以當前邊界點集更新波前,直到修補完成。

本文通過表征頂點周邊局部聚攏趨勢的向量來修正頂點的原法向量,使得推進方向向孔洞的中心聚攏,從而可以快速修補趨于發散的大面積孔洞。結合邊界點鄰點的平均曲率和原插入向量建立加權函數,利用局部平面極坐標求解函數值最小時的新增向量與頂點修正法向量間的夾角,獲得最終的新增向量,因此新增向量既保持了局部曲率,又使新增三角面片均勻規則。

3 實驗及結果

為驗證本文算法的孔洞修補效果,在主頻3.3 GHz、內存8 GB的計算機上,利用VS2013開發網格修補軟件,并對球模型和XTBodyScan快速人體掃描系統掃描的人體模型進行網格修補。

圖5a存在缺失部分的球模型,圖5b、5c、5d分別為傳統波前法、隱式曲面法[10]和本文波前法修補結果。從圖中可以看出,傳統波前法僅僅封閉了模型,而本文算法和隱式曲面法都保持了較好的特征。

圖6a為人體掃描模型頭部截取部分,該模型的孔洞有153個邊界點且孔洞趨于發散,傳統波前法無法修補該孔洞。圖6b是隱式曲面法修補人頭模型孔洞的結果;圖6c是隱式曲面法生成的新增三角面片,修補結果出現了大量自相交的三角面片,這是因為該孔洞趨于發散,擬合出的隱式曲面難以符合孔洞的收攏趨勢,同時也導致了投射到隱式曲面上新增點不均勻,從而產生不均勻的三角面片。圖6d是本文算法修補結果;圖6e顯示本文算法新增的三角面片大小均勻,形狀規則;圖6f是本文算法的局部細節情況,可見新增面片與原孔洞邊界面片間有良好的過渡。

圖7a為人體足部掃描模型,足底孔洞有319個邊界點,孔洞空間形狀復雜且趨于發散。傳統波前法和隱式曲面法皆無法修補該孔洞。圖7b、7c分別為本文算法修補后的新增面片及局部細節,修補后的新增面片均勻規則,且與邊界面片過渡處光滑自然。

圖8a為人體全身掃描模型,該模型中有孔洞196個,其中大面積孔洞11個。圖8b為本文算法修補結果,圖8c為部分孔洞修補細節,修補整個模型僅耗時26.8 s,且保持了孔洞的局部特征。

表1統計了以上6個孔洞的修補信息。三角形品質因子Q為三角形最短邊與外接圓半徑比,三角形越接近正三角形,則Q越接近1.73。本文以Q大于1.39的三角面片為高品質三角形[18],統計其與新增面片總數的比值。從表中可以看出,本文算法修補各類孔洞所產生的三角面片中,高品質面片都在90%以上,且修補時間短,效率高。

(a)球模型 (b)傳統波前法 (c)隱式曲面法(d)本文算法圖5 不同方法球模型修補效果對比

(a)頭部模型 (b)隱式曲面法修補效果 (c)隱式曲面法新增面片

(d)本文算法修補結果(e)本文算法新增面片 (f)本文算法修補細節圖6 不同方法頭部模型修補結果對比

(a)足部模型 (b)新增面片 (c)局部細節圖7 足部掃描模型修補結果

(a)原始模型 (b)修補結果

(c)孔洞1修復細節 (d)孔洞2修復細節 (e)孔洞3修復細節圖8 人體全身模型

孔洞新增點數新增面片數修補時間/s高品質面片與新增面片之比/%球孔洞521250.04794.41頭部孔洞2 1924 5391.18399.10足部孔洞4 97210 2833.16297.53孔洞19892 1750.60793.68孔洞24299900.34690.51孔洞31333160.13693.35

4 結 論

(1)本文算法對于邊界點數超過50的孔洞,在迭代推進中對最小內角的頂點進行了法向量修正。利用頂點前后局部邊界點的聚攏趨勢信息獲取頂點法向量的修正向量,修正后的法向量包含了局部聚攏信息,快速地修補趨于發散的大面積孔洞。

(2)本文算法結合了原插入向量和局部Taubin曲率建立權函數,通過極坐標轉換獲取權函數值最小時的新增點空間坐標。新增的面片與原始邊界面片過渡平滑,且網格大小均勻,形狀規則。

(3)本文在VS2013開發環境下開發了網格修復軟件,完成了對人體掃描模型的快速修復。算法具有較高的效率和魯棒性,無論對人為操作形成的孔洞還是掃描信息缺失形成的孔洞都有較好的修復效果。為快速修補掃描模型中大面積缺失以及趨于發散的孔洞提供了一種思路。對人體掃描模型修復、3D反求、個性定制等都具有重要意義。

猜你喜歡
邊界點面片孔洞
一種面向孔洞修復的三角網格復雜孔洞分割方法
三維模型有向三角面片鏈碼壓縮方法
初次來壓期間不同頂板對工作面片幫影響研究
孔洞加工工藝的概述及鑒定要點簡析
區分平面中點集的內點、邊界點、聚點、孤立點
基于降維數據邊界點曲率的變電站設備識別
多閾值提取平面點云邊界點的方法
強動載作用下孔洞匯合對延性金屬層裂損傷演化過程的影響*
甜面片里的人生
青海尕面片
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合