- By
**vida** - Follow User

- 84 Views
- Uploaded on

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

**An Image/Link below is provided (as is) to download presentation**

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

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

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

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

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

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.

Download Presentation

Connecting to Server..