310 likes | 469 Views
Interactive GPU-based Segmentation Of Large Volume Data With Level Sets. Veronika Solteszova (presenting Oliver Klar’s master thesis) VRVis Research Center. www.vrvis.at. Overview. Introduction Level set method Math and theoretical background GPU Data structure for large volumes
E N D
Interactive GPU-based Segmentation Of Large Volume Data With Level Sets Veronika Solteszova (presenting Oliver Klar’s master thesis) VRVis Research Center www.vrvis.at
Overview • Introduction • Level set method • Math and theoretical background • GPU Data structure for large volumes • Solution on GPU • Rendering and user interaction • Results and future work Interactive GPU-based Segmentation with Level Sets
Introduction • Level set main idea • Deformable implicit surface • Evolve simple surface intotarget object shape • Short demo Interactive GPU-based Segmentation with Level Sets
Introduction • Problem statement & motivation • Segmentation of large volumetric data is expensive • GPU allows direct rendering • Overcome GPU memory restrictions Interactive GPU-based Segmentation with Level Sets
Overview • Introduction • Level set Method • Math and theoretical background • GPU Data structure for large volumes • Solution on GPU • Rendering and user interaction • Results and future work Interactive GPU-based Segmentation with Level Sets
LS Method: Math • A level set definition • Curve represented as a set of roots of an implicit function • Contour lines = level sets • C = 0.2 ↔ 0.2 level set • Contours, iso-surfaces also level sets Φ > 0.2 Φ > 0.2 Φ < 0.2 Φ = 0.2 Interactive GPU-based Segmentation with Level Sets
LS Method: Math (cont.) • Advantages of such curve representation • No problems with topology changes • Gradient & curvature computation easy • Evolution described by partial differential equation (PDE) • In this approach • Φ: f(x, y, z, t) = 0.5 • Embedding 2D contour (surface) into 3D space, 4th dim = time • Discretization: values of Φ in a 3D texture • Evolution • 3D texture changes → level set moves Interactive GPU-based Segmentation with Level Sets
LS Method (cont.) • Convection partial differential equation (PDE), solved for each point of the grid (discrete volume data) • . • ∆t → time step, • F → gradient magnitude • F → speed function, determines deformation Interactive GPU-based Segmentation with Level Sets
LS Method (cont.) • Speed function F: • Density (D) and mean curvature (κ) influence • Only curvature (κ) driven • Only density factor (D) driven t α 0.3 1.0 0.0 Interactive GPU-based Segmentation with Level Sets
LS Method (cont.) • Density factor: • T: target density • I : volume density Interactive GPU-based Segmentation with Level Sets
Overview • Introduction • Level set Method • Math and theoretical background • GPU Data structure for large volumes • Solution on GPU • Rendering and user interaction • Results and future work Interactive GPU-based Segmentation with Level Sets
GPU Data Structure • Level set calculation only where necessary • Avoid GPU memory restrictions • Volume subdivision into bricks • Neighbors in cache≠ Neighbors in virtual volume • Bricks packed into cache texture Interactive GPU-based Segmentation with Level Sets
Cache Layout (cont.) • Volume subdivision into bricks (34x34x34) • Brick 32x32x32 + 1vox border (filtering) Interactive GPU-based Segmentation with Level Sets
Overview • Introduction • Level set Method • Math and theoretical background • GPU Data structure for large volumes • Solution on GPU • Rendering and user interaction • Results and future work Interactive GPU-based Segmentation with Level Sets
LS Solver • 1. Setup • Signed distance field • Values clamped to: • 0.0 (exterior) • 1.0 (interior) • Narrow band within [0.0, 1.0] Interactive GPU-based Segmentation with Level Sets
Narrow Band Culling • Interior: Min = Max = 1.0 • Exterior: Min = Max = 0.0 0.5 LS Narrow band width Interactive GPU-based Segmentation with Level Sets
LS Solver (cont.) • 2. Calculation on HW • PDE solved in fragment programs • Discretization (with time step ∆t) Interactive GPU-based Segmentation with Level Sets
LS Solver (cont.) • 3. Sparse volume update • GPU – CPU memory request • For each brick: min/max determination • GPU Neighbor activation & encode • CPU – GPU memory allocation • Decode & CPU neighbor activation Interactive GPU-based Segmentation with Level Sets
Neighbor Activation • The level set front may leak out • Activate the bricks touched by the front Interactive GPU-based Segmentation with Level Sets
Neighbor Activation • For each brick • 6 faces ↔ 6 bits state (active/inactive) • State decoded on CPU • Activation on full 26-neighborhood • Flagged face → activate brick • 2 adjacent bricks → edge brick • 3 adjacent bricks → corner brick Interactive GPU-based Segmentation with Level Sets
Overview • Introduction • Level set Method • Math and theoretical background • Data structure • Solution on GPU • Rendering and user interaction • Results and future work Interactive GPU-based Segmentation with Level Sets
Rendering DVR ISO • Rendering 2 different volumes simultaneously • Combination of DVR and ISO rendering DVR Interactive GPU-based Segmentation with Level Sets
Overview • Introduction • Level set Method • Math and theoretical background • Data structure • Solution on GPU • Rendering and user interaction • Results and future work Interactive GPU-based Segmentation with Level Sets
Results’ Gallery Interactive GPU-based Segmentation with Level Sets
Performance • Results of presented level set solver: Tests performed for 1 iteration on GeForce 8800 GTX Interactive GPU-based Segmentation with Level Sets
Demo • Short demo: brain segmentation process Interactive GPU-based Segmentation with Level Sets
Future work • Other speed functions • Further optimization of LS computation: • On neighbor look-ups • Determining the active region in the cache cross section Interactive GPU-based Segmentation with Level Sets
Agfa, AKH, Kplus Thank You for Your attention! Acknowledgements: Oliver Klar, Markus Hadwiger, Katja Bühler www.vrvis.at
/*todo*/ performance • How many iterations for brain2 • How much time does it take • Why is seg. with LS better than tresholding? (proves, illustrations) • Why is the cache by hydrogen 2x bigger as a hydrogen data set? • Segmentation mask export possible with this framework?? Interactive GPU-based Segmentation with Level Sets
Brick-to-tile Mapping • Address translation requires mapping • Case 1: a tile has no mapping • Case 2: a tile maps to a brick • Case 3: a brick has no mapping Case 1 Brick Tile Brick cache Case 2 Virtual volume Case 3 Interactive GPU-based Segmentation with Level Sets
Rendering • Hit point refinement Interactive GPU-based Segmentation with Level Sets