• 沒有找到結果。

無序性三維點資料之網格化曲面重建

N/A
N/A
Protected

Academic year: 2021

Share "無序性三維點資料之網格化曲面重建"

Copied!
50
0
0

加載中.... (立即查看全文)

全文

(1)第一章 緒. 論. 1.1 前言 在業界中,產品的開發與設計的流程可被約略分為二種:順向工程及逆 向工程。就順向工程而言:其開發流程為制定產品規格、產品設計和產品製 造;就逆向工程而言:其開發流程為樣品輪廓取樣、曲面建構及修飾和成型 製造。在這二類工程中,電腦輔助設計(CAD)與電腦輔助製造(CAM)被廣泛 地應用,產品的設計藍圖多為數位模型,故將二類工程的著眼範疇歸合為數 位模型的建構和實體製作。. 在產品設計上,包括電腦輔助設計與逆向工程中,數位模型的資料大部 份是以自由曲面描述的曲面模型;而在製造生產上,包括快速原型與實體切 削,所需要的是以網格描述的實體模型。這兩種不同型態的資料必須經由資 料轉換,將曲面模型轉換成實體模型才能串聯整個製程。. 網格化的技術除了應用於產品設計外,亦被廣泛地應用於 3D 虛擬實境 的模擬、影像辨識和數位動漫之中,而且 CAD/CAM 系統也逐漸地以實體模 型為架構作為開發的趨勢。由此可見,網格模型成為主流的趨勢和其應用性 的擴展。. 所以,如何精準地取得模型的點資料、如何解決曲面模型轉換成實體模 型所遇到的問題,以及如何直接將掃描而得的點資料建構成實體模型,皆是 值得探討的問題。其中,使網格化技術的處理對象不再拘限於掃描所得的點. 1.

(2) 資料,而僅是一筆無序性的點資料,則此技術會更為一般化且具有實用性。. 1.2 研究動機 一般表面重建問題可定義如下:自原表面 O 取得一筆無序的樣本點資 料(unorganized sample points)P,建構出具有正確拓撲及幾何形狀的三角網格 曲面(triangulated surface)S,即包含 P 原本的所有點且呈現出 O 的幾何形狀。. 網格曲面的重建過程中,點資料是否具有順序性,以及是否具備有法線 向量,對於點資料網格化有很大的影響。就有無順序性而言:無序性點資料, 意指著點資料僅含有座標資料而無額外的資訊,因此在重建的過程裡,僅有 較少的資訊可以利用,難度相對較高;有序性點資料,意指經由雷射掃描儀 量測後所得的點資料,是由掃瞄線資料和位於每一條掃瞄線上的點資料所構 成,且掃瞄線會依照相同的方向作順序性的排列,因此可以利用掃瞄線之間 的排列特性將資料網格化。就法線向量而言:當點資料具備有法線向量時, 網格化就相當容易;否則,在網格化過程中還得依照一些判斷法則,估計點 資料的法線向量。. 在逆向工程裡,工件經由三次元掃描機量得的點資料型態為一筆有序性 點資料,接著加以編輯擬合可得到工件之數位模型,接續後面的相關製程。 於是,點資料取得的來源限定於掃描量測,後續製程亦是相關於這點資料所 具有的特性而設計,這生產流程固然立意是佳,但亦會限制住這之中所有技 術可發展的空間及其它領域的引入。因此,若點資料只是單純的坐標點集 合,而又能順利將其整合成為工件模型,則這項網格化曲面重建之技術將可 應用於更多的領域及獲得更多的發展。 2.

(3) 1.3 研究目的 點資料的完整性關係著網格的建立,在較為不足的情況下,會導致所建 立的網格無法表示模型的幾何形狀,並且會使得建構網格的過程中,產生錯 誤的網格。這個問題是源於點資料不足而產生,故在網格重建過程中不予以 列入考量。換句話說,網格曲面呈現的是點資料的網格曲面。. 在大量的點資料載入後,接續而來的是做一連串的計算,對於每一點點 資料,將會產生數個方程式(正比於點資料的數量) ,在這些方程式中僅與 鄰近點集合所產生的方程式為有用的,故將點資料做區域性分類處理,即鄰 近點集合的建立,會使得在方程式的產生中,省掉許多刪除比較的工作,增 進網格建構的效益。. 對於一具有凹凸殼且較為複雜的模型資料,在網格建立的過程中,會產 生多餘的網格。隨著模型曲面複雜度的不同,其多餘網格的數量以及類型亦 有所差異。針對這個問題,在建構火龍尼圖(voronoi diagram)的演算法中, 建立每一筆點資料的區堿性特徵殼面;且對已建立好的網格考量其幾何分 佈,並透過這些方法所得到的條件來完成刪除多餘網格。. 1.4 研究範圍與限制 本研究中,對於所載入的點資料,將視為一筆足以呈現模型原貌的點資 料,即點資料的數量夠且可以描述模型的最小尺寸。. 3.

(4) 除此之外,每一筆點資料的存在具有唯一性,即不會有任何相同的點存 在,若有則須經過濾點刪除的步驟。. 1.5 研究方法 為了精準地描述一個模型的外貌,就得需要大量的點資料來描述其細部 特徵,而這大量的點資料在電腦處裡中,就會耗費掉許多時間。為了節省處 理時間,一是選擇較為快速的演算法則,但相對地會較為不精準;二是採取 區域性處理,將點資料作分類,可降低演算法則的複雜度,同時降低時間和 空間上的耗費。基於這個因素,本研究以區域性處理的方式來探討其影嚮及 可行之處。. 為了對樣本點資料的區域性處理有一個依據,本研究將依下列方法實 作:以取樣點資料的分佈作層區分類,建立起所在位置的資訊並和其鄰近點 作連結,藉由層區間的關聯性搜尋鄰近層區,形成一筆區域性的點資料。另 外以模型殼面作為分類依據,由於凹殼處,在處理上及重建精準性皆較為 低,故將區域性點資料在處理前找出構成凹殼的點資料,作一分類。對於所 獲得的區域性點資料,視為鄰近點集合,並非最鄰近點集合,建立其凸殼, 可得到刪除多餘網格的部份條件。. 當樣本資料區域性分類建立後,計算其火龍尼圖,並建立狄龍尼三角網 格(delaunay triangle),由於有多餘網格的產生,本研究對於所建立好的網格, 考量其在空間上的分佈關係,建立判斷法則來刪除不需要的網格。. 4.

(5) 在分析上,於本研究中所處理好的點資料,會以網格曲面呈現,並探討 演算法效益及網格數量。在重建的過程中,會去衡量作區域性分類的計算秏 費及網格生成的秏時降低;對於網格面,會探討其網格數量及資料量,包括 刪除前及刪除後。將上述所論之研究方法整理為本研究之實驗步驟,以 圖 1.1 表示。. 圖 1.1 實驗步驟 5.

(6) 第二章 文獻回顧 在點資料重建成網格化曲面的研究領域中,當點資料僅具有座標資料而 無其它資訊時,大部份是以幾何學中的火龍尼圖和狄龍尼三角網格為建構網 格曲面的基本方法。本章節將介紹幾何學中的相關定義以及研究領域裡所發 展出來的演算法。. 2.1 幾何定義 2.1.1 凸殼(Convex hull) 凸殼的定義:對於點集合 S ∈ R d ,d 為維度,凸殼 CH(S)是能包含這些 點資料的最小凸殼集合,CH(S) 為凸殼的數學符號。以數學式子表示:點集 合 S,有 N 個點,其中有 n 個點, n ≤ N , { p1 , p 2 , p3 ....... p n } ,使得 S 中的任 意點 q,滿足下列式子 n. n. 1. 1. q = ∑ λ j p j , λ j ≥ 0, ∑ λ j = 1. 則此 n 個點形成點集合 S 的最小凸殼[1][2]。. 圖 2.1 表示在二維平面上,凸殼的概念以及和點資料之間的關係。點集 合中,為凸殼的頂點的點稱之為凸點(convex points);在凸殼內的點稱之為 凹點(concave points)。可顯然得知凸殼的一個重要性質,在二維中,所有的 點都位於任意一邊的同一側;在三維中,則是位於任意一面的同一側,如圖 2.2。. 6.

(7) 圖 2.1 二維凸殼. 圖 2.2 三維凸殼. 2.2.2 火龍尼圖 點集合 S ∈ R d 有 n 個點,則火龍尼圖分割 Rd 成 n 個多面體區域 Vo( p) , p ∈ S,而每個區域 Vo( p)稱為 p 點的火龍尼格(Voronoi cell),在 Vo( p). 區域內的任何點是最靠近 p 點,Vo( p)以數學式表示為 Vo( p ) = {x ∈ R d dist ( x, p ) ≤ dist ( x, q ) ∀q ∈ S − p}. dist ( x, p ) 為 x 點到 p 點的距離[1][2]。. 其中火龍尼格的集合稱為火龍尼圖,火龍尼圖的每個頂點稱為火龍尼頂. 7.

(8) 點(Voronoi vertex)。 nb( S , v) 稱為火龍尼頂點 v 的最鄰近點集合(nearest neighbor set)。圖 2-3,為二維空間裡的火龍尼圖。. 圖 2.3 二維火龍尼圖 火龍尼圖具有下列幾項特性: (1) 每個點的火龍尼格均為凸殼,亦即 Vo( pi ) 為凸殼。 (2) Vo( pi ) 範圍內不包含其它點資料。 (3) 若 v 為三個火龍尼格 Vo( p1 ) 、 Vo( p 2 ) 、 Vo( p3 ) 共用的頂點,則 v 為通過 p1 、p2、p3 三點圓的中心,這個圓稱為 C (v) 。 (4) 以 v 為中心點的圓 C(v),其內部不會包含其它點。 (5) 在 3D 空間裡,每個火龍尼頂點至少被 4 個火龍尼格共用。. 2.1.3 狄龍尼三角網格 點集合 S ∈ R d 有 n 個點,火龍尼頂點 v 的最鄰近點集合 nb(S,v),則 nb(S,v)的凸殼 CH(nb(S,v))稱為狄龍尼格(Delaunay cell),狄龍尼三角劃分 (delaunay triangulation)即為 CH(S)與每個 nb(S,v)的凸殼 CH(nb(S,v))之集合, 並建構成狄龍尼三角網格[1][2]。. 8.

(9) 圖 2.4 二維狄龍尼三角網格 狄龍尼三角網格具有下列幾項特性: (1) 外部的狄龍尼三角網格的邊,構成凸殼的邊界。 (2) 通過狄龍尼三角網格三個頂點的圓,其內部不會包含其它頂點。. 2.1.4 凸殼、火龍尼圖和狄龍尼三角網格之間的關係 由於狄龍尼三角劃分是火龍尼圖的延伸圖,計算狄龍尼三角劃分可以從 火龍尼圖轉換而得,而 Rd 的火龍尼圖可經由 Rd+1 的凸殼計算而得,於是只 要求出點集合的火龍尼圖,即可轉換成狄龍尼三角劃分[1][2]。下文將敘述 應用此等關係的計算方式: 假設點 pi ∈ R 2 置於 x-y 平面上,座標為 ( xi , y i ) 將點 pi 在垂直方向提升 一高度 z i = xi 2 + y i 2,並將提高的點稱為 pi* , pi * ∈ R 3 座標為 ( xi , y i , xi 2 + y i 2 ) 。 A ={(x, y, z) | z = x2 + y2} 描述一拋物面繞 z 軸方向旋轉 ,表示點 pi*在拋物面 A 表面上。. 9.

(10) 假設 Ai 是一平面, Ai 與拋物面相切於點 pi* 處,Ai 表示為, *. z = 2 xi x + 2 y i y − ( xi + y i ) ,相同地,平面 Aj 與拋物面相切於點 pj 處,兩平面 2. 2. Ai 與 Aj 相交於一線段,將線段 L*i,j 投影到 x-y 平面得到線段 Li , j ∈ R 2 ,表示 為 2( xi − x j ) x + 2( y i − y j ) y − ( xi 2 + y i 2 − x j 2 − y j 2 ) ,此方程式即為點 pi 與 pj 連線 之中垂線 bi(pi, pj)。圖 2-5 所示。 z. A Pi*. Ai. Lij* A. Pj*. x Pi Pj Lij y. 圖 2.5 二維火龍尼圖的投影方式. 點集合 S ∈ R d ,將點 p ∈ S , p = ( x1 , x 2 , L x d ) ,提舉到一 Rd +1 的拋物面 上,於是 x d +1 = x1 2 + ... + x d 2 ,假設一超平面(hyper-plane)與拋物面相切於點 p d. d. j =1. j =1. 的提舉處,且在 p 上方的範圍,則超平面 e 表示為 ∑ p j 2 − ∑ 2 p j x j + x d +1 ≥ 0 ,. 10.

(11) 得到 n 個不等式方程式,以 b − Ax ≥ 0 描述。多面體(polyhedron) H ∈ R d +1 即為 不等式方程式的解,相當於將火龍尼圖提舉到 Rd +1,換句話說,將多面體投 影回到 Rd,即可得到火龍尼圖。 火龍尼頂點 v 的最鄰近點集合 nb(S, v),狄龍尼三角劃分是火龍尼圖的 延伸圖,所以藉由 CH(nb(S, v))的轉換即可得到狄龍尼格,狄龍尼三角劃分 即為 CH(S)與每個 nb(S, v)的凸殼 CH(nb(S, v))之集合。. 11.

(12) 2.2 演算法 2.2.1 凸殼、火龍尼圖和狄龍尼三角網格 A. Okabe, B. Boots與K. Sugihara [1] 對火龍尼圖的定義、特性與種類作 詳盡的介紹,並探討凸殼、火龍尼圖和狄龍尼三角劃分這三者間的轉換關係 和計算方式,除此,亦討論從低維度到高維度的演算法以及適宜的資料結 構。周培德[2]對於網格化程序的演算法和應用作了許多介紹,並在書中提供 其所研究的心得及其作法。將此二本著作所介紹之演算法整理如下:. 凸殼:依其基本定義和性質,即包含所有點集合之最小外殼以及所有的 點皆位於殼面的同一側…等。在二維中,可利用包裹法(Gift Wrapping)、格 雷厄姆法、分治法(Divide and Conquer) 、增量法(Incremental Algorithm)及Z 算法。單就解決平面點集合之凸殼問題,格雷厄姆法為公認最佳的演算法, 複雜度為O(nlogn)。其中,包裹法、分治法、增量法及Z算法可以擴充至三 維裡應用。. 火龍尼圖:依其基本定義,即在P點所形成之火龍尼格內的點皆最接近 P。最基本的方法可運用半平面的交集來求得,但其所消秏的時間和複雜度 最高O(n2),除此,尚有增量構造法、減量構造法、分治法和平面掃描法。. 狄龍尼三角網格:狄龍尼三角網格為點集合中,火龍尼頂點v與最鄰近 點所形成的三角網格。依此性質,可依火龍尼頂點去求得。. 12.

(13) 除了以上所介紹的基本算法外,J. O'Rourke [3] 與M. Berg et al.[4] 對增 量法、包裹法、分治法等各種凸殼的計算方式做介紹,比較之間的效能差異, 並將演算法應用在高維度的凸殼計算。. B. Barber, D. Dobkin與H. Huhdanpaa [5] 修改增量法的演算方式,提出 QuickHull演算法,並以QuickHull演算法發展出qhull程式,qhull可以處理任 意維度的凸殼、火龍尼圖、狄龍尼三角劃分…等幾何計算。. 2.2.2 無順序性點資料網格化 在無順序序性點資料網格化的相關研究上,單就以火龍尼圖和狄龍尼三 角網格為基礎的演算法來探討,以圖2.6來作說明,從點坐標資料計算火龍 尼圖再生成狄龍尼三角網格。. 圖 2.6 無序性三維點資料之網格化曲面重建的研究領域. 點資料再載入到演算法計算時,通常會給予以點資料基本的資料結構 性,使得演算法達到最高的效益以及後續的可使用性,有winged-edged data structure和distributed tree…等。T. P. Fang與L. A. Piegl [9] 以winged-edge data structure為基礎,以均勻的四方網格(uniform gird)劃分點資料,用以解決鄰. 13.

(14) 近點搜尋的問題,建構二維凸殼與狄龍尼三角網格,[8]並將這演算方法推展 到三維中的狄龍尼三角網格的計算。這個方法主要是為了降低計算時的複雜 度,但是卻在鄰近點的搜尋與狄龍尼三角網格的計算上沒有得到很好的效 率。. 以火龍尼圖去計算狄龍尼三角網格的過程中,會產生許多不必要的網 格,如重複的、交錯的、多餘的、錯誤的和殼內的三角網格,這些網格的建 構實為不必要存在,於是在火龍尼圖計算狄龍尼三角網格的過程中,就得將 其刪除。N. Amenta和M. Bern [6]、[7]利用hull程式處理無順序性點資料的三 角網格化,從火龍尼頂點中判斷出極點(poles),以極點評估法線向量,發展 出Voronoi filtering algorithm,其目的在於刪除多餘的狄龍尼三角網格,而保 留下來的網格則用來描述模型,但是,網格拓墣關係並不正確,會有交錯的 情況。之後Amata[10],加入極點的標示法則,藉由power diagram計算極點 的幾何關係,經由MAT(medial axis transform)將點資料轉換成多邊形 (polygon),以多邊形描述物體輪廓。. 狄龍尼三角網格建立後,為了使得其更為簡潔和實用,可分為網格選取 和網格面編修二類的研究。後者的技術有邊界縫補、破洞修補(holes filling) 和骨架(Medial Axis);前者則有Cohen-Steniner [11] 的greedy Delaunay –based algorithm,在已經計算好的狄龍尼三角網格中,選取一個初始網格,再以區 域成長(region-growing process)的方式逐步舖成三角網格曲面,其優點可處理 非封閉曲面,並對雜訊有抵抗性,唯在網格曲面的建構時會遺失掉部分網 格,得作修補的動作。. 14.

(15) 除上所述之外,Mencl and Muller [12]的 graph-based approach,使用 Euclidean minimum spanning tree (EMST) 來作為包括模型表面的初始結 構,並以特徵判斷(feature recognition)的概念提高拓撲的正性。Chandrajit L. Bajaj, Fausto Bernardini 的 ball-pivoting algorithm(BPA) [13],避免掉火龍尼圖 的計算,使得原本所產生的大量資料的計算簡化,很適合用於大量點資料的 網格化。. 15.

(16) 第三章. 演算法介紹. 基於火龍尼圖所產生的網格化處理演算法則,會有計算之複雜度過 高、過多的不必要網格建立、模型外貌不夠完整或相像以及無法應用於製造 上…等問題。於是,為了解決這些問題,研究上多以增進計算的效益、網格 的精準、刪除多餘網格以及拓展後續的應用為研究目的。 本研究主要之處理在於利用鄰近點集合的限定來增進計算的效益、排除 多餘網格和維持模型之區域性特徵,但在鄰近點之建立時會秏掉時間;運用 保留火龍尼圖所有特性的演算法來進行網格化處理,則不會遺失掉任何一個 代表模型表面的網格,也不需要後續的縫補和補洞…等編修工作,但相對地 會產生較多不需要的網格;建立刪除多餘網格的法則來使得模型最為精簡且 可用於製造的網格模型。 以下將介紹和本研究相闗之演算法,Voronoi Filting Algorithm 和 Greedy DBAS Algorithm,前者主要取其刪除網格的概念,後者主要取其區域化成長 的建構方式。待探討完這二種演算法後,將對本研究所提出之演算法作一完 整介紹。. 3.1 Voronoi Filtering Algorithm N. Amenta[6]、[7]提出Voronoi filtering algorithm,目的在於移除狄龍尼 三角劃分中多餘的三角網格,下列將介紹其主要處理準則及演算法流程。. 在狄龍尼三角網格的建構過程中,會產生多餘網格以及交錯的網格,為 了刪除這些網格,保留所需的網格,在建構網格的過程中,加入極點的觀念。 而在極點的引入中,會遇到處理無窮遠處點的問題,其處理方式為:當點. 16.

(17) p ∈ S 且為凸殼點時,則p點的火龍尼格 Vo( p) 並非封閉的,會包含一個虛構. 的頂點,換句話說,這個網頂點位於無窮遠處。這無窮遠處的點在判斷極點 上會產生錯誤,於是凸殼點在判斷極點時與凹殼點情況不同,必須作些修 改。因此,先計算點資料的凸殼,找出凸殼點p相鄰的凸殼面(convex faces), 求出相鄰凸殼面朝外部的平均法線向量 N p 取代 pp + ,再由 pp + 的另一方向 求得極點 p − ,另一方向意指向量 pp + 與 pp − 的內積為負值,見圖3.1說明。. 1 2. 圖3.1 凸殼點的計算 pp + = N = ( N1 + N 2 ). 假設點集合 S ∈ R 3 有n個點,依照極點的判斷原則,求出每一點的極點, 極點之集合 P ∈ R 3 ,點資料與極點之集合 S ∪ P ,求出 S ∪ P 所構成的狄龍尼 三角劃分,當三角網格的任一頂點包含極點時,我們將這個網格刪除,最後 保留下來的三角網格,即為描述模型幾何與拓墣關係的網格。. 17.

(18) 詳細演算流程如下:. 1. 計算每一點的火龍尼圖。. 2. 對於每一點p, (a)如果p不位於點集合S的凸殼的上面,令p+為最遠的火龍尼頂點。 (b)如果p位於點集合S的凸殼的上面,令p+為無窮遠處的極點,方向為 pp + , pp + 等於交會於p處的二個殼面(hull faces)的法線向量平均值。. (c)找出 pp + 反方向上最遠的火龍尼頂點為 p − 。. 3. P記錄所有的極點,包含無窮遠處。計算S和P的狄龍尼三角劃分,取其交 集。. 4. (Voronoi filtering)僅保留由點資料所形成的三角網格。. 依照N. Amenta 所提的Voronoi filtering algorithm演算流程,刪除了大部 份不需要的網格,但是所建構出來的三角網格在拓墣關係上並不正確,因為 會產生三角網格交錯的現象,如圖3.2所示。其主要原因是因為極點分佈在 模型表面的兩邊,每一邊的極點都會與點資料建構出狄龍尼四面體(Delaunay tetrahedron),因此在表面上就會產生交錯的三角網格,如圖3.3所示,交錯的 網格無論在視覺上或是製程上皆是不可用的。. 18.

(19) 圖3.2 網格交錯. 圖3.3 發生網格交錯的情況. 再者,點資料表面會產生細薄的狄龍尼四面體,意指四個頂點都屬於點 資料,這樣的情況也會導致網格交錯。因此,Voronoi filtering algorithm所得 的網格,僅適合用於視覺上接受的模型,如模型展示、觀賞用,並無法實際 應用於工程問題上。. 19.

(20) 3.2 Greedy DBRG Algorithm Greedy DBRG Algorithm 由三個部分所組成:狄龍尼三角網格計算、網 格選取和區域成長操作(Delaunay computation、 initial triangle selection and region-growing operation) 。以下將介紹此演算法的流程:定義 P 為樣本點資 料,DT(P)為 P 的狄龍尼三角網格,S 為成長中網格面,δS 為 S 之邊界。 詳細演算流程如下:. Step 1:計算DT(P)。. Step 2:設定初始網格面S,. Step 2.1:自DT(P)選擇1個初始網格 t init 並加入到S。 Step 2.2:對每一個邊界 e ∈ ∂S ,計算其candidate triangle,ct(e)。 Step 2.3:對每一個ct(e), 如果 ct (e) ≠ NULL , 給予local smooth degree (LSD)到ct(e) 並且置入ct(e)到priority queue Q,由LSD計算而 得。.. Step 3:區域成長操作,. Step 3.1:自Q選擇擁有最高優先權的candidate triangle為credible candidate triangle cct並自Q移除。檢驗local geometry和cct在S裡 的拓撲。. 20.

(21) Step 3.2:如果cct在拓撲和幾何上是對的,就將cct加入S並更新∂S。若否 則再執行3.1。. Step 3.3:對每一個邊界 ne ∈ ∂S , 計算其candidate triangle ct(ne)和相對應 的LSD(ct(ne)),並且將ct(ne)和priority determined by LSD(ct(ne)) 置入Q。. Step 3.4:重覆3.1, 3.2和3.3直到Q為空集合。. 依據此演算法,利用區域成長的方式逐步生成網格化曲面,此演算法突 破封閉曲面的限制,由於考量local feature distance,其幾何拓撲形狀亦是準 確,特別在幾何輪廓較為複雜處。. 21.

(22) 3.3 點資料處理 源自於點資料自身所引起的誤差,以取樣密度的影嚮最為鉅大:取樣密 度均勻一致,會使計算後的誤差達到最小;取樣密度夠密集且足夠,則能完 整呈現模型原貌。本研究首先對點資料的分佈作分析(預設點資料之取樣密 度夠密集足以呈現模型原貌,因為這個變數源自於資料的取得,並非在點資 料的後續處理程序中),經由計算點資料的逐層計量(對於三維中的某一方 向,進行以最小間距值的切割分作許多層,並作逐層統計點的數量),取得 所在層區位置,再依據鄰近層區的間距,適當地予以權重係數標記並各自接 續網格化的步驟。在此強調一點,經由網格化演算法後的點資料數據會產生 誤差,尤其是對於一些以插值或近似值來計算網格頂點的演算法,誤差更 大,在本研究中將不以此類演算法來實作網格化曲面的重建。 為了達到以上的研究目的,得先介紹在實作中會用到的排序法,排序的 功能在於使得原本僅有三維坐標資料的點資料獲得簡單的資料結構,從中取 得分層處理的決定依據及網格化時所會有到的條件。點資料處理步驟如圖 3.4 所示,步驟說明及詳細的演算法亦介紹如下。. 22.

(23) 圖 3.4 點資料處理的步驟. 3.3.1 逐層排序 逐層排序的目的,在於依所定義之最小間距或範圍對資料作逐層分類。 將此排序法則應用在本研究中,即對原輸入之無序雜亂之點資料,依點資料 之任一座標值作為逐層的分類的依據。概論如下:以 Z 座標值作依據為例,. 23.

(24) 對於所有點資料集合 S,取得其 Z 坐標值之最小值和最大值,再自最小值到 最大值以一定間距或範圍,作逐層分類,即對 Z = Min( S , Z ) 到 Z = Max( S , Z ) 逐距分類,並將每一層所含概的點作一標記,命名為 Di = LayerSort ( Z i ) 。. 圖 3.5 逐層排序. 3.3.2 逐層排序後的分析與計算 在這一步驟的分析與計算,最主要是取得點資料位置及其鄰近點集合。. 3.3.2.1 點資料所在的層區位置 經由對每一軸向實施逐層排序後,每一個點會得到位於各方向上某一層 的標記。例如:i 點位於 X 方向上的第 x 層,Y 方向上的第 y 層,Z 方向上的 第 z 層,記為 label[i] = {x , y, z}。. 3.3.2.2 鄰近層區 依據點資料所位在的層區位置,向其附近搜尋有點資料存在的鄰近層, 依據密度分佈的均勻性與否,保留適當所需的層區,記上其係數。. 24.

(25) 例如:label[i] = {x, y, z} and weight[i] = {wx, wy, wz},表示對於點資料 i ,在 x ± wx , y ± w y , z ± wz ,這些範圍內的層區可以找到鄰近的點資料。換句話說,. 藉由 label[i],weight[i],可以限定出一個區域性邊界方塊(local bounding box),在這方塊內的點為其鄰近點集合。. 圖 3.6 方塊內的點集合為鄰近點集合. 3.3.2.3 鄰近點集合的凸殼計算 對點資料 i 及其鄰近點集合作凸殼計算,藉由凸殼的建立取得刪除殼內 網格的依據。由於前述步驟已取得點資料 i 與其鄰近點,點的數量已被大幅 度降低,故凸殼的計算採用增量法來計算,會較為簡易。. 25.

(26) 3.3.3 火龍尼圖 藉由計算火龍尼圖的演算法處理點資料 i 及其鄰近點集合,得到其火龍 尼頂點。依逐層排序後的點資料順序,逐點計算。於本研究中,以半平面交 的方式去求得火龍尼圖,主要取得交點與點資料的關係。此為網格化的初步 計算,包括所有的網格,得在進一步的進行刪除與過濾。 火龍尼圖的建構方式:紅色點 P 為計算點,黑色點為其鄰近點集合,黑 線為點 P 與鄰近點所形成之中垂線,中垂線相交之藍色點可能為火龍尼頂 點。. 圖 3.7 火龍尼圖的建構方式. 26.

(27) 3.3.4 刪除多餘網格 經由火龍尼頂點所建構出來的狄龍尼三角網格會有以下幾種需要過濾 刪除的情形:交錯的網格源自於相同火龍尼頂點、交錯的網格源自於不相同 的火龍尼頂點、殼內的網格、和重複的網格。交錯的網格源自於相同的火龍 尼頂點,是在矩形中的特有現象,為了避免此類網格,將剔除最遠端點所構 成的三角網形。這一部份的刪除工作,在火龍尼圖計算時已列入其中。如圖 3.2 所示:對於 O 點及鄰近點 A、B、C 所計算的火龍尼頂點,圖中藍點為 三角形 OAB、OAC、OBC 所共用的火龍尼頂點,藍線為 OA、OB、OC 之 中垂面。在此情況下,僅保留三角形 OAC。. 圖 3.8 源自相同火龍尼頂點的交錯網格 交錯的網格源自於不相同的火龍尼頂點:經由網格於空間中的關係來決 定刪除與否。依據每個三角網格之間的頂點關係,可分為下列三種情形,共 五種關係:. 27.

(28) 1. 共用點:同一點資料所計算出的火龍尼頂點,予以保留。如圖 3.9 所示:A、B 二個火龍尼頂點所關聯的三角網格,共用頂點 P,P 點 為原先計算出 A、B 二火龍尼頂點之計算點。. 圖 3.9 網格間的共用點關係 2. 共用邊,有以下三種關係 2.1 位於不同平面上:如圖 3.10 所示,A、B 二個火龍尼頂點所關 聯的三角網格,雖然共用其中的一邊,但卻位於不同平面上, 不會有任何的交錯現象,予以保留。. 圖 3.10 網格間的共用邊但不共面的關係. 28.

(29) 2.2 位於相同平面上且位於共用邊的相同側:如圖 3.11 所示,B、 C 二個火龍尼頂點所關聯的三角網格,共用其中的一邊,位於 相同平面上,且位於共用邊的相同側,必然發生網格交錯的現 象,予以刪除。. 圖 3.11 網格間的共用邊,位於同平面上,且位於共用邊的同一側 2.3 位於相同平面上但位於共用邊的不同側:如圖 3.12 所示,B、C 二個火龍尼頂點所關聯的三角網格,共用其中的一邊,位於相 同平面上,但位於共用邊的不同側,不會發生網格交錯的現象, 予以保留。. 圖 3.12 網格間的共用邊,位於同平面上,但位於共用邊的不同側. 29.

(30) 3. 共用面:即二個三角形的頂點皆相同,為重複的網格,予以刪除 重複的網格的過濾方法,於本演算法中,可利用逐點生成時,點與點之 關的關係來避免,也就是 i 點生成網格時,會刪除掉與 i-1 點有關的網格, 因為 i-1 點在生成網格時,已存在與 i 點關聯的網格。這是逐點區域式生成 網格方法的優點,若有則其過濾方法為重複性比對刪除。 殼內網格,當鄰近點集合接近最鄰近點集合時,並不會產生。若有,通 常是因為薄殼或尖銳處之取樣點資料不足以描述曲面造成,可以進行判定網 格重心是否位於殼內來過濾。本研究中,藉由鄰近點集合與其凸殼,來避免 這個狀況。紅色點為計算點,黑色點為其鄰近點集合,藍色點為火龍尼頂點, 計算其凸殼(黑色邊所構成之區域),則殼內網格(紅邊之三角形)之重心(粉紅 色)必落於凸殼內,予以刪除。. 圖 3.13 殼內網格的刪除方式. 30.

(31) 3.3.5 三角網格曲面 經過上述的步驟,被保留下來的三角網格即可構成模型的三角網格化曲 面。. 3.4 演算法. Step 1:將整筆點資料在X, Y, Z軸方向建立層區編號,並建立層區間的關係 (即內有點資料存在的最鄰近層區)。. Step 2:對於點資料裡的每一個點p,取得其所在層區編號和鄰近層區位置, 構成鄰近點集合。. Step 3:對點p及其鄰近點集合,計算火龍尼網格:. Step 3.1:點p與鄰近點集合中的每一個點,計算其中垂面。. Step 3.2:計算p位於中垂面所分割的二個空間中的所在空間。. Step 3.3:每二個中垂面與點p和相對應2點所形成的三點共面,求其交 點。. Step 3.4:在所有交點中,對於重複的交點,僅保留一個,其p到相對應2 點的距離和最短. Step 3.5:在餘下的交點中,保留和p點與中垂面所在位置關係相同者, 即藉由火龍尼網格的不等式表示,刪除不在範圍內的交點。. 31.

(32) Step 3.6:運用保留下來的交點反求其點資料,並與p合併,求其凸殼面。. Step 3.7:餘下交點為p點的火龍尼頂點,可生成狄龍尼三角網格。. Step 4:重組所有點所形成的三角網格,並刪除彼此交錯的網格。. Step 5:網格化模型。. 32.

(33) 第四章. 實驗結果與分析. 4.1 標準形狀之重建 由於點資料為無序性點資料,其真正的模型原貌是不可知的,故重建後 的模型無法與原本的模型作比對或其它分析。鑑於此點,演算法的可靠性得 先載入一筆已知的模型原貌的點資料來證明。. 針對一標準形狀,如:矩形,三角形或著以其它函數所產生之點資料亦 可,對其進行均勻取樣(0.1~0.5mm);取樣後的點資料載入本研究之演算法 則處理,並繪製其網格化模型。如圖 4.1,對標準形狀-矩形(共 155 個點資 料),作網格化處理,並與 Matlab 中引用 qhull 所繪製的網格化曲面作對照, 圖 4.2。. 圖 4.1 網格化模型實作. 33.

(34) 圖 4.2 應用 Matlab 產生網格化曲面. 在此僅作外觀上的對照,證明本研究所提出之處理程序可重建模型的網 格化曲面。由於所使用的演算法不同,網格生成的方式有異無法作進一步比 較。圖 4.1 為最原始的網格化結果,未經過任何網格過濾選取的動作,其中 包括交錯網格和殼內網格。圖 4.3 為刪除掉殼內網格後的結果。圖 4.4 為再 過濾掉交錯網格後的結果。由於資料結構以及演算法的不同,網格的生成方 式會有所差異。. 34.

(35) 圖 4.3 刪除掉殼內網格後的網格化曲面. 圖 4.4 再過濾掉交網格後的網格化曲面 35.

(36) 將上述網格化的重建結果作一整理,圖 4.1 為網格化曲面的初步結果, 包括許多殼內、重複和交錯網格,無法實用於製程上,但可供於視覺上的欣 賞;圖 4.3 為刪除掉殼內網和後的結果,是一個可呈現模型表面的網格化曲 面,但仍有許多重複及交錯的網格;圖 4.4 為再刪除掉表面上交錯及重複的 網格,為最精簡化的網格化曲面模型。表 4.1 列出每一個步驟後的網格數變 化情況。. 表 4.1 標準形狀之網格化曲面重建 圖例. 程序. 網格數(個). 圖 4.1. 網格化. 1136. 圖 4.3. 網格化+殼內網格刪除. 600. 圖 4.4. 網格化+殼內網格刪除+交錯網格刪除. 300. 36.

(37) 4.2 演算法之分析 在大量的點資料載入後,接續而來的是做一連串的計算,對於每一筆點 資料,將會產生數個方程式(正比於點資料的數量) ,在這些方程式中通常 僅與鄰近點所產生的方程式為有用的,故將點資料做一分類處理,會使得在 方程式的產生中,產生較少的方程式且省掉許多刪除比較的工作,如此則可 減少計算量,省下不少時間。如下列數學式子所示: if n > 0 and n = (n / m) + (n / m) + (n / m) + ... ← m個 then n y ≥ (n / m) y + (n / m) y + (n / m) y + ... when y ≥ 1. 鄰近點的搜尋,於本研究中以一個區塊包覆,相較於文獻中所提及的以 均勻方格搜尋而言[9],本研究裡的方法較為簡單,目的在於使網格化步驟時 的點資料處理量變小,並不會使得鄰近點集合得到最小集合,但是隨著取樣 密度之均勻性上升,會得到更佳的效果。. 就整體方法而言:本研究是從火龍尼頂點處著手網格化,不同於文獻中所 提及的二個方法(一是 Voronoi filtering algorithm,以火龍尼圖進行網格選 取;二是 Greedy DBRG Algorithm,以狄龍尼三角網格進行網格面生成) ,利 用頂點與鄰近點的關係,以及計算火龍尼圖的過程中得到的解集合的來源及 關聯,去除大量不必要的網格,保留所需的網格。. 37.

(38) 4.3 實作結果 在本章節中,將呈現對於不同形狀所取得的樣本點資料,套入本研究發 展出來的演算法,所獲得的實作結果。樣本點資料的類型,除了包括不同形 狀外,在取樣的方式亦有所差異。在實作結果的呈現中,可分為三個階段: 初始網格化、加以刪除殼內網格和再去除交錯網格,並將每個階段的網格數 列表整理。. 4.3.1 起司塊(152 筆點資料). 圖 4.5 所呈現的是一個取自於起司塊形狀的樣本點資料,底 10、高 5、 厚 6。在 X 和 Z 軸上進行等間距取樣,共 152 點,經過在電腦上實際運算所 得到的初始三角網格曲面。圖 4.6 為刪除掉多餘網格的三角網格曲面。. 圖 4.5 起司塊的初始三角網格曲面. 38.

(39) 圖 4.6 起司塊的三角網格曲面. 在網格化後,對於每一階段所計算出來的網格曲面,加以計算其網格 數,並列表整理,如表 4.2。. 表 4.2 起司塊的網格化曲面重建 起司塊. 程序. 圖 4.5. 網格化. 圖 4.6. 網格數(個). 1386. 網格化+殼內網格刪除. 600. 網格化+殼內網格刪除+交錯網格刪除. 290. 39.

(40) 4.3.2 薄盤(902 筆點資料) 圖 4.7 所呈現的是一個取自於薄盤形狀的樣本點資料,長 40、宽 10、 厚 1。進行等間距取樣,共 902 點,經過在電腦上實際運算所得到結果。. 圖 4.7 薄盤的三角網格曲面. 在網格化後,對於每一階段所計算出來的網格曲面,加以計算其網格 數,並列表整理,如表 4.3。. 40.

(41) 表 4.3 薄盤的網格化曲面重建 薄盤. 圖 4.7. 程序. 網格數(個). 網格化. 9800. 網格化+殼內網格刪除. 3600. 網格化+殼內網格刪除+交錯網格刪除. 1800. 4.3.3 金字塔(169 筆點資料) 圖 4.8 所呈現的是一個取自於金字塔形狀的樣本點資料,底部為 10*10、 高度 6。在 X 和 Y 軸上進行等間距取樣,共 169 點,經過在電腦上實際運算 所得到的初始三角網格曲面。圖 4.9 為刪除掉多餘網格的三角網格曲面。. 圖 4.8 金字塔的初始三角網格曲面. 41.

(42) 圖 4.9 金字塔的三角網格曲面. 在網格化後,對於每一階段所計算出來的網格曲面,加以計算其網格 數,並列表整理,如表 4.4。. 表 4.4 金字塔的網格化曲面重建 金字塔. 程序. 網格數(個). 圖 4.8. 網格化. 761. 網格化+殼內網格刪除. 588. 網格化+殼內網格刪除+交錯網格刪除. 521. 圖 4.9. 42.

(43) 4.3.4 球體(1296 筆點資料) 圖 4.10 所呈現的是一個取自於球體形狀的樣本點資料,半徑為 10。進 行 θ 角等間距取樣,共 1296 點,經過在電腦上實際運算所得到的初始三角 網格曲面。圖 4.11 為刪除掉多餘網格的三角網格曲面。. 圖 4.10 球體的初始三角網格曲面. 43.

(44) 圖 4.11 球體的三角網格曲面. 在網格化後,對於每一階段所計算出來的網格曲面,加以計算其網格 數,並列表整理,如表 4.5。. 表 4.5 球體的網格化曲面重建 球體. 程序. 網格數(個). 圖 4.10. 網格化. 9086. 網格化+殼內網格刪除. 4543. 網格化+殼內網格刪除+交錯網格刪除. 2974. 圖 4.11. 44.

(45) 4.3.5 網格的統計 就矩形且取樣間距固定時,其點資料與網格數呈正比,約為 2 倍。隨著 曲面複雜度的不同,所產生的殼內網格和交錯網格之數量也有所變化,其最 終之網格曲面的網格數亦有所異,約 2~N 倍。. 點資料量. 網格數. 602. 1200. 802. 1600. 2402. 4800. 表 4.6 網格數對應於點資料量,以矩形為例。. 45.

(46) 第五章. 結論. 本研究於無序性三維點資料之網格化曲面重建的處理上提出一套先作 點資料分析再進行網格化的處理程序,著重於降低點資料自身所引起的不良 影嚮,包括點資料在網格化過程中因密度分佈不均勻所產生的誤差以及複雜 的幾何形狀於網格化中所需要的額外處理。. 就本研究所計算出來的結果而言:對於交錯網格和重複網格,有極佳的 效果,所舖出來的網格化曲面不會有多餘的網格;鄰近點的搜尋除了可降低 計算之複雜度外,也避免掉許多殼內網格的產生;利用火龍尼頂點及解集合 的關聯,可得到許多判斷的條件。其缺點為殼內網格的刪除,必須要有清楚 的殼面範圍界定,對一筆不知為何的點資料,此等的計算有其難度且利用凸 殼的估算也不一定正確。. 相較於其它網格化的演算法(以整筆點資料作為處理對象),本研究在 網格化的過程中較為省時並且獲得較為正確的網格化模型,但卻在密度分析 和鄰近點集合建立上多耗時間。二者之權衡實是值得再作進一步的思考,於 未來可改善區域化處理上的演算法效益,並且加上更有效的鄰近點建構準 則。. 在逆向工程裡,點資料自工件上的掃描取得逐漸朝向智慧化,也就是依 據工件表面之複雜度,設定不同的掃描精度或著進行不同的掃描方式。於是 在點資料處理過程中,就會得到一筆密度分佈不均勻的點資料或著多段的點 資料組合,此等條件的點資料最適用於本研究所提出的區域化處理網格化程 序,使得在掃描上所投入的投資獲得最佳的效益。 46.

(47) 就無序性三維點資料之網格化曲面重建而言,最終是獲得以狄龍尼三角 網格所描述的網格化曲面,而研究領域所發展出來的演算法乃是以此為目 的。以點資料形成火龍尼網格,再形成狄龍尼網格為基本的研究流程,這三 者之間的計算,有許多值得改善的地方,如獲得最少網格量所形成的曲面, 可降低儲存的空間及減少作其它用途時的計算量;儲存網格資料時,具備有 資料的結構性,可使得在製程中需要作轉換時,有共同的準則可以遵守;當 資料不足以呈現模型原貌時或有雜訊時,如何在重建前獲得額外資訊及刪除 不必要的資訊…等,皆是值得再研究的地方。. 47.

(48) 參考文獻 [1] A. Okabe, B. Boots and K. Sugihara, “Spatial Tessellations Concepts and Applications of Voronoi Diagrams,” JOHN WILEY & SONS, 1992. [2] 周培德,計算幾何-算法分析與設計,清華大學出版社,1999。 [3] J.O’ Rourke, “Computational Geometry in C,” Cambridge, 2nded. Chap. 3, pp. 64-91. [4] M. Berg, M. Kreveld, M. Overmars and O. Schwarzkopf, “Computational Germerty Algorithms and Applications,” Springer, 1997. [5] B. Barber, D. P. Dobkin and H. Huhdanpaa, “The Quickhull Algorithm for Convex Hulls,” ACM Trans. Math. Softw, Volume 22, Issue 4, pages 469-483, 1996. [6] Amenta, N, Bern, M, and Kamvysselis, M., “A new Voronoi-based surface reconstruction algorithm,” SIGGRAPH ’98, pp. 415-421, 1998. [7] Amenta, N. and Bern M., “Surface reconstruction by Voronoi filtering,” Discrete and Computational Geometry, Vol. 22, pp. 481-504, 1999. [8] T. P. Fang and L. A. Piegl, “Delaunay Triangulation in Three Dimensions,” IEEE Computer Graphics and Applications, Volume 15, Issue 5, pages 62–69, 1995. [9] T. P. Fang and L. A. Piegl, “Delaunay Triangulation Using a Uniform Grid,” IEEE Computer Graphics and Applications, Volume 13, Issue 3, pages 36–47, 1993. [10] N.Ameta, S. Choi and R. K. Kolluri, “The Power Crust,” Porceedings sixth ACM Symposium on Solid modeling and applications, pages 241-266, 2001.. 48.

(49) [11] David, c.-S.,”A greedy Delaunay based surface reconstruction algorithm,” Research report, INRIA, 2002. [12] Mencl, E. and Muller, H., “Graph-based surface reconstruction using structures in scattered point set,” Proceedings of CGI’98 (Computer Graphics International), pp. 298-311, 1998. [13] Bernardini, F., Mittleman, J., Rushmeier, H., Silva, C., and Taubin, G., “The ball-pivoting algorithm for surface reconstruction,” IEEE Transactions on Visualization and Computer Graphics, Vol. 5, No. 4, pp.349-359,1999. [15] http://www.cgal.org/ [16] Edelsbrunner, and H., Guoy, D.,”An experimental study of sliver exudation,” Engin. With Computers, Vol. 18 pp. 229-240, 2002. [17] Aurenhammer, F., “Voronoi diagrams - a survey of a fundamental geometric data structure,” ACM Computing Surveys, Vol. 23, No. 3, pp. 345-405, 1991. [18] Berg, M.D., Kreveld, M.V., Overmars, M., and Schwarzkopf, O., “Computational Geometry, Algorithms and Applications,” Springer-Verlag, 1997. [19] N. Amenta and M. Bern, “Surface Reconstruction by Voronoi Filtering, ” Proceedings of the fourteenth annual ACM symposium on Computational geometry, pages 39-48, 1998. [20] Amenta, N., Bern, M., and Eppstein, D., “The crust and the beta-skeleton:combinatorial curve reconstruction,” Graphical Models and ImageProcessing, Vol. 60/2, No. 2, pp. 125-135, 1998. [21] C. L. Bajaj, F. Bernardini and G. Xu, “Reconstructing Surfaces and 49.

(50) Functions on Surfaces from Unorganized Three-Dimensional Data,” Springer Algorithmic, Volume 019, Issue 1, pages 243-261, 1997. [22]葉志雄碩士論文,“無順序性點資料網格化及應用",國立中正大學 機 械工程研究所,2001。 [23]郭川竹博士論文,“創新之組合方法於散點資料的模型重建與應用", 國立中正大學 機械工程學系,2004。. 50.

(51)

參考文獻

相關文件

Now given the volume fraction for the interface cell C i , we seek a reconstruction that mimics the sub-grid structure of the jump between 0 and 1 in the volume fraction

• It is a plus if you have background knowledge on computer vision, image processing and computer graphics.. • It is a plus if you have access to digital cameras

• Non-uniform space subdivision (for example, kd tree and octree) is better than uniform grid kd-tree and octree) is better than uniform grid if the scene is

• Detlef Ruprecht, Heinrich Muller, Image Warping with Scattered Data Interpolation, IEEE Computer Graphics and Applications, March 1995, pp37-43. • Seung-Yong Lee, Kyung-Yong

• Detlef Ruprecht, Heinrich Muller, Image Warping with Scattered Data Interpolation, IEEE Computer Graphics and Applications, March 1995 pp37-43. March 1995,

Soft Shadow Volume Algorithm Using

• Detlef Ruprecht, Heinrich Muller, Image Warping with Scattered Data Interpolation, IEEE Computer Graphics and Applications, March 1995 pp37-43. March 1995,

For a 4-connected plane triangulation G with at least four exterior vertices, the size of the grid can be reduced to (n/2 − 1) × (n/2) [13], [24], which is optimal in the sense