Title: Reconstruction from Point Cloud (GATE-540)
1Reconstruction from Point Cloud(GATE-540)
Dr.Çagatay ÜNDEGER Instructor Middle East
Technical University, GameTechnologies General
Manager SimBT Inc. e-mail cagatay_at_undeger.com
Reference Hugues et al, Surface Reconstruction
from Unorganized Points
Game Technologies Program Middle East Technical
University Spring 2010
2Outline
- Reconstruction from point clouds
3Goals
- Develop 3D Analysis Algorithms
- Reconstruction
- Segmentation
- Feature Detection
- Labeling
- Matching
- Classification
- Retrielval
- Recognition
- Clustering
4Goal of Surface Reconstruction
- Have a set of unorganized points
- Reconstruct a surface model that best
approximates the real surface
5Data Sources
- Surfaces from range data
- Surfaces from contours (slices of images)
- Interactive surface sketching
6Terminology
- A surface compact, orientable two dimentional
monifold - A simplicial surface A piecewise linear surface
with triangular faces - X x1, ..., xn sampled data points on or
near an unknown surface M - M y1, ..., yn real points on unknown
surface M that maps X
7Terminology
- p-dense ??
- ei or d maximum error of data source
- xi yi ei
- Features of M that are small compared to d will
not be recoverable. - It is not possible to recover features of M in
regions where insufficient sampling has occured.
8Problem Statement Algorithm
- Goal
- To determine a surface N that approximates an
unknown surface M - An algorithm proposed by Hugues et al, 1992.
- Consists of two stages
- 1) Estimate signed geometric distance to the
unknown surface M - 2) Estimate unknown surface M using a contouring
algorithm
9Define a Signed Distance Function
- Associate an oriented plane (tangent plane) with
each of the data points. - Tangent plane is a local linear approximation to
the surface. - Used to define signed distance function to
surface.
sampled point
N
signed distance
tangent plane
estimated surface point
10Tangent Plane
- Nbhd(xi) k-neighborhood of xi
- Tangent plane center of xi (Oi) centroid of
Nbhd(xi) - Tangent plane normal of xi (Ni) determined
using principle component analysis of Nbhd(xi)
sampled point xi
k-neighborhood of xi
11Principle Component Analysis
- Involves a mathematical procedure that transforms
a number of possibly correlated variables into a
smaller number of uncorrelated variables called
principal components.
Normal of tangent plane might be found in
opposite direction
?
?
12Consistent Tangent Plane Orientation
- If two neigbors are consistently oriented,
- Their tangent planes should be facing almost the
same direction. - Otherwise one of them should be flipped.
13Consistent Tangent Plane Orientation
- Model the problem as a graph optimization
- Each Oi will have a corresponding Vi in graph
- Connect Vi and Vj is Oi and Oj are sufficiently
close. - Cost on edges encodes the degree to which Ni and
Nj are consistently oriented. - Maximize the total cost on the graph.
- NP-hard
- Use an approximation algorithm.
14Euclidian Minimum Spanning Three (EMST)
- Surface is assumed to be a single connected
component, - The graph should be connected.
- A simple connected graph for a set of points that
tends to connect neighbors is EMST. - EMST over tangent planes is not sufficiently
dense! - Enrich it by adding an edge (i,j) if oi is in the
k-neighborhood of oj. - Result is called Reimannian Graph.
15Reimannian Graph
EMST over tangent planes
Reimannian Graph
16Simple Algorithm
- Arbitrarily choose an orientation for some plane
- Propogate the orientation to neigbors in
Reimannian Graph. - Order of propagation is important!
17A Good Propagation Order
- Favor propagation from oi to oj if unoriented
planes are nearly parallel. - Assign cost as 1 NiNj
- A cost is small if parallel
- A fovorable propagation order
- Travers mimimum spanning tree (MST)
dot product
18Assigning Orientations
- Assign z orientation to point in graph that has
largest z coordinate. - Travers the tree in depth first order.
Oriented tangent planes
19Computing Distance Function
- Signed distance f(p)
- f(p) of a point p to unknown surface M
- distance between p and closest point z ? M
- multiplied by 1 depending on the side of the
surface p lies in - z is unknown, thus use closest oi
20Computing Distance Function
- z p ((p-oi)Ni)Ni
- If d(z,X) lt (pd) then // graph is p-dense
- f(p) (p-oi)Ni
- Else
- f(p) undefined
- Defined ones create a zero set (estimate for M)
21Contour Tracing
- Contour tracing is to extract iso-surface from a
scalar function. - A variation of matching cubes is used
- Cube sizes should be less than pd
- But larger increases the speed and reduces the
number of triangle facets created
22Contour Tracing
- Visit the cubes only intersect the zero set.
- No intersection if the signed distance is
unefined in any vertex within a cube.
23Collapse Edges
- Contain triangles with arbitrary poor ascpect
ratio. - Collapse edges in post processing
24Collapse Edges
25Sample Results