1 / 51

Computer Graphics

This recitation covers topics such as least squares approach, general/polynomial fitting, linear systems of equations, and local polynomial surface fitting in computer graphics.

evelynmax
Download Presentation

Computer Graphics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Graphics Recitation 11

  2. The plan today • Least squares approach • General / Polynomial fitting • Linear systems of equations • Local polynomial surface fitting

  3. Motivation y = f (x) • Given data points, fit a function that is “close” to the points y Pi = (xi, yi) x

  4. Motivation • Local surface fitting to 3D points

  5. Line fitting • Orthogonal offsets minimization – we learned y Pi = (xi, yi) x

  6. Line fitting • The origin of the line is the center of mass • The direction v is the eigenvector corresponding to the largest eigenvalue of the scatter matrix S (22) • In 2D this requires solving a square characteristic equation • In higher dimensions – higher order equations…

  7. Line fitting • y-offsets minimization y Pi = (xi, yi) x

  8. Line fitting • Find a line y = ax + b that minimizes Err(a, b) = [yi – (axi + b)]2 • Err is quadratic in the unknown parameters a, b • Another option would be, for example: • But – it is not differentiable, harder to minimize…

  9. Line fitting – LS minimization • To find optimal a, b we differentiate Err(a, b): Err(a, b) = (–2xi)[yi – (axi + b)] = 0 Err(a, b) = (–2)[yi – (axi + b)] = 0

  10. Line fitting – LS minimization • We get two linear equations for a, b: (–2xi)[yi – (axi + b)] = 0 (–2)[yi – (axi + b)] = 0

  11. Line fitting – LS minimization • We get two linear equations for a, b: [xiyi – axi2 – bxi] = 0 [yi – axi – b] = 0

  12. Line fitting – LS minimization • We get two linear equations for a, b: ( xi2) a + ( xi) b = xiyi ( xi) a + ( 1)b = yi

  13. Line fitting – LS minimization • Solve for a, b using e.g. Gauss elimination • Question: why the solution is minimum for the error function? Err(a, b) = [yi – (axi + b)]2

  14. Fitting polynomials y x

  15. Fitting polynomials • Decide on the degree of the polynomial, k • Want to fit f(x) = akxk + ak-1xk-1 + … a1x+ a0 • Minimize: Err(a0, a1, …, ak) = [yi – (akxk+ak-1xk-1+ …+a1x+a0)]2 Err(a0,…,ak) = (– 2xm)[yi – (akxk+ak-1xk-1+…+ a0)] = 0

  16. Fitting polynomials • We get a linear system of k+1 in k+1 variables

  17. General parametric fitting • We can use this approach to fit any function f(x) • Specified by parameters a, b, c, … • The expression f(x) linearly depends on the parameters a, b, c, …

  18. General parametric fitting • Want to fit function fabc…(x) to data points (xi, yi) • Define Err(a,b,c,…) = [yi – fabc…(xi)]2 • Solve the linear system

  19. General parametric fitting • It can even be some crazy function like • Or in general:

  20. Solving linear systems in LS sense • Let’s look at the problem a little differently: • We have data points (xi, yi) • We want the function f(x) to go through the points:  i =1, …, n: yi = f(xi) • Strict interpolation is in general not possible • In polynomials: n+1 points define a unique interpolation polynomial of degree n. • So, if we have 1000 points and want a cubic polynomial, we probably won’t find it…

  21. Solving linear systems in LS sense • We have an over-determined linear system nk: f(x1) = 1f1(x1) + 2f2(x1) + … + kfk(x1) = y1 f(x2) = 1f1(x2) + 2f2(x2) + … + kfk(x2) = y2 … … … f(xn) = 1f1(xn) + 2f2(xn) + … + kfk(xn) = yn

  22. Solving linear systems in LS sense • In matrix form:

  23. Solving linear systems in LS sense • In matrix form: Av = y

  24. Solving linear systems in LS sense • More constrains than variables – no exact solutions generally exist • We want to find something that is an “approximate solution”:

  25. Finding the LS solution • v Rk • Av  Rn • As we vary v, Av varies over the linear subspace of Rnspanned by the columns of A: Av = = 1 + 2 +…+ k 1 2 . . k A1 A2 Ak A1 A2 Ak

  26. Finding the LS solution Av closest to y • We want to find the closest Av to y: y Subspace spanned by columns of A Rn

  27. Finding the LS solution • The vector Av closest to y satisfies: (Av – y)  {subspace of A’s columns}  column Ai, <Ai, Av – y> = 0  i, AiT(Av – y) = 0 AT(Av – y) = 0 (ATA)v = ATy These are called the normal equations

  28. Finding the LS solution • We got a square symmetric system (ATA)v = ATy(nn) • If A has full rank (the columns of A are linearly independent) then (ATA) is invertible.

  29. Weighted least squares • Sometimes the problem also has weights to the constraints:

  30. Local surface fitting to 3D points • Normals? • Lighting? • Upsampling?

  31. Local surface fitting to 3D points Locally approximate a polynomial surface from points

  32. Fitting local polynomial • Fit a local polynomial around a point P Reference plane P Z Y X

  33. Fitting local polynomial surface • Compute a reference plane that fits the points close to P • Use the local basis defined by the normal to the plane! z y x

  34. Fitting local polynomial surface • Fit polynomial z = p(x,y) = ax2 + bxy + cy2 + dx + ey + f z y x

  35. Fitting local polynomial surface • Fit polynomial z = p(x,y) = ax2 + bxy + cy2 + dx + ey + f z y x

  36. Fitting local polynomial surface • Fit polynomial z = p(x,y) = ax2 + bxy + cy2 + dx + ey + f z x y

  37. Fitting local polynomial surface • Again, solve the system in LS sense: ax12 + bx1y1 + cy12 + dx1 + ey1 + f =z1 ax22 + bx2y2 + cy22 + dx2 + ey2 + f =z1 . . . axn2 + bxnyn + cyn2 + dxn + eyn + f =zn • Minimize  ||zi – p(xi, yi)||2

  38. Fitting local polynomial surface • Also possible (and better) to add weights:  wi||zi – p(xi, yi)||2, wi > 0 • The weights get smaller as the distance from the origin point grows.

  39. Geometry compression using relative coordinates • Given a mesh: • Connectivity • Geometry – (x, y, z) of each vertex

  40. Geometry compression using relative coordinates • The size of the geometry is large (compared to connectivity) • (x, y, z) coordinates are hard to compress • Floating-point numbers – have to quantize • No correlation

  41. Geometry compression using relative coordinates • Represent each vertex with relative coordinates: average of the neighbours the relative coordinate vector

  42. Geometry compression using relative coordinates • We call them–coordinates: average of the neighbours the relative coordinate vector

  43. Geometry compression using relative coordinates • When the mesh is smooth, the –coordinates are small. • –coordinates can be better compressed.

  44. Geometry compression using relative coordinates • Matrix form to compute the –coordinates:

  45. Geometry compression using relative coordinates • Matrix form to compute the –coordinates: • The same L matrix for y and z… • L is called the Laplacian of the mesh

  46. Geometry compression using relative coordinates • How do we restore the (x, y, z) from the –coordinates? • Need to solve the linear system: Lx =  (x)

  47. Geometry compression using relative coordinates Lx =  (x) • But: • L is singular •  (x) contains quantization error

  48. Geometry compression using relative coordinates Lx =  (x) • Solution: choose some anchor vertices whose (x, y, z) position is known (in addition to )

  49. Geometry compression using relative coordinates • We add the anchor vertices to our linear system: L constrained anchor vertices

  50. Geometry compression using relative coordinates • Now we have more equations than unknowns • Solve in least squares sense!

More Related