1 / 32

Paths, Smoothing, Least Squares Fit

Paths, Smoothing, Least Squares Fit. CS 551/651 Spring 2002. Following a Path. How do we compute an object’s first-person view as it follows a path? Situate a local coordinate system about the object and orient the system Positive z-axis points frontward Frontward is first derivative, P’(s)

philippa
Download Presentation

Paths, Smoothing, Least Squares Fit

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. Paths, Smoothing, Least Squares Fit CS 551/651 Spring 2002

  2. Following a Path • How do we compute an object’s first-person view as it follows a path? • Situate a local coordinate system about the object and orient the system • Positive z-axis points frontward • Frontward is first derivative, P’(s) • Positive y-axis points upward • Upward is cross product of z-axis and P’’(s) • Positive x-axis points left • Cross product of z- and y-axes

  3. Newton-Raphson • No guarantees that it will find the roots of an equation • Or that it will be efficient Caught Here

  4. Cross Product Right Hand Rule • See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html • Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A • Twist your hand about the A-axissuch that B extends perpendicularly from your palm • As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

  5. Frenet Frame • The local coordinate system • If curve has no curvature, technique fails • Use Frenet Frame from before straight section starts (and interpolate rotation about z-axis if necessary) • Use dot product of y-axis before and after straight section to determine interpolation amount

  6. Frenet Frame • Discontinuity in the curvature causes jump in local coordinate system • Can be jumpy if curve is not very smooth • Doesn’t reflect desirable camera effects like banking into a corner • A curve that moves downward in 3-space will cause Frenet frame to orient upside-down

  7. Alternative Orientation Methods • Define a natural notion of ‘UP’, y-axis • The opposite direction of gravity • Define a focal point, z-axis • z-axis = focal_point – cur_pos • x-axis = z-axis x UP • y-axis = z-axis x x-axis • Passing close to focal point causes extreme changes • How do you automatically update focal point?

  8. Lookahead • If cur_pos = p(s), the focal point = p(s+ds) • Note, should be arc length parameterization to prevent wandering camera • What about the end of curve (where s+ds is undefined)? • Extrapolate curve in the direction of its tangent

  9. Smoothing Data • Frequently we use a series of points to represent paths • We turn points into piecewise Bezier curve • But may be overkill • Alternatives

  10. Smoothing Data • Average a point with its neighbors • But this causes flattening of curves • Fit cubic curve to subsets of points • Curve is inherently smooth • Sample curve at midpoint for new point

  11. Cubic Curves • P(u) = au3 + bu2 + cu + d • For a point, Pi, build curve from its four neighbors • Pi-2, Pi-1, Pi+1, Pi+2 • Evaluate the cubic at its midpoint (u = ½) • Average cubic midpoint and Pi

  12. Evaluating the Cubic • Pi-2 = P(0) = d • Pi-1 = P(1/4) = a 1/64 + b 1/16 + c1/4 + d • Pi+1 = P(3/4) = a 27/64 + b 9/16 + c¾ + d • Pi+2 = P(1) = a + b + c + d • 4 equations and 4 unknowns… solve

  13. Evaluating Cubic • What about endpoints? • Pi+1 and Pi+2 don’t exist • P’0 = P3 + 3 (P1 – P2) • Second in from beginning or end? • Build a quadratic (parabola) • P(u) = au2 + bu + c • Solve for a, b, and c using P0, P2, P3 • P1 is averaged with P(1/3)

  14. Overconstrained Cubics • Earlier, we solved for cubic coefficients using Gaussian Elimination / Linear Programming • We solved for x such that Ax = b • A was square and invertable

  15. Overconstrained Cubics • What if we had 10 points and we wished to fit a line, quadratic, or cubic to them? • Ax = b • Matrix dimensions: • [10 x 4] * [4 x 1] = [10 x 1] • Cannot trivially invert A

  16. Least Squares Fit • Select a cubic curve (the x-vector in our example) that minimizes the standard deviation of the distances between the points and the cubic curve:

  17. Least Squares Fit • E is the error function: • f(u) is a function of (a, b, c, d) and u • It is the parametric cubic curve • We want to minimize E • Wherever E is minimized:

  18. Least Squares Fit • Compute the partial derivative of E w.r.t. a, b, c, and d • Set each partial derivative equal to 0 • We now have four equations and four unknowns • Solve… • This method is slow and there are better least squares solution methods

  19. Linear Least Squares • We just talked about linear least squares • The cubic equation is nonlinear because x is raised to powers greater than 1 • ax3 + bx2 + cx + d • But fitting a cubic to a set of data is linear curve fitting • Parameters (a, b, c, d) enter into the formula as simple multipliers of terms that are added together

  20. An example • Fit a line to data: • The vertical deviation of the ith piece of data (xi, yi) is: • di = yi – y = yi – (mxi + b) • Where m and b are the unknown parameters • By minimizing square of deviations • d2i = (yi – y)2 = (yi – (mxi + b))2

  21. An example • Minimize sum of di and set partials to 0 b= m=

  22. Computer Tools • Write your own function • Mathematica • Fit [data, {1, x}, x] • Excel • Linest (y-array, x-array, count, statistics) • See http://www.orst.edu/instruct/ch490/lessons/lesson9.htmfor more info

  23. Robustness of Least Squares • Effective, complete, and appropriate for many problems in science/engineering • Estimates of unknowns are optimal • Efficient use of data • Not good for extrapolation past endpoints • Sensitive to presence of outliers • Model validation is useful

  24. Convolution Kernels • Another smoothing technique • Imagine data define stepwise function • Create the kernel • Centered around zero • Symmetric • Has finite support • Area under curve equals 1 Box Gaussian Tent

  25. New value for P1 is: Convolution Kernels • Compute new (averaged) points by convolving kernel with data • Slide kernel over all points • Watch for overlap at beginning and end

  26. Determining a Path on Surface • Consider a polygonal terrain map • Assume you have the (x,y,z) coordinates of two endpoints • What are the values of intermediate points on the line?

  27. Path Determination • Construct a plane that passes through the two points and is (roughly) perpendicular to the ground plane • How do we compute the perpendicular? • How doe we compute the plane? • Intersect plane with the terrain polys • How?

  28. Path Determination • If the terrain is modeled as a parametric surface: f(u, v) = z • Linearly interpolate between (u1, v1) and (u2, v2) and solve for f(uinterp, vinterp)

  29. Path Determination • What if ground is constructed from many triangles and we wish to only walk along the edges? • Start from the first point • And then what? • Consider all coincident edges • Project each edge to straight line on path. How? • Dot product (remember to normalize)

  30. Path Determination • Edge with smallest angle is selected • Keep applying until destination is reached • Guaranteed to reach destination?

  31. Downhill Paths • To go downhill • Cross product of surface normal and ‘up’ gives you a surface tangent vector (perpendicular to down) • Cross product of surface tangent and normal vector defines downhill vector

  32. Reminder • Read papers and write questions for Tuesday • Assignment due Thursday at 9:00 a.m. • Warping and morphing are next

More Related