Reconstruction from Point Cloud (GATE-540)
description
Transcript of Reconstruction from Point Cloud (GATE-540)
![Page 1: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/1.jpg)
1GATE-540
Reconstruction from Point Cloud(GATE-540)
Dr.Çağatay ÜNDEĞER
InstructorMiddle East Technical University, GameTechnologies
&
General ManagerSimBT Inc.
e-mail : [email protected]
Game Technologies Program – Middle East Technical University – Spring 2010
Reference: Hugues et al, Surface Reconstruction from Unorganized Points
![Page 2: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/2.jpg)
2GATE-540
Outline
• Reconstruction from point clouds
![Page 3: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/3.jpg)
3GATE-540
Goals• Develop 3D Analysis Algorithms:
– Reconstruction– Segmentation– Feature Detection– Labeling– Matching – Classification– Retrielval– Recognition– Clustering
![Page 4: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/4.jpg)
4GATE-540
Goal of Surface Reconstruction
• Have a set of unorganized points• Reconstruct a surface model that best
approximates the real surface
![Page 5: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/5.jpg)
5GATE-540
Data Sources
• Surfaces from range data• Surfaces from contours (slices of images)• Interactive surface sketching
![Page 6: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/6.jpg)
6GATE-540
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
![Page 7: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/7.jpg)
7GATE-540
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.
![Page 8: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/8.jpg)
8GATE-540
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
![Page 9: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/9.jpg)
9GATE-540
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.
N
sampled point
tangent plane
signed distance
estimated surface point
![Page 10: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/10.jpg)
10GATE-540
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
![Page 11: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/11.jpg)
11GATE-540
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
??
![Page 12: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/12.jpg)
12GATE-540
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.
![Page 13: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/13.jpg)
13GATE-540
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.
![Page 14: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/14.jpg)
14GATE-540
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.
![Page 15: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/15.jpg)
15GATE-540
Reimannian Graph
• A connected graph
Reimannian GraphEMST
over tangent planes
![Page 16: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/16.jpg)
16GATE-540
Simple Algorithm
• Arbitrarily choose an orientation for some plane
• Propogate the orientation to neigbors in Reimannian Graph.
• Order of propagation is important!
![Page 17: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/17.jpg)
17GATE-540
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
![Page 18: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/18.jpg)
18GATE-540
Assigning Orientations
• Assign +z orientation to point in graph that has largest z coordinate.
• Travers the tree in depth first order.
Oriented tangent planes
![Page 19: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/19.jpg)
19GATE-540
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
![Page 20: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/20.jpg)
20GATE-540
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)
![Page 21: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/21.jpg)
21GATE-540
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
![Page 22: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/22.jpg)
22GATE-540
Contour Tracing
• Visit the cubes only intersect the zero set.• No intersection if the signed distance is
unefined in any vertex within a cube.
![Page 23: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/23.jpg)
23GATE-540
Collapse Edges
• Contain triangles with arbitrary poor ascpect ratio.
• Collapse edges in post processing
![Page 24: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/24.jpg)
24GATE-540
Collapse Edges
![Page 25: Reconstruction from Point Cloud (GATE-540)](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814961550346895db6b652/html5/thumbnails/25.jpg)
25GATE-540
Sample Results