Fast Marching on Triangulated Domains Computer Science Department Technion-Israel Institute of Technology Fast Marching on Triangulated Domains Ron Kimmel www.cs.technion.ac.il/~ron Geometric Image Processing Lab
Brief Historical Review Upwind schemes: Godunov 59 Level sets: Osher & Sethian 88 Viscosity SFS: Rouy & Tourin 92, (Osher & Rudin) Level sets SFS: Kimmel & Bruckstein 92 Continuous morphology: Brockett & Maragos 92,Sapiro et al. 93 Minimal geodesics: Kimmel, Amir & Bruckstein 93 Fast marching method: Sethian 95 Fast optimal path: Tsitsiklis 95 Level sets on triangulated domains:Barth & Sethian 98 Fast marching on triangulated domains: Kimmel & Sethian 98 Applications based on joint works with: Elad, Kiryati, Zigelman
1D Distance: Example 1 T(x) x x0 Find distance T(x), given T(x0)=0. Solution: T(x)=|x-x0|. except at x0. T(x) x x0
1D Distance: Example 2 T(x) x x0 x1 Find the distance T(x), given T(x0)=T(x1)=0 Solution: T(x) = min{|x-x0|,|x-x1|}, Again, , except x0,x1 and (x0+x1)/2. T(x) x x0 x1
1D Eikonal Equation T(x) x x0 x1 with boundary conditions T(x0)=T(x1)=0. Goal: Compute T that satisfies the equation `the best'. T(x) x x0 x1
Numerical Approximation Restrict , where h= grid spacing. Possible solutions for are T(x) x x0 x1
Approximation II T(x) x x0 x1 Updated i has always `upwind' from where the `wind blows' T(x) x x0 x1
Update Procedure T T T Set , and T(x0)=T(x1)=0. REPEAT UNTIL convergence, FOR each i T i T i+1 T i-1 i-1 i i+1 h
Update Order What is the optimal order of updates? Solution I: Scan the line successively left to right. N scans, i.e. O(N ) Solution II: Left to right followed by right to left. Two scans are sufficient. (Danielson`s distance map 1980) Solution III: Start from x0, update its neighboring points, accept updated values, and update their neighbors, etc. 2 1 2 3 1 2
Weighted Domains x x0 x1 Local weight , Arclength Goal: distance function characterized by: By the chain rule: The Eikonal equation is T(x) F(x) x x0 x1
2D Rectangular Grids Isotropic inhomogeneous domains Weighted arclength: the weight is Goal: Compute the distance T(x,y) from p0 where
Upwind Approximation in 2D ij T i+1,j T i,j-1 i+1,j T i,j-1 i+1,j T i-1,j ij i-1,j i,j+1
2D Approximation T T Initialization: given initial value or Update: Fitting a tilted plane with gradient , and two values anchored at the relevant neighboring grid points. T 1 i+1,j T 2 i,j-1 ij i-1,j i,j+1
Computational Complexity T is systematically constructed from smaller to larger T values. Update of a heap element is O(log N). Thus, upper bound of the total is O(N log N). www.math.berkeley.edu/~sethian
Shortest Path on Flat Domains Why do graph search based algorithms (like Dijkstra's) fail?
Edge Integration Cohen-Kimmel, IJCV, 1997. Solve the 2D Eikonal equation given T(p)=0 Minimal geodesic w.r.t.
Shape from Shading Rouy-Tourin SIAM-NU 1992, Kimmel-Bruckstein CVIU 1994, Kimmel-Sethian JMIV 2001. Solve the 2D Eikonal equation where Minimal geodesic w.r.t.
Path Planning 3 DOF Solve the Eikonal Eq. in 3D {x,y,j}-CS given T(x0,y0,j0)=0, Minimal geodesic w.r.t.
Path Planning 3 DOF
Path Planning 4 DOF Solve the Eikonal Eq. in 4D Minimal geodesic w.r.t.
Update Acute Angle Given ABC, update C. Consistency and monotonicity: Update only `from within the triangle' h in ABC Find t=EC that satisfies the gradient approximation (t-u)/h= F. c c
Update Procedure We end up with: t must satisfy u<t, and h in ABC. The update procedure is IF (u<t) AND (a cos q < b(t-u)/t < a/cosq) THEN T(C) = min {T(C),t+T(A)}; ELSE T(C)= min {T(C),bF+T(A),aF+T(B)}. u C B A
Obtuse Problems This front first meets B, next A, and only then C. A is `supported’ by a single point. The supported section of incoming fronts is a limited section.
Solution by splitting Initialization step! Extend this section and link the vertex to one within the extended section. Recursive unfolding: Unfold until a new vertex Q is found. Initialization step!
Recursive Unfolding: Complexity e = length of longest edge The extended section maximal area is bounded by a<= e /(2a ). The minimal area of any unfolded triangle is bounded below a >= (h a ) q /2, The number of unfolded triangles before Q is found is bounded by m<= a /a = e /(q h a ). max 2 max min 2 min min min min 2 2 3 max min max min min min
1st Order Accuracy The accuracy for acute triangles is O(e ) Accuracy for the obtuse case O(e /(p-q )) max max max
Minimal Geodesics
Minimal Geodesics
Linear Interpolation ODE ‘back tracking’
Quadratic Interpolation
Voronoi Diagrams and Offsets Given n points, { p D, j 0,..,n-1} Voronoi region: G = {p D| d(p,p ) < d(p,p ), V j = i}. j i i j
Geodesic Voronoi Diagrams and Geodesic Offsets
Geodesic Voronoi Diagrams and Geodesic Offsets
Marching Triangles The intersection set of two functions is linearly interpolated via `marching triangle'
Voronoi Diagrams and Offsets on Weighted Curved Domains
Voronoi Diagrams and Offsets on Weighted Curved Domains
Cheap and Fast 3D Scanner PC + video frame grabber. Video camera. Laser line pointer. Joint with G. Zigelman motivated by simple shape from structure light methods, like Bouguet-Perona 99, Klette et al. 98 Lego Mindstorms rotates the laser (E. Gordon) A frame grabber built at the Technion by Y Grinberg
Cheap and Fast 3D Scanner
Detection and Reconstruction
Examples of Decimation Decimation - 3% of vertices Sub-grid sampling
Results
Results
Texture Mapping Environment mapping: Blinn, Newell (76). Environment mapping: Greene, Bier and Sloan (86). Free-form surfaces: Arad and Elber (97). Polyhedral surfaces: Floater (96, 98), Levy and Mallet (98). Multi-dimensional scaling: Schwartz, Shaw and Wolfson (89).
Difficulties Need for user intervention. Local and global distortions. Restrictive boundary conditions. High computational complexity.
Flattening via MDS Compute geodesic distances between pairs of points. Construct a square distance matrix of geodesic distances^2. Find the coordinates in the plane via multi-dimensional scaling. The simplest is `classical scaling’. Use the flattened coordinates for texturing the surface, while preserving the texture features. Zigelman, Kimmel, Kiryati, IEEE T. on Visualization and Computer Graphics (in press).
Flattening
Flattening
Distances - comparison
Texture Mapping
Texture Mapping
Bending Invariant Signatures
Bending Invariant Signatures ? Elad, Kimmel, CVPR’2001
Bending Invariant Signatures ? Elad, Kimmel, CVPR’2001
Bending Invariant Signatures ? Elad, Kimmel, CVPR’2001
Bending Invariant Signatures Elad, Kimmel, CVPR’2001
Bending Invariant Signatures Elad, Kimmel, CVPR’2001
Bending Invariant Signatures 3 Original surfaces Canonical surfaces in R Elad, Kimmel, CVPR’2001
Bending Invariant Clustering 2nd moments based MDS for clustering Original surfaces Canonical forms D D D 0.8 A A E 0.8 E 0.7 A 0.7 D E 0.6 E B 0.6 E E E 0.5 C C C 0.5 C D C C 0.4 B C 0.4 D D E D 0.3 F A 0.3 B B B B 0.2 F B B C 0.2 A A A A 0.1 F 0.1 F 1 1 1 0.8 1 0.8 0.8 0.6 *A=human body 0.8 F F F 0.6 0.6 0.4 0.6 F 0.4 0.4 0.4 0.2 0.2 *B=hand 0.2 0.2 *C=paper *D=hat *E=dog *F=giraffe Elad, Kimmel, CVPR’2001
More Applications semi-manual re-triangulation segmentation halftoning in 3D Adi, Kimmel 2002
Conclusions Applications of Fast Marching Method on rectangular grids: Path planning, edge integration, shape from shading. O(N) consistent method for weighted geodesic distance: ‘Fast marching on triangulated domains’. Applications: Minimal geodesics, geodesic offsets, geodesic Voronoi diagrams, surface flattening, texture mapping, bending invariant signatures and clustering of surfaces, triangulation, and semi-manual segmentation.