SlideShare a Scribd company logo
Geodesic Data Processing




                    www.numerical-tours.com

Gabriel Peyré
CEREMADE, Université Paris-Dauphine
Local vs. Global Processing
     Local Processing             Global Processing
 Differential Computations       Geodesic Computations




     Surface filtering        Front Propagation on Meshes




   Fourier on Meshes             Surface Remeshing
                                                         2
Overview
 • Metrics and Riemannian Surfaces.
 • Geodesic Computation - Iterative Scheme
 • Geodesic Computation - Fast Marching
 • Shape Recognition with Geodesic Statistics
 • Geodesic Meshing
                                                3
Parametric Surfaces
Parameterized surface: u ⇥ R2 ⇤     (u) ⇥ M.

    u1                            ⇥
         u2                       ⇥u1

                                  ⇥
                                  ⇥u2




                                               4
Parametric Surfaces
Parameterized surface: u ⇥ R2 ⇤     (u) ⇥ M.

     u1                           ⇥
          u2                      ⇥u1

                                  ⇥
                                  ⇥u2

Curve in parameter domain: t ⇥ [0, 1] ⇤   (t) ⇥ D.




                                                     4
Parametric Surfaces
Parameterized surface: u ⇥ R2 ⇤      (u) ⇥ M.

     u1                            ⇥
          u2                       ⇥u1
                                                     ¯
                           ¯       ⇥
                                   ⇥u2

Curve in parameter domain: t ⇥ [0, 1] ⇤   (t) ⇥ D.
                            def.
Geometric realization: ¯ (t) = ⇥( (t))    M.




                                                     4
Parametric Surfaces
Parameterized surface: u ⇥ R2 ⇤                              (u) ⇥ M.

     u1                                                  ⇥
          u2                                             ⇥u1
                                                                                       ¯
                                         ¯               ⇥
                                                         ⇥u2

Curve in parameter domain: t ⇥ [0, 1] ⇤                                (t) ⇥ D.
                                          def.
Geometric realization: ¯ (t) = ⇥( (t))                                 M.

For an embedded manifold M                               Rn :              ⇥
                                                                   ⇥    ⇥
      First fundamental form: I =                                     ,   ⇥        .
                                                                   ⇥ui ⇥uj i,j=1,2
Length of a curve
                          1                          1   ⇥
               def.
     L( ) =                   ||¯ (t)||dt =                     (t)I   (t)   (t)dt.
                      0                          0                                     4
Isometric and Conformal
 Surface not homeomorphic to a disk:




M is locally isometric to the plane: I = Id.
 Exemple: M =cylinder.
Isometric and Conformal
 Surface not homeomorphic to a disk:




M is locally isometric to the plane: I = Id.
 Exemple: M =cylinder.
⇥ is conformal: I (u) = (u)Id.
  Exemple: stereographic mapping plane sphere.
Riemannian Manifold
Riemannian manifold: M     Rn (locally)
Riemannian metric: H(x)    Rn  , symmetric, positive definite.
                                n
                                     1⇥
                                def.         T
Length of a curve (t)   M: L( ) =         (t) H( (t)) (t)dt.
                                     0




                                                                6
Riemannian Manifold
 Riemannian manifold: M     Rn (locally)
 Riemannian metric: H(x)    Rn  , symmetric, positive definite.
                                 n
                                      1⇥
                                 def.         T
 Length of a curve (t)   M: L( ) =         (t) H( (t)) (t)dt.
                                      0
  Euclidean space: M = Rn , H(x) = Idn .




W (x)



                                                                 6
Riemannian Manifold
 Riemannian manifold: M      Rn (locally)
 Riemannian metric: H(x)     Rn , symmetric, positive definite.
                                  n
                                      1⇥
                                 def.         T
 Length of a curve (t)   M: L( ) =         (t) H( (t)) (t)dt.
                                       0
  Euclidean space: M = Rn , H(x) = Idn .
  2-D shape: M     R2 , H(x) = Id2 .




W (x)



                                                                 6
Riemannian Manifold
 Riemannian manifold: M      Rn (locally)
 Riemannian metric: H(x)     Rn , symmetric, positive definite.
                                  n
                                      1⇥
                                 def.         T
 Length of a curve (t)   M: L( ) =         (t) H( (t)) (t)dt.
                                          0
  Euclidean space: M = Rn , H(x) = Idn .
  2-D shape: M     R2 , H(x) = Id2 .
  Isotropic metric: H(x) = W (x)2 Idn .




W (x)



                                                                 6
Riemannian Manifold
 Riemannian manifold: M      Rn (locally)
 Riemannian metric: H(x)     Rn , symmetric, positive definite.
                                  n
                                      1⇥
                                 def.         T
 Length of a curve (t)   M: L( ) =         (t) H( (t)) (t)dt.
                                          0
  Euclidean space: M = Rn , H(x) = Idn .
  2-D shape: M     R2 , H(x) = Id2 .
  Isotropic metric: H(x) = W (x)2 Idn .
  Image processing: image I, W (x)2 = ( + || I(x)||)   1
                                                           .




W (x)



                                                                 6
Riemannian Manifold
 Riemannian manifold: M      Rn (locally)
 Riemannian metric: H(x)     Rn , symmetric, positive definite.
                                  n
                                      1⇥
                                 def.         T
 Length of a curve (t)   M: L( ) =         (t) H( (t)) (t)dt.
                                          0
  Euclidean space: M = Rn , H(x) = Idn .
  2-D shape: M     R2 , H(x) = Id2 .
  Isotropic metric: H(x) = W (x)2 Idn .
  Image processing: image I, W (x)2 = ( + || I(x)||)   1
                                                           .
  Parametric surface: H(x) = Ix (1st fundamental form).


W (x)



                                                                 6
Riemannian Manifold
 Riemannian manifold: M      Rn (locally)
 Riemannian metric: H(x)     Rn , symmetric, positive definite.
                                  n
                                      1⇥
                                 def.         T
 Length of a curve (t)   M: L( ) =         (t) H( (t)) (t)dt.
                                          0
  Euclidean space: M = Rn , H(x) = Idn .
  2-D shape: M     R2 , H(x) = Id2 .
  Isotropic metric: H(x) = W (x)2 Idn .
  Image processing: image I, W (x)2 = ( + || I(x)||)   1
                                                           .
  Parametric surface: H(x) = Ix (1st fundamental form).
  DTI imaging: M = [0, 1]3 , H(x)=di usion tensor.

W (x)



                                                                 6
Geodesic Distances
Geodesic distance metric over M       Rn
                 dM (x, y) =          min     L( )
                               (0)=x, (1)=y

Geodesic curve: (t) such that L( ) = dM (x, y).
                                                  def.
Distance map to a starting point x0    M: Ux0 (x) = dM (x0 , x).




                                                                   7
Geodesic Distances
       Geodesic distance metric over M      Rn
                        dM (x, y) =         min      L( )
                                      (0)=x, (1)=y

      Geodesic curve: (t) such that L( ) = dM (x, y).
                                                        def.
      Distance map to a starting point x0    M: Ux0 (x) = dM (x0 , x).
metric
geodesics




            Euclidean                                                    7
Geodesic Distances
       Geodesic distance metric over M      Rn
                        dM (x, y) =         min      L( )
                                      (0)=x, (1)=y

      Geodesic curve: (t) such that L( ) = dM (x, y).
                                                        def.
      Distance map to a starting point x0    M: Ux0 (x) = dM (x0 , x).
metric
geodesics




            Euclidean   Shape                                            7
Geodesic Distances
       Geodesic distance metric over M      Rn
                        dM (x, y) =         min       L( )
                                      (0)=x, (1)=y

      Geodesic curve: (t) such that L( ) = dM (x, y).
                                                          def.
      Distance map to a starting point x0      M: Ux0 (x) = dM (x0 , x).
metric
geodesics




            Euclidean   Shape      Isotropic                               7
Geodesic Distances
       Geodesic distance metric over M      Rn
                        dM (x, y) =         min       L( )
                                      (0)=x, (1)=y

      Geodesic curve: (t) such that L( ) = dM (x, y).
                                                          def.
      Distance map to a starting point x0      M: Ux0 (x) = dM (x0 , x).
metric
geodesics




            Euclidean   Shape      Isotropic      Anisotropic              7
Geodesic Distances
       Geodesic distance metric over M      Rn
                        dM (x, y) =         min       L( )
                                      (0)=x, (1)=y

      Geodesic curve: (t) such that L( ) = dM (x, y).
                                                          def.
      Distance map to a starting point x0      M: Ux0 (x) = dM (x0 , x).
metric
geodesics




            Euclidean   Shape      Isotropic      Anisotropic      Surface 7
Anisotropy and Geodesics
Tensor eigen-decomposition:
                         T                      T
 H(x) = 1 (x)e1 (x)e1 (x) +   2 (x)e2 (x)e2 (x)        with 0 <   1   2,
                          {         H(x)      1}
                                     e2 (x)
                         2 (x)
                                 1
                                 2    x       e1 (x)
                                                       1
 M                                            1 (x)    2




                                                                           8
Anisotropy and Geodesics
Tensor eigen-decomposition:
                         T                       T
 H(x) = 1 (x)e1 (x)e1 (x) +   2 (x)e2 (x)e2 (x)         with 0 <   1   2,
                          {          H(x)      1}
                                      e2 (x)
                          2 (x)
                                  1
                                  2    x       e1 (x)
                                                        1
 M                                             1 (x)    2



Geodesics            tend to follow e1 (x).




                                                                            8
Anisotropy and Geodesics
    Tensor eigen-decomposition:
                             T                            T
     H(x) = 1 (x)e1 (x)e1 (x) +       2 (x)e2 (x)e2 (x)          with 0 <   1          2,
                                {           H(x)        1}
4        ECCV-08 submission ID 1057
                                             e2 (x)
                                2 (x)
                                         1
                                         2    x         e1 (x)
   Figure 2 shows examples of geodesic curves computed from a single starting
                                                       1
point                                              (x)
   MS = {x1 } in the center of the image = [0,11]2 and a set of points on the
                                                       2

boundary of . The geodesics are computed for a metric H(x) whose anisotropy
⇥(x) (defined in equation (2)) is to follow e1 (x).making the Riemannian space
 Geodesics                  tend increasing, thus
progressively closer to the Euclidean space.    ⇥1 (x) ⇥2 (x)
    Local anisotropy of the metric:          (x) =                      [0, 1]
                                                      ⇥1 (x) + ⇥2 (x)




     Image f
      Image f          = .1
                       = .95            = .2
                                        = .7                  = .5
                                                              = .5              = 10
                                                                                =           8
Isotropic Metric Design
Image-based potential: H(x) = W (x)2 Id2 , W (x) = ( + |f (x)   c|)




   Image f         Metric W (x)    Distance Ux0 (x) Geodesic curve (t)




                                                                      9
Isotropic Metric Design
Image-based potential: H(x) = W (x)2 Id2 , W (x) = ( + |f (x)   c|)




   Image f         Metric W (x)    Distance Ux0 (x) Geodesic curve (t)

Gradient-based potential: W (x) = ( + ||    x f ||)




   Image f         Metric W (x)       U{x0 ,x1 }        Geodesics 9
Isotropic Metric Design: Vessels
                   ˜
Remove background: f = G ⇥ f   f,    ⇥vessel width.




f             ˜
              f                       ˜
                          W = ( + max(f , 0))




                                                      10
Isotropic Metric Design: Vessels
                   ˜
Remove background: f = G ⇥ f   f,    ⇥vessel width.




f               ˜
                f                     ˜
                          W = ( + max(f , 0))


3D Volumetric datasets:




                                                      10
Overview
 • Metrics and Riemannian Surfaces.
 • Geodesic Computation - Iterative
   Scheme


 • Geodesic Computation - Fast Marching
 • Shape Recognition with Geodesic Statistics
 • Geodesic Meshing                             11
Eikonal Equation and Viscosity Solution
Distance map:   U (x) = d(x0 , x)

  Theorem: U is the unique viscosity solution of
        || U (x)||H(x) 1 = 1   with     U (x0 ) = 0
     where ||v||A =   v Av




                                                      12
Eikonal Equation and Viscosity Solution
Distance map:        U (x) = d(x0 , x)

   Theorem: U is the unique viscosity solution of
         || U (x)||H(x) 1 = 1   with     U (x0 ) = 0
      where ||v||A =       v Av

Geodesic curve     between x1 and x0 solves
                                                      (0) = x1
      (t) =      ⇥t H( (t))   1
                                  Ux0 ( (t))   with
                                                      t >0




                                                                 12
Eikonal Equation and Viscosity Solution
Distance map:        U (x) = d(x0 , x)

    Theorem: U is the unique viscosity solution of
          || U (x)||H(x) 1 = 1   with     U (x0 ) = 0
      where ||v||A =       v Av

Geodesic curve     between x1 and x0 solves
                                                           (0) = x1
      (t) =      ⇥t H( (t))   1
                                  Ux0 ( (t))      with
                                                           t >0


Example: isotropic metric H(x) = W (x)2 Idn ,

   || U (x)|| = W (x)         and         (t) =    ⇥t    U ( (t))
                                                                      12
Simplified Proof
                        1
 U (x) = min L( ) =     0
                             H( (t)) (t),       (t) dt
         :x0   x
               ||⇤V (x)||2 1 = H   1
                                       (x)⇤V (x), ⇤V (x)⇥ = 1,
 V solving               H
               V (x0 ) = 0.
Simplified Proof
                            1
    U (x) = min L( ) =      0
                                    H( (t)) (t),         (t) dt
            :x0   x
                  ||⇤V (x)||2 1 = H        1
                                               (x)⇤V (x), ⇤V (x)⇥ = 1,
    V solving               H
                  V (x0 ) = 0.

U     V    Let    : x0   x be any smooth curve.
If V is smooth on :
                                    C.S.
      , ⇤V ⇥ = H 1/2 , H   1/2
                                 ⇤V ⇥   ||H 1/2 ||||H   1/2
                                                              ⇤V ||
                                                        =1
Simplified Proof
                                   1
    U (x) = min L( ) =             0
                                           H( (t)) (t),         (t) dt
               :x0   x
                     ||⇤V (x)||2 1 = H            1
                                                      (x)⇤V (x), ⇤V (x)⇥ = 1,
    V solving                  H
                     V (x0 ) = 0.

U     V       Let    : x0    x be any smooth curve.
If V is smooth on :
                                           C.S.
      , ⇤V ⇥ = H 1/2 , H          1/2
                                        ⇤V ⇥   ||H 1/2 ||||H    1/2
                                                                      ⇤V ||
                                                               =1
          1                 1
L( ) =    0
              ||H 1/2 ||    0
                              ⇥    , ⌅V ⇤ = V ( (1))           V ( (0)) = V (x)
                                                                =0
      =        U (x) = min L( )            V (x)
Simplified Proof (cont.)
U   V   Let x be arbitrary.
        Define:      (t) = H   1
                                  ( (t)) V ( (t))
                    (0) = x
                                            x


                                                    x0
Simplified Proof (cont.)
U     V     Let x be arbitrary.
            Define:      (t) = H    1
                                       ( (t)) V ( (t))
                        (0) = x
                                                 x
If V is smooth on ([0, tmax )), then
    dV ( (t))
              = (t), V ( (t)) =        1
       dt                                                x0
        =      (tmax ) = x0
Simplified Proof (cont.)
 U       V       Let x be arbitrary.
                 Define:      (t) = H       1
                                               ( (t)) V ( (t))
                             (0) = x
                                                         x
 If V is smooth on ([0, tmax )), then
     dV ( (t))
               = (t), V ( (t)) =               1
        dt                                                       x0
         =      (tmax ) = x0
One has:        H ,          = H   V, V = 1
                                   1
                                    =1
                      tmax             tmax
U (x)        L( ) =   0
                               H ,   = 0    H ,
              tmax
     =        0
                      ,   V =      V ( (tmax )) + V ( (0)) = V (x)
                                               =0                  13
                                                                   14
Discretization
                                                               x0
Control (derivative-free) formulation:
                                                B(x)       y
  U (x) = d(x0 , x) is the unique solution of
  U (x) = (U )(x) = min U (y) + d(x, y)                x
                       y B(x)




                                                                15
Discretization
                                                                x0
Control (derivative-free) formulation:
                                                B(x)       y
  U (x) = d(x0 , x) is the unique solution of
  U (x) = (U )(x) = min U (y) + d(x, y)                x
                       y B(x)

Manifold discretization: triangular mesh.
U discretization: linear finite elements.
                                                B(x)
H discretization: constant on each triangle.               xi
                                                                xk

                                                           xj




                                                                     15
Discretization
                                                                             x0
Control (derivative-free) formulation:
                                                      B(x)          y
  U (x) = d(x0 , x) is the unique solution of
  U (x) = (U )(x) = min U (y) + d(x, y)                         x
                         y B(x)

Manifold discretization: triangular mesh.
U discretization: linear finite elements.
                                                      B(x)
H discretization: constant on each triangle.                        xi
                                                                          xk
   Ui = (U )i =      min        Vi,j,k
                   f =(i,j,k)                                       xj
  Vi,j,k = min tUj + (1         t)Uk                 xi
          0 t 1                                                         xk
          +||txj + (1       t)xk         xi ||Hijk
   explicit solution (solving quadratic equation).
                                                               txj + (1      t)xk
   on regular grid: equivalent to upwind FD.              xj                   15
Update Step on a triangulation
 (U )i =     min        Vi,j,k
           f =(i,j,k)

Discrete Eikonal equation:
   Vi,j,k = min tUj + (1         t)Uk +||txj + (1   t)xk        xi ||Hijk
              0 t 1




                                                                 xi
                                                                            xk


                                                           xj
                                                                             16
Update Step on a triangulation
  (U )i =     min        Vi,j,k
            f =(i,j,k)

Discrete Eikonal equation:
    Vi,j,k = min tUj + (1           t)Uk +||txj + (1     t)xk        xi ||Hijk
               0 t 1


Distance function in (i, j, k):       U (x) = x        xi , g + d

                                  Unknowns:       gradient           = Vi,j,k


                                                                      xi
                                                                                 xk


                                                                xj               g
                                                                                     16
Update Step on a triangulation
  (U )i =     min        Vi,j,k
            f =(i,j,k)

Discrete Eikonal equation:
    Vi,j,k = min tUj + (1                t)Uk +||txj + (1     t)xk        xi ||Hijk
               0 t 1


Distance function in (i, j, k):              U (x) = x      xi , g + d

                                     Unknowns:           gradient         = Vi,j,k
Notations:
   Hi,j,k = w2 Id3                (for simplifity)
                                                                           xi
    X = (xj         xi , xk       xi )   R   d 2

                                                                                      xk
     u = (Uj , Uk )          R2
     I = (1, 1)      R2
                                                                     xj               g
     S = (X X)           1
                              R   2 2
                                                                                          16
Update Step on a triangulation (cont.)
Find g = X ,   R2 and d = Vi,j,k .              xi
 X g + dI = u =        = S(u         dI)             xk


                                           xj         0




                                                          17
Update Step on a triangulation (cont.)
Find g = X ,    R2 and d = Vi,j,k .              xi
 X g + dI = u =         = S(u         dI)             xk

Discrete Eikonal equation:
          || U (xi )|| = ||g|| = w          xj         0




                                                           17
Update Step on a triangulation (cont.)
Find g = X ,       R2 and d = Vi,j,k .                 xi
  X g + dI = u =             = S(u       dI)                 xk

Discrete Eikonal equation:
            || U (xi )|| = ||g|| = w              xj             0

Quadratic equation:
                                               a = SI, I
   ||XS(u       dI)||2 = w2                    b = SI, u
            =                                  c = Su, u    w2
                   d   2
                           2bd + c = 0




                                                                     17
Update Step on a triangulation (cont.)
Find g = X ,       R2 and d = Vi,j,k .                           xi
                                                        0
  X g + dI = u =             = S(u       dI)      1                       xk

Discrete Eikonal equation:
            || U (xi )|| = ||g|| = w                        xj             0

Quadratic equation:
                                                       a = SI, I
   ||XS(u       dI)||2 = w2                            b = SI, u
            =                                          c = Su, u      w2
                   d   2
                           2bd + c = 0
                               b+
Admissible solution:        d=                 = b2    ac
                                 a

                   d if          0                    dj = Uj + Wi ||xi    xj ||
        (ui ) =
                   min(dj , dk ) otherwise.
                                                                               17
Numerical Schemes
Fixed point equation: U = (U )
      is monotone:     U V =                          (U )    (V )

Iterative schemes: U (0) = 0, U (         +1)
                                                 = (U ( ) )    || (U ( ) )   U ( ) ||
     =            U(   +1)
                             U(   )
                                        C<+
         U(   )
                   U    solving       (U ) = U




U(   )




                                                                                        18
Numerical Schemes
Fixed point equation: U = (U )
      is monotone:     U V =                                    (U )   (V )

Iterative schemes: U (0) = 0, U (                 +1)
                                                        = (U ( ) )      || (U ( ) )   U ( ) ||
     =            U(   +1)
                              U(    )
                                              C<+
         U(   )
                   U     solving        (U ) = U
Minimal path extraction:
         ( +1)
                  =    ( )
                             ⇥ H(   ( )
                                          )   1
                                                   U(     ( )
                                                                )
U(   )




                                                                                                 18
Numerical Examples on Meshes




                               19
Discretization Errors
For a mesh with N points: U [N ]           RN solution of (U [N ] ) = U [N ]

Continuous geodesic distance U (x).

Linear interpolation:   ˜
                        U [N ] (x) =
                                                [N ]
                                               Ui      i (x)
                                           i

Uniform convergence:       ˜
                         ||U [N ]   U ||
                                               N   +
                                                   ⇥ 0




                                                                               20
Discretization Errors
For a mesh with N points: U [N ]           RN solution of (U [N ] ) = U [N ]

Continuous geodesic distance U (x).

Linear interpolation:   ˜
                        U [N ] (x) =
                                                [N ]
                                               Ui      i (x)
                                           i

Uniform convergence:       ˜
                         ||U [N ]   U ||
                                               N   +
                                                   ⇥ 0

                                                          1
Numerical evaluation:                                              |UiN   U (xi )|2
                                                          N    i




                                                                                  20
Overview
 • Metrics and Riemannian Surfaces.
 • Geodesic Computation - Iterative Scheme
 • Geodesic Computation - Fast Marching
 • Shape Recognition with Geodesic Statistics
 • Geodesic Meshing
                                                21
Causal Updates
Causality condition:   j   i,   (U )i   Uj
   The value of Ui depends on {Uj }j with Uj     Ui .
   Compute (U )i using an optimal ordering.
   Front propagation, O(N log(N )) operations.




                                                        22
Causal Updates
Causality condition:       j     i,   (U )i   Uj                  xi,j+1
   The value of Ui depends on {Uj }j with Uj               Ui .
   Compute (U )i using an optimal ordering.                       xi,j xi+1,j
   Front propagation, O(N log(N )) operations.

Isotropic H(x) = W (x)2 Id, square grid.
    u = (U )i is the solution of
         max(u    Ui   1,j , u   Ui+1,j , 0)2 +
         max(u    Ui,j   1, u     Ui,j+1 , 0)2 = h2 Wi,j
                                                     2


    (upwind derivatives)




                                                                           22
Causal Updates
Causality condition:       j     i,   (U )i   Uj                       xi,j+1
   The value of Ui depends on {Uj }j with Uj               Ui .
   Compute (U )i using an optimal ordering.                            xi,j xi+1,j
   Front propagation, O(N log(N )) operations.

Isotropic H(x) = W (x)2 Id, square grid.
    u = (U )i is the solution of                                        Good
         max(u    Ui   1,j , u   Ui+1,j , 0)2 +
         max(u    Ui,j   1, u     Ui,j+1 , 0)2 = h2 Wi,j
                                                     2
                                                                  xi    Bad
                                                                                xk
    (upwind derivatives)
                                                     xj
 Surface (first fundamental form)
    triangulation with no obtuse angles.
                                                     Bad               Good     22
Front Propagation
 Front Ft , Ft = {i  Ui             t}

                Ft

                        x0




State Si             {Computed, F ront, F ar}
Algorithm: Far               Front   Computed.



               1) Select front point with minimum Ui
   Iteration




               2) Move from Front to Computed .
               3) Update Uj = (U )j for neighbors and
                                                        23
Fast Marching on an Image




                            24
Fast Marching on Shapes and Surfaces




                                       25
Volumetric Datasets




                      26
Propagation in 3D




                    27
Overview
 • Metrics and Riemannian Surfaces.
 • Geodesic Computation - Iterative Scheme
 • Geodesic Computation - Fast Marching
 • Shape Recognition with Geodesic
   Statistics


 • Geodesic Meshing                          28
Bending Invariant Recognition
 Shape articulations:




[Zoopraxiscope, 1876]




                                29
Bending Invariant Recognition
 Shape articulations:




[Zoopraxiscope, 1876]

 Surface bendings:
            ˜
            x1


               ˜
               x2
      M
   [Elad, Kimmel, 2003].   [Bronstein et al., 2005].

                                                       29
2D Shapes
      2D shape: connected, closed compact set S     R2 .
             Piecewise-smooth boundary S.

      Geodesic distance in S for uniform metric:                 1
                    def.                              def.
          dS (x, y) = min L( )         where     L( ) =              | (t)|dt,
                       ⇥P(x,y)                               0
Shape S
Geodesics




                                                                                 30
Distribution of Geodesic Distances
Distribution of distances          80

                                   60




  to a point x: {dM (x, y)}y
                                   40


                               M   20

                                    0




                                   80
                                   60
                                   40
                                   20
                                    0




                                   80
                                   60
                                   40
                                   20
                                    0




                                        31
Distribution of Geodesic Distances
Distribution of distances                  80

                                           60




    to a point x: {dM (x, y)}y
                                           40


                                 M         20

                                            0




                                           80
                                           60




Extract a statistical measure
                                           40
                                           20
                                            0




      a0 (x) = min dM (x, y).
                                           80
                                           60
                                           40

                y                          20
                                            0




      a1 (x) = median dM (x, y).
                    y
     a2 (x) = max dM (x, y).
                y


x               x                x




      Min               Median       Max        31
Distribution of Geodesic Distances
Distribution of distances                       80

                                                60




    to a point x: {dM (x, y)}y
                                                40


                                 M              20

                                                 0




                                                80
                                                60




Extract a statistical measure
                                                40
                                                20
                                                 0




      a0 (x) = min dM (x, y).
                                                80
                                                60
                                                40

                y                               20
                                                 0




      a1 (x) = median dM (x, y).
                    y
     a2 (x) = max dM (x, y).               a2
                y
                                                          a(x)
x               x                x


                                                     a1
                                                                 a0
      Min               Median       Max                         31
Benging Invariant 2D Database

          [Ling & Jacobs, PAMI 2007]

                                   Our method
                                  (min,med,max)
                                                                            100                              1D
                 100
                                                                                                             4D




                                                        Average Precision
                  80
                                     max only                                80
Average Recall




                  60                [Ion et al. 2008]                        60

                  40                                                         40

                  20                             1D                          20
                                                 4D
                   0                                                          0
                    0       10     20       30   40                            0   20   40     60      80   100
                                 Image Rank                                             Average Recall



                        State of the art retrieval rates on this database.
                                                                                                                  32
Perspective: Textured Shapes
Take into account a texture f (x) on the shape.
Compute a saliency field W (x), e.g. edge detector.
                                                   1
                                        def.
Compute weighted curve lengths: L( ) =                 W ( (t))|| (t)||dt.
                                               0




                                                                Euclidean
    Image f (x)




                                                                Weighted
      || f (x)||              Max              Min                           33
Overview
 • Metrics and Riemannian Surfaces.
 • Geodesic Computation - Iterative Scheme
 • Geodesic Computation - Fast Marching
 • Shape Recognition with Geodesic Statistics
 • Geodesic Meshing
                                                34
Meshing Images, Shapes and Surfaces
                        Vertices V = {vi }M .
Triangulation (V, F):                     i=1
                        Faces F    {1, . . . , M }3 .
                                    M

Image approximation: fM =                 m ⇥m
                                   m=1
         = argmin ||f          µm ⇥m ||
                µ
                           m
   ⇥m (vi ) =   m
                i   is a ne on each face of F.




                                                        35
Meshing Images, Shapes and Surfaces
                        Vertices V = {vi }M .
Triangulation (V, F):                     i=1
                        Faces F    {1, . . . , M }3 .
                                    M

Image approximation: fM =                 m ⇥m
                                   m=1
         = argmin ||f          µm ⇥m ||
                µ
                           m
   ⇥m (vi ) =   m
                i   is a ne on each face of F.

 There exists (V, F) such that ||f          fM ||       Cf M   2

 Optimal (V, F): NP-hard.




                                                                   35
Meshing Images, Shapes and Surfaces
                        Vertices V = {vi }M .
Triangulation (V, F):                     i=1
                        Faces F    {1, . . . , M }3 .
                                    M

Image approximation: fM =                 m ⇥m
                                   m=1
         = argmin ||f          µm ⇥m ||
                µ
                           m
   ⇥m (vi ) =   m
                i   is a ne on each face of F.

 There exists (V, F) such that ||f          fM ||       Cf M   2

 Optimal (V, F): NP-hard.

Domain meshing:
    Conforming to complicated boundary.
    Capturing PDE solutions:
    Boundary layers, chocs . . .
                                                                   35
Riemannian Sizing Field
Sampling {xi }i    I   of a manifold.

Distance conforming:
    ⇤ xi ⇥ xj , d(xi , xj )                                        e1 (x)
                                                               1
                                                       1 (x)   2             e2 (x)
Triangulation conforming:                                          x
                                                   ⇥
   =( xi ⇤ xj ⇤ xk ) ⇥ x  ||x      x ||T (x   )                            2 (x)
                                                                                    1
                                                                                    2




 Building triangulation
           ⇥
   Ellipsoid packing
           ⇥
 Global integration of
   local sizing field
                                                                                36
Geodesic Sampling
Sampling {xi }i   I   of a manifold.




                                       Metric   Sampling
Geodesic Sampling
Sampling {xi }i   I   of a manifold.
Farthest point algorithm:        [Peyr´, Cohen, 2006]
                                      e
    xk+1 = argmax min d(xi , x)
                  x      0 i k

                                                        Metric   Sampling
Geodesic Sampling
Sampling {xi }i   I   of a manifold.
Farthest point algorithm:        [Peyr´, Cohen, 2006]
                                      e
    xk+1 = argmax min d(xi , x)
                  x      0 i k

Geodesic Voronoi:                                       Metric    Sampling
    Ci = {x  ⇥ j = i, d(xi , x)    d(xj , x)}




                                                        Voronoi
Geodesic Sampling
Sampling {xi }i   I   of a manifold.
Farthest point algorithm:        [Peyr´, Cohen, 2006]
                                      e
    xk+1 = argmax min d(xi , x)
                  x      0 i k

Geodesic Voronoi:                                           Metric          Sampling
    Ci = {x  ⇥ j = i, d(xi , x)    d(xj , x)}

Geodesic Delaunay connectivity:
   (xi     xj ) ⇥ (Ci ⇧ Cj ⇤= ⌅)

     geodesic Delaunay refinement.                           Voronoi        Delaunay
    distance conforming.           triangulation conforming if the metric is “gradded”.
Adaptive Meshing




                   # samples
Adaptive Meshing




                                 # samples




Texture       Metric   Uniform    Adaptive
Approximation Driven Meshing
Linear approximation fM with M linear elements.
Minimize approximation error ||f   fM ||Lp .




                                                  Isotropic
Approximation Driven Meshing
Linear approximation fM with M linear elements.
Minimize approximation error ||f   fM ||Lp .
L   optimal metrics for smooth functions:
    Images: T (x) = |H(x)| (Hessian)
    Surfaces: T (x) = |C(x)| (curvature tensor)
                                                  Isotropic   Anisotropic
Approximation Driven Meshing
Linear approximation fM with M linear elements.
Minimize approximation error ||f      fM ||Lp .
L   optimal metrics for smooth functions:
    Images: T (x) = |H(x)| (Hessian)
    Surfaces: T (x) = |C(x)| (curvature tensor)
                                                         Isotropic   Anisotropic
For edges and textures:        use structure tensor.
                               [Peyr´ et al, 2008]
                                    e




                Anisotropic triangulation     JPEG2000
Approximation Driven Meshing
Linear approximation fM with M linear elements.
Minimize approximation error ||f      fM ||Lp .
L   optimal metrics for smooth functions:
    Images: T (x) = |H(x)| (Hessian)
    Surfaces: T (x) = |C(x)| (curvature tensor)
                                                         Isotropic   Anisotropic
For edges and textures:        use structure tensor.
                               [Peyr´ et al, 2008]
                                    e




                Anisotropic triangulation     JPEG2000


  extension to handle
boundary approximation.
 [Peyr´ et al, 2008]
       e
Conclusion
Riemannian tensors encode geometric features.
    Size, orientation, anisotropy.

Computing geodesic distance:
          iterative vs. propagation.




                                                40
Conclusion
Riemannian tensors encode geometric features.
    Size, orientation, anisotropy.

Computing geodesic distance:
          iterative vs. propagation.

Using geodesic curves: image segmentation.


Using geodesic distance: image and surface meshing




                                                     40

More Related Content

PPT
Engineering drawing-part-6
PDF
Mesh Processing Course : Geodesic Sampling
PDF
Geodesic Method in Computer Vision and Graphics
PDF
Reflect tsukuba524
PDF
Mesh Processing Course : Active Contours
PDF
Fractional Calculus
PDF
Signal Processing Course : Orthogonal Bases
PDF
cswiercz-general-presentation
Engineering drawing-part-6
Mesh Processing Course : Geodesic Sampling
Geodesic Method in Computer Vision and Graphics
Reflect tsukuba524
Mesh Processing Course : Active Contours
Fractional Calculus
Signal Processing Course : Orthogonal Bases
cswiercz-general-presentation

Similar to Mesh Processing Course : Geodesics (20)

PDF
Proximal Splitting and Optimal Transport
PDF
Color Img at Prisma Network meeting 2009
PDF
Case Study (All)
PDF
New Mathematical Tools for the Financial Sector
PDF
Gibbs flow transport for Bayesian inference
PDF
Test
PDF
Lesson 7: Vector-valued functions
PDF
Differential Geometry
PDF
A T(1)-type theorem for entangled multilinear Calderon-Zygmund operators
PDF
Markov Tutorial CDC Shanghai 2009
PDF
Signal Processing Course : Sparse Regularization of Inverse Problems
PDF
The convenience yield implied by quadratic volatility smiles presentation [...
PDF
Research Inventy : International Journal of Engineering and Science
PDF
Cash Settled Interest Rate Swap Futures
PDF
Sparsity and Compressed Sensing
PDF
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
PDF
Métodos computacionales para el estudio de modelos epidemiológicos con incer...
DOCX
MATH 200-004 Multivariate Calculus Winter 2014Chapter 12.docx
PPT
Fourier transform
PDF
02 2d systems matrix
Proximal Splitting and Optimal Transport
Color Img at Prisma Network meeting 2009
Case Study (All)
New Mathematical Tools for the Financial Sector
Gibbs flow transport for Bayesian inference
Test
Lesson 7: Vector-valued functions
Differential Geometry
A T(1)-type theorem for entangled multilinear Calderon-Zygmund operators
Markov Tutorial CDC Shanghai 2009
Signal Processing Course : Sparse Regularization of Inverse Problems
The convenience yield implied by quadratic volatility smiles presentation [...
Research Inventy : International Journal of Engineering and Science
Cash Settled Interest Rate Swap Futures
Sparsity and Compressed Sensing
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
Métodos computacionales para el estudio de modelos epidemiológicos con incer...
MATH 200-004 Multivariate Calculus Winter 2014Chapter 12.docx
Fourier transform
02 2d systems matrix
Ad

More from Gabriel Peyré (20)

PDF
Low Complexity Regularization of Inverse Problems - Course #3 Proximal Splitt...
PDF
Low Complexity Regularization of Inverse Problems - Course #2 Recovery Guaran...
PDF
Low Complexity Regularization of Inverse Problems - Course #1 Inverse Problems
PDF
Low Complexity Regularization of Inverse Problems
PDF
Model Selection with Piecewise Regular Gauges
PDF
Signal Processing Course : Inverse Problems Regularization
PDF
Learning Sparse Representation
PDF
Adaptive Signal and Image Processing
PDF
Mesh Processing Course : Mesh Parameterization
PDF
Mesh Processing Course : Multiresolution
PDF
Mesh Processing Course : Introduction
PDF
Mesh Processing Course : Differential Calculus
PDF
Signal Processing Course : Theory for Sparse Recovery
PDF
Signal Processing Course : Presentation of the Course
PDF
Signal Processing Course : Fourier
PDF
Signal Processing Course : Denoising
PDF
Signal Processing Course : Convex Optimization
PDF
Signal Processing Course : Compressed Sensing
PDF
Signal Processing Course : Approximation
PDF
Signal Processing Course : Wavelets
Low Complexity Regularization of Inverse Problems - Course #3 Proximal Splitt...
Low Complexity Regularization of Inverse Problems - Course #2 Recovery Guaran...
Low Complexity Regularization of Inverse Problems - Course #1 Inverse Problems
Low Complexity Regularization of Inverse Problems
Model Selection with Piecewise Regular Gauges
Signal Processing Course : Inverse Problems Regularization
Learning Sparse Representation
Adaptive Signal and Image Processing
Mesh Processing Course : Mesh Parameterization
Mesh Processing Course : Multiresolution
Mesh Processing Course : Introduction
Mesh Processing Course : Differential Calculus
Signal Processing Course : Theory for Sparse Recovery
Signal Processing Course : Presentation of the Course
Signal Processing Course : Fourier
Signal Processing Course : Denoising
Signal Processing Course : Convex Optimization
Signal Processing Course : Compressed Sensing
Signal Processing Course : Approximation
Signal Processing Course : Wavelets
Ad

Mesh Processing Course : Geodesics

  • 1. Geodesic Data Processing www.numerical-tours.com Gabriel Peyré CEREMADE, Université Paris-Dauphine
  • 2. Local vs. Global Processing Local Processing Global Processing Differential Computations Geodesic Computations Surface filtering Front Propagation on Meshes Fourier on Meshes Surface Remeshing 2
  • 3. Overview • Metrics and Riemannian Surfaces. • Geodesic Computation - Iterative Scheme • Geodesic Computation - Fast Marching • Shape Recognition with Geodesic Statistics • Geodesic Meshing 3
  • 4. Parametric Surfaces Parameterized surface: u ⇥ R2 ⇤ (u) ⇥ M. u1 ⇥ u2 ⇥u1 ⇥ ⇥u2 4
  • 5. Parametric Surfaces Parameterized surface: u ⇥ R2 ⇤ (u) ⇥ M. u1 ⇥ u2 ⇥u1 ⇥ ⇥u2 Curve in parameter domain: t ⇥ [0, 1] ⇤ (t) ⇥ D. 4
  • 6. Parametric Surfaces Parameterized surface: u ⇥ R2 ⇤ (u) ⇥ M. u1 ⇥ u2 ⇥u1 ¯ ¯ ⇥ ⇥u2 Curve in parameter domain: t ⇥ [0, 1] ⇤ (t) ⇥ D. def. Geometric realization: ¯ (t) = ⇥( (t)) M. 4
  • 7. Parametric Surfaces Parameterized surface: u ⇥ R2 ⇤ (u) ⇥ M. u1 ⇥ u2 ⇥u1 ¯ ¯ ⇥ ⇥u2 Curve in parameter domain: t ⇥ [0, 1] ⇤ (t) ⇥ D. def. Geometric realization: ¯ (t) = ⇥( (t)) M. For an embedded manifold M Rn : ⇥ ⇥ ⇥ First fundamental form: I = , ⇥ . ⇥ui ⇥uj i,j=1,2 Length of a curve 1 1 ⇥ def. L( ) = ||¯ (t)||dt = (t)I (t) (t)dt. 0 0 4
  • 8. Isometric and Conformal Surface not homeomorphic to a disk: M is locally isometric to the plane: I = Id. Exemple: M =cylinder.
  • 9. Isometric and Conformal Surface not homeomorphic to a disk: M is locally isometric to the plane: I = Id. Exemple: M =cylinder. ⇥ is conformal: I (u) = (u)Id. Exemple: stereographic mapping plane sphere.
  • 10. Riemannian Manifold Riemannian manifold: M Rn (locally) Riemannian metric: H(x) Rn , symmetric, positive definite. n 1⇥ def. T Length of a curve (t) M: L( ) = (t) H( (t)) (t)dt. 0 6
  • 11. Riemannian Manifold Riemannian manifold: M Rn (locally) Riemannian metric: H(x) Rn , symmetric, positive definite. n 1⇥ def. T Length of a curve (t) M: L( ) = (t) H( (t)) (t)dt. 0 Euclidean space: M = Rn , H(x) = Idn . W (x) 6
  • 12. Riemannian Manifold Riemannian manifold: M Rn (locally) Riemannian metric: H(x) Rn , symmetric, positive definite. n 1⇥ def. T Length of a curve (t) M: L( ) = (t) H( (t)) (t)dt. 0 Euclidean space: M = Rn , H(x) = Idn . 2-D shape: M R2 , H(x) = Id2 . W (x) 6
  • 13. Riemannian Manifold Riemannian manifold: M Rn (locally) Riemannian metric: H(x) Rn , symmetric, positive definite. n 1⇥ def. T Length of a curve (t) M: L( ) = (t) H( (t)) (t)dt. 0 Euclidean space: M = Rn , H(x) = Idn . 2-D shape: M R2 , H(x) = Id2 . Isotropic metric: H(x) = W (x)2 Idn . W (x) 6
  • 14. Riemannian Manifold Riemannian manifold: M Rn (locally) Riemannian metric: H(x) Rn , symmetric, positive definite. n 1⇥ def. T Length of a curve (t) M: L( ) = (t) H( (t)) (t)dt. 0 Euclidean space: M = Rn , H(x) = Idn . 2-D shape: M R2 , H(x) = Id2 . Isotropic metric: H(x) = W (x)2 Idn . Image processing: image I, W (x)2 = ( + || I(x)||) 1 . W (x) 6
  • 15. Riemannian Manifold Riemannian manifold: M Rn (locally) Riemannian metric: H(x) Rn , symmetric, positive definite. n 1⇥ def. T Length of a curve (t) M: L( ) = (t) H( (t)) (t)dt. 0 Euclidean space: M = Rn , H(x) = Idn . 2-D shape: M R2 , H(x) = Id2 . Isotropic metric: H(x) = W (x)2 Idn . Image processing: image I, W (x)2 = ( + || I(x)||) 1 . Parametric surface: H(x) = Ix (1st fundamental form). W (x) 6
  • 16. Riemannian Manifold Riemannian manifold: M Rn (locally) Riemannian metric: H(x) Rn , symmetric, positive definite. n 1⇥ def. T Length of a curve (t) M: L( ) = (t) H( (t)) (t)dt. 0 Euclidean space: M = Rn , H(x) = Idn . 2-D shape: M R2 , H(x) = Id2 . Isotropic metric: H(x) = W (x)2 Idn . Image processing: image I, W (x)2 = ( + || I(x)||) 1 . Parametric surface: H(x) = Ix (1st fundamental form). DTI imaging: M = [0, 1]3 , H(x)=di usion tensor. W (x) 6
  • 17. Geodesic Distances Geodesic distance metric over M Rn dM (x, y) = min L( ) (0)=x, (1)=y Geodesic curve: (t) such that L( ) = dM (x, y). def. Distance map to a starting point x0 M: Ux0 (x) = dM (x0 , x). 7
  • 18. Geodesic Distances Geodesic distance metric over M Rn dM (x, y) = min L( ) (0)=x, (1)=y Geodesic curve: (t) such that L( ) = dM (x, y). def. Distance map to a starting point x0 M: Ux0 (x) = dM (x0 , x). metric geodesics Euclidean 7
  • 19. Geodesic Distances Geodesic distance metric over M Rn dM (x, y) = min L( ) (0)=x, (1)=y Geodesic curve: (t) such that L( ) = dM (x, y). def. Distance map to a starting point x0 M: Ux0 (x) = dM (x0 , x). metric geodesics Euclidean Shape 7
  • 20. Geodesic Distances Geodesic distance metric over M Rn dM (x, y) = min L( ) (0)=x, (1)=y Geodesic curve: (t) such that L( ) = dM (x, y). def. Distance map to a starting point x0 M: Ux0 (x) = dM (x0 , x). metric geodesics Euclidean Shape Isotropic 7
  • 21. Geodesic Distances Geodesic distance metric over M Rn dM (x, y) = min L( ) (0)=x, (1)=y Geodesic curve: (t) such that L( ) = dM (x, y). def. Distance map to a starting point x0 M: Ux0 (x) = dM (x0 , x). metric geodesics Euclidean Shape Isotropic Anisotropic 7
  • 22. Geodesic Distances Geodesic distance metric over M Rn dM (x, y) = min L( ) (0)=x, (1)=y Geodesic curve: (t) such that L( ) = dM (x, y). def. Distance map to a starting point x0 M: Ux0 (x) = dM (x0 , x). metric geodesics Euclidean Shape Isotropic Anisotropic Surface 7
  • 23. Anisotropy and Geodesics Tensor eigen-decomposition: T T H(x) = 1 (x)e1 (x)e1 (x) + 2 (x)e2 (x)e2 (x) with 0 < 1 2, { H(x) 1} e2 (x) 2 (x) 1 2 x e1 (x) 1 M 1 (x) 2 8
  • 24. Anisotropy and Geodesics Tensor eigen-decomposition: T T H(x) = 1 (x)e1 (x)e1 (x) + 2 (x)e2 (x)e2 (x) with 0 < 1 2, { H(x) 1} e2 (x) 2 (x) 1 2 x e1 (x) 1 M 1 (x) 2 Geodesics tend to follow e1 (x). 8
  • 25. Anisotropy and Geodesics Tensor eigen-decomposition: T T H(x) = 1 (x)e1 (x)e1 (x) + 2 (x)e2 (x)e2 (x) with 0 < 1 2, { H(x) 1} 4 ECCV-08 submission ID 1057 e2 (x) 2 (x) 1 2 x e1 (x) Figure 2 shows examples of geodesic curves computed from a single starting 1 point (x) MS = {x1 } in the center of the image = [0,11]2 and a set of points on the 2 boundary of . The geodesics are computed for a metric H(x) whose anisotropy ⇥(x) (defined in equation (2)) is to follow e1 (x).making the Riemannian space Geodesics tend increasing, thus progressively closer to the Euclidean space. ⇥1 (x) ⇥2 (x) Local anisotropy of the metric: (x) = [0, 1] ⇥1 (x) + ⇥2 (x) Image f Image f = .1 = .95 = .2 = .7 = .5 = .5 = 10 = 8
  • 26. Isotropic Metric Design Image-based potential: H(x) = W (x)2 Id2 , W (x) = ( + |f (x) c|) Image f Metric W (x) Distance Ux0 (x) Geodesic curve (t) 9
  • 27. Isotropic Metric Design Image-based potential: H(x) = W (x)2 Id2 , W (x) = ( + |f (x) c|) Image f Metric W (x) Distance Ux0 (x) Geodesic curve (t) Gradient-based potential: W (x) = ( + || x f ||) Image f Metric W (x) U{x0 ,x1 } Geodesics 9
  • 28. Isotropic Metric Design: Vessels ˜ Remove background: f = G ⇥ f f, ⇥vessel width. f ˜ f ˜ W = ( + max(f , 0)) 10
  • 29. Isotropic Metric Design: Vessels ˜ Remove background: f = G ⇥ f f, ⇥vessel width. f ˜ f ˜ W = ( + max(f , 0)) 3D Volumetric datasets: 10
  • 30. Overview • Metrics and Riemannian Surfaces. • Geodesic Computation - Iterative Scheme • Geodesic Computation - Fast Marching • Shape Recognition with Geodesic Statistics • Geodesic Meshing 11
  • 31. Eikonal Equation and Viscosity Solution Distance map: U (x) = d(x0 , x) Theorem: U is the unique viscosity solution of || U (x)||H(x) 1 = 1 with U (x0 ) = 0 where ||v||A = v Av 12
  • 32. Eikonal Equation and Viscosity Solution Distance map: U (x) = d(x0 , x) Theorem: U is the unique viscosity solution of || U (x)||H(x) 1 = 1 with U (x0 ) = 0 where ||v||A = v Av Geodesic curve between x1 and x0 solves (0) = x1 (t) = ⇥t H( (t)) 1 Ux0 ( (t)) with t >0 12
  • 33. Eikonal Equation and Viscosity Solution Distance map: U (x) = d(x0 , x) Theorem: U is the unique viscosity solution of || U (x)||H(x) 1 = 1 with U (x0 ) = 0 where ||v||A = v Av Geodesic curve between x1 and x0 solves (0) = x1 (t) = ⇥t H( (t)) 1 Ux0 ( (t)) with t >0 Example: isotropic metric H(x) = W (x)2 Idn , || U (x)|| = W (x) and (t) = ⇥t U ( (t)) 12
  • 34. Simplified Proof 1 U (x) = min L( ) = 0 H( (t)) (t), (t) dt :x0 x ||⇤V (x)||2 1 = H 1 (x)⇤V (x), ⇤V (x)⇥ = 1, V solving H V (x0 ) = 0.
  • 35. Simplified Proof 1 U (x) = min L( ) = 0 H( (t)) (t), (t) dt :x0 x ||⇤V (x)||2 1 = H 1 (x)⇤V (x), ⇤V (x)⇥ = 1, V solving H V (x0 ) = 0. U V Let : x0 x be any smooth curve. If V is smooth on : C.S. , ⇤V ⇥ = H 1/2 , H 1/2 ⇤V ⇥ ||H 1/2 ||||H 1/2 ⇤V || =1
  • 36. Simplified Proof 1 U (x) = min L( ) = 0 H( (t)) (t), (t) dt :x0 x ||⇤V (x)||2 1 = H 1 (x)⇤V (x), ⇤V (x)⇥ = 1, V solving H V (x0 ) = 0. U V Let : x0 x be any smooth curve. If V is smooth on : C.S. , ⇤V ⇥ = H 1/2 , H 1/2 ⇤V ⇥ ||H 1/2 ||||H 1/2 ⇤V || =1 1 1 L( ) = 0 ||H 1/2 || 0 ⇥ , ⌅V ⇤ = V ( (1)) V ( (0)) = V (x) =0 = U (x) = min L( ) V (x)
  • 37. Simplified Proof (cont.) U V Let x be arbitrary. Define: (t) = H 1 ( (t)) V ( (t)) (0) = x x x0
  • 38. Simplified Proof (cont.) U V Let x be arbitrary. Define: (t) = H 1 ( (t)) V ( (t)) (0) = x x If V is smooth on ([0, tmax )), then dV ( (t)) = (t), V ( (t)) = 1 dt x0 = (tmax ) = x0
  • 39. Simplified Proof (cont.) U V Let x be arbitrary. Define: (t) = H 1 ( (t)) V ( (t)) (0) = x x If V is smooth on ([0, tmax )), then dV ( (t)) = (t), V ( (t)) = 1 dt x0 = (tmax ) = x0 One has: H , = H V, V = 1 1 =1 tmax tmax U (x) L( ) = 0 H , = 0 H , tmax = 0 , V = V ( (tmax )) + V ( (0)) = V (x) =0 13 14
  • 40. Discretization x0 Control (derivative-free) formulation: B(x) y U (x) = d(x0 , x) is the unique solution of U (x) = (U )(x) = min U (y) + d(x, y) x y B(x) 15
  • 41. Discretization x0 Control (derivative-free) formulation: B(x) y U (x) = d(x0 , x) is the unique solution of U (x) = (U )(x) = min U (y) + d(x, y) x y B(x) Manifold discretization: triangular mesh. U discretization: linear finite elements. B(x) H discretization: constant on each triangle. xi xk xj 15
  • 42. Discretization x0 Control (derivative-free) formulation: B(x) y U (x) = d(x0 , x) is the unique solution of U (x) = (U )(x) = min U (y) + d(x, y) x y B(x) Manifold discretization: triangular mesh. U discretization: linear finite elements. B(x) H discretization: constant on each triangle. xi xk Ui = (U )i = min Vi,j,k f =(i,j,k) xj Vi,j,k = min tUj + (1 t)Uk xi 0 t 1 xk +||txj + (1 t)xk xi ||Hijk explicit solution (solving quadratic equation). txj + (1 t)xk on regular grid: equivalent to upwind FD. xj 15
  • 43. Update Step on a triangulation (U )i = min Vi,j,k f =(i,j,k) Discrete Eikonal equation: Vi,j,k = min tUj + (1 t)Uk +||txj + (1 t)xk xi ||Hijk 0 t 1 xi xk xj 16
  • 44. Update Step on a triangulation (U )i = min Vi,j,k f =(i,j,k) Discrete Eikonal equation: Vi,j,k = min tUj + (1 t)Uk +||txj + (1 t)xk xi ||Hijk 0 t 1 Distance function in (i, j, k): U (x) = x xi , g + d Unknowns: gradient = Vi,j,k xi xk xj g 16
  • 45. Update Step on a triangulation (U )i = min Vi,j,k f =(i,j,k) Discrete Eikonal equation: Vi,j,k = min tUj + (1 t)Uk +||txj + (1 t)xk xi ||Hijk 0 t 1 Distance function in (i, j, k): U (x) = x xi , g + d Unknowns: gradient = Vi,j,k Notations: Hi,j,k = w2 Id3 (for simplifity) xi X = (xj xi , xk xi ) R d 2 xk u = (Uj , Uk ) R2 I = (1, 1) R2 xj g S = (X X) 1 R 2 2 16
  • 46. Update Step on a triangulation (cont.) Find g = X , R2 and d = Vi,j,k . xi X g + dI = u = = S(u dI) xk xj 0 17
  • 47. Update Step on a triangulation (cont.) Find g = X , R2 and d = Vi,j,k . xi X g + dI = u = = S(u dI) xk Discrete Eikonal equation: || U (xi )|| = ||g|| = w xj 0 17
  • 48. Update Step on a triangulation (cont.) Find g = X , R2 and d = Vi,j,k . xi X g + dI = u = = S(u dI) xk Discrete Eikonal equation: || U (xi )|| = ||g|| = w xj 0 Quadratic equation: a = SI, I ||XS(u dI)||2 = w2 b = SI, u = c = Su, u w2 d 2 2bd + c = 0 17
  • 49. Update Step on a triangulation (cont.) Find g = X , R2 and d = Vi,j,k . xi 0 X g + dI = u = = S(u dI) 1 xk Discrete Eikonal equation: || U (xi )|| = ||g|| = w xj 0 Quadratic equation: a = SI, I ||XS(u dI)||2 = w2 b = SI, u = c = Su, u w2 d 2 2bd + c = 0 b+ Admissible solution: d= = b2 ac a d if 0 dj = Uj + Wi ||xi xj || (ui ) = min(dj , dk ) otherwise. 17
  • 50. Numerical Schemes Fixed point equation: U = (U ) is monotone: U V = (U ) (V ) Iterative schemes: U (0) = 0, U ( +1) = (U ( ) ) || (U ( ) ) U ( ) || = U( +1) U( ) C<+ U( ) U solving (U ) = U U( ) 18
  • 51. Numerical Schemes Fixed point equation: U = (U ) is monotone: U V = (U ) (V ) Iterative schemes: U (0) = 0, U ( +1) = (U ( ) ) || (U ( ) ) U ( ) || = U( +1) U( ) C<+ U( ) U solving (U ) = U Minimal path extraction: ( +1) = ( ) ⇥ H( ( ) ) 1 U( ( ) ) U( ) 18
  • 53. Discretization Errors For a mesh with N points: U [N ] RN solution of (U [N ] ) = U [N ] Continuous geodesic distance U (x). Linear interpolation: ˜ U [N ] (x) = [N ] Ui i (x) i Uniform convergence: ˜ ||U [N ] U || N + ⇥ 0 20
  • 54. Discretization Errors For a mesh with N points: U [N ] RN solution of (U [N ] ) = U [N ] Continuous geodesic distance U (x). Linear interpolation: ˜ U [N ] (x) = [N ] Ui i (x) i Uniform convergence: ˜ ||U [N ] U || N + ⇥ 0 1 Numerical evaluation: |UiN U (xi )|2 N i 20
  • 55. Overview • Metrics and Riemannian Surfaces. • Geodesic Computation - Iterative Scheme • Geodesic Computation - Fast Marching • Shape Recognition with Geodesic Statistics • Geodesic Meshing 21
  • 56. Causal Updates Causality condition: j i, (U )i Uj The value of Ui depends on {Uj }j with Uj Ui . Compute (U )i using an optimal ordering. Front propagation, O(N log(N )) operations. 22
  • 57. Causal Updates Causality condition: j i, (U )i Uj xi,j+1 The value of Ui depends on {Uj }j with Uj Ui . Compute (U )i using an optimal ordering. xi,j xi+1,j Front propagation, O(N log(N )) operations. Isotropic H(x) = W (x)2 Id, square grid. u = (U )i is the solution of max(u Ui 1,j , u Ui+1,j , 0)2 + max(u Ui,j 1, u Ui,j+1 , 0)2 = h2 Wi,j 2 (upwind derivatives) 22
  • 58. Causal Updates Causality condition: j i, (U )i Uj xi,j+1 The value of Ui depends on {Uj }j with Uj Ui . Compute (U )i using an optimal ordering. xi,j xi+1,j Front propagation, O(N log(N )) operations. Isotropic H(x) = W (x)2 Id, square grid. u = (U )i is the solution of Good max(u Ui 1,j , u Ui+1,j , 0)2 + max(u Ui,j 1, u Ui,j+1 , 0)2 = h2 Wi,j 2 xi Bad xk (upwind derivatives) xj Surface (first fundamental form) triangulation with no obtuse angles. Bad Good 22
  • 59. Front Propagation Front Ft , Ft = {i Ui t} Ft x0 State Si {Computed, F ront, F ar} Algorithm: Far Front Computed. 1) Select front point with minimum Ui Iteration 2) Move from Front to Computed . 3) Update Uj = (U )j for neighbors and 23
  • 60. Fast Marching on an Image 24
  • 61. Fast Marching on Shapes and Surfaces 25
  • 64. Overview • Metrics and Riemannian Surfaces. • Geodesic Computation - Iterative Scheme • Geodesic Computation - Fast Marching • Shape Recognition with Geodesic Statistics • Geodesic Meshing 28
  • 65. Bending Invariant Recognition Shape articulations: [Zoopraxiscope, 1876] 29
  • 66. Bending Invariant Recognition Shape articulations: [Zoopraxiscope, 1876] Surface bendings: ˜ x1 ˜ x2 M [Elad, Kimmel, 2003]. [Bronstein et al., 2005]. 29
  • 67. 2D Shapes 2D shape: connected, closed compact set S R2 . Piecewise-smooth boundary S. Geodesic distance in S for uniform metric: 1 def. def. dS (x, y) = min L( ) where L( ) = | (t)|dt, ⇥P(x,y) 0 Shape S Geodesics 30
  • 68. Distribution of Geodesic Distances Distribution of distances 80 60 to a point x: {dM (x, y)}y 40 M 20 0 80 60 40 20 0 80 60 40 20 0 31
  • 69. Distribution of Geodesic Distances Distribution of distances 80 60 to a point x: {dM (x, y)}y 40 M 20 0 80 60 Extract a statistical measure 40 20 0 a0 (x) = min dM (x, y). 80 60 40 y 20 0 a1 (x) = median dM (x, y). y a2 (x) = max dM (x, y). y x x x Min Median Max 31
  • 70. Distribution of Geodesic Distances Distribution of distances 80 60 to a point x: {dM (x, y)}y 40 M 20 0 80 60 Extract a statistical measure 40 20 0 a0 (x) = min dM (x, y). 80 60 40 y 20 0 a1 (x) = median dM (x, y). y a2 (x) = max dM (x, y). a2 y a(x) x x x a1 a0 Min Median Max 31
  • 71. Benging Invariant 2D Database [Ling & Jacobs, PAMI 2007] Our method (min,med,max) 100 1D 100 4D Average Precision 80 max only 80 Average Recall 60 [Ion et al. 2008] 60 40 40 20 1D 20 4D 0 0 0 10 20 30 40 0 20 40 60 80 100 Image Rank Average Recall State of the art retrieval rates on this database. 32
  • 72. Perspective: Textured Shapes Take into account a texture f (x) on the shape. Compute a saliency field W (x), e.g. edge detector. 1 def. Compute weighted curve lengths: L( ) = W ( (t))|| (t)||dt. 0 Euclidean Image f (x) Weighted || f (x)|| Max Min 33
  • 73. Overview • Metrics and Riemannian Surfaces. • Geodesic Computation - Iterative Scheme • Geodesic Computation - Fast Marching • Shape Recognition with Geodesic Statistics • Geodesic Meshing 34
  • 74. Meshing Images, Shapes and Surfaces Vertices V = {vi }M . Triangulation (V, F): i=1 Faces F {1, . . . , M }3 . M Image approximation: fM = m ⇥m m=1 = argmin ||f µm ⇥m || µ m ⇥m (vi ) = m i is a ne on each face of F. 35
  • 75. Meshing Images, Shapes and Surfaces Vertices V = {vi }M . Triangulation (V, F): i=1 Faces F {1, . . . , M }3 . M Image approximation: fM = m ⇥m m=1 = argmin ||f µm ⇥m || µ m ⇥m (vi ) = m i is a ne on each face of F. There exists (V, F) such that ||f fM || Cf M 2 Optimal (V, F): NP-hard. 35
  • 76. Meshing Images, Shapes and Surfaces Vertices V = {vi }M . Triangulation (V, F): i=1 Faces F {1, . . . , M }3 . M Image approximation: fM = m ⇥m m=1 = argmin ||f µm ⇥m || µ m ⇥m (vi ) = m i is a ne on each face of F. There exists (V, F) such that ||f fM || Cf M 2 Optimal (V, F): NP-hard. Domain meshing: Conforming to complicated boundary. Capturing PDE solutions: Boundary layers, chocs . . . 35
  • 77. Riemannian Sizing Field Sampling {xi }i I of a manifold. Distance conforming: ⇤ xi ⇥ xj , d(xi , xj ) e1 (x) 1 1 (x) 2 e2 (x) Triangulation conforming: x ⇥ =( xi ⇤ xj ⇤ xk ) ⇥ x ||x x ||T (x ) 2 (x) 1 2 Building triangulation ⇥ Ellipsoid packing ⇥ Global integration of local sizing field 36
  • 78. Geodesic Sampling Sampling {xi }i I of a manifold. Metric Sampling
  • 79. Geodesic Sampling Sampling {xi }i I of a manifold. Farthest point algorithm: [Peyr´, Cohen, 2006] e xk+1 = argmax min d(xi , x) x 0 i k Metric Sampling
  • 80. Geodesic Sampling Sampling {xi }i I of a manifold. Farthest point algorithm: [Peyr´, Cohen, 2006] e xk+1 = argmax min d(xi , x) x 0 i k Geodesic Voronoi: Metric Sampling Ci = {x ⇥ j = i, d(xi , x) d(xj , x)} Voronoi
  • 81. Geodesic Sampling Sampling {xi }i I of a manifold. Farthest point algorithm: [Peyr´, Cohen, 2006] e xk+1 = argmax min d(xi , x) x 0 i k Geodesic Voronoi: Metric Sampling Ci = {x ⇥ j = i, d(xi , x) d(xj , x)} Geodesic Delaunay connectivity: (xi xj ) ⇥ (Ci ⇧ Cj ⇤= ⌅) geodesic Delaunay refinement. Voronoi Delaunay distance conforming. triangulation conforming if the metric is “gradded”.
  • 82. Adaptive Meshing # samples
  • 83. Adaptive Meshing # samples Texture Metric Uniform Adaptive
  • 84. Approximation Driven Meshing Linear approximation fM with M linear elements. Minimize approximation error ||f fM ||Lp . Isotropic
  • 85. Approximation Driven Meshing Linear approximation fM with M linear elements. Minimize approximation error ||f fM ||Lp . L optimal metrics for smooth functions: Images: T (x) = |H(x)| (Hessian) Surfaces: T (x) = |C(x)| (curvature tensor) Isotropic Anisotropic
  • 86. Approximation Driven Meshing Linear approximation fM with M linear elements. Minimize approximation error ||f fM ||Lp . L optimal metrics for smooth functions: Images: T (x) = |H(x)| (Hessian) Surfaces: T (x) = |C(x)| (curvature tensor) Isotropic Anisotropic For edges and textures: use structure tensor. [Peyr´ et al, 2008] e Anisotropic triangulation JPEG2000
  • 87. Approximation Driven Meshing Linear approximation fM with M linear elements. Minimize approximation error ||f fM ||Lp . L optimal metrics for smooth functions: Images: T (x) = |H(x)| (Hessian) Surfaces: T (x) = |C(x)| (curvature tensor) Isotropic Anisotropic For edges and textures: use structure tensor. [Peyr´ et al, 2008] e Anisotropic triangulation JPEG2000 extension to handle boundary approximation. [Peyr´ et al, 2008] e
  • 88. Conclusion Riemannian tensors encode geometric features. Size, orientation, anisotropy. Computing geodesic distance: iterative vs. propagation. 40
  • 89. Conclusion Riemannian tensors encode geometric features. Size, orientation, anisotropy. Computing geodesic distance: iterative vs. propagation. Using geodesic curves: image segmentation. Using geodesic distance: image and surface meshing 40