Presentation is loading. Please wait.

Presentation is loading. Please wait.

lecture 4 : Isosurface Extraction

Similar presentations


Presentation on theme: "lecture 4 : Isosurface Extraction"— Presentation transcript:

1 lecture 4 : Isosurface Extraction

2 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) >

3 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

4 Marching Cubes [Lorensen and Cline, ACM SIGGRAPH ’87] Goal
Input : 2D/3D/4D imaging data (scalar) Interactive parameter : isovalue selection Output : Isosurface triangulation isosurfacing

5 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 0.8 0.4 0.3 1.0 0.8 0.4 0.3 1.0 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.6 0.4 0.8 0.4 0.6 0.4 0.8 0.4 0.6 0.4 0.8 0.4 0.4 0.3 0.35 0.25 0.4 0.3 0.35 0.25 0.4 0.3 0.35 0.25 ( 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

6 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

7 Surface Intersection in a Cube
There are 2^2=256 ways the surface may intersect the cube Triangulate each case

8 Patterns Note: using the symmetries reduces those 256 cases to 15 patterns

9 Marching Cubes table : 15 Cases
Using symmetries reduces 256 cases into 15 cases

10 Surface intersection in a cube
Create an index for each case: Interpolate surface intersection along each edge

11 Calculating normals Calculate normal for each cube vertex:
Interpolate the normals at the vertices of the triangles:

12 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

13 Ambiguity Problem

14 Trilinear Function Trilinear Function Saddle point Face saddle
Body saddle

15 Trilinear Isosurface Topology

16 Triangulation

17 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

18 Interval Tree for Isocontouring
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?

19 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

20 Seed Set Isocontouring 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.

21 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 >

22 Seed Set Generation (k seeds from n cells)
Domain Sweep Responsibility Propagation Range Sweep Time O(n) O(n) O(n log n) Space O(k) O(k) O(n) k = ? ? 2 kmin 238 seed cells 0.01 seconds 59 seed cells 1.02 seconds Test 177 seed cells 0.05 seconds

23 Seed Set Computation using Contour Tree
Contour Tree generates minimal seed set generation

24 Contour Tree Definition : a tree with (V,E) h(x,y) y x 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

25 Contour Tree

26 2D Example Height map of Vancouver

27 Contour Tree

28 Join Tree

29 Split Tree

30 Merge to Contour Tree Merge Join Tree and Split Tree to construct Contour Tree [Carr et al. 2010] + =

31 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

32 Contour Tree Drawing and UI

33 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 < propagation > < performance of our hybrid parallel algorithm >

34 Hybrid Parallel Contour Extraction

35 Results

36 Interactive Interface with Quantitative Information
Geometric Property as saliency level Gradient(color) + Area (thickness)

37 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.

38 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

39 Isovalue Selection The contour spectrum allows the development of an adaptive ability to separate interesting isovalues from the others.

40 Contour Spectrum (CT scan of an engine)
The contour spectrum allows the development of an adaptive ability to separate interesting isovalues from the others.

41 Salient Contour Extraction Using Contour Tee

42 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)

43 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 mass (tumor) dense tissue dense tissue

44 3D Examples <Head MRI> <isocontour>
<ventricle contour> <mass segmentation from breast MRI>

45 Past Contour Tree Approach
Represents topological changes of contours according to isovalue change. Property structure (topology) of level sets contour extraction seed set generation for fast extraction

46 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

47 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 < propagation > < performance of our hybrid parallel algorithm >

48 Interactive Interface with Quantitative Information
Geometric Property as saliency level Gradient(color) + Area (thickness)

49 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.


Download ppt "lecture 4 : Isosurface Extraction"

Similar presentations


Ads by Google