1 / 43

Curves and Surfaces

Curves and Surfaces. Sriram Sethuraman 000-02-3772 Dept. of Mechanical Engineering, UTA EE 6358 Computer Vision Oct 18, 2005. Surfaces. Surfaces- 2 Fundamental Problems ∕ Reconstruction Segmentation of surfaces (onto a uniform grid) of surfaces into different

Télécharger la présentation

Curves and Surfaces

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. Curves and Surfaces Sriram Sethuraman 000-02-3772 Dept. of Mechanical Engineering, UTA EE 6358 Computer Vision Oct 18, 2005

  2. Surfaces Surfaces- 2 Fundamental Problems ∕ \ ReconstructionSegmentation of surfaces (onto a uniform grid) of surfaces into different from sparse depth measurements surface types for object that may have outliers. recognition & refinement of the surface estimates. Contours → 2-D Surfaces → 3-D

  3. Topics covered… • Introduction to Surfaces • Fields, Curves and Surfaces • Representations (polynomial surface patches, tensor-product cubic splines) • Reconstruction • Interpolation • Approximation (Surface fitting) • Segmentation (of point measurements into surface patches) • Registration (of surfaces with point measurements)

  4. Topics covered • Basic methods for converting point measurements from • Binocular stereo, • Active triangulation and • Range cameras, into simple surface representations. • Basic methods include • Converting point measurements into a mesh of triangular facets, • Segmenting range measurements into simple surface patches, • Fitting a smooth surface to the point measurements, and • Matching a surface model to the point measurements.

  5. Introduction to Surfaces • Typically used to provide a model for depth measurements. • Surfaces are interpolated or approximated from depth measurements. • Surfaces are then segmented into regions with similar characteristics (curvature).

  6. Importance of Surfaces • Representation of depth measurements • Analysis of depth measurements • Data visualization • Object recognition

  7. Fields (of coordinates & measurements) • Used to represent measurements, which are a mapping from the coordinate space to the data space. • Image-related measurements include intensity and depth. • Measurements are a mapping from the coordinate space to the data space. • Coordinate space- specifies the locations at which measurements were made; data space- specifies the measurement values. • Data values are scalar measurements if the data space has only 1-D; else, vector measurements. • E.g.- weather data, image.

  8. Fields- 3 types Uniform fields • Measurements stored in a rectangular grid • Equal spacing between rows and columns • Images – each grid square is a pixel Rectilinear fields • Data samples not equally spaced along the coordinate axes • Data samples organized on rectangular grid with varying distances between rows and columns

  9. Fields- 3 types Irregular fields • Used for scattered (randomly located) measurements or any pattern of measurements not corresponding to a rectilinear structure • No overall organizational structure • Similar to coordinate systems used in standard mathematics

  10. Importance of Fields • Allows for flexibility in the representation of measurements • Example: • Depth measurements can be represented as displacement measurements in the uniform field of an image • Depth measurements can also be represented as points in the irregular field of 3-D space

  11. Extending Curve Geometry to 3D Surfaces are described using special curves; representations for curves generalize to representations for surfaces • Explicit form: • Implicit form: • Parametric form:

  12. Geometry of Surfaces • Explicit form: • Implicit form: • Parametric form:

  13. z P zP y x (xP, yP) Geometry of Surfaces • The explicit form is good for graph surfaces, which are surfaces represented as displacements from a coordinate plane • A graph surface represents a surface as displacements normal to the coordinate plane

  14. Planes • Three points, p0, p1, and p2, define a plane in space • The normal vector to the plane, n, is defined as • The implicit equation for a plane is where, p is a point that lies in the plane • a, b, and care the elements of n

  15. Differential Geometry • Local analysis of how small changes in position (u,v) in the planar domain affect the position on the surface p(u,v), the first derivatives, pu(u,v) & pv(u,v) and the surface normal, n(u,v). • The first derivatives at a point are two orthogonal vectors that span the tangent plane • The surface normal n at this point p is the unit vector orthogonal (normal) to the tangent plane

  16. Differential Geometry • Slicing the surface with a plane containing the normal vector produces an infinite number of normal curves, depending on the orientation of the slicing plane. • The minimum and maximum curvatures (principal curvatures) can be used to calculate the Gaussian curvature and mean curvature. • Umbilic points are locations on the surface where all normal curvatures are equal (end of an egg).

  17. Curve Representations • Mostly interested with 3-D cubic splines • Cubic Spline- Sequence of polynomial curves joined end-to-end to represent a complex curve • Cubic polynomial curve: • Cubic spline:

  18. Surface Representations • Polygonal Meshes • Surface Patches • Tensor-Product Surfaces

  19. Polygonal Meshes • Planar polygons (planar facets or faces) are used to model the surface of complex objects using polygonal meshes. • In ‘Contours’, a polyline was represented by a list of coordinates for the vertices that connect the line segments. Here, a polygonal mesh is represented by the list of vertex coordinates for the vertices that define the planar polygons in the mesh.

  20. Polygonal Meshes- Representation by List of vertices • As many polygons tend to share each vertex, an indirect representation that allows each vertex to be listed only once is used. • Number the vertices from 1 to n; store the coordinates for each vertex once: v1 = (x1, y1, z1) . . vn = (xn, yn, zn) • Represent each face by a list of vertices in the polygon for the face; for consistency, follow the convention of listing then in the order of encounter (clockwise around the face. • Easy to find all the vertices for a given face, and any change in the coordinates of a vertex automatically (indirectly) changes all faces that use the vertex. • Does not explicitly represent the edges between adjacent faces. • Does not provide an efficient way to find all faces that include a given vertex. Winged edge data structure resolves these problems.

  21. Winged Edge Data Structure (WEDS) • Used to store information regarding the mesh. • Provides efficient means to find all faces that include a given vertex. • Network with 3 types of records- vertex, edge and face records. • All faces using a vertex can be found in time proportional to the number of faces that include the vertex. • All vertices around a face can be found in time proportional to the number of vertices around the face. • Can handle polygons with many sides; not all polygons in the mesh necessarily need to have the same size / same number of sides. • Compact data structure that allows for very efficient algorithms. • WEDS includes pointers that can be followed to find all neighboring elements without searching the entire mesh or storing a list of neighbors in the record for each element. • There is 1 vertex record for every vertex in the polygonal mesh, etc.

  22. Edge Vertex (WEDS) (contd…) • Vertex record • Contains the coordinates for the vertex. • Contains a unique number for the vertex. • Contains a pointer that points to the record for one of the edges that ends at that vertex.

  23. Face Edge (WEDS) (contd…) • Face record • Face record contains a pointer that points to the edge record for one of its edges.

  24. (WEDS) (contd…) • Edge record • Provides most of the connectivity for the mesh. • Contains a pointer to each of the vertices at its ends. • Contains a pointer to each face on either side of the edge. • Contains pointers to the four wing edges that are neighbors in the polygonal mesh. • These pointers connect the faces and vertices into a polygonal mesh and allow the mesh to be traversed efficiently, i.e., efficient traversal from edge to edge around a face.

  25. Vertex Edge Edge N NW NE Edge Face Face W E Edge Edge Vertex SW SE S (WEDS) (contd…) • Edge record- Notation of compass directions is just for convenience; in a polygonal mesh,there is no global sense of direction.

  26. (WEDS) (contd…) • Traversing a Face • Start at the edge pointed to by the face record. • For clockwise traversal, follow the northeast wing if the face is east of the edge; follow the southwest wing if the face is west of the edge. • For each edge, a check must be performed to determine if the face is east or west of the edge. • Continue until the starting edge is reached.

  27. (WEDS) (contd…) Algorithm- Adding a Face to a Polygonal Mesh (WEDS), assuming that the vertices are listed in clockwise order around the face. Input: List of successive vertices for the face, including vertex numbers which are used to uniquely identify each vertex and its coordinates, listed in clockwise order around the face. • For each vertex in the vertices’ list, add a record for the vertex to the WEDS if the vertex is not already in the data structure. • For each pair of successive vertices (including the last & first), add a record for the edge if an edge with those vertices is not currently in the data structure. • For each edge record around the face, add the winds for clockwise & counterclockwise traversal around the face. The wing fields in each record that are affected depend on if the new face being inserted in the data structure is the east or west face of each edge record. • Create a record for the face and add a pointer to one of the edges.

  28. Example – Adding a Face V2 E4 V4 Vertices Edges F2 E1 E2 F1 E5 V1-> E1 V2 E2 E2 V2 V3 V2-> E1 E3 E1 F1 F2 E4 V1 V3-> E2 Input 1: V1, V2, V3 V4-> E4 V1 E3 E5 V4 Input 2: V2, V4, V3 Faces E1 V2 E4 E4 V4 Add each vertex to the WEDS. F1-> E1 Add an edge for each pair of vertices and set the edge pointers for the vertices. F1 E2 F2 F2 E5 F2-> E4 E3 V3 E5 E2 V3 Create a record for the face in the WEDS and add a pointer to any of the face edges. E2 V3 For each record of an edge of the face, add the wings for traversal and update the face pointers. This depends on whether the face is east or west of each edge record. F1 E3 E1 V1

  29. Surface Patches- Represent portions of curved graph surfaces using bivariate (2-variable) polynomials E.g.: A plane can be represented as- z = ao + a1x + a2y , and curved surface patches can be modeled using higher-order polynomials.

  30. Surface Patches- Types • Bilinear patches- any c/s // a coordinate axis is a line, • Biquadratic patches- • Bicubic patches- • Biquartic patches- Biquadratic, bicubic and biquartic patches are bivariate polynomials that are frequently used to represent surface patches.

  31. Utility of Surface Patches • Good for modeling portions of a surface, such as the neighborhood around a point. • Not convenient for modeling an entire surface. • Can only be used to model graph surfaces. More complex surfaces can be modeled using cubic splines.

  32. Surface Patches Algorithm- Follow the Edges Clockwise Around a Face Inputs- A pointer to the record for the face to traverse and a procedure to invoke for each edge that is visited. • Get the 1st edge from the face record and make it the current edge. • Process the current edge: perform whatever operations must be done as each edge is visited. E.g., compile a list of vertices clockwise around the face, record the vertex at the end of the edge in the direction of traversal. • If the west face of the current edge is being circumnavigated, then the next edge is the SW wing. • If the east face of the current edge is being circumnavigated, then the next edge is the NE wing. • If the current edge is the 1st edge, then the traversal is finished. • Otherwise, go to step 2 to process the new edge.

  33. Tensor-Product Surfaces • Complex surfaces can be represented parametrically as a sequence of tensor-product surfaces, an extended representation of a complex curve as a sequence of cubic polynomials. • Tensor product surfaces are produced from the product of two parametric cubic polynomial curves • Equation for a parametric cubic polynomial curve: • Tensor product of two cubic curves in uand vcoordinates:

  34. Surface Interpolation • The surface representations can be used to interpolate samples of a graph surface, like depth measurements, obtained with binocular stereo or active triangulation. • May be necessary when depth measurements do not conform to the uniform grid format required for image processing. • May be necessary to interpolate depth measurements onto a uniform grid before using image processing algorithms, such as edge detection and segmentation. • Types: • Triangular mesh interpolation • Bilinear interpolation • Robust interpolation

  35. Triangular Mesh Interpolation • Suppose, we have samples of a graph surface, z = f (x, y), at scattered points (irregular field) using binocular stereo or active triangulation. • We need to interpolate the depth measurements at grid locations [i,j] in the image plane, i.e., the z value at each point. • Create a triangular mesh using the scattered point coordinates (xi,yi) and depth values (z). • Connect the points in space to form a mesh of triangles. • Since the depth measurements are from a graph surface, each triangle defines a plane explicitly: • Imagine overlapping the triangular mesh with the uniform image plane. Each pixel has coordinates (xi,yi). • For each grid location, find the triangle that encloses point (xi,yi) and use the equation corresponding to this triangle to calculate the z at the grid location:

  36. Triangular Mesh Interpolation - Example

  37. Bilinear Interpolation • Interpolates values on a rectilinear grid • Can be used to interpolate a measurement, (x, y), between grid coordinates using the measurements at the four nearest grid locations. • The four grid locations with measurements define the corners of a rectangle with sides parallel to the x and yaxes containing (x, y). • The aim isto find a bilinear surface patch that interpolates the four corners, then use this patch to interpolate the measurement at (x, y).

  38. Bilinear Interpolation

  39. To find the bilinear surface patch, plug the 4 corner coordinates into the above equation. Solve the system of equations for • Special case for uniform grid (image): Bilinear Interpolation • A surface is bilinear if each cross section parallel to a coordinate axis is a line segment:

  40. Robust Interpolation • Beneficial when depth measurements have outliers. • Uses least-median-squares regression to fit surface patches • Tolerates up to 50% outliers. • Finds parameters (a)that minimize the median of the squared residuals (difference between depth measurement and model): • To do this, surface patches are fit to a grid point based on the neighborhood of depth measurements.

  41. Robust Interpolation • Select the n depth measurements closest to the grid point • Fit a surface patch to all possible combinations of m data points selected from the n points. The number of subsets will be: • Compute the median of the squared residuals for this patch: • Once all subsets have been considered, select the parameter akwith the smallest median of squared residuals.

  42. Robust Interpolation Properties • Computationally expensive due to the large number of subsets of points for which surface patches must be fit. • Each surface fit is independent, which allows for parallelization.

  43. Topics to be covered… • Surface Approximation • Surface Segmentation • Surface Registration • Applications

More Related