250 likes | 465 Views
Reconstruction from Point Cloud (GATE-540). Dr.Çağatay ÜNDEĞER Instructor Middle East Technical University, GameTechnologies & General Manager SimBT Inc. e-mail : cagatay@undeger.com. Reference: Hugues et al, Surface Reconstruction from Unorganized Points.
E N D
Reconstruction from Point Cloud(GATE-540) Dr.Çağatay ÜNDEĞER Instructor Middle East Technical University, GameTechnologies & General Manager SimBT Inc. e-mail : cagatay@undeger.com Reference: Hugues et al, Surface Reconstruction from Unorganized Points Game Technologies Program – Middle East Technical University – Spring 2010
Outline • Reconstruction from point clouds
Goals • Develop 3D Analysis Algorithms: • Reconstruction • Segmentation • Feature Detection • Labeling • Matching • Classification • Retrielval • Recognition • Clustering
Goal of Surface Reconstruction • Have a set of unorganized points • Reconstruct a surface model that best approximates the real surface
Data Sources • Surfaces from range data • Surfaces from contours (slices of images) • Interactive surface sketching
Terminology • 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
Terminology • p-dense : ?? • ei or δ : maximum error of data source xi = yi± ei • Features of M that are small compared to δ will not be recoverable. • It is not possible to recover features of M in regions where insufficient sampling has occured.
Problem 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
Define 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
Tangent 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
Principle 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 ? ?
Consistent 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.
Consistent 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.
Euclidian 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.
Reimannian Graph • A connected graph EMST over tangent planes Reimannian Graph
Simple Algorithm • Arbitrarily choose an orientation for some plane • Propogate the orientation to neigbors in Reimannian Graph. • Order of propagation is important!
A Good Propagation Order • Favor propagation from oi to oj if unoriented planes are nearly parallel. • Assign cost as 1 – |Ni*Nj| • A cost is small if parallel • A fovorable propagation order: • Travers mimimum spanning tree (MST) dot product
Assigning Orientations • Assign +z orientation to point in graph that has largest z coordinate. • Travers the tree in depth first order. Oriented tangent planes
Computing 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
Computing Distance Function z = p – ((p-oi)*Ni)*Ni If d(z,X) < (p+δ) then // graph is p-dense f(p) = (p-oi)*Ni Else f(p) = undefined • Defined ones create a zero set (estimate for M)
Contour 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 p+δ • But larger increases the speed and reduces the number of triangle facets created
Contour Tracing • Visit the cubes only intersect the zero set. • No intersection if the signed distance is unefined in any vertex within a cube.
Collapse Edges • Contain triangles with arbitrary poor ascpect ratio. • Collapse edges in post processing