US 7352369 B2 Abstract A system and methods are disclosed for automatically approximating an editable surface from a 3D data set or a 3D point set, which may be imaged in the form of a NURBS surface.
Claims(62) 1. A method for approximating an editable surface from a 3D data set comprising the steps of:
selecting a 3D point set from the 3D data set;
determining a best-fit plane for the 3D point set;
projecting at least a portion of the 3D point set onto the best-fit plane;
determining a boundary for the best-fit plane according to the projected 3D point set;
projecting a grid onto the best-fit plane within the boundary, the grid containing a plurality of grid points;
initializing the grid points;
determining a value for at least a portion of the grid points;
selecting at least a portion of the grid points with a value; and
imaging the editable surface using at least a portion of the selected grid points.
2. The method of
3. The method of
fitting an ellipsoid to the 3D point set; and
determining a dominant axis for the 3D point set based on the ellipsoid.
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
refining the value for at least a portion of the at least a portion of the grid points; and
selecting at least a portion of the grid points based on one of the value and the refined value.
15. The method of
16. The method of
17. A method for approximating an editable surface from a 3D point set comprising the steps of:
determining a best-fit plane for the 3D point set;
projecting the 3D point set onto the best-fit plane;
determining a boundary for the best-fit plane according to the 3D point set;
projecting a grid onto the best-fit plane within the boundary, the grid containing a plurality of grid points;
initializing the grid points to zero;
determining a value for the grid points;
refining the value for at least a portion of the grid points;
selecting at least a portion of the grid points based on one of the value and the refined value; and
imaging the editable surface using the selected grid points, the editable surface representing a best-fit approximation of the 3D point set to the editable surface.
18. The method of
19. The method of
20. The method of
21. The method of
22. The method of
23. The method of
24. The method of
25. The method of
forming a new grid by increasing the grid density, the new grid containing a plurality of new grid points;
determining a value for the new grid points;
fitting a new plane to the new grid points;
reevaluating the value for the new grid points; and
smoothing the value for the new grid points.
26. The method of
initializing the new grid points to zero; and
determining a new value for the new grid points.
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
32. A system for approximating an editable surface from a 3D data set comprising a computer-readable memory medium configured to store a program of instructions, the program instructions being executable to implement:
selecting a 3D point set from the 3D data set;
determining a best-fit plane for the 3D point set;
projecting at least a portion of the 3D point set onto the best-fit plane;
determining a boundary for the best-fit plane according to the projected 3D point set;
projecting a grid onto the best-fit plane within the boundary, the grid containing a plurality of grid points;
initializing the grid points;
determining a value for at least a portion of the grid points;
selecting at least a portion of the grid points with a value; and
imaging the editable surface using at least a portion of the selected grid points.
33. The system of
34. The system of
fitting an ellipsoid to the 3D point set; and
determining a dominant axis for the 3D point set based on the ellipsoid.
35. The system of
36. The system of
37. The system of
38. The system of
39. The system of
40. The system of
41. The system of
42. The system of
43. The system of
44. The system of
45. The system of
refining the value for at least a portion of the at least a portion of the grid points; and
selecting at least a portion of the grid points based on one of the value and the refined value.
46. The system of
47. The system of
48. A system for approximating an editable surface from a 3D point set comprising a computer-readable memory medium configured to store a program of instructions, the program instructions being executable to implement:
determining a best-fit plane for the 3D point set;
projecting the 3D point set onto the best-fit plane;
determining a boundary for the best-fit plane according to the 3D point set;
initializing the grid points to zero;
determining a value for the grid points;
refining the value for at least a portion of the grid points;
selecting at least a portion of the grid points based on one of the value and the refined value; and
imaging the editable surface using the selected grid points, the editable surface representing a best-fit approximation of the 3D point set to the editable surface.
49. The system of
50. The system of
51. The system of
52. The system of
53. The system of
54. The system of
55. The system of
56. The system of
forming a new grid by increasing the grid density, the new grid containing a plurality of new grid points;
determining a value for the new grid points;
fitting a new plane to the new grid points;
reevaluating the value for the new grid points; and
smoothing the value for the new grid points.
57. The system of
initializing the new grid points to zero; and
determining a new value for the new grid points.
58. The system of
59. The system of
60. The system of
61. The system of
62. The system of
Description The priority of U.S. Provisional Application No. 60/566,574, filed on Apr. 29, 2004, is hereby claimed, and the specification thereof is incorporated herein by reference. Not applicable. The present invention generally relates to systems and methods for automatically approximating an editable surface from a 3D data set or 3D point set, which may be imaged in the form of a NURBS surface. Non-Uniform Rational B-Splines (NURBS) are industry standard tools for the representation and design of geometry. NURBS, as explained by Markus Altmann in “About Nonuniform Rational B-Splines—NURBS,” are used for a variety of reasons. They offer one common mathematical form for both standard analytical shapes (e.g., conics) and free-form shapes. NURBS provide the flexibility to design a large variety of shapes and can be evaluated reasonably fast by numerically stable and accurate algorithms. They are invariant under affine as well as perspective transformations and are generalizations of non-rational B-Splines and non-rational and rational Bezier curves and surfaces. However, one of the drawbacks of NURBS is the need for extra storage to define traditional shapes (e.g., circles). This results from parameters in addition to the control points, but will allow the desired flexibility for defining parametric shapes. NURBS-shapes are not only defined by control points; weights, associated with each control point, are also necessary. A NURBS curve C(u), for example, which is a vector-valued piecewise rational polynomial function, may be defined as: -
- w
_{i}=weights - P
_{i}=control points (vector) - N
_{i,k}=normalized B-spline basis functions of degree k.
- w
The B-Splines are defined recursively as: The knot vector uniquely determines the B-Splines as demonstrated above relative to equation (2). The relation between the number of knots (m+1), the degree (k) of N The sequence of knots in the knot vector U is assumed to be non-decreasing, i.e., t For NURBS, the relative parametric intervals (knot spans) need not be the same for all shape segments, i.e., the knot spacing is non-uniform, leading to a non-periodic knot vector of the form:
Since the knot spacing could be non-uniform, the B-Splines are no longer the same for each interval [t -
- 1. N
_{i,k(u)}>=0, for all i, k, u; - 2. N
_{i,k(u)}=0, if u not in [t_{i}, t_{i+k+1}), meaning local support of k+1 knot spans, where N_{i,k(u) }is nonzero; - 3. If u in [t
_{i}, t_{i+1}), the non-vanishing blending functions are N_{i−k,k(u)}, . . . , N_{i,k(u)}; - 4. Sum (j=i−k, i){N
_{j,k(u)}}=sum(i=0, n){N_{i,k(u)}}=1, (partition of unity); and - 5. In case of multiple knots, 0/0 is deemed to be zero.
- 1. N
The first and fourth properties, as illustrated in Curve/Surface Definition The previous definition of a NURBS-curve in equation (1) may be rewritten using rational basis functions: A NURBS-surface may be defined in a similar way:
The rational basis functions have the same properties as the blending functions. One point to emphasize, is their invariance under affine and (even) perspective transformations. Therefore, only the control points have to be transformed to get the appropriate transformation of the NURBS shape. Computational Algorithm NURBS can be evaluated effectively by using homogeneous coordinates. The following steps demonstrate one method to perform the evaluation: - 1. Add one dimension to the control points (e.g., P=(x, y)−>P′(x, y, 1)) and multiply them by their corresponding weights, i.e., in 2D: P
_{i(xi, yi)}−>P_{i′}(w_{i}*x_{i,}w_{i}*y_{i}, w_{i}) - 2. Calculate NURBS in homogeneous coordinates:
*C*′(*u*)=sum(*i=*0,*n*){*P*_{i′}(*u*)**N*_{i,k(u)}} - 3. Map “homogeneous” NURBS back to original coordinate system with:
As mentioned above, changing the weight w Defining the points: -
- B
_{i }sweeps out on a straight line segment; - If w
_{i}=0 then Pi has no effect on shape; - If w
_{i }increases, so b and the curve is pulled toward P_{i }and pushed away from P_{j}, for j not =i; - If w
_{i }decreases, so b and the curve is pushed away from P_{i }and pulled toward P_{j}, for j not =i; and - If w
_{i}−>infinity then b−>1 and B_{i}−>P_{i}, if u in [t_{i}, t_{i+k+1}) The Problem
- B
Various techniques have been attempted for creating a NURBS surface in different fields of art. For example, International Publication No. WO 02/37422, and U.S. Pat. No. 6,765,570, incorporated herein by reference, propose various techniques for the manual generation of editable (NURBS) surfaces used in analyzing and interpreting seismic events. Other conventional applications propose creating an editable (NURBS) surface using interpolation techniques well known in the art. Such techniques may be referred to as an “exact-fit” approach to determining the editable surface. An exact-fit approach is more likely to render a less uniform, if not non-uniform, editable surface as compared to a “best-fit” approximation of the editable surface. Moreover, the exact-fit approach to defining an editable NURBS surface may be impractical, if not cost prohibitive, for large 3D data sets often encountered in the analysis of seismic data. Other conventional methods for converting unordered points to surfaces are generally described in Shepard, D., “A two dimensional interpolation function for irregular spaced data,” 1968, pp. 517-524, Proceedings 23 Another well-known method, generally referred to as the “Thin Plate Spline” method has been incorporated in medical imaging applications and is capable of precisely guiding the target surface such that it passes through all given points. See Hardy, R. L. Desmarrais, R. N., “Interpolation using surface spline,” 1972, pp. 189-197, Journal of Aircraft 9 and Dyn, N., “Interpolation in Scattered Data by Radial Functions,” 1987, pp. 47-61, In Chui, C. K.; Schumaker, L. L.; Ultreres, F. I. (ed) Topics in Multivariate Approximation. However, this technique requires the inversion of large matrices, which is computationally expensive and generally impractical for a large number of input points that may only require a best-fit approximation. Another conventional method for converting a point cloud to a surface is described in Hoppe, H., et al., “Surface Reconstruction from Unorganized Points, 1992, pp. 71-78, Comput. Graph. 26. However, this method assumes that the input points are evenly distributed over the entire domain, which is also impractical for input points that are densely populated in some areas and non-existent in other areas. A need therefore, exists for automatically approximating an editable surface from a 3D data set or 3D point set comprising a large volume of unordered and/or unstructured data points, which may be imaged in the form of an editable NURBS surface. The present invention meets the above needs and overcomes one or more deficiencies in the prior by providing systems and methods for automatically approximating an editable surface from a 3D data set or a 3D point set that may comprise a large volume of unstructured and/or unordered data points. In one embodiment, the present invention includes a system for approximating an editable surface from a 3D data set comprising a computer-readable memory medium configured to store a program of instructions capable of being executable to implement: i) selecting a point set from the 3D data set; ii) determining a best-fit plane for the point set; iii) projecting at least a portion of the point set on to the best-fit plane; iv) determining a boundary for the best-fit plane according to the projected point set; v) projecting a grid on to the best-fit plane within the boundary, the grid containing a plurality of grid points; vi) initializing the grid points; vii) determining a value for at least a portion of the grid points; viii) selecting at least a portion of the grid points with a value; and ix) imaging the editable surface using at least a portion of the selected grid points. In another embodiment, the present invention includes a system for approximating an editable surface from a 3D point set comprising a computer-readable memory medium configured to store a program of instructions capable of being executable to implement: i) determining a best-fit plane for the point set; ii) projecting the point set on to the best-fit plane; iii) determining a boundary for the best-fit plane according to the point set; iv) projecting a grid on to the best-fit plane within the boundary, the grid containing a plurality of grid points; v) initializing the grid points to zero; vi) determining a value for the grid points; vii) refining the value for at least a portion of the grid points; viii) selecting at least a portion of the grid points based on one of the value and the refined value; and ix) imaging the editable surface using the selected grid points, the editable surface representing a best-fit approximation of the point set to the editable surface. In another embodiment, the present invention includes a method for approximating an editable surface from a 3D data set comprising the steps of: i) selecting a point set from 3D data set; ii) determining a best-fit plane for the point set; iii) projecting at least a portion of the point set on to the best-fit plane; iv) determining a boundary for the best-fit plane according to the projected point set; v) projecting a grid on to the best-fit plane within the boundary, the grid containing a plurality of grid points; vi) initializing the grid points; vii) determining a value for at least a portion of the grid points; viii) selecting at least a portion of the grid points with a value; and ix) imaging the editable surface using at least a portion of the selected grid points. In yet another embodiment, the present invention includes a method for approximating an editable surface from a 3D point set comprising the steps of: i) determining a best-fit plane for the point set; ii) projecting a point set on to the best-fit plane; iii) determining a boundary for the best-fit plane according to the point set; iv) projecting a grid on to the best-fit plane within the boundary, the grid containing a plurality of grid points; v) initializing the grid points to zero; vi) determining a value for the grid points; vii) refining the value for at least a portion of the grid points; viii) selecting at least a portion of the grid points based one of the value and the refined value; and ix) imaging the editable surface using the selected grid points, the editable surface representing a best-fit approximation of the point set to the editable surface. These and other objects, features and advantages of the present invention will become apparent to those skilled in the art from the following description of the various embodiments and related drawings. The present invention is described below with reference to the accompanying drawings in which like elements are referenced with like reference numerals, and in which: The subject matter of the present invention is described with specificity, however, the description itself is not intended to limit the scope of the invention. The claimed subject matter thus, might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described herein, in conjunction with other present or future technologies. Moreover, although the term “step” may be used herein to connote different elements of methods employed, the term should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described. The present invention provides an improved system and method for analyzing 3D data sets and/or 3D point sets. The invention may be described in the general context of a computer-executable program of instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with a variety of computer-system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable-consumer electronics, minicomputers, mainframe computers, and the like. Any number of computer-systems and computer networks are acceptable for use with the present invention. The invention may be practiced in distributed-computing environments where tasks are performed by remote-processing devices that are linked through a communications network. In a distributed-computing environment, program modules may be located in both local and remote computer-storage media including memory storage devices. The computer-useable instructions form an interface to allow a computer to react according to a source of input. The instructions cooperate with other code segments to initiate a variety of tasks in response to data received in conjunction with the source of the received data. The present invention may therefore, be implemented using hardware, software or a combination thereof, in a computer system or other processing system. Menu and windowing software A basic graphics library A rendering application Overlaying the other elements of program The program Any variety of acquisition devices may be used depending on the type of object being imaged. The acquisition device(s) may sense various forms of mechanical energy (e.g., acoustic energy, displacement and/or stress/strain) and/or electromagnetic energy (e.g., light energy, radio wave energy, current and/or voltage). A processor may be configured to reprogram instructions and/or data from RAM and/or non-volatile memory devices, and to store computational results into RAM and/or non-volatile memory devices. The program instructions direct the processor to operate on 3D data sets and/or 3D point sets based on the methods described herein. The input data may be provided to the computer system through a variety of mechanisms. For example, the input data may be acquired into non-volatile memory and/or RAM using one or more interface devices. As another example, the input data may be supplied to the computer system through a memory medium such as a disk or a tape, which is loaded into/onto one of the non-volatile memory devices. In this case, the input data will have been previously recorded onto the memory medium. It is noted that the input data may not necessarily be raw sensor data obtained by an acquisition device. For example, the input data may be the result of one or more processing operations using a set of raw sensor data. The processing operation(s) may be performed by the computer system and/or one or more other computers. The method of the present invention may be realized in one or more software programs or modules, which are stored onto any of a variety of memory media such as CD-ROM, magnetic disk, bubble memory, semiconductor memory (e.g., any of a various types of RAM or ROM). Furthermore, the software program(s) and/or their results may be transmitted over a variety of carrier media such as optical fiber, metallic wire, free space and/or through any of a variety of networks such as the internet. In Referring now to In step In step In step In step In step In step In step In step In step In step In step In step For each projected data point In step In step In step In step In step In step In step In step In In In The present invention therefore, may be applied to the geophysical analysis of seismic data. Moreover, the present invention may be integrated with one or more system components described in reference to International Publication No. WO 02/37422 and/or U.S. Pat. No. 6,765,570 for creating an editable surface from a plurality of seismic data points that may include, for example, x, y, z coordinates and a data value representing a predetermined object such as, for example, a horizon or a fault. The seismic image automatically rendered as a result of the present invention represents an editable NURBS surface, which may be interactively edited and manipulated and, which may lower the signal-to-noise ratio represented by the input data points compared to conventional techniques used to generate a NURBS surface. The present invention, however, may also be applied to other types of 3D data sets such, for example, medical data and engineering data. It is therefore, contemplated that various situations, alterations and/or modifications may be made to the disclosed embodiments without departing from the spirit and scope of the invention by defined by the appended claims and equivalents thereof. Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |