Curves and Surfaces - PowerPoint PPT Presentation

Loading...

PPT – Curves and Surfaces PowerPoint presentation | free to download - id: c248d-ZDc1Z



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Curves and Surfaces

Description:

Range cameras, into simple surface representations. Basic methods include ... Used to represent measurements, which are a mapping from the coordinate space to ... – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 44
Provided by: sxs3
Learn more at: http://www-ee.uta.edu
Category:
Tags: curves | surfaces

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Curves and Surfaces


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
  • / \
  • Reconstruction Segmentation
  • 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
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 c are 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
(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
(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
(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-gt
E1



V2
E2



V2
E2
V3
V2-gt
E1
E1
F1
E3
E4
F2
V1
V3-gt
E2
Input 1 V1, V2, V3
V1
E3
V4
E5
V4-gt
E4
Input 2 V2, V4, V3
Faces



V2
E1



V4
E4
E4
  • Add each vertex to the WEDS.

F1-gt
E1
  1. Add an edge for each pair of vertices and set the
    edge pointers for the vertices.

E2
F1
E5
F2
F2
F2-gt
E4
V3
E3
V3
E2
E5
  1. Create a record for the face in the WEDS and add
    a pointer to any of the face edges.




V3
E2
  1. 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.

E3
F1
V1
E1
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 u and v
    coordinates

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 y axes
    containing (x, y).
  • The aim is to 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
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 ak with 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
About PowerShow.com