740 likes | 754 Vues
Topology Repair of Solid Models Using Skeletons. Qian-Yi Zhou, Tao Ju, Shi-Min Hu IEEE Trans. Vis. Comput. Graph., to appear. Outline. Introduction Related works Idea Algorithm Experiments Discussion. Outline. Introduction Related works Idea Algorithm Experiments Discussion.
E N D
Topology Repair of Solid Models Using Skeletons Qian-Yi Zhou, Tao Ju, Shi-Min Hu IEEE Trans. Vis. Comput. Graph., to appear
Outline • Introduction • Related works • Idea • Algorithm • Experiments • Discussion
Outline • Introduction • Related works • Idea • Algorithm • Experiments • Discussion
Introduction • Topology errors • Buddha • Natural genus : 6 • Model genus : 55 • Dragon • Natural genus : 1 • Model genus : 109 • Etc…
Introduction • Topology errors • A common practical problem • Exhibited in the form of small handles • A trouble in various applications • Mesh simplification • Parameterization • Physical computation • Etc…
Do not remove these handles Remove these handles …… …… Introduction • Our ultimate goal • Remove topology errors • Discriminative: differentiate between big and small handles • Robust: not introduce invalid geometry or topology • Efficient: handle huge models at high resolutions No self-intersection surface No new small handles Etc…
Introduction • Our method • Use skeletons to represent the topology of model. Remove small handles by detecting and modifying small cycles on skeleton. • Discriminative: utilizing a thickness measure on the skeleton • Robust: use volumetric approach to avoid invalid geometry and topology • Efficient: use an adaptive grid structure (OcTree)
Outline • Introduction • Related works • Idea • Algorithm • Experiments • Discussion
Related works • Skeletons [1-8] • Skeletonization methods based on voronoi diagrams and distance transforms • Skeletonization methods based on iterative thinning • Efficient, easy to implement, topology preserving • Identify and remove simple point at outmost layer • Limitation: current iterative thinning algorithms rely heavily on the use of a uniform grid
Related works • Topology-controlled surface reconstruction [9-12] • Is designed to reconstruct iso-surfaces from volumetric data with a known topology type • Effective in reconstructing topological spherical cortical surfaces from MRI data • Limitation: require a priori knowledge of the desired topology, difficult to handle models with a non-spherical topology
Related works • Mesh-based topology repair [13-16] • Identifying handles and performing surgeries directly on the polygonal mesh • Advantage: only involve local modification • Drawbacks: • The removal of existing handles directly on the mesh may introduce invalid geometry in the form of self-intersections • It is expensive to identify handles directly on a large mesh
Related works • Volumetric topology repair [17-22] • Nooruddin and Turk [17] use global morphological operations to remove small surface handles • May introduce additional handles • Wood et. al. [18] detects handle as a cycle in the Reeb graph of the iso-surface extracted using the Marching Cubes method • May introduce additional handles • Re-building of the Reeb graph is time consuming for models with lots of handles
Related works • Volumetric topology repair (cont.) [17-22] • Shattuck and Leahy [20] and Han el al. [21] use graph to represent the topology and remove handles by modifying graph • The graph representations are complicated • Restricted to uniform grid • Szymczak and Vanderhyde [22] introduced a multi-resolution topology-preserving carving operations • No direct means to measure the size of handles • Operation is limited to filling tunnel-like handles
Related works • In sum, to the best of our knowledge, none of the current topology repair methods satisfy all of our three requirements: • Discriminative • Robust • Efficient
Outline • Introduction • Related works • Idea • Algorithm • Experiments • Discussion
Idea • To avoid introducing invalid geometry, we design an algorithm on a volume Object: interior of the model Background: exterior of the model, complement of object
Idea • Thin the object into a skeleton that preserves the topology of the object Key: detect and remove simple pairs to achieve a topology-preserving thinning process
Idea • Remove cycles in the skeleton by computing the spanning tree of the graph defined by the skeleton Every edge on the skeleton has a value measure its thickness, so the maximum spanning tree breaks cycles at the thinnest parts
Idea • Grow the modified skeleton to form a new object that preserves the topology of the skeleton Do the inverse operation to thinning, keeps topology during growing
Idea • Review of pipeline • Three major steps: • Thin • Modify graph • Grow • a cycle in skeleton (topologically) a handle in volume
Idea • Review of pipeline • Discriminative: linked with a thickness measure, the maximum spanning tree will break at the thinnest part • Robust: it is guaranteed to cut exactly one surface handle without introducing additional handles • Efficient: the algorithm is designed on an adaptive grid structure (OcTree)
Idea • Same pipeline can be applied to both object and background • For object break a handle • For background fill a handle
Outline • Introduction • Related works • Idea • Algorithm • Experiments • Discussion
Algorithm • Data structure • Extended Signed OcTree (ESO) • Cellular complexes • Algorithm • Constructing and contouring for ESO • Thinning • Measuring handles • Growing • Supplement
Data structure • Minimal elements • To avoid ambiguity, we only consider elements not containing any smaller elements of the same dimension The two blue edges are minimal edges, as they do not contain any smaller edges The red edge is NOT a minimal edge, as it contains two blue edges
Data structure • Minimal elements • To avoid ambiguity, we only consider elements not containing any smaller elements of the same dimension • Extended Signed OcTree (ESO) • For each minimal element in the OcTree, we give it a +/- sign to represent if it belongs to the object • Much similar to Signed OcTree, but besides points, each edge/face/cell has a sign too
Data structure • 3D Cellular complexes [28] • A useful representation to represent topology Consist of points (0-D), edges (1-D), faces (2-D) and cells (3-D) • Every i-D element is enclosed with (i-1)-D elements • each edge connects two points • each face is enclosed by a ring of edges • each cell is enclosed by an envelop of faces • In this case, the ESO form a cellular complex
,the dual of exterior, is a 2D cellular complex is the background Data structure • Cellular complexes and ESO • The interior is a cellular complex - object • The dual of exterior is a cellular complex – background • For completeness, the outside of the root node of the primal octree is represented as a cell element with infinite size, whose dualis a point at infinity V, including face/edge/point, is a 2D cellular complex V is the object
- Number of points - Number of edges - Number of faces - Number of cells Data structure • Use cellular complex to count genus • c[ ] and c[ ] are the number of disconnected components • is the Euler characteristic number
Data structure • Use cellular complex to count genus (cont.) • Examples (in 3D) : 0 cells, 3 faces, 10 edges, 8 points, c=1 : 0 cells, 0 faces, 0 edges, 1 points, c=1
Data structure • Use cellular complex to count genus (cont.) • Examples (in 3D) : 0 cells, 1 faces, 10 edges, 8 points, c=1 : 0 cells, 0 faces, 2 edges, 1 points, c=1
Algorithm • Construct ESO • Start from a signed OcTree • Assign positive signs (inside) to edges, faces and cells that contain only positive points • Remove small disconnected components for both object and background, i.e. let
Algorithm • Extract iso-surface from ESO (contouring) • Extend the Dual Contouring algorithm [25] • Overlay object and background together to form a composite grid • Create one vertex for each pair of a positive point and a negative cell that contains the point • For each pair of a positive N-D element and a negative (N+1)-D containing element, create one polygon connecting vertices
Algorithm • Review of pipeline • Three major steps: • Thin • Modify graph • Grow • a cycle in skeleton (topologically) a handle in volume
Algorithm • Thinning • Iteratively detect and remove simple pairs at the outmost layer • Simple pairs • A N-D element contained in exactly one (N+1)-D element • Removal of a simple pair does NOT change the topology of object • Iteratively peel off the elements to guarantee skeleton in the center of object Edge-face simple pair Point-edge simple pair
Algorithm • Thinning (cont.) • An example of a sequence of simple removals - thins a square into a point A edge-face simple pair removal A point-edge simple pair removal A point-edge simple pair removal A point-edge simple pair removal
Algorithm • Skeleton cycle removal • Consider isolated edges (not contained by skeleton face or cell) • Assign each edge a weight measuring thickness - form a weighted graph • Build maximum spanning tree • Only remove isolated edges not in the spanning tree, with a weight < given threshold
Algorithm • Skeleton cycle removal (cont.) • To introduce thickness measurement, we define generating set • Generating set W[e]: • Formally, W[e]∈V is defined as the minimum set so that V\W[e] is a cellular complex, and thinning V\W[e] yields Skeleton\{e} • Intuitively, W[e] is a solid “slice” of the object, such that removing the edge e from the skeleton is the same as removing the slice W[e] from the object and applying thinning
: the set of all (N+1)-D elements containing Whenever is in the set, all elements containing are in the set : the element removed together with is a simple pair or is a simple pair Algorithm • Skeleton cycle removal (cont.) • Generating set W[e] (cont.) • Recursive construction method: guarantee V\{W[e]} is still a cellular complex Skeleton\e (topologically) V\W[e] It is the minimum set satisfying all conditions Only necessary elements are involved
Algorithm • Skeleton cycle removal (cont.) • Generating set W[e] (cont.) • An example of generating set
Algorithm • Skeleton cycle removal (cont.) • Thickness measurement • Intuitively, it’s the size of generating set, represented as the area of ‘cutting slice’ • Recursive definition: A[e] denotes the area of the dual face of e It evaluates to zero if e is not a edge
Algorithm • Growing • Notice: Skeleton\e V\W[e] • We simply subtract the generating sets associated with edges in E from the original object V • i.e. compute V’ by following formula:
Algorithm • Supplement • Cutting and filling handles • The pipeline can be applied to either object or background • For convenience, we let use specify two thresholds, respectively for cutting and filling • We first cut rings by applying pipeline to object, then fill rings by applying pipeline to background Tips: by using our thickness measurement, each cutting and filling always takes place at the thinnest location
Algorithm • Supplement (cont.) • Implementation • Thinning: in each iterations, we make two traversals in [25], first check if an element is simple, second remove marked element • Handle removal: we record the simple pointer for every removed element and update generating set size for edges during each step in thinning • Growing: simply trace back from the removed skeleton edge, using the simple pointer information
Algorithm • Supplement (cont.) • Robust: guarantee to remove handles • Review: how do we control genus • Thinning: a topology preserving approach • Skeleton cycle removal: m isolated edge removed • Growing: a topology preserving approach
Outline • Introduction • Related works • Idea • Algorithm • Experiments • Discussion
Experiments • A tree model: genus 18 -> genus 0 r1 r2 h1 Automatically detects the thinnest/narrowest part Color: red – small weight blue – large weight Supports both cutting and filling h2
Experiments • Spider web: genus 75 -> genus 17 • Discriminative: remove all the topology noises while preserving the 17 natural handles
Experiments • Some interesting observations • Buddha (OcTree depth 10, i.e. 1024 ) • Though often regarded as a natural genus-6 model, Buddha has 2 more obvious handles at the stalk of the flower • We show a repaired genus-6 Buddha, close-ups of two handles mentioned, and a genus-0 Buddha • We can also control the threshold to get a genus-8 Buddha 3
Experiments A A B B Genus-6 Buddha Genus-0 Buddha