Level Set Methods Level Set Methods • • Contour evolution method due to J. Contour evolution method due to J. Sethian Sethian and and • The level set approach: • The level set approach: S. Osher Osher, 1988 , 1988 S. • www.math.berkeley.edu/~sethian/level_set.html www.math.berkeley.edu/~sethian/level_set.html • • Define problem in 1 higher dimension Define problem in 1 higher dimension • • Difficulties with snake • Difficulties with snake- -type methods type methods Define level set function z = ( x,y,t = 0) = φ φ φ φ φ φ φ φ ( • • Define level set function = 0) • Hard to keep track of contour if it self • Hard to keep track of contour if it self- -intersects intersects where the ( x,y ) plane contains the contour, and during its evolution during its evolution where the ( ) plane contains the contour, and z = signed Euclidean distance transform value • Hard to deal with changes in topology • Hard to deal with changes in topology = 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? Level Set Surface Level Set Surface ( x,y,t ), so that it Move the level set function, φ φ φ ( φ φ φ φ φ • Move the level set function, ), so that it • The zero level set (in blue) at one point in time as The zero level set (in blue) at one point in time as • • rises, falls, expands, etc. rises, falls, expands, etc. a slice of the level set surface (in red) a slice of the level set surface (in red) Contour = cross section at z = 0, i.e., • • Contour = cross section at = 0, i.e., {( x x , , y y ) | ) | φ φ ( ( x x , , y y , , t t ) = 0} {( ) = 0} 1
� � � � � Level Set Surface Level Set Surface Level Set Surface Level 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 the new contour defines the new contour How to Move the Level Set Surface? How to Move the Level Set Surface? Level Set Formulation Level Set Formulation Define a velocity field, F , that specifies how • Constraint: level set value of a point on the contour with Constraint: level set value of a point on the contour with • 1. Define a velocity field, , that specifies how 1. x ( t ) must always be 0 motion x ( t motion ) must always be 0 contour points move in time contour points move in time φ ( ( x x ( ( t t ), ), t t ) = 0 φ ) = 0 • • Based on application Based on application- -specific physics such as time, specific physics such as time, position, normal, curvature, image gradient position, normal, curvature, image gradient • By the chain rule By the chain rule • magnitude magnitude ( x x ( ( t t ), ), t t ) · x x ′ ( t t ) = 0 φ t φ + ∇ ∇ φ φ ( ′ ( t + ) · ) = 0 2. Build an initial value for the level set function, Build an initial value for the level set function, 2. φ ( ( x,y,t =0) φ • Since F supplies the speed in the outward normal direction • Since F supplies the speed in the outward normal direction =0) , based on the initial contour position , based on the initial contour position x ′ x ′ ( ( t t ) · n n = = F F , where , where n n = ∇ φ φ / | ∇ φ φ | = ∇ / | ∇ ) · | φ over time; contour at time over time; contour at time t t defined by Adjust φ 3. Adjust 3. defined by ( x(t), y(t), t ) = 0 φ φ ( ) = 0 Hence evolution equation for φ φ is φ φ φ φ φ φ • • Hence evolution equation for is ∂ � Hamilton- Hamilton -Jacobi Jacobi equation equation + F ⋅ ∇ = 0 ∂ t F | φ t φ + F | ∇ ∇ φ φ | = 0 t + | = 0 1 2 � 2 � 2 � � ∂ � ∂ � ∂ � � + F + � � = 0 � � � � � � ∂ t ∂ x ∂ y � � � � � � 2
✂ ✄ � ✁ Speed Function Example: Shape Simplification Speed Function Example: Shape Simplification • F = 1 κ where κ κ κ is the curvature at each 0.1 κ κ κ κ κ κ where κ κ κ κ κ κ • = 1 – – 0.1 is the curvature at each ( ) contour point F(k) = F + F (k) = 1 − k contour point 0 1 ( ) ( ) F(k) = k x,y ∗ 1 − k I 1 k = ( ) I 1 G I x,y + ∇ ∗ ( ) - ∇ G ∗ I x,y k e = I Example: Segmentation Example: Segmentation Example (cont.) Example (cont.) • Digital Subtraction Angiogram Digital Subtraction Angiogram • Initial contour specified manually Initial contour specified manually • • • F based on image gradient and contour curvature • based on image gradient and contour curvature 3
More Examples More Examples More Examples More Examples More Examples More Examples Fast Marching Method Fast Marching Method • J. J. Sethian Sethian, 1996 , 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 ( F>0 F>0 ) or always shrinking ( ) or always shrinking ( F<0 F<0 ) always expanding ( ) • • 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 once cross each grid point at most once 4
Fast Marching Method Fast Marching Algorithm Fast Marching Method Fast Marching Algorithm Compute T ( ( x,y ) = time at which the contour • • Compute ) = time at which the contour • • Compute T using the fact that Compute T using the fact that crosses grid point ( x,y ) ) crosses grid point ( At any height, t t , the surface gives the set of • At any height, , the surface gives the set of • Distance Distance = = rate rate × × time time • • points reached at time t t points reached at time F × T / x In 1D: 1 = F d T d x • In 1D: 1 = • × d / d In 2D: 1 = F F × ∇ T T | | ∇ ∇ ∇ ∇ ∇ ∇ ∇ • In 2D: 1 = • × | | Contour at time t t = • • Contour at time = {( x x , , y y ) | ) | T T ( ( x x , , y y ) = ) = t t } {( } Fast Marching Algorithm Fast Marching Algorithm Fast Marching Fast Marching Construct the arrival time surface T ( ( x,y ) • • Construct the arrival time surface ) incrementally: incrementally: 1. Build the initial contour Build the initial contour 1. 2. Incrementally add on to the existing surface the part Incrementally add on to the existing surface the part 2. that corresponds to the contour moving with speed F that corresponds to the contour moving with speed (in other words, repeatedly pick a point on the fringe (in other words, repeatedly pick a point on the fringe with minimum T value) with minimum value) Iterate until F goes to 0 3. 3. Iterate until goes to 0 Update “downwind” Compute new possible values (i.e., unvisited neighbors) • 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 5
✂ � ✁ ✁ ✂ Fast Marching Fast Marching Fast Marching Fast Marching Expand point on the fringe Update neighbors Expand point on the fringe Update neighbors with minimum value “downwind” with minimum value “downwind” Fast Marching Visualization Fast Marching Visualization Fast Marching + Level Set for Shape Recovery Fast Marching + Level Set for Shape Recovery 1. First use the Fast Marching algorithm to obtain First use the Fast Marching algorithm to obtain 1. “rough” contour “rough” contour ( ) - G I x,y α ∇ ∗ ∇ T F = 1 , F = e 2. Then use the Level Set algorithm to fine tune, Then use the Level Set algorithm to fine tune, 2. using a few iterations, the results from Fast using a few iterations, the results from Fast Marching Marching ∂ ( ) k 1 K P 0 + − ε ∇ − β ∇ ⋅ ∇ Φ = I t ∂ 1 = k ( ) I + ∇ ∗ 1 G I x,y ( ) P(x,y) = − ∇ G ∗ I x,y 6
Results: Segmentation using Fast Marching Results: Vein Segmentation Results: Segmentation using Fast Marching Results: Vein Segmentation No level set tuning With level set tuning No level set tuning With level set tuning No level set tuning No level set tuning Results: Vein Segmentation (continued) Results: Vein Segmentation (continued) Results: Segmentation using Fast Marching Results: Segmentation using Fast Marching Original Fast Marching + Original Fast Marching + Level Set only Level Set only Level Set Tuning Level Set Tuning No level set tuning No level set tuning 7
Recommend
More recommend