lecture 4 : Isosurface Extraction

Slides:



Advertisements
Similar presentations
Interactive Point-based Isosurface Exploration and High-quality Rendering Haitao Zhang Arie Kaufman Stony Brook University V I SV I S
Advertisements

Reconstruction from Voxels (GATE-540)
Advanced Iso-Surfacing Algorithms Jian Huang, CS594, Spring 2002 This set of slides are developed and used by Prof. Han-Wei Shen at Ohio State University.
GATE Reconstruction from Point Cloud (GATE-540) Dr.Çağatay ÜNDEĞER Instructor Middle East Technical University, GameTechnologies & General Manager.
Volume Graphics (lecture 5 : Contour Tree / Contour Spectrum) lecture notes acknowledgement : J. Snoeyink, C. Bajaj Bong-Soo Sohn School of Computer Science.
Isocontour/surface Extractions 2D Isocontour 3D Isosurface.
Electron denisty, isosurfaces and contour trees Jack Snoeyink GCMB’07.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore.
CDS 301 Fall, 2009 Scalar Visualization Chap. 5 September 24, 2009 Jie Zhang Copyright ©
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Information Visualization.
Surface Reconstruction from 3D Volume Data. Problem Definition Construct polyhedral surfaces from regularly-sampled 3D digital volumes.
Octree-Based Decimation of Marching Cubes Surface (1996) Raj Shekhar Elias Fayyad Roni Yagel J. Fredrick Cornhill.
Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007.
Tetra-Cubes: An algorithm to generate 3D isosurfaces based upon tetrahedra BERNARDO PIQUET CARNEIRO CLAUDIO T. SILVA ARIE E. KAUFMAN Department of Computer.
reconstruction process, RANSAC, primitive shapes, alpha-shapes
Accelerating Marching Cubes with Graphics Hardware Gunnar Johansson, Linköping University Hamish Carr, University College Dublin.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
Fast Isocontouring For Improved Interactivity Chandrajit L. Bajaj Valerio Pascucci Daniel R. Schikore.
Fluid Surface Rendering in CUDA Andrei Monteiro Marcelo Gattass Assignment 4 June 2010.
ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg
Marching Cubes A High Resolution 3D Surface Construction Algorithm.
Continuous Scatter Plot Paper by: Sven Bachthaler and Daniel Weiskopf Presented by: Ayan Biswas.
Hidden Surface Removal
Contour Trees CSE Han-Wei Shen. Level Sets Level set: Level sets is also called Isolines for n=2, isosurface for n=3, or isocontours in general.
Isosurface Extractions 2D Isocontour 3D Isosurface.
Morphological Analysis of 3D Scalar Fields based on Morse Theory and Discrete Distortion Mohammed Mostefa Mesmoudi Leila De Floriani Paola Magillo Dept.
Marching Cubes: A High Resolution 3D Surface Construction Algorithm
Volumetric and Blobby Objects Lecture 8 (Modelling)
Lecture 4 : Isosurface Extraction (Advanced Topics)
Volume Graphics (graduate course) Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University.
lecture 2 : Visualization Basics
Scalar Visualization Chap. 5 September 23, 2008 Jie Zhang Copyright ©
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Dynamic Meshing Using Adaptively Sampled Distance Fields
Lecture 3 : Direct Volume Rendering Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University Acknowledgement : Han-Wei Shen Lecture.
Scientific Visualization Module 6 Volumetric Algorithms (adapted by S.V. Moore – slides deleted, modified, and added) prof. dr. Alexandru (Alex) Telea.
University of Coimbra Reconstruction of Voxels from Sensor Data Ricardo Martins Coimbra, 19 th January 2010 Doctoral Programme in Electrical Engineering.
Surface Modeling Visualization using BrainVISA Bill Rogers UTHSCSA – Research Imaging Center.
2D/3D Shape Manipulation, 3D Printing Shape Representations Slides from Olga Sorkine February 20, 2013 CS 6501.
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.
Visible-Surface Detection Jehee Lee Seoul National University.
Segmentation & Modeling ImagesSegmented Images Models.
3D Volume Visualization. Volume Graphics  Maintains a 3D image representation that is close to the underlying fully-3D object (but discrete)  경계표면 (Boundary.
Reconstruction of Solid Models from Oriented Point Sets Misha Kazhdan Johns Hopkins University.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Daniele D’Agostino CNR - IMATI - Sezione di Genova
Hank Childs, University of Oregon Isosurfacing (Part 3)
CHAPTER 5 CONTOURING. 5.3 CONTOURING Fig 5.7. Relationship between color banding and contouring Contour line (isoline): the same scalar value, or isovalue.
Riccardo Fellegara University of Genova Genova, Italy
Lecture 3 : Isosurface Extraction. Isosurface Definition  Isosurface (i.e. Level Set ) :  Constant density surface from a 3D array of data  C(w) =
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2015.
CSE554Contouring IISlide 1 CSE 554 Lecture 3: Contouring II Fall 2011.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
Advisor : Ku-Yaw Chang Speaker : Ren-Li Shen /6/12.
Volume Graphics (graduate course) Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University.
Solid Modeling Dr. Scott Schaefer.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
October 2005 Center for Computational Visualization Institute of Computational and Engineering Sciences Department of Computer Sciences University of.
Computational Visualization
CSE 554 Lecture 5: Contouring (faster)
Isosurface Extractions (II)
Salient Contour Extraction Using Contour Tee
3D Object Representations
Query Processing in Databases Dr. M. Gavrilova
CSc4730/6730 Scientific Visualization
Lecture 3 : Isosurface Extraction
Volume Graphics (lecture 4 : Isosurface Extraction)
Delaunay Triangulation & Application
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 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

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

Ambiguity Problem

Trilinear Function Trilinear Function Saddle point Face saddle Body saddle

Trilinear Isosurface Topology

Triangulation

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

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

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

Contour Tree

2D Example Height map of Vancouver

Contour Tree

Join Tree

Split Tree

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

Contour Tree Drawing and UI

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 >

Hybrid Parallel Contour Extraction

Results

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.

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

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

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

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

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.