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

What's hot (20)

PDF
Reflect tsukuba524
kazuhase2011
 
PDF
Mesh Processing Course : Active Contours
Gabriel Peyré
 
PDF
Lesson 28: The Fundamental Theorem of Calculus
Matthew Leingang
 
PDF
Low Complexity Regularization of Inverse Problems - Course #3 Proximal Splitt...
Gabriel Peyré
 
PDF
Nonlinear Manifolds in Computer Vision
zukun
 
PDF
Test
Kinni MEW
 
PDF
L. Jonke - A Twisted Look on Kappa-Minkowski: U(1) Gauge Theory
SEENET-MTP
 
PDF
Nature-Inspired Metaheuristic Algorithms for Optimization and Computational I...
Xin-She Yang
 
PPT
1533 game mathematics
Dr Fereidoun Dejahang
 
PDF
Signal Processing Course : Inverse Problems Regularization
Gabriel Peyré
 
PDF
Mesh Processing Course : Multiresolution
Gabriel Peyré
 
PDF
Low Complexity Regularization of Inverse Problems - Course #1 Inverse Problems
Gabriel Peyré
 
PDF
Signal Processing Course : Convex Optimization
Gabriel Peyré
 
PDF
Calculus cheat sheet_integrals
UrbanX4
 
PDF
Common derivatives integrals_reduced
Kyro Fitkry
 
PDF
Stuff You Must Know Cold for the AP Calculus BC Exam!
A Jorge Garcia
 
PDF
Lesson 26: The Fundamental Theorem of Calculus (slides)
Matthew Leingang
 
PDF
Calculus Cheat Sheet All
Moe Han
 
PDF
Andreas Eberle
BigMC
 
PDF
cswiercz-general-presentation
Chris Swierczewski
 
Reflect tsukuba524
kazuhase2011
 
Mesh Processing Course : Active Contours
Gabriel Peyré
 
Lesson 28: The Fundamental Theorem of Calculus
Matthew Leingang
 
Low Complexity Regularization of Inverse Problems - Course #3 Proximal Splitt...
Gabriel Peyré
 
Nonlinear Manifolds in Computer Vision
zukun
 
Test
Kinni MEW
 
L. Jonke - A Twisted Look on Kappa-Minkowski: U(1) Gauge Theory
SEENET-MTP
 
Nature-Inspired Metaheuristic Algorithms for Optimization and Computational I...
Xin-She Yang
 
1533 game mathematics
Dr Fereidoun Dejahang
 
Signal Processing Course : Inverse Problems Regularization
Gabriel Peyré
 
Mesh Processing Course : Multiresolution
Gabriel Peyré
 
Low Complexity Regularization of Inverse Problems - Course #1 Inverse Problems
Gabriel Peyré
 
Signal Processing Course : Convex Optimization
Gabriel Peyré
 
Calculus cheat sheet_integrals
UrbanX4
 
Common derivatives integrals_reduced
Kyro Fitkry
 
Stuff You Must Know Cold for the AP Calculus BC Exam!
A Jorge Garcia
 
Lesson 26: The Fundamental Theorem of Calculus (slides)
Matthew Leingang
 
Calculus Cheat Sheet All
Moe Han
 
Andreas Eberle
BigMC
 
cswiercz-general-presentation
Chris Swierczewski
 

Similar to Mesh Processing Course : Geodesics (20)

PDF
Fractional Calculus
VRRITC
 
PDF
Signal Processing Course : Orthogonal Bases
Gabriel Peyré
 
PDF
Color Img at Prisma Network meeting 2009
Juan Luis Nieves
 
PDF
Case Study (All)
gudeyi
 
PDF
New Mathematical Tools for the Financial Sector
SSA KPI
 
PDF
Gibbs flow transport for Bayesian inference
JeremyHeng10
 
PDF
Lesson 7: Vector-valued functions
Matthew Leingang
 
PDF
Differential Geometry
lapuyade
 
PDF
A T(1)-type theorem for entangled multilinear Calderon-Zygmund operators
VjekoslavKovac1
 
PDF
Markov Tutorial CDC Shanghai 2009
Sean Meyn
 
PDF
Signal Processing Course : Sparse Regularization of Inverse Problems
Gabriel Peyré
 
PDF
The convenience yield implied by quadratic volatility smiles presentation [...
yigalbt
 
PDF
Research Inventy : International Journal of Engineering and Science
researchinventy
 
PDF
Cash Settled Interest Rate Swap Futures
Clarus Financial Technology
 
PDF
Sparsity and Compressed Sensing
Gabriel Peyré
 
PDF
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD Editor
 
PDF
Métodos computacionales para el estudio de modelos epidemiológicos con incer...
Facultad de Informática UCM
 
DOCX
MATH 200-004 Multivariate Calculus Winter 2014Chapter 12.docx
andreecapon
 
PPT
Fourier transform
Naveen Sihag
 
PDF
02 2d systems matrix
Rumah Belajar
 
Fractional Calculus
VRRITC
 
Signal Processing Course : Orthogonal Bases
Gabriel Peyré
 
Color Img at Prisma Network meeting 2009
Juan Luis Nieves
 
Case Study (All)
gudeyi
 
New Mathematical Tools for the Financial Sector
SSA KPI
 
Gibbs flow transport for Bayesian inference
JeremyHeng10
 
Lesson 7: Vector-valued functions
Matthew Leingang
 
Differential Geometry
lapuyade
 
A T(1)-type theorem for entangled multilinear Calderon-Zygmund operators
VjekoslavKovac1
 
Markov Tutorial CDC Shanghai 2009
Sean Meyn
 
Signal Processing Course : Sparse Regularization of Inverse Problems
Gabriel Peyré
 
The convenience yield implied by quadratic volatility smiles presentation [...
yigalbt
 
Research Inventy : International Journal of Engineering and Science
researchinventy
 
Cash Settled Interest Rate Swap Futures
Clarus Financial Technology
 
Sparsity and Compressed Sensing
Gabriel Peyré
 
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD Editor
 
Métodos computacionales para el estudio de modelos epidemiológicos con incer...
Facultad de Informática UCM
 
MATH 200-004 Multivariate Calculus Winter 2014Chapter 12.docx
andreecapon
 
Fourier transform
Naveen Sihag
 
02 2d systems matrix
Rumah Belajar
 
Ad

More from Gabriel Peyré (13)

PDF
Low Complexity Regularization of Inverse Problems - Course #2 Recovery Guaran...
Gabriel Peyré
 
PDF
Model Selection with Piecewise Regular Gauges
Gabriel Peyré
 
PDF
Mesh Processing Course : Introduction
Gabriel Peyré
 
PDF
Signal Processing Course : Theory for Sparse Recovery
Gabriel Peyré
 
PDF
Signal Processing Course : Presentation of the Course
Gabriel Peyré
 
PDF
Signal Processing Course : Fourier
Gabriel Peyré
 
PDF
Signal Processing Course : Denoising
Gabriel Peyré
 
PDF
Signal Processing Course : Compressed Sensing
Gabriel Peyré
 
PDF
Signal Processing Course : Approximation
Gabriel Peyré
 
PDF
Signal Processing Course : Wavelets
Gabriel Peyré
 
PDF
Optimal Transport in Imaging Sciences
Gabriel Peyré
 
PDF
An Introduction to Optimal Transport
Gabriel Peyré
 
PDF
A Review of Proximal Methods, with a New One
Gabriel Peyré
 
Low Complexity Regularization of Inverse Problems - Course #2 Recovery Guaran...
Gabriel Peyré
 
Model Selection with Piecewise Regular Gauges
Gabriel Peyré
 
Mesh Processing Course : Introduction
Gabriel Peyré
 
Signal Processing Course : Theory for Sparse Recovery
Gabriel Peyré
 
Signal Processing Course : Presentation of the Course
Gabriel Peyré
 
Signal Processing Course : Fourier
Gabriel Peyré
 
Signal Processing Course : Denoising
Gabriel Peyré
 
Signal Processing Course : Compressed Sensing
Gabriel Peyré
 
Signal Processing Course : Approximation
Gabriel Peyré
 
Signal Processing Course : Wavelets
Gabriel Peyré
 
Optimal Transport in Imaging Sciences
Gabriel Peyré
 
An Introduction to Optimal Transport
Gabriel Peyré
 
A Review of Proximal Methods, with a New One
Gabriel Peyré
 
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