Loading...

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

The Adobe Flash plugin is needed to view this content

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 - from sparse depth measurements surface types

for object - that may have outliers. recognition

refinement of the - surface estimates.
- Contours ? 2-D
- Surfaces ? 3-D

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)

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.

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).

Importance of Surfaces

- Representation of depth measurements
- Analysis of depth measurements
- Data visualization
- Object recognition

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.

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

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

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

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

Geometry of Surfaces

- Explicit form
- Implicit form
- Parametric form

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

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

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

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).

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

Surface Representations

- Polygonal Meshes
- Surface Patches
- Tensor-Product Surfaces

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.

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.

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.

(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.

(WEDS) (contd)

- Face record
- Face record contains a pointer that points to the

edge record for one of its edges.

(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.

(WEDS) (contd)

- Edge record- Notation of compass directions is

just for convenience in a polygonal mesh, there

is no global sense of direction.

(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.

(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.

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

- 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

- Create a record for the face in the WEDS and add

a pointer to any of the face edges.

V3

E2

- 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

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.

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.

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.

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.

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

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

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

Triangular Mesh Interpolation - Example

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).

Bilinear Interpolation

Bilinear Interpolation

- A surface is bilinear if each cross section

parallel to a coordinate axis is a line segment

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.

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.

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.

Topics to be covered

- Surface Approximation
- Surface Segmentation
- Surface Registration
- Applications