1 / 35

Splines

Splines. Vida Movahedi January 2007. Outline. Piecewise polynomials Splines Two approaches B-splines Multivariate functions Examples. What problem splines solve?.

fox
Download Presentation

Splines

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. Splines Vida Movahedi January 2007

  2. Outline • Piecewise polynomials • Splines • Two approaches • B-splines • Multivariate functions • Examples

  3. What problem splines solve? • In the simplest situation, one is given points (ti, yi) and is looking for a piecewise polynomial function f that satisfies f(ti)=yi , all i, more or less. • Exact fit  Interpolation • Approximate fit  least squares approximation or smoothing splines • Or we have a complex function g that we want to approximate with a piecewise polynomial function f that satisfies f(ti)=g(ti) , all i, more or less.

  4. Why polynomials? • Easy evaluation, differentiation, and integration • If done properly, the work needed for data fitting grows only linearly with the number of data points.

  5. Definition of Polynomial of order n • Note that a polynomial of order n has degree<n • The set of all polynomials of order n forms a linear space • <n: linear space of polynomials of order n

  6. Why piecewise polynomials? • Jackson’s Theorem: If g has r continuous derivatives on [a..b] and n> r+1, then • The only way to make the error small is to make (b-a)/ (n-1) small  partitioning [a..b]  using piecewise polynomial approximation. • It is usually much more efficient to make (b-a) small than to increase n. This is the justification for piecewise polynomial approximation.

  7. Why not higher order polynomials? • We expect the error between the function g and the polynomial approximation pn on n sites to decrease when n increases. If the sites are uniformly spaced, it can be shown that this is not true and the interpolation error increases with n for some examples. • It is shown that choosing the sites as the zeros of the Chebyshev polynomial of degree n can lead to much decreasing interpolation error with increasing n. For some examples, the error, while decreasing, decreases far too slowly.

  8. What is a spline? • An interval [a..b] is subdivided into sufficiently small intervals [j.. j+1], with a=1<…<l+1=b, • On each such interval, a polynomial pj of relatively low degree can provide a good approximation to g. • This can even be done in such a way that the polynomial pieces blend smoothly, i.e. so that the resulting composite function s(x) that equals pj(x) for x[jj+1] , all j , has several continuous derivatives. • Any such smooth piecewise polynomial function is called a spline.

  9. Continuous 1st derivative Continuous 2nd derivative

  10. Two major approaches • The ppform: Use of piecewise polynomials • The B-form: Use of Basis functions

  11. ppform • More efficient when evaluating the spline extensively • The ppform of a polynomial spline of order k provides a description in terms of its breaks1,…,l+1 and the local polynomial coefficients cji of its l pieces. • For linear approximation

  12. Example g(x)=sin(x) Breaks (interpolation) >> x=0:0.6:pi; y=sin(x); >> figure; plot (x,y, 'o') >> sp=spapi(2,x,y); >> hold on; fnplt(sp); >> pp=sp2pp(sp); >>fnbrk(pp) The input describes a ppform breaks(1:l+1) Columns 1 through 5 0 0.6000 1.2000 1.8000 2.4000 Column 6 3.0000 coefficients(d*l,k) 0.9411 0 0.6123 0.5646 0.0697 0.9320 -0.4973 0.9738 -0.8906 0.6755 pieces number l 5 order k 2 dimension d of target 1 Interpolating spline of order 2 The ppform provides the coefficients for each of the polynomial pieces between the breaks. In the above example the coefficients for each of the lines is provided.

  13. The B-form • Useful during construction of a spline • The B-form describes a spline as a weighted sum • of B-splines of the required order k, with their number n>k-1+l • Each Bj,k is defined on an interval [tj..tj+k] and is zero elsewhere. • tj are called knots and are provided based on the smoothness required (breaks, but sometimes repeated!) • B-splines are functions that:

  14. Example B-splines of order 2 (uniform spacing between knots)

  15. Example (cont.) >> fnbrk(sp) The input describes a B-form knots(1:n+k) Columns 1 through 7 0 0 0.6000 1.2000 1.8000 2.4000 3.0000 Column 8 3.0000 coefficients(d,n) 0 0.5646 0.9320 0.9738 0.6755 0.1411 number n of coefficients 6 order k 2 dimension d of target 1 Note that in ppform, we had 6 breaks, and 10 coefficients.

  16. de Boor Control Points for B-splines Bezier Control Points Control Points • aj are called the control points • If B are B-splines  aj are de Boor control points • If B are Bezier splines  aj are Bezier control points

  17. Why B-splines? • Composed of (n-k+2) curves of k-order joined Ck-2 continuously at knot values (t0,…,tn+k)  smoothness and continuity • Each point is affected by k control points • Each control point affects k segments  local controllability • Inside convex hull  Built-in boundedness does not shoot to infinity (unlike Bezier) • Affine invariance • Any degree of detail desired  Generative nature

  18. Linear B-splines (k=2) Cubic B-splines (k=4) Uniform B-splines • If the knots are equi-spaced, for a given order k, the splines are simply shifted copies of one another.

  19. knot multiplicity • Knots are a sequence of breaks, sometimes repeated! • The rule is Knot multiplicity + condition multiplicity = order • For example, for a B-spline of order k=3 Simple knot  smoothness_cond=2  continuity of function and first derivative Double knot  smoothness_cond= 1  just continuity Triple knot  No condition  function can even be discontinuous

  20. Multivariate Functions • If f is a function of x, and g is a function of y, then their tensor-product p(x,y):=f(x)g(y) is a function of x and y. • For example for a bivariate spline of order h in x and k in y, we have: • Knot sequences • s= (s1,…, sm+h) • t= (t1,…,tn+k) • Coefficients (aij:i=1..m, j=1..n)

  21. Chord-Length Method • The knots must be non-decreasing! • So, what should we do for closed curves?! • [1,4,7,10,6,3]  not acceptable • t: new variable , increasing as we follow the contour • x and y will be functions of t

  22. Representing Image Contours Contour from Paco’s grouping algorithm

  23. Interpolationunit step: 50

  24. Interpolationunit step: 10

  25. Smoothingunit step: 50

  26. Smoothingunit step: 10

  27. Note the cornersAt least one sample from each line?Unit step: 20

  28. Questions? • Which method is better? Interpolation or smoothing? • What order? Linear, cubic, …? • How can we calculate the error? Should we compare with the original lines? Or with image?

  29. References • Matlab Spline Toolbox • Carl de Boor, A Practical Guide to Splines, Springer, 2001. • ‘An Interactive Introduction to Splines’, http://www.ibiblio.org/e-notes/Splines/Intro.htm • Cohen, F.S.; Wang, J.Y. , “Part I: Modeling Image Curves Using Invariant 3-D Object Curve Models- A Path to 3-D Recognition and Shape Estimation from Image Contours”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 16, no. 1, Jan. 1994. • Miroslaw Kuc, COSC 4080.03 Project report: “Representing Image Contours with Splines”, Jan. 2005 • Branka Otasevic, COSC 4080.03 Project report, Winter 1999.

More Related