Upload
bartholomew-turner
View
228
Download
0
Embed Size (px)
Citation preview
ReferenceReference
•““Level Set and PDE Methods for Computer Level Set and PDE Methods for Computer Graphics”Graphics” Leopold K¨uhschelm Sebastian ZambalLeopold K¨uhschelm Sebastian Zambal
Institute of Computer Graphics Vienna University of Technolgy Vienna / Institute of Computer Graphics Vienna University of Technolgy Vienna / AustriaAustria
<<Level Set Methods and Fast Marching <<Level Set Methods and Fast Marching Methods>>Methods>>
Problem DefinitionProblem Definition
•In 2-D, Curve (Interface) evolution over time.In 2-D, Curve (Interface) evolution over time.
•In 3-D, Surface (Interface) evolution.In 3-D, Surface (Interface) evolution.• Example: Waves in the ocean.Example: Waves in the ocean.
• Waves can be uniquely modeled if we track the Waves can be uniquely modeled if we track the boundary between air and water (the interface).boundary between air and water (the interface).
How to Model and ImplementHow to Model and Implement
•Model the physical process and interface motion Model the physical process and interface motion using partial derivative equations (PDE).using partial derivative equations (PDE).
•Level Set Methods are used for the Level Set Methods are used for the implementation of curve/interface evolution under implementation of curve/interface evolution under various forces.various forces.
•Challenges:Challenges:• Numerical errors due to discretization.Numerical errors due to discretization.
• Estimation of derivatives around discontinuities.Estimation of derivatives around discontinuities.
• Numerical stability of the implementation.Numerical stability of the implementation.
Curve representationCurve representation
•A closed curve cannot be represented as a A closed curve cannot be represented as a 1-D1-D function y = f(x)function y = f(x)
•A parametric representation can be used:A parametric representation can be used:• C = {x(p), y(p)}C = {x(p), y(p)}
• p is in [0,1]p is in [0,1]
Ccc
Curve RepresentationCurve Representation
•Explicit (parametric) representationExplicit (parametric) representation• Uses a parametric representationUses a parametric representation
• Sample the curve at fixed intervals.Sample the curve at fixed intervals.
• Problem: During evolution, curve changes, so does Problem: During evolution, curve changes, so does the parameterization.the parameterization.
•Implicit representation (Level set methods)Implicit representation (Level set methods)• Embed the curve C into a Embed the curve C into a 2-D2-D function function
z = f(x,y)z = f(x,y)
Implicit MethodsImplicit Methods
•Curve is embedded as the 0 level set.Curve is embedded as the 0 level set.
•C = {(x,y) | f(x,y) = 0}C = {(x,y) | f(x,y) = 0}
Ccc
Implicit MethodsImplicit Methods
•A better embedding function is smootherA better embedding function is smoother
Ccc
Level Set MethodsLevel Set Methods
•Main idea:Main idea:• Evolve the embedding function f(x,y)Evolve the embedding function f(x,y)
• Keep track of its Keep track of its zero level setzero level set
•This can thought as the diffusion of a 2-D surface.This can thought as the diffusion of a 2-D surface.
Level Set MethodsLevel Set Methods
•Example: Propagation of two flamesExample: Propagation of two flames
Level Set MethodsLevel Set Methods
• The level set approach:The level set approach:
• Define problem in one higher dimensionDefine problem in one higher dimension
• Define level set function Define level set function z = = ((x,y,t = 0)= 0)
where the (where the (x,y) plane contains the contour, and) plane contains the contour, and
z = signed Euclidean distance transform value = signed Euclidean distance transform value (negative means inside closed contour, positive (negative means inside closed contour, positive means outside contour)means outside contour)
How to Move the Contour?How to Move the Contour?
• Move the level set function, Move the level set function, ((x,y,t), so that it ), so that it rises, falls, expands, etc.rises, falls, expands, etc.
• Contour = cross section at Contour = cross section at z = 0, i.e.,= 0, i.e.,
{({(xx,,yy) | ) | ((xx,,yy,,tt) = 0}) = 0}
Level Set SurfaceLevel Set Surface
• The zero level set (in blue) at one point in time as The zero level set (in blue) at one point in time as a slice of the level set surface (in red)a slice of the level set surface (in red)
Level Set SurfaceLevel Set Surface
• Later in time the level set surface (red) has Later in time the level set surface (red) has moved and the new zero level set (blue) moved and the new zero level set (blue) defines defines the new contourthe new contour
Level Set SurfaceLevel Set Surface
How to Move the Level Set Surface?How to Move the Level Set Surface?
1.1. Define a velocity field, Define a velocity field, F, that specifies how , that specifies how contour points move in timecontour points move in time• Based on application-specific physics such as time, Based on application-specific physics such as time,
position, normal, curvature, image gradient position, normal, curvature, image gradient magnitudemagnitude
2.2. Build an initial value for the level set function, Build an initial value for the level set function, ((x,y,t=0)=0), based on the initial contour position, based on the initial contour position
3.3. Adjust Adjust over time; contour at time over time; contour at time tt defined by defined by ((x(t), y(t), t) = 0) = 0
0y
Φ
x
ΦF
t
Φ
0ΦFt
Φ
2122
Hamilton-Jacobi equationHamilton-Jacobi equation
Level Set FormulationLevel Set Formulation• Constraint: level set value of a point on the contour with Constraint: level set value of a point on the contour with motion motion xx((tt) must always be 0) must always be 0
((xx((tt), ), tt) = 0) = 0
• By the chain ruleBy the chain rule
tt + + ((xx((tt), ), tt) · ) · xx((tt) = 0 (1)) = 0 (1)
• Since F supplies the speed in the outward normal directionSince F supplies the speed in the outward normal directionxx((tt) · ) · nn = = FF, where , where nn = = / | / || (2)| (2)
• Hence evolution equation for Hence evolution equation for is is
tt + + FF||| = 0 (3)| = 0 (3)
Speed FunctionSpeed Function
The speed function F is the surface normal direction, The speed function F is the surface normal direction, control the movement of the curve, including: control the movement of the curve, including:
•image-related items (such as gradient information), image-related items (such as gradient information),
•the geometric shape of the curve (such as the the geometric shape of the curve (such as the curvature of the curve), curvature of the curve),
•the additional propagation terms.the additional propagation terms.
Example: Segmentation Example: Segmentation
• Digital Subtraction AngiogramDigital Subtraction Angiogram
• F based on image gradient and contour curvature based on image gradient and contour curvature
Example (cont.)Example (cont.)
• Initial contour specified manuallyInitial contour specified manually
Narrow BandNarrow Band
•Central idea: we are interested on the motion of Central idea: we are interested on the motion of the zero-level set and not for the motion of each the zero-level set and not for the motion of each iso-phote of the surfaceiso-phote of the surface
• Extract the latest positionExtract the latest position
• Define a band within a certain distanceDefine a band within a certain distance
• Update the level set function Update the level set function
• Check new position with respectCheck new position with respect
the limits of the bandthe limits of the band
• Update the position of the band Update the position of the band
regularly, and re-initialize the implicit functionregularly, and re-initialize the implicit function
Narrow BandNarrow Band
•Significant decrease on the computational Significant decrease on the computational complexity, in particular when implemented complexity, in particular when implemented efficiently and can account for any type of motion efficiently and can account for any type of motion flowsflows
Fast Marching MethodFast Marching Method
• J. Sethian, 1996J. Sethian, 1996
• Special case that assumes the velocity field, Special case that assumes the velocity field, F, , never changes sign. That is, contour is either never changes sign. That is, contour is either always expanding (always expanding (F>0F>0) or always shrinking () or always shrinking (F<0F<0))
• Convert problem to a stationary formulation on a Convert problem to a stationary formulation on a discrete grid where the contour is guaranteed to discrete grid where the contour is guaranteed to cross each grid point at most oncecross each grid point at most once
Fast Marching MethodFast Marching Method
• Compute Compute T((x,y) = time at which the contour ) = time at which the contour crosses grid point (crosses grid point (x,y))
• At any height, At any height, tt, the surface gives the set of , the surface gives the set of points reached at time points reached at time tt
Fast Marching AlgorithmFast Marching Algorithm
• Compute T using the fact thatCompute T using the fact that
• DistanceDistance = = raterate × × timetime
• In 1D: 1 = In 1D: 1 = FF × × ddTT//ddx (1)x (1)
• In 2D: 1 = In 2D: 1 = FF × | × | TT | (2) | (2)
• Contour at time Contour at time tt = =
{({(xx,,yy) | ) | TT((xx,,yy) = ) = tt}}
Fast Marching AlgorithmFast Marching Algorithm
• Construct the arrival time surface Construct the arrival time surface T((x,y) ) incrementally:incrementally:
1.1. Build the initial contourBuild the initial contour
2.2. Incrementally add on to the existing surface the part Incrementally add on to the existing surface the part that corresponds to the contour moving with speed that corresponds to the contour moving with speed F (in other words, repeatedly pick a point on the fringe (in other words, repeatedly pick a point on the fringe with minimum with minimum T value) value)
3.3. Iterate until Iterate until F goes to 0 goes to 0
• Builds level set surface by “scaffolding” the Builds level set surface by “scaffolding” the surface patches farther and farther away from surface patches farther and farther away from the initial contour the initial contour
Fast MarchingFast Marching
Update “downwind”
(i.e., unvisited neighbors)
Compute new possible values
Fast MarchingFast Marching
Expand point on the fringe with minimum value
Update neighbors “downwind”
Fast MarchingFast Marching
Expand point on the fringe with minimum value
Update neighbors “downwind”
SummarySummary
Fast Marching methods are:Fast Marching methods are:
• Very efficient – also in 3DVery efficient – also in 3D
• Of an ’open architecture’ in terms of speed Of an ’open architecture’ in terms of speed functionsfunctions
• Dealing with sharp corners and changes in Dealing with sharp corners and changes in topology topology
• Widely applicable: image segmentation, robotics, Widely applicable: image segmentation, robotics, seismic travel times, shortest path finding etc.seismic travel times, shortest path finding etc.
• In essence a smart way to solve the Eikonal In essence a smart way to solve the Eikonal equationequation
Results: Segmentation using Fast Marching Results: Segmentation using Fast Marching
No level set tuningNo level set tuning
Results: Vein SegmentationResults: Vein Segmentation
No level set tuning With level set tuningNo level set tuning With level set tuning
Results: Vein Segmentation (continued)Results: Vein Segmentation (continued)
Original Fast Marching +Original Fast Marching + Level Set onlyLevel Set only Level Set TuningLevel Set Tuning
Results: Segmentation using Fast Marching Results: Segmentation using Fast Marching
No level set tuningNo level set tuning
Results: Brain Image SegmentationResults: Brain Image Segmentation
# of iterations = 9000 # of iterations = 12000# of iterations = 9000 # of iterations = 12000
Fast marching only, no level set tuning Fast marching only, no level set tuning
Results: Brain Segmentation (continued)Results: Brain Segmentation (continued)
WithoutWithout level set tuning level set tuning WithWith level set tuning level set tuning
ConclusionConclusion
•Level Set methods are used for implementing Level Set methods are used for implementing curve evolution or diffusion.curve evolution or diffusion.
•Level Set Methods can also be used for Level Set Methods can also be used for surface surface evolutionevolution
• Applications in Computer Graphics.Applications in Computer Graphics.
• Volume segmentation in 3-D images.Volume segmentation in 3-D images.
•Matlab toolbox for trying some examples of level Matlab toolbox for trying some examples of level set methods can be downloaded from:set methods can be downloaded from:
• http://http://vision.ece.ucsb.edu/download.htmlvision.ece.ucsb.edu/download.html