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

Mesh Processing Course: Differential Mesh Proce...

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. Processing: Local vs. Global 2 Differential Processing Geodesic Processing Surface

    filtering Fourier on Meshes Front Propagation on Meshes Surface Remeshing
  2. Overview •Triangulated Meshes •Operators on Meshes •From Discrete to Continuous

    •Denoising by Diffusion and Regularization •Fourier on Meshes •Spectral Mesh Compression 3
  3. 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.
  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. 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:
  5. 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
  6. 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
  7. Overview •Triangulated Meshes •Operators on Meshes •From Discrete to Continuous

    •Denoising by Diffusion and Regularization •Fourier on Meshes •Spectral Mesh Compression 8
  8. 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.
  9. 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⇥
  10. 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.
  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. 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
  12. 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 )
  13. Local Averaging 11 Local operator: W = (wij ) i,j

    V where wij = > 0 if j Vi, 0 otherwise. (Wf) i = (i,j) E wijfj.
  14. 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)
  15. 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)
  16. Iterative Smoothing 12 Iterative smoothing: ˜ Wf, ˜ W2, .

    . . , ˜ Wkf smoothed version of f. f ˜ Wf ˜ W4f ˜ W8f
  17. 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 }
  18. 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 }
  19. 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
  20. 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},
  21. 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},
  22. 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.
  23. 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).
  24. Proof 17 ||Gf||2 = (i,j) E0 wi,j |fi fj |2

    = i>j wi,jf2 i = i<j wi,jf2 i + i<j wi,jf2 j 2 i<j wi,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
  25. Overview •Triangulated Meshes •Operators on Meshes •From Discrete to Continuous

    •Denoising by Diffusion and Regularization •Fourier on Meshes •Spectral Mesh Compression 18
  26. 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 )
  27. 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 ).
  28. 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
  29. 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
  30. 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 .
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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:
  36. ⇧ (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
  37. ⇧ (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
  38. Overview •Triangulated Meshes •Operators on Meshes •From Discrete to Continuous

    •Denoising by Diffusion and Regularization •Fourier on Meshes •Spectral Mesh Compression 25
  39. Mesh Denoising Normal displacement: xi = x0 i + (

    W)⇥ ni , W white noise. Noisy input: scanning error, imperfect material, etc.
  40. 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.
  41. 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 ||
  42. 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 )
  43. 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)).
  44. 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)
  45. 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).
  46. 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)
  47. 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.
  48. PDEs on Meshes t Heat di usion: f t =

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

    f and f(x, 0) = f0 (x) Di usion of X/Y/Z coordinates:
  50. 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:
  51. 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
  52. 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.
  53. 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
  54. 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)
  55. 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))
  56. 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.
  57. Overview •Triangulated Meshes •Operators on Meshes •From Discrete to Continuous

    •Denoising by Diffusion and Regularization •Fourier on Meshes •Spectral Mesh Compression 35
  58. 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
  59. 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
  60. 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
  61. 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 D¯ u , ¯ u = i<j wi,j (¯ u (i) ¯ u (j))2 i di ¯ u (i)2
  62. 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
  63. 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
  64. 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 , =
  65. 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
  66. 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
  67. 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
  68. 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.
  69. 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.