Iteration and optimization scheme for the reconstruction of 3D surfaces based on non-uniform rational B-splines
Curve or surface reconstruction is a challenging problem in the fields of engineering design, virtual reality, film making and data visualization. Non-uniform rational B-spline (NURBS) fitting has been applied to curve and surface reconstruction for many years because it is a flexible method and can be used to build many complex mathematical models, unlike certain other methods. To apply NURBS fitting, there are two major difficult sub-problems that must be solved: (1) the determination of a knot vector and (2) the computation of weights and the parameterization of data points. These two problems are quite challenging and determine the effectiveness of the overall NURBS fit. In this study, we propose a new method, which is a combination of a hybrid optimization algorithm and an iterative scheme (with the acronym HOAAI), to address these difficulties. The novelties of our proposed method are the following: (1) it introduces a projected optimization algorithm for optimizing the weights and the parameterization of the data points, (2) it provides an iterative scheme to determine the knot vectors, which is based on the calculated point parameterization, and (3) it proposes the boundary-determined parameterization and the partition-based parameterization for unorganized points. We conduct numerical experiments to measure the performance of the proposed HOAAI with six test problems, including a complicated curve, twisted and singular surfaces, unorganized data points and, most importantly, real measured data points from the Mashan Pumped Storage Power Station in China. The simulation results show that the proposed HOAAI is very fast, effective and robust against noise. Furthermore, a comparison with other approaches indicates that the HOAAI is competitive in terms of both accuracy and runtime costs.
surface reconstruction nurbs fitting projected optimization algorithm unorganized points iteration of knot vector