# Curves and Surfaces - PowerPoint PPT Presentation

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

The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
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
Category:
Tags:
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
• 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
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,
• 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