Lecture 4 isosurface extraction
Download
1 / 49

lecture 4 : Isosurface Extraction - PowerPoint PPT Presentation


  • 84 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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 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
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
Marching Cubes

  • [Lorensen and Cline, ACM SIGGRAPH ’87]

  • Goal

    • Input : 2D/3D/4D imaging data (scalar)

    • Interactive parameter : isovalue selection

    • Output : Isosurface triangulation

isosurfacing


Lecture 4 isosurface extraction

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
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 cube1
Surface Intersection in a Cube

  • There are 2^2=256 ways the surface may intersect the cube

  • Triangulate each case


Patterns
Patterns

  • Note:

    • using the symmetries reduces those 256 cases to 15 patterns


Marching cubes table 15 cases
Marching Cubes table : 15 Cases

  • Using symmetries reduces 256 cases into 15 cases


Surface intersection in a cube2
Surface intersection in a cube

  • Create an index for each case:

  • Interpolate surface intersection along each edge


Calculating normals
Calculating normals

  • Calculate normal for each cube vertex:

  • Interpolate the normals at

    the vertices of the triangles:


Summary
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

  • Trilinear Function

  • Saddle point

    • Face saddle

    • Body saddle




Acceleration techniques
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 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
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
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
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 k seeds from n cells

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
Seed Set Computation using Contour Tree

Contour Tree generates

minimal seed set generation


Contour tree
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
2D Example

  • Height map of Vancouver





Merge to contour tree
Merge to Contour Tree

  • Merge Join Tree and Split Tree to construct Contour Tree [Carr et al. 2010]

+

=


Properties
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
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
Interactive Interface with Quantitative Information

  • Geometric Property as saliency level

    • Gradient(color) + Area (thickness)


Segmentation of regions of interest
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
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
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
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

Salient Contour Extraction Using Contour Tee


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


Motivation1
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
3D Examples

<Head MRI>

<isocontour>

<ventricle contour>

<mass segmentation from breast MRI>


Past contour tree approach
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
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 extraction2
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 information1
Interactive Interface with Quantitative Information

  • Geometric Property as saliency level

    • Gradient(color) + Area (thickness)


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