level set & fast marching 1.ppt [kompatibilitetsläge] · select the shortest verticeselect the...
TRANSCRIPT
![Page 2: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/2.jpg)
Looking backg
• Medical image segmentation is (usually) selecting a suitable method from a toolbox gof available approaches
• Making problem dependent customizations improvements to include a priori informationp
![Page 3: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/3.jpg)
Tools in the toolbox
• Statistical methods (Markov fields etc)• Active contoursActive contours• Dynamical programming• Fast marching• Level set methods• Level set methods• Variational methods• Chan-Vese segmentation•• …..
![Page 4: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/4.jpg)
Purpose of this lecture(s)p ( )
• Dijkstra’s shortest path algorithm• Understanding of fast marchingUnderstanding of fast marching• Understanding of level set method• Introducing task 3
![Page 5: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/5.jpg)
Dijkstra’s - motivationjRadial Resample and filtering
Shortest path algorithm on edge image
![Page 6: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/6.jpg)
Dijkstra’s - motivationj
Boundary tracing of ice radar profile on Svalbard glacier
![Page 7: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/7.jpg)
Mathematical formulation
Where <(i,j),(k,l)> is a vertice, c(i,j)(k,l)>0 is the cost for the vertice, x(i,j)(k,l) is 1 if the vertice is included in the optimal path S is the starting point and T is the endoptimal path, S is the starting point, and T is the end point.
![Page 8: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/8.jpg)
Dijkstra’s algorithmj g1
S1
S3
1. Start with node S2. Keep track of a set of selected nodes N (black)3 Select the shortest vertice w out of N3. Select the shortest vertice w out of N4. Keep track of precessor5. Repeat until all nodes in N
![Page 9: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/9.jpg)
Dijkstra’s algorithmj g1
S1
S3
1. Start with node S2. Keep track of a set of selected nodes N (black)3 Select the shortest vertice w out of N3. Select the shortest vertice w out of N4. Keep track of precessor5. Repeat until all nodes in N
![Page 10: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/10.jpg)
Dijkstra’s algorithmj g1
S1
S3
1. Start with node S2. Keep track of a set of selected nodes N (black)3 Select the shortest vertice w out of N3. Select the shortest vertice w out of N4. Keep track of precessor5. Repeat until all nodes in N
![Page 11: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/11.jpg)
Practical implementationp
1. Keep a list of selected nodes (N)2. Store a sorted list of outward vertices3. Take lowest cost vertex from list, add node to N4 Add new vertices to the sorted list4. Add new vertices to the sorted list5. Repeat from 3) until all nodes are selected6. Shortest path is “backtracked”
Suitable data structure for the sorted list is a sorted heapsorted heap.
![Page 12: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/12.jpg)
Optimalityp y
• We keep track on selected nodes N
• In each iteration find the shortest vertex wthat connects to a node outside of Nthat connects to a node outside of N
• Need to prove that there can not be a shorter path from start to the nodeshorter path from start to the node connected by the shortest vertex w
![Page 13: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/13.jpg)
Optimalityp ySuppose a such path exists
1. w was selected as the shortest vertex in N to the node2. Cost between nodes are >=0.3. Hypothetical shorter path must go via an intermediate
node as w was chosen as the smallest vertex from the set N.
4. The hypothetical path can not be shorter than the path to w as costs >= 0. Thus the calculated path is the
ti l h t t thoptimal shortest path.
![Page 14: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/14.jpg)
Dijkstra’s algorithmj g
Artificialstartpoint S
Artificial endpoint Tstartpoint S endpoint T
Rows in image
Columns in image
Nodes = pixels
![Page 15: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/15.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint T
0
0startpoint S endpoint T0
0
00
![Page 16: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/16.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint T
0
0startpoint S endpoint T0
0
00
![Page 17: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/17.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint T
0
0startpoint S endpoint T0
0
00
![Page 18: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/18.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint T
0
0startpoint S endpoint T0
0
00
![Page 19: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/19.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint T
0
0startpoint S endpoint T0
0
00
![Page 20: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/20.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint T
0
0startpoint S endpoint T0
0
00
![Page 21: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/21.jpg)
Continue….
![Page 22: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/22.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint Tstartpoint S endpoint T
![Page 23: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/23.jpg)
Dijkstra’s algorithmj g
Artificial startpoint S
Artificial endpoint Tstartpoint S endpoint T
Final optimal path
![Page 24: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/24.jpg)
Setting the costsg
• Problem dependent
• Low cost for favorable areas?• Low cost for favorable areas?
• Low cost for edges?Low cost for edges?
• Penalize large jumps in image (derivative)
• Penalize curvature (how....?)
• Force a closed line?
![Page 25: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/25.jpg)
Interface propagationp p g
Outside Speed F(L,G,I)
L = Local properties, such
Outside
p p ,as curvature & normal direction
Inside G = Global properties
I = Independent properties, Outside for instance underlying
vector field
![Page 26: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/26.jpg)
Representing moving interfaces as “height curves”as height curves
Advantages:- Variable topology
G i- Generic
Disadvantages:g- Difficult to introduce a priori to constrain topology
![Page 27: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/27.jpg)
Object representationj p
![Page 28: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/28.jpg)
Advantagesg
• Expansion to higher dimensions trivial
• Topological changes naturally• Topological changes naturally
• Simple to calculate curvatureSimple to calculate curvature
• Efficient computational schemes can be developed
![Page 29: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/29.jpg)
Different interface formulations
• Boundary value formulation
• Intitial value formulation
![Page 30: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/30.jpg)
Boundary value formulationy• Assume F>0 (i.e always outward motion)• Describe interface by computing arrival
time T(x y)time T(x,y)• Use distance = rate*time
FdTdx
dT
FdTdx dTF1 dT
dx
T(x)dxF1
x
![Page 31: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/31.jpg)
Boundary value formulationy
• In higher dimensions dT becomes TIn higher dimensions dT becomes which gives the Eikonal equation:
T
1 FT
![Page 32: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/32.jpg)
Examplesp
StartpointStartpoint
![Page 33: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/33.jpg)
Examplesp
Startpoint
![Page 34: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/34.jpg)
Examplesp
Startpoint
![Page 35: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/35.jpg)
Examplesp
Startpointp
![Page 36: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/36.jpg)
Key issuesy
• Finding good starting point(s) where T=0
• Finding suitable speed map (translating intensity and edges)intensity and edges)
• Selecting the object based on arrival time
![Page 37: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/37.jpg)
Initial value formulationAssume that F can be both positive and pnegative.
Problem: The boundary can pass a certain position multiple times.
Solution: Represent the curve as the zero l l f ti d d t l l t f tilevel of a time dependent level set function φ instead of arrival time
![Page 38: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/38.jpg)
Initial value formulationThe level set value for a point on the boundary must l balways be zero:
0)),(( ttx
chain rule gives: n̂
0)()),(( dt
tdxttxt F, Speed
We have gives: nFndt
tdx ˆ,ˆ)(dt
0 F 0 Ft
![Page 39: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/39.jpg)
Boundary value Initial value yformulation formulation
0 Ft1 FT t
Front representation:Front representation:
}),(),{()( tyxTyxt }0),,(),{()( tyxyxt
Requires F>0 Arbitrary F
Advantage: Fast Advantage: Can use shape dependent speed function (curvature, smoothing)
![Page 40: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/40.jpg)
Fast numerical solution to Eikonal equation FastmarchingEikonal equation - FastmarchingSolution similar to Dijkstra’s:
1. For each neighbor to the starting node(s) compute i l ti St i l ti i t d li t f i l
Solution similar to Dijkstra s:
arrival time. Store arrival times in a sorted list of arrival times.
2. Choose the next unselected node with the shortest arrival time.
3. For each unselected neighbor compute arrival time. Store arrival times in the sorted list of arrival timesStore arrival times in the sorted list of arrival times.
4. Repeat from 2 until all nodes selected (or another stop criteria).
![Page 41: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/41.jpg)
Calculating arrival timeg• Uses arrival time of selected nodes (upwind scheme)
U h b li ti l• Use hyperbolic conservation laws =>
2)0,,max( CABA VVVV
DF
2
22
)0,,max()0,,max(
GAFA
EADA
VVVVVVVVT A
E
C
G
B
where V is distance for nodes, and VA is sought.
• Solve by 1) ignoring unselected nodes, 2) reduce by looking at V V ? V V ? V V ?VB<VC?, VD<VE?, VF<VG?
• Remains a second order equation to solve where largest value is taken (if two solutions exist) Ex (V V )2+(V V )2 = F2taken (if two solutions exist). Ex (VA-VB)2+(VA-VE)2 = F2
• Information flows from selected nodes (“upwind”) to unselected nodes (“downwind”, and towards higher arrival times).( , g )
![Page 42: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/42.jpg)
Fast numerical solution to initial value formulation Narrow bandvalue formulation – Narrow band
Solve equation in a narrow band (grey pixels) close to the zero level set Fastmarching can be used forthe zero level set. Fastmarching can be used for initialization
![Page 43: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/43.jpg)
Time complexityp y
• Dijkstra’s O(E+N log N) where E is the number of edges in the graph and N is the g g pnumber of nodes.
• Fast marching O(N log N) where N is the the number of nodes.
• This assumes heap implementation for i th t d li tmanaging the sorted list.
![Page 44: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/44.jpg)
Take home messagesg
• Dijkstra’s solves shortest path in an optimal sense.
• Boundary formulation / initial value formulation.
• Fast numeric schemes using sorted heap.
• Trick is selecting good speed maps and finding• Trick is selecting good speed maps and finding stop criteria.
![Page 45: Level set & Fast marching 1.ppt [Kompatibilitetsläge] · Select the shortest verticeSelect the shortest vertice w out ofout of N 4. Keep track of precessor 5. Repeat until all nodes](https://reader033.vdocuments.us/reader033/viewer/2022050108/5f46749f4ea01044921b7e51/html5/thumbnails/45.jpg)
Short about hand-in assignmentg
• DICOM reader• Display medical imagesDisplay medical images• Fastmarching in 2D and 3D