Abstract:
Computing a curve to approximate data points is a problem encountered frequently in many applications in computer graphics, computer vision, CAD/CAM, and image processing. We present a novel and efficient method, called squared distance minimization (SDM), for computing a planar Bspline curve, closed or open, to approximate a target shape defined by a point cloud, i.e., a set of unorganized, possibly noisy data points. We show that SDM outperforms significantly other optimization methods used currently in common practice of curve fitting. In SDM a Bspline curve starts from some properly specified initial shape and converges towards the target shape through iterative quadratic minimization of the fitting error. Our contribution is the introduction of a new fitting error term, called the squared distance (SD) error term, defined by a curvaturebased quadratic approximant of squared distances from data points to a fitting curve. The SD error term measures faithfully the geometric distance between a fitting curve and a target shape, thus leading to faster and more stable convergence than the point distance (PD) error term, which is commonly used in computer graphics and CAGD, and the tangent distance (TD) error term, which is often adopted in the computer vision community. To provide a theoretical explanation of the superior performance of SDM, we formulate the Bspline curve fitting problem as a nonlinear least squares problem and conclude that SDM is a quasiNewton method, which employs a curvaturebased positive definite approximant to the true Hessian of the objective function. Furthermore, we show that the method based on the TD error term is a GaussNewton iteration, which is unstable for target shapes with high curvature variations, whereas optimization based on the PD error term is the alternating method that is known to have linear convergence.
Bibtex:
@article{wang2005fbc, author = {W. Wang and H. Pottmann and Y. Liu}, title = {Fitting {B}spline curves to point clouds by squared distance minimization}, journal = "ACM Trans. Graphics", year = 2006, volume = 25, issue = 2, pages = "214238", url = "/geom/ig/papers/tr143.pdf", }

