500 likes | 649 Views
lecture 4 : Isosurface Extraction. Isosurface Definition. Isosurface (i.e. Level Set ) : Constant density surface from a 3D array of data C(w) = { x | F(x) - w = 0 } ( w : isovalue , F(x) : real-valued function , usually 3D volume data ). isosurfacing. < ocean temperature function >.
E N D
Isosurface Definition • Isosurface (i.e. Level Set ) : • Constant density surface from a 3D array of data • C(w) = { x | F(x) - w = 0 } • ( w : isovalue , F(x) : real-valued function , usually 3D volume data ) isosurfacing < ocean temperature function > < two isosurfaces (blue,yellow) >
Isosurface Triangulation • Idea: • create a triangular mesh that will approximate the iso-surface • calculate the normals to the surface at each vertex of the triangle • Algorithm: • locate the surface in a cube of eight pixels • calculate vertices/normals and connectivity • march to the next cube
Marching Cubes • [Lorensen and Cline, ACM SIGGRAPH ’87] • Goal • Input : 2D/3D/4D imaging data (scalar) • Interactive parameter : isovalue selection • Output : Isosurface triangulation isosurfacing
Isosurface Extraction 2. Isocontouring [Lorensen and Cline87,…] • Definition of isosurface C(w) of a scalar field F(x) • C(w)={x|F(x)-w=0} , ( w is isovalue and x is domain R3 ) 1.0 1.0 1.0 0.8 0.4 0.3 0.8 0.4 0.3 0.8 0.4 0.3 0.7 0.6 0.75 0.4 0.7 0.6 0.75 0.4 0.7 0.6 0.75 0.4 0.4 0.4 0.4 0.6 0.4 0.8 0.6 0.4 0.8 0.6 0.4 0.8 0.4 0.4 0.4 0.3 0.25 0.3 0.25 0.3 0.25 0.35 0.35 0.35 ( Isocontour in 2D function: isovalue=0.5 ) • Marching Cubes for Isosurface Extraction • Dividing the volume into a set of cubes • For each cubes, triangulate it based on the 2^8(reduced to 15) cases
Surface Intersection in a Cube • assign ZERO to vertex outside the surface • assign ONE to vertex inside the surface • Note: • Surface intersects those cube edges where one vertex is outside and the other inside the surface
Surface Intersection in a Cube • There are 2^2=256 ways the surface may intersect the cube • Triangulate each case
Patterns • Note: • using the symmetries reduces those 256 cases to 15 patterns
Marching Cubes table : 15 Cases • Using symmetries reduces 256 cases into 15 cases
Surface intersection in a cube • Create an index for each case: • Interpolate surface intersection along each edge
Calculating normals • Calculate normal for each cube vertex: • Interpolate the normals at the vertices of the triangles:
Summary • Read four slices into memory • Create a cube from four neighbors on one slice and four neighbors on the next slice • Calculate an index for the cube • Look up the list of edges from a pre-created table • Find the surface intersection via linear interpolation • Calculate a unit normal at each cube vertex and interpolate a normal to each triangle vertex • Output the triangle vertices and vertex normals
Trilinear Function • Trilinear Function • Saddle point • Face saddle • Body saddle
Acceleration Techniques • Octree • Interval Tree • Seed Set and Contour Propagation • How to handle large isosurfaces? • Simplification • Compression • Parallel Extraction & Rendering • How to choose isovalue? • Contour Spectrum
Interval Tree for Isocontouring • Interval Tree • An ordered data structure that holds intervals • Allows us to efficiently find all intervals that overlap with any given point (value) or interval • Time Complexity of query processing : O (m + log n) • Output-sensitive • n : total # of intervals • m : # of intervals that overlap (output) • Time Complexity of tree construction : O (nlog n) • How can we apply interval tree to efficient isocontouring?
Seed Set for Isocontouring • Main Idea • Visit the only cells that intersect with isocontour • Interval tree for entire data can be too large • Use the idea of contour propagation • Seed Set • A set of cells intersecting every connected component of every isocontour • Seed Set Generation : refer to Bajaj96 paper
Seed Set Isocontouring Algorithm • Algorithm • Preprocessing • Generate a seed set S from volume data • Construct interval tree of seed set S • Online processing • Given a query isovalue w, • Search for all seed cells that intersect with isocontour with isovalue w by traversing interval tree • Perform contour propagation from the seed cells that were found from interval tree.
Contour Propagation • Given an initial cell which contains the surface of interest • The remainder of the surface can be efficiently traced performing a breadth-first search in the graph of cell adjacencies < Contour Propagation >
Seed Set Generation Seed SetGeneration (k seeds from n cells) • 238 seed cells • 0.01 seconds Responsibility Propagation Range Sweep Domain Sweep O(n) O(n) O(n log n) Time O(k) O(n) O(k) Space ? 2 kmin ? k = 59 seed cells 1.02 seconds 177 seed cells 0.05 seconds Test
Seed Set Computation using Contour Tree Contour Tree generates minimal seed set generation
Contour Tree • Definition : a tree with (V,E) • Vertex ‘V’ • Critical Points(CP) (points where contour topology changes , gradient vanishes) • Edge ‘E’: • connecting CP where an infinite contour class is created and CP where the infinite contour class is destroyed. • contour class : maximal set of continuous contours which don’t contain critical points h(x,y) y x
2D Example • Height map of Vancouver
Merge to Contour Tree • Merge Join Tree and Split Tree to construct Contour Tree [Carr et al. 2010] + =
Properties • Display of Level Sets Topology (Structural Information) • Merge , Split , Create , Disappear , Genus Change (Betti number change) • Minimal Seed Set Generation • Contour Segmentation • A point on any edge of CT corresponds to one contour component
Hybrid Parallel Contour Extraction • Different from isocontour extraction • Divide contour extraction process into • Propagation • Iterative algorithm -> hard to optimize using GPU • multi-threaded algorithm executed in multi-core CPU • Triangulation • CUDA implementation executed in many-core GPU < performance of our hybrid parallel algorithm > < propagation >
Interactive Interface with Quantitative Information • Geometric Property as saliency level • Gradient(color) + Area (thickness)
Segmentation of Regions of Interest • Mass Segmentation from Mammograms • Minimum Nesting Depth (MND) • Measured for each node of contour tree • MND = min (depth from current node to terminal node of every subtree) • High MND contour represents the boundaries of distinctive regions with abrupt intensity changes retaining the same topology • Successfully applied to mass detection from 400 mammograms in USF database.
Salient Isosurface Extraction • How to select isovalue? • Contour Spectrum • [ Bajaj et al. VIS97 ] • shows quantitative properties (area, volume, gradient) for all isovalues • allows semi-automatic isovalue selection
Isovalue Selection • The contour spectrum allows the development of an adaptive ability to separate interesting isovalues from the others.
Contour Spectrum (CT scan of an engine) • The contour spectrum allows the development of an adaptive ability to separate interesting isovalues from the others.
Motivation • Infinitely many isocontours defined in an image • An isocontour may have many contours • Contour • Connected component of an isocontour • Often represents an independent structure Ex) mammogram (X-ray exam of female breast)
Motivation • Salient Contour Extraction • Useful for segmentation, analysis and visualization of regions of interest • Can be applied to CAD(Computer Aided Diagnosis) for detecting suspicious regions breast boundary pectoral muscle dense tissue mass (tumor) dense tissue
3D Examples <Head MRI> <isocontour> <ventricle contour> <mass segmentation from breast MRI>
Past Contour Tree Approach • Contour Tree • Represents topological changes of contours according to isovalue change. • Property • structure (topology) of level sets • contour extraction • seed set generation for fast extraction
Our Approach • Interactive Contour Tree Interface • Performance Improvement of Extraction Process • Utilizing Quantitative Information • Development of Saliency Metric • MND(Minimum Nesting Depth) • Apply to medical images
Hybrid Parallel Contour Extraction • Different from isocontour extraction • Divide contour extraction process into • Propagation • Iterative algorithm -> hard to optimize using GPU • multi-threaded algorithm executed in multi-core CPU • Triangulation • CUDA implementation executed in many-core GPU < performance of our hybrid parallel algorithm > < propagation >
Interactive Interface with Quantitative Information • Geometric Property as saliency level • Gradient(color) + Area (thickness)
Saliency Metric • Minimum Nesting Depth (MND) • Measured for each node of contour tree • MND = min (depth from current node to terminal node of every subtree) • High MND contour represents the boundaries of distinctive regions with abrupt intensity changes retaining the same topology • Successfully applied to mass detection from 400 mammograms in USF database.