lecture 4 : Isosurface Extraction

1 / 49

# lecture 4 : Isosurface Extraction - PowerPoint PPT Presentation

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. &lt; ocean temperature function &gt;.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about ' lecture 4 : Isosurface Extraction' - vida

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

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

### Salient Contour Extraction Using Contour Tee

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

<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