Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mesh Processing Course: Differential Mesh Processing

Gabriel Peyré
January 01, 2011

Mesh Processing Course: Differential Mesh Processing

Gabriel Peyré

January 01, 2011
Tweet

More Decks by Gabriel Peyré

Other Decks in Research

Transcript

  1. Differential Mesh Processing
    Gabriel Peyré
    CEREMADE, Université Paris-Dauphine
    www.numerical-tours.com

    View full-size slide

  2. Processing: Local vs. Global
    2
    Differential
    Processing
    Geodesic
    Processing
    Surface filtering
    Fourier on Meshes
    Front Propagation on Meshes
    Surface Remeshing

    View full-size slide

  3. Overview
    •Triangulated Meshes
    •Operators on Meshes
    •From Discrete to Continuous
    •Denoising by Diffusion and
    Regularization
    •Fourier on Meshes
    •Spectral Mesh Compression
    3

    View full-size slide

  4. Triangular Meshes
    4
    Triangulated mesh: topology M = (V, E, F) and geometry M = (V, E, F).
    i
    j k
    Topology M:
    (0D) Vertices: V ⌅ {1, . . . , n}.
    (1D) Edges: E ⇤ V V .
    Symmetric: (i, j) ⌥ E ⌃ i ⇥ j ⌃ (j, i) ⌥ E.
    (2D) Faces: F ⇤ V V V .
    Compatibility: (i, j, k) ⌥ F ⇧ (i, j), (j, k), (k, i) ⌥ E.
    ⇥ (i, j) E, ⇤(i, j, k) F.

    View full-size slide

  5. Triangular Meshes
    4
    Triangulated mesh: topology M = (V, E, F) and geometry M = (V, E, F).
    i
    j k
    Topology M:
    (0D) Vertices: V ⌅ {1, . . . , n}.
    (1D) Edges: E ⇤ V V .
    Symmetric: (i, j) ⌥ E ⌃ i ⇥ j ⌃ (j, i) ⌥ E.
    (2D) Faces: F ⇤ V V V .
    Compatibility: (i, j, k) ⌥ F ⇧ (i, j), (j, k), (k, i) ⌥ E.
    ⇥ (i, j) E, ⇤(i, j, k) F.
    Geometric realization M: ⇥ i V, xi
    R3, V def.
    = {xi
    \ i V } .
    E def.
    =
    (i,j) E
    Conv(xi, xj
    ) R3.
    F def.
    =
    (i,j,k) F
    Conv(xi, xj, xk
    ) R3.
    Piecewise linear mesh:

    View full-size slide

  6. Mesh Acquisition
    acquisition
    [Digital Michelangelo Project]
    Low-poly modeling
    5
    Implicit surface

    View full-size slide

  7. Local Connectivity
    6
    Vertex 1-ring: Vi
    def.
    = {j ⇥ V \ (i, j) ⇥ E} V .
    Face 1-ring: Fi
    def.
    = {(i, j, k) ⇥ F \ i, j ⇥ V } F.
    i
    j k
    f = (i, j, k) Vi

    ni

    nf

    View full-size slide

  8. Local Connectivity
    6
    Vertex 1-ring: Vi
    def.
    = {j ⇥ V \ (i, j) ⇥ E} V .
    Face 1-ring: Fi
    def.
    = {(i, j, k) ⇥ F \ i, j ⇥ V } F.
    Normal Computation:
    ⌅ f = (i, j, k) ⇤ F, ⇥
    nf
    def.
    =
    (xj xi
    ) ⇧ (xk xi
    )
    ||(xj xi
    ) ⇧ (xk xi
    )||
    .
    ⌅ i ⇤ V, ⇥
    ni
    def.
    = f Fi

    nf
    ||
    f Fi

    nf
    ||
    i
    j k
    f = (i, j, k) Vi

    ni

    nf

    View full-size slide

  9. Mesh Displaying
    7

    View full-size slide

  10. Overview
    •Triangulated Meshes
    •Operators on Meshes
    •From Discrete to Continuous
    •Denoising by Diffusion and
    Regularization
    •Fourier on Meshes
    •Spectral Mesh Compression
    8

    View full-size slide

  11. Functions on a Mesh
    9
    Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
    f :
    V ⇥ R
    xi
    ⌃ ⇥ f(xi
    )
    ⇤⌅ f : V ⇥ R
    i ⌃ ⇥ fi
    ⇤⌅ f = (fi
    )
    i V
    ⇧ Rn.

    View full-size slide

  12. Functions on a Mesh
    9
    Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
    f :
    V ⇥ R
    xi
    ⌃ ⇥ f(xi
    )
    ⇤⌅ f : V ⇥ R
    i ⌃ ⇥ fi
    ⇤⌅ f = (fi
    )
    i V
    ⇧ Rn.
    Inner product & norm:
    f, g⇥ def.
    =
    i V
    figi
    and ||f||2 = f, f⇥

    View full-size slide

  13. Functions on a Mesh
    9
    Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
    f :
    V ⇥ R
    xi
    ⌃ ⇥ f(xi
    )
    ⇤⌅ f : V ⇥ R
    i ⌃ ⇥ fi
    ⇤⌅ f = (fi
    )
    i V
    ⇧ Rn.
    Inner product & norm:
    f, g⇥ def.
    =
    i V
    figi
    and ||f||2 = f, f⇥
    Linear operator A:
    A : 2(V ) 2(V ) ⇥⇤ A = (aij
    )
    i,j⇥V
    ⌅ Rn n (matrix).
    (Af)(xi
    ) =
    j V
    aijf(xj
    ) ⇥ (Af)
    i
    =
    j V
    aijfj.

    View full-size slide

  14. Functions on a Mesh
    9
    Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
    f :
    V ⇥ R
    xi
    ⌃ ⇥ f(xi
    )
    ⇤⌅ f : V ⇥ R
    i ⌃ ⇥ fi
    ⇤⌅ f = (fi
    )
    i V
    ⇧ Rn.
    Inner product & norm:
    f, g⇥ def.
    =
    i V
    figi
    and ||f||2 = f, f⇥
    Linear operator A:
    A : 2(V ) 2(V ) ⇥⇤ A = (aij
    )
    i,j⇥V
    ⌅ Rn n (matrix).
    (Af)(xi
    ) =
    j V
    aijf(xj
    ) ⇥ (Af)
    i
    =
    j V
    aijfj.
    Mesh processing:
    Modify functions f ⇥ 2(V ).
    Example: denoise a mesh M as 3 functions on M.
    Strategy: apply a linear operator f ⇤ Af.
    Remark: A can computed from M only or from (M, M).
    f Af

    View full-size slide

  15. Functions on Meshes
    10
    Examples:
    Coordinates: xi
    = (x1
    i
    , x2
    i
    , x3
    i
    ) ⌅ R3.
    X-coordinate: f : i ⌅ V ⇧ x1
    i
    ⌅ R.
    Geometric mesh M ⇥⇤ 3 functions defined on M.
    f(xi
    ) = x1
    i f(xi
    ) = cos(2 x1
    i
    )

    View full-size slide

  16. Local Averaging
    11
    Local operator: W = (wij
    )
    i,j V
    where wij
    = > 0 if j Vi,
    0 otherwise.
    (Wf)
    i
    =
    (i,j) E
    wijfj.

    View full-size slide

  17. Local Averaging
    11
    Local operator: W = (wij
    )
    i,j V
    where wij
    = > 0 if j Vi,
    0 otherwise.
    (Wf)
    i
    =
    (i,j) E
    wijfj.
    Examples: for i j,
    wij
    = 1
    combinatorial
    wij
    = 1
    ||xj xi
    ||2
    distance
    wij
    = cot(
    ij
    ) + cot(⇥ij
    )
    conformal
    (explanations later)

    View full-size slide

  18. Local Averaging
    11
    Local operator: W = (wij
    )
    i,j V
    where wij
    = > 0 if j Vi,
    0 otherwise.
    (Wf)
    i
    =
    (i,j) E
    wijfj.
    Examples: for i j,
    wij
    = 1
    combinatorial
    wij
    = 1
    ||xj xi
    ||2
    distance
    wij
    = cot(
    ij
    ) + cot(⇥ij
    )
    conformal
    Local averaging operator ˜
    W = ( ˜
    wij
    )
    i,j V
    : ⇥ (i, j) E, ˜
    wij
    = wij
    (i,j) E
    wij
    .
    ˜
    W = D 1W with D = diag
    i
    (di
    ) where di
    =
    (i,j)⇥E
    wij.
    Averaging: ˜
    W1 = 1.
    (explanations later)

    View full-size slide

  19. Iterative Smoothing
    12
    Iterative smoothing: ˜
    Wf, ˜
    W2, . . . , ˜
    Wkf smoothed version of f.
    f ˜
    Wf ˜
    W4f ˜
    W8f

    View full-size slide

  20. On a Regular Grid
    13
    Regular grid: ˜
    Wf = ˜
    w f.
    Example in 2D: ( ˜
    Wf)
    i
    = 1
    4
    4
    k=1
    fjk
    .
    Vi
    = {j1, j2, j3, j4
    }

    View full-size slide

  21. On a Regular Grid
    13
    Regular grid: ˜
    Wf = ˜
    w f.
    Discrete Fourier transform:
    ( ˜
    Wkf) = ( ˜
    w . . . ˜
    w f) =⇥ ( ˜
    Wkf)( ) = ˜
    w( )k ˆ
    f( ).
    Convolution and Fourier: (f g) = ˆ
    f · ˆ
    g
    (f)( ) = ˆ
    f( ) def.
    =
    k
    fke2i
    n
    k .
    Example in 2D: ( ˜
    Wf)
    i
    = 1
    4
    4
    k=1
    fjk
    .
    Vi
    = {j1, j2, j3, j4
    }

    View full-size slide

  22. On a Regular Grid
    13
    Regular grid: ˜
    Wf = ˜
    w f.
    Discrete Fourier transform:
    Convergence:
    ( ˜
    Wkf) = ( ˜
    w . . . ˜
    w f) =⇥ ( ˜
    Wkf)( ) = ˜
    w( )k ˆ
    f( ).
    Convolution and Fourier: (f g) = ˆ
    f · ˆ
    g
    (f)( ) = ˆ
    f( ) def.
    =
    k
    fke2i
    n
    k .
    Example in 2D: ( ˜
    Wf)
    i
    = 1
    4
    4
    k=1
    fjk
    .
    Vi
    = {j1, j2, j3, j4
    }
    If n is odd, ˜
    Wkf k +⇥

    1
    |V |
    i⇤V
    fi

    View full-size slide

  23. Gradient
    14
    ⇤ (i, j) ⇥ E, i < j, (Gf)
    (i,j)
    def.
    = ⌅
    wij
    (fj fi
    ) ⇥ R.
    ⇥ Derivative along direction ⇥
    xixj
    .
    G : 2(V ) ⇥ 2(E0
    ), ⇤⌅ G : Rn ⇥ Rp where p = |E0
    |,
    ⇤⌅ G ⇧ Rn p matrix.
    Gradient operator: oriented edges E0
    def.
    = {(i, j) E \ i < j},

    View full-size slide

  24. Gradient
    14
    ⇤ (i, j) ⇥ E, i < j, (Gf)
    (i,j)
    def.
    = ⌅
    wij
    (fj fi
    ) ⇥ R.
    ⇥ Derivative along direction ⇥
    xixj
    .
    Example: wij
    = ||xi xj
    || 2, (Gf)
    (i,j)
    = f(xj ) f(xi)
    ||xi xj
    ||
    .
    G : 2(V ) ⇥ 2(E0
    ), ⇤⌅ G : Rn ⇥ Rp where p = |E0
    |,
    ⇤⌅ G ⇧ Rn p matrix.
    Regular grid:
    Gf discretize f = f
    x
    , f
    y

    .
    GTv discretize div(v) = v1
    x
    + v2
    y
    .
    Gradient operator: oriented edges E0
    def.
    = {(i, j) E \ i < j},

    View full-size slide

  25. Laplacian
    15
    L def.
    = D W, where D = diag
    i
    (di
    ), with di
    =
    j
    wij.
    Remarks:
    symmetric operators L, ˜
    L Rn n.
    L1 = 0: acts like a (second order) derivative.
    ˜
    L1 ⇥= 0.
    Normalized Laplacian:
    ˜
    L def.
    = D 1/2LD 1/2 = Id
    n D 1/2WD1/2 = Id
    n D1/2 ˜
    WD 1/2.

    View full-size slide

  26. Laplacian Positivity
    16
    Theorem: L = GTG and ˜
    L = (GD 1/2)T(GD 1/2).
    = L and ˜
    L are symmetric positive definite.
    ⇥Lf, f⇤ = ||Gf||2 =
    (i,j) E0
    wij
    ||fi fj
    ||2
    ⇥˜
    Lf, f⇤ = ||GD 1/2f||2 =

    (i,j)⇥E0
    wij
    fi

    di
    fj

    dj
    2
    Theorem: if M is connected, then
    ker(L) = span(1) and ker(˜
    L) = span(D1/2).

    View full-size slide

  27. Proof
    17
    ||Gf||2 =
    (i,j) E0
    wi,j
    |fi fj
    |2
    =
    i>j
    wi,jf2
    i
    =
    iwi,jf2
    i
    +
    iwi,jf2
    j
    2
    iwi,jfifj
    =
    j
    f2
    i
    i j
    wi,j
    i j
    wi,jfj
    = Df, f Wf, f = Lf, f
    = f Rn, (L G G)f, f = 0 = L = G G
    =
    i j
    wi,jfifj

    View full-size slide

  28. Overview
    •Triangulated Meshes
    •Operators on Meshes
    •From Discrete to Continuous
    •Denoising by Diffusion and
    Regularization
    •Fourier on Meshes
    •Spectral Mesh Compression
    18

    View full-size slide

  29. Examples of Laplacians
    19
    Example in 1D: (Lf)
    i
    =
    1
    h2
    (2fi fi+1 fi 1
    ) =
    1
    h2
    f ⇥ ( 1, 2, 1)
    L h 0

    d2f
    dx2
    (xi
    )

    View full-size slide

  30. Examples of Laplacians
    19
    (Lf)
    i
    =
    1
    h2
    (4fi fj1
    fj2
    fj3
    fj4
    ) =
    1
    h2
    f ⇥


    0 -1 0
    -1 4 -1
    0 -1 0



    Example in 2D:
    L = GTGf discretize f = div( f).
    Example in 1D: (Lf)
    i
    =
    1
    h2
    (2fi fi+1 fi 1
    ) =
    1
    h2
    f ⇥ ( 1, 2, 1)
    L h 0

    d2f
    dx2
    (xi
    )
    L h 0

    2f
    x2
    (xi
    )
    2f
    y2
    (xi
    ) = f(xi
    ).

    View full-size slide

  31. Parameterized Surface
    First fundamental form: I = ⇥
    ⇥ui
    ,

    ⇥uj


    i,j=1,2
    .
    Parameterized surface M: D ⇥ R2 ⇤ M
    u ⌅ ⇤ (x)
    u1
    u2

    ⇥u1

    ⇥u2
    Curve (t) D, length: L( ) = 1
    0

    (t)I (t)
    (t)dt

    View full-size slide

  32. Parameterized Surface
    First fundamental form: I = ⇥
    ⇥ui
    ,

    ⇥uj


    i,j=1,2
    .
    M is locally isometric to plane: I = Id.
    Exemple: M =cylinder.
    ⇥ is conformal: I (u) = (u)Id.
    Exemple: stereographic mapping plane sphere.
    Parameterized surface M: D ⇥ R2 ⇤ M
    u ⌅ ⇤ (x)
    u1
    u2

    ⇥u1

    ⇥u2
    Curve (t) D, length: L( ) = 1
    0

    (t)I (t)
    (t)dt

    View full-size slide

  33. Laplace-Beltrami
    21
    Laplace operator on the plane: =
    2
    x2
    +
    2
    y2
    .
    Laplace Beltrami operator on a surface M:

    g M
    def.
    =
    u1
    g22

    g u1
    g12

    g u2

    +
    u2
    g11

    g u2
    g12

    g u1

    where g = det(I ) and I = (gij
    )
    i,j=1,2
    .

    View full-size slide

  34. Laplace-Beltrami
    21
    Laplace operator on the plane: =
    2
    x2
    +
    2
    y2
    .
    Laplace Beltrami operator on a surface M:

    g M
    def.
    =
    u1
    g22

    g u1
    g12

    g u2

    +
    u2
    g11

    g u2
    g12

    g u1

    where g = det(I ) and I = (gij
    )
    i,j=1,2
    .
    Remark:
    where dM
    is the geodesic distance on M.
    where Bh
    (x) = {y \ dM
    (x, y) h}
    Mf(x) = lim
    h 0
    1
    h2
    (Lhf)(x)
    (Lhf)(x) = f(x)
    1
    |Bh
    (x)| y Bh(x)
    f(y)dy

    View full-size slide

  35. Voronoi and Dual Mesh
    22
    Definition for a planar triangulation M of a mesh M R2.
    Voronoi for vertices: ⇧ i ⇤ V, Ei
    = {x ⇤ M \ ⇧ j ⌅= i, ||x xi
    || ⇥ ||x xj
    ||}
    i
    j
    Ai
    cf
    Dual mesh

    View full-size slide

  36. Voronoi and Dual Mesh
    22
    Definition for a planar triangulation M of a mesh M R2.
    Voronoi for vertices: ⇧ i ⇤ V, Ei
    = {x ⇤ M \ ⇧ j ⌅= i, ||x xi
    || ⇥ ||x xj
    ||}
    Voronoi for edges: ⌅ e = (i, j) ⇥ E, Ee
    = {x ⇥ M \ ⌅ e ⇤= e, d(x, e) d(x, e )}
    Partition of the mesh: M =
    i V
    Ei
    =
    e E
    Ee.
    i
    j
    Ai
    cf
    i
    j
    A(ij)
    cf
    Dual mesh 1:3 subdivided mesh

    View full-size slide

  37. Approximating Integrals on Meshes
    Approximation of integrals on vertices and edges:

    M
    f(x)dx
    i V
    Ai f(xi
    )
    e=(i,j) E
    Ae f([xi, xj
    ]).
    Theorem : ⇥ e = (i, j) E,
    Ae
    = Area(Ee
    ) =
    1
    2
    ||xi xj
    ||2 (cot(
    ij
    ) + cot(⇥ij
    ))
    i
    j
    A(ij)
    cf

    View full-size slide

  38. Approximating Integrals on Meshes
    Approximation of integrals on vertices and edges:

    M
    f(x)dx
    i V
    Ai f(xi
    )
    e=(i,j) E
    Ae f([xi, xj
    ]).
    Theorem : ⇥ e = (i, j) E,
    Ae
    = Area(Ee
    ) =
    1
    2
    ||xi xj
    ||2 (cot(
    ij
    ) + cot(⇥ij
    ))
    i
    j
    A(ij)
    cf
    A
    B
    C
    O
    h
    + + =
    2
    A(ABO) = ||AB|| h = ||AB||
    ||AB||
    2
    tan( )
    A(ABO) =
    ||AB||2
    2
    tan ⇤
    2
    ( + ⇥)
    Proof:

    View full-size slide

  39. Cotangent Weights
    Sobolev norm (Dirichlet energy): J(f) =
    M
    || f(x)||dx

    View full-size slide

  40. ⇧ (i, j) ⇤ E, wij
    = 1.
    Distance weights: they depends both on the geometry and the to
    require faces information,
    ⇧ (i, j) ⇤ E, wij
    =
    1
    ||xj xi
    ||2
    .
    Conformal weights: they depends on the full geometrical realiza
    require the face information
    ⇧ (i, j) ⇤ E, wij
    = cot(
    ij
    ) + cot(⇥
    Figure 1.2 shows the geometrical meaning of the angles
    ij
    and
    ij
    = ⇥(xi, xj, xk1
    ) and ⇥ij
    = ⇥(xi
    where (i, j, k1
    ) ⇤ F and (i, j, k2
    ) ⇤ F are the two faces adjacent
    in the next section the explanation of these celebrated cotangent
    xi
    xj
    xk1
    xk2
    ij
    ij
    Cotangent Weights
    24
    Approximation of Dirichelet energy:
    where wij
    = cot(
    ij
    ) + cot(⇥ij
    ).

    M
    ||⇤xf||2dx ⇥
    e E
    Ae
    |(Gf)
    e
    |2 =
    (i,j) E
    Ae
    |f(xj
    ) f(xi
    )|2
    ||xj xi
    ||2
    =
    (i,j) E
    wij
    |f(xj
    ) f(xi
    )|2
    Sobolev norm (Dirichlet energy): J(f) =
    M
    || f(x)||dx

    View full-size slide

  41. ⇧ (i, j) ⇤ E, wij
    = 1.
    Distance weights: they depends both on the geometry and the to
    require faces information,
    ⇧ (i, j) ⇤ E, wij
    =
    1
    ||xj xi
    ||2
    .
    Conformal weights: they depends on the full geometrical realiza
    require the face information
    ⇧ (i, j) ⇤ E, wij
    = cot(
    ij
    ) + cot(⇥
    Figure 1.2 shows the geometrical meaning of the angles
    ij
    and
    ij
    = ⇥(xi, xj, xk1
    ) and ⇥ij
    = ⇥(xi
    where (i, j, k1
    ) ⇤ F and (i, j, k2
    ) ⇤ F are the two faces adjacent
    in the next section the explanation of these celebrated cotangent
    xi
    xj
    xk1
    xk2
    ij
    ij
    Cotangent Weights
    24
    Approximation of Dirichelet energy:
    Theorem : wij > 0 ⇥ ij
    + ⇥ij < ⇤
    where wij
    = cot(
    ij
    ) + cot(⇥ij
    ).

    M
    ||⇤xf||2dx ⇥
    e E
    Ae
    |(Gf)
    e
    |2 =
    (i,j) E
    Ae
    |f(xj
    ) f(xi
    )|2
    ||xj xi
    ||2
    =
    (i,j) E
    wij
    |f(xj
    ) f(xi
    )|2
    Sobolev norm (Dirichlet energy): J(f) =
    M
    || f(x)||dx

    View full-size slide

  42. Overview
    •Triangulated Meshes
    •Operators on Meshes
    •From Discrete to Continuous
    •Denoising by Diffusion and
    Regularization
    •Fourier on Meshes
    •Spectral Mesh Compression
    25

    View full-size slide

  43. Mesh Denoising
    Normal displacement: xi
    = x0
    i
    + ( W)⇥
    ni
    , W white noise.
    Noisy input: scanning error, imperfect material, etc.

    View full-size slide

  44. Mesh Denoising
    Normal displacement: xi
    = x0
    i
    + ( W)⇥
    ni
    , W white noise.
    Mesh: 3 functions X/Y/Z: xi
    = (f1
    (i), f2
    (i), f3
    (i)) R3.
    Denoising: smooth each function fk
    (i), k = 1, 2, 3.
    {xi
    }i
    = {(f1
    (i), f2
    (i), f3
    (i))}i
    {( ˜
    f1
    (i), ˜
    f2
    (i), ˜
    f3
    (i))}i
    = {˜
    xi
    }i
    smoothing
    Noisy input: scanning error, imperfect material, etc.

    View full-size slide

  45. Mesh Denoising
    26
    Normal displacement: xi
    = x0
    i
    + ( W)⇥
    ni
    , W white noise.
    Mesh: 3 functions X/Y/Z: xi
    = (f1
    (i), f2
    (i), f3
    (i)) R3.
    Denoising error (oracle):
    3
    k=1 i V
    | ˜
    fk
    (i) f0
    k
    (i)|2 =
    i V
    ||˜
    xi x0
    i
    ||2
    Denoising: smooth each function fk
    (i), k = 1, 2, 3.
    {xi
    }i
    = {(f1
    (i), f2
    (i), f3
    (i))}i
    {( ˜
    f1
    (i), ˜
    f2
    (i), ˜
    f3
    (i))}i
    = {˜
    xi
    }i
    smoothing
    Noisy input: scanning error, imperfect material, etc.
    {x0
    i
    }i
    {xi
    }i {˜
    xi
    }i
    smoothing
    adding
    noise
    SNR(x0, ˜
    x) = 20 log
    10
    i
    ||˜
    xi x0
    i
    ||/
    i
    ||x0
    i
    ||

    View full-size slide

  46. Iterative Smoothing
    27
    Initialization: k = 1, 2, 3, f(0)
    k
    = fk
    .
    Iteration: k = 1, 2, 3, f(s+1)
    k
    = ˜
    Wf(s)
    k
    , f(s+1)
    k
    (i) =
    1
    |Vi
    |
    (j,i) Vi
    f(s)
    k
    (i)
    Denoised: choose s, and ˜
    xi
    = (f(s)
    1
    , f(s)
    2
    , f(s)
    3
    )

    View full-size slide

  47. Iterative Smoothing
    27
    Initialization: k = 1, 2, 3, f(0)
    k
    = fk
    .
    Iteration: k = 1, 2, 3, f(s+1)
    k
    = ˜
    Wf(s)
    k
    , f(s+1)
    k
    (i) =
    1
    |Vi
    |
    (j,i) Vi
    f(s)
    k
    (i)
    s = 0 s = 1 s = 2 s = 3 s = 4
    s
    SNR(x0, ˜
    x)
    Denoised: choose s, and ˜
    xi
    = (f(s)
    1
    , f(s)
    2
    , f(s)
    3
    )
    Problem: optimal choice of s
    Oracle: max
    s
    SNR(x0, x(s)).

    View full-size slide

  48. Heat Diffusion
    28
    Heat di usion: ⇥ t > 0, F(t) : V R solving
    F(t)
    t
    = D 1LF(t) = (Id
    n
    ˜
    W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)

    View full-size slide

  49. Heat Diffusion
    28
    Discretization: time step , #iterations K def.
    = t/ .
    Heat di usion: ⇥ t > 0, F(t) : V R solving
    F(t)
    t
    = D 1LF(t) = (Id
    n
    ˜
    W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)
    1
    f(s+1) f(s)

    = D 1Lf(s) =⇥ f(s+1) = f(s) D 1Lf(s) = (1 )f(s)+ ˜
    Wf(s).

    View full-size slide

  50. Heat Diffusion
    28
    ⇥ see later for a proof.
    Discretization: time step , #iterations K def.
    = t/ .
    Theorem: stable and convergent scheme if < 1 (CFL condition)
    Heat di usion: ⇥ t > 0, F(t) : V R solving
    F(t)
    t
    = D 1LF(t) = (Id
    n
    ˜
    W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)
    1
    f(s+1) f(s)

    = D 1Lf(s) =⇥ f(s+1) = f(s) D 1Lf(s) = (1 )f(s)+ ˜
    Wf(s).
    f(t/ ) 0
    ⇥ F(t)

    View full-size slide

  51. Heat Diffusion
    28
    ⇥ see later for a proof.
    ⇥ still stable in most cases (see later).
    Discretization: time step , #iterations K def.
    = t/ .
    Theorem: stable and convergent scheme if < 1 (CFL condition)
    Heat di usion: ⇥ t > 0, F(t) : V R solving
    F(t)
    t
    = D 1LF(t) = (Id
    n
    ˜
    W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)
    1
    f(s+1) f(s)

    = D 1Lf(s) =⇥ f(s+1) = f(s) D 1Lf(s) = (1 )f(s)+ ˜
    Wf(s).
    f(t/ ) 0
    ⇥ F(t)
    Remark: if = 1, f(s) = ˜
    Wkf.

    View full-size slide

  52. PDEs on Meshes
    t
    Heat di usion:
    f
    t
    = f and f(x, 0) = f0
    (x)

    View full-size slide

  53. PDEs on Meshes
    t
    Heat di usion:
    f
    t
    = f and f(x, 0) = f0
    (x)
    Di usion of X/Y/Z coordinates:

    View full-size slide

  54. PDEs on Meshes
    t
    Heat di usion:
    f
    t
    = f and f(x, 0) = f0
    (x)
    % Laplacian matrix
    L=D-W;
    % initialization
    f1 = f;
    for i=1:3
    f1 = f1 + tau*L*f1;
    end
    Initialization: Explicit Euler:
    Di usion of X/Y/Z coordinates:

    View full-size slide

  55. Mesh Denoising with Heat Diffusion
    30
    t = 0 t increases

    View full-size slide

  56. Optimal Stopping Time
    31
    Mesh: 3 functions X/Y/Z: xi
    = (f1
    (i), f2
    (i), f3
    (i)) R3.
    Problem: optimal choice of t
    Denoised: x(t) = (f(s)
    1
    , f(s)
    2
    , f(s)
    3
    ) for t = s .
    Oracle: t = max
    t
    SNR(x0, x(t)).
    {xi
    }i {x(t )
    i
    }i
    SNR(x0, x(t))
    t

    View full-size slide

  57. Quadratic Regularization
    32
    for [i, j] ⇥ E0, (Gf)[i, j] = f(i) f(j)
    ||Gf||2 =
    (i,j) E0
    |f(i) f(j)|2
    f( ) = argmin
    g Rn
    ||f g||2 + ||Gg||2
    ⇥ replaces f ⇤ Rn by f( ) ⇤ Rn with small gradient.

    View full-size slide

  58. Quadratic Regularization
    32
    for [i, j] ⇥ E0, (Gf)[i, j] = f(i) f(j)
    ||Gf||2 =
    (i,j) E0
    |f(i) f(j)|2
    f( ) = argmin
    g Rn
    ||f g||2 + ||Gg||2
    ⇥ replaces f ⇤ Rn by f( ) ⇤ Rn with small gradient.
    Theorem: f( ) is unique and f = (Id
    n
    + tL) 1f
    where L = D W = G G

    View full-size slide

  59. Quadratic Regularization
    32
    for [i, j] ⇥ E0, (Gf)[i, j] = f(i) f(j)
    ||Gf||2 =
    (i,j) E0
    |f(i) f(j)|2
    f( ) = argmin
    g Rn
    ||f g||2 + ||Gg||2
    ⇥ replaces f ⇤ Rn by f( ) ⇤ Rn with small gradient.
    Theorem: f( ) is unique and f = (Id
    n
    + tL) 1f
    where L = D W = G G
    When +⇥: f( ) = argmin
    Gg=0
    ||f g|| = Proj
    span(1)
    (f)
    Theorem: f( ) +⇥

    1
    |V |
    i
    f(i)

    View full-size slide

  60. Choosing Optimal Regularization
    33
    Mesh: 3 functions X/Y/Z: xi
    = (f1
    (i), f2
    (i), f3
    (i)) R3.
    {xi
    }i
    Denoised: x( ) = (f( )
    1
    , f( )
    2
    , f( )
    3
    ).
    Problem: optimal choice of
    Oracle: ⇥ = max SNR(x0, x( )).
    {x( )
    i
    }i
    SNR(x0, x(t))

    View full-size slide

  61. Wave Propagation
    34
    Other di erential equations. One can solve other partial di⇥erential equations involving the
    Laplacian over a 3D mesh M = (V, E, F). For instance, one can consider the wave equation, which
    defines, for all t > 0, a vector Ft
    ⇤ ⇣2(V ) as the solution of
    ⌥2Ft
    ⌥t2
    = D 1LFt
    and

    F0
    = f ⇤ Rn,
    d
    dt
    F0
    = g ⇤ Rn,
    (1.8)
    In order to compute numerically the solution of this PDE, one can fix a time step > 0 and use
    an explicit discretization in time ¯
    Fk
    as F0
    = f, F1
    = F0
    + g and for k > 1
    1
    2
    ¯
    Fk+1
    + ¯
    Fk 1
    2 ¯
    Fk

    = D 1L ¯
    Fk
    =⇥ ¯
    Fk+1
    = 2 ¯
    Fk
    ¯
    Fk 1
    2D 1L ¯
    Fk.
    Figure 1.6 shows examples of the resolution of the wave equation on 3D meshes.
    Figure 1.6: Example of evolution of the wave equation on 3D mesh. The initial condition f is a
    t = 0 t increases
    2Ft
    t2
    = D 1LFt
    and F0
    = f ⇥ Rn,
    d
    dt
    F0
    = g ⇥ Rn,
    Discretization:
    1
    2
    ¯
    Fk+1
    + ¯
    Fk 1
    2 ¯
    Fk

    = D 1L ¯
    Fk
    =⇥ ¯
    Fk+1
    = 2 ¯
    Fk
    ¯
    Fk 1
    2D 1L ¯
    Fk.

    View full-size slide

  62. Overview
    •Triangulated Meshes
    •Operators on Meshes
    •From Discrete to Continuous
    •Denoising by Diffusion and
    Regularization
    •Fourier on Meshes
    •Spectral Mesh Compression
    35

    View full-size slide

  63. Laplacian Eigen-decomposition
    36
    ˜
    L = (GD 1/2)T(GD 1/2) = ˜
    L is positive semi-definite.
    Eigen-decomposition of the Laplacian: U, UTU = Id
    n
    ,
    ˜
    L = U UT where = diag ( ) and
    1 . . . n.
    ˜
    L = D 1/2LD 1/2 = Id
    n D 1/2WD 1/2

    View full-size slide

  64. Laplacian Eigen-decomposition
    36
    ˜
    L = (GD 1/2)T(GD 1/2) = ˜
    L is positive semi-definite.
    Eigen-decomposition of the Laplacian: U, UTU = Id
    n
    ,
    Theorem: ⇥ i, i
    [0, 2] and
    If M is connected then 0 =
    1 < 2
    .
    n
    = 2 if and only if M is 2-colorable.
    ˜
    L = U UT where = diag ( ) and
    1 . . . n.
    ˜
    L = D 1/2LD 1/2 = Id
    n D 1/2WD 1/2

    View full-size slide

  65. Laplacian Eigen-decomposition
    36
    ˜
    L = (GD 1/2)T(GD 1/2) = ˜
    L is positive semi-definite.
    Eigen-decomposition of the Laplacian: U, UTU = Id
    n
    ,
    Theorem: ⇥ i, i
    [0, 2] and
    If M is connected then 0 =
    1 < 2
    .
    n
    = 2 if and only if M is 2-colorable.
    ˜
    L = U UT where = diag ( ) and
    1 . . . n.
    Orthogonal expansion: u , u ⇥ = ,
    ⇥ f 2(V ), f = ⇤f, u ⌅u .
    Eigen-basis: U = (u ) orthogonal basis of Rn 2(V ).
    u : V ⇥ R
    i ⇤ ⇥ u (i)
    ˜
    L = D 1/2LD 1/2 = Id
    n D 1/2WD 1/2

    View full-size slide

  66. Proof
    37
    ˜
    Lu = u =
    D 1(D W)¯
    u = ¯
    u
    D 1/2(D W)D 1/2u = u
    where ¯
    u = D 1/2u
    2
    using (a b)2 2(a2 + b2)
    =
    Equality i (i, j) E, u (i) = u (j)
    i.e. the graph is 2-colorable.
    = L¯
    u , ¯
    u

    u , ¯
    u
    = iwi,j

    u (i) ¯
    u (j))2
    i
    di
    ¯
    u (i)2

    View full-size slide

  67. Eigenvectors of the Laplacian
    38

    View full-size slide

  68. Examples of Eigen-decompositions
    39
    Theorem (in 1D):
    Laplacian in 1-D:
    u (k) = n 1/2e2i
    n
    k = sin2

    n

    Lf = ( 1/2, 1, 1/2) f

    View full-size slide

  69. Examples of Eigen-decompositions
    39
    Theorem (in 1D):
    Theorem (in 2D): n = n1n2, = (
    1, 2
    )
    On a 3D mesh: (u ) is the extension of the Fourier basis.
    Laplacian in 1-D:
    u (k) = n 1/2e2i
    n
    k = sin2

    n

    =
    1
    2
    sin2

    n
    ⇤1
    +
    1
    2
    sin2

    n
    ⇤2
    u (k) = n 1e2i
    n
    k,
    Lf =
    0 1/4 0
    1/4 1 1/4
    0 1/4 0
    f
    Laplacian in 2-D:
    Lf = ( 1/2, 1, 1/2) f

    View full-size slide

  70. Fourier Transform on Meshes
    Manifold-Fourier transform: for f 2(V ),
    (f)( ) = ˆ
    f( ) def.
    = ⇤D1/2f, u ⌅ ⇥
    (f) = ˆ
    f = UTD1/2f,
    1( ˆ
    f) = D 1/2U ˆ
    f.
    Proof: ⇥ ˜
    W⇥ 1 = U D1/2WD 1/2U = Id
    n
    Id
    n
    ˜
    L
    ˜
    Wf(⇥) = (1 ) ˆ
    f(⇥)
    Theorem: ⇥ ˜
    W⇥ 1 = Id
    n
    ,
    =

    View full-size slide

  71. Fourier Transform on Meshes
    Theorem: if
    n < 2 (i.e. M is not 2-colorable),
    Manifold-Fourier transform: for f 2(V ),
    (f)( ) = ˆ
    f( ) def.
    = ⇤D1/2f, u ⌅ ⇥
    (f) = ˆ
    f = UTD1/2f,
    1( ˆ
    f) = D 1/2U ˆ
    f.
    Proof: ⇥ ˜
    W⇥ 1 = U D1/2WD 1/2U = Id
    n
    Id
    n
    ˜
    L
    ˜
    Wf(⇥) = (1 ) ˆ
    f(⇥)
    Theorem: ⇥ ˜
    W⇥ 1 = Id
    n
    ,
    =
    ˜
    Wkf k +
    f = f, d d 1
    ˜
    Wkf = ⇥ 1(Id
    n
    )k⇥(f) f
    k

    View full-size slide

  72. Spectral Diffusion
    Heat di usion: ⇥ t > 0,
    Ft
    t
    = D 1LFt
    = (Id
    n
    ˜
    W)Ft
    Manifold-Fourier expansion: ˆ
    Ft
    def.
    = UTD1/2Ft
    .
    ⇤ ˆ
    Ft
    (⇥)
    ⇤t
    = ˆ
    Ft
    (⇥) =⇥ ˆ
    Ft
    (⇥) = exp( t) ˆ
    f(⇥).
    Theorem: Ft
    t +
    f = f, d d 1
    t

    View full-size slide

  73. Spectral Diffusion
    Heat di usion: ⇥ t > 0,
    Ft
    t
    = D 1LFt
    = (Id
    n
    ˜
    W)Ft
    Manifold-Fourier expansion: ˆ
    Ft
    def.
    = UTD1/2Ft
    .
    Discretization: ¯
    Fk+1
    = ¯
    Fk D 1L ¯
    Fk
    = (1 ) ¯
    Fk
    + ˜
    W ¯
    Fk.
    ¯
    Fk
    (⇤) = (1 ⇥ )k ˆ
    f(⇤)
    ⇤ ˆ
    Ft
    (⇥)
    ⇤t
    = ˆ
    Ft
    (⇥) =⇥ ˆ
    Ft
    (⇥) = exp( t) ˆ
    f(⇥).
    Theorem: ¯
    Ft/
    0
    ⇥ Ft
    , with stability if < 1.
    Theorem: Ft
    t +
    f = f, d d 1
    t

    View full-size slide

  74. Mesh Approximation and Compression
    42
    Orthogonal basis U = (u ) of 2(V ) Rn, where ˜
    L = U UT.
    f =
    n
    =1
    ⇥f, u ⇤u M-term approx.
    = fM
    def.
    =
    M
    =1
    ⇥f, u ⇤u .
    Error decay: E(M) def.
    = ||f fM
    ||2 =
    >M
    |⇥f, u ⇤|2.

    View full-size slide

  75. Intuition: | |2.
    Mesh Approximation and Compression
    42
    Orthogonal basis U = (u ) of 2(V ) Rn, where ˜
    L = U UT.
    f =
    n
    =1
    ⇥f, u ⇤u M-term approx.
    = fM
    def.
    =
    M
    =1
    ⇥f, u ⇤u .
    Good basis ⇥ E(M) decays fast.
    Example in 1D: if f is C on R/(2 Z), | ˆ
    f( )| ||f( )||⇥
    | | .
    Example on a mesh: f is smooth if ||˜
    Lf|| is small.
    | f, u ⇥| =
    1
    | f, ˜
    Lu ⇥|
    1
    ||˜
    Lf||
    Error decay: E(M) def.
    = ||f fM
    ||2 =
    >M
    |⇥f, u ⇤|2.

    View full-size slide

  76. Laplace Spectrum
    43
    ˆ
    f( )
    ˆ
    f( ) ˆ
    f( )
    ˆ
    f( )

    View full-size slide

  77. Mesh Compression
    44
    M increasing

    View full-size slide