interactive gpu-based segmentation of large volume data with level sets

31
Veronika Solteszova 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

Upload: duc

Post on 07-Feb-2016

37 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika Solteszova

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

Page 2: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 3: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

Introduction

• Level set main idea– Deformable implicit surface– Evolve simple surface into

target object shape

• Short demo

Page 4: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 5: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 6: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 7: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

LS Method: Math (cont.)

• 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

• Advantages of such curve representation– No problems with topology changes– Gradient & curvature computation easy– Evolution described by partial differential equation

(PDE)

Page 8: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

• 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

LS Method (cont.)

Page 9: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive 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.0 0.3 1.0

Page 10: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

LS Method (cont.)

• Density factor:

• T: target density• I : volume density

Page 11: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 12: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 13: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

Cache Layout (cont.)

• Volume subdivision into bricks (34x34x34)– Brick 32x32x32 + 1vox border (filtering)

Page 14: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 15: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive 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]

Page 16: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

Narrow band width

Narrow Band Culling• Interior: Min = Max = 1.0• Exterior: Min = Max = 0.0

0.5 LS

Page 17: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

LS Solver (cont.)

• 2. Calculation on HW– PDE solved in fragment programs

• Discretization (with time step ∆t)

Page 18: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 19: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

Neighbor Activation

• The level set front may leak out• Activate the bricks touched by the front

Page 20: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 21: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 22: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

Rendering

DVR• Rendering 2 different volumes simultaneously

• Combination of DVR and ISO rendering

ISO DVR

Page 23: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 24: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

Results’ Gallery

Page 25: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets

• Results of presented level set solver:

Performance

[ms] hydrogen hand brain1 brain2

volume size 64x64x64 244x124x257 192x256x222 512x512x154

cache size 128x128x64 512x256x128 256x256x256 512x512x256

sphere setup 5.95 50.24 61.37 215.18

level-set comp. 13.27 156.17 111.42 403.80

gpu min-max 0.99 1.98 1.56 3.03

gpu neighbors 4.58 17.64 13.66 35.07

cache update 7.52 54.25 59.86 201.08

overall 29.27 234.48 191.14 647.80

Tests performed for 1 iteration on GeForce 8800 GTX

Page 26: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika Solteszova

Demo

• Short demo: brain segmentation process

Interactive GPU-based Segmentation with Level Sets

Page 27: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Page 28: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika Solteszovawww.vrvis.at

Agfa, AKH, Kplus

Acknowledgements: Oliver Klar, Markus Hadwiger, Katja Bühler

Thank You for Your attention!

Page 29: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika Solteszova

/*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 29

Page 30: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

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

Brick cache

Brick

Tile

Case 1

Case 2

Case 3 Virtual volume

Page 31: Interactive GPU-based Segmentation Of Large Volume Data With Level Sets

Veronika SolteszovaInteractive GPU-based Segmentation with Level Sets 31/26

Rendering

• Hit point refinement