Point Clouds 2D3D Shape Manipulation 3D Printing March 13 2013 Slides from Olga Sorkine Implicit Surface Reconstruction Implicit function from point clouds Need consistently oriented normals ID: 134018
Download Presentation The PPT/PDF document "Normal Estimation in" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Normal Estimation in Point Clouds
2D/3D Shape Manipulation,3D Printing
March 13, 2013
Slides from Olga
SorkineSlide2
Implicit Surface Reconstruction
Implicit function from point cloudsNeed consistently oriented normals
< 0
>
0
0
March 13, 2013
Olga Sorkine-Hornung
2Slide3
Normal Estimation
Assign a normal vector n at each point cloud point
xEstimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
3Slide4
Normal Estimation
March 13, 2013
Olga Sorkine-Hornung
4
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)Slide5
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
5Slide6
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
6Slide7
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
7Slide8
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
8Slide9
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
9Slide10
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
10Slide11
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
11Slide12
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
12Slide13
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
13Slide14
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
14Slide15
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
15Slide16
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
16Slide17
Normal Estimation
Assign a normal vector
n
at each point cloud
point
x
Estimate the direction by fitting a local plane
Find consistent global orientation by propagation (spanning tree)
March 13, 2013
Olga Sorkine-Hornung
17Slide18
Local Plane Fitting
For each point x in the cloud, pick k nearest neighbors or all points in
r-ball:
Find a plane
Π
that minimizes the sum of square distances:
March 13, 2013
Olga Sorkine-Hornung
18Slide19
Local Plane Fitting
March 13, 2013
Olga Sorkine-Hornung
19
For each point
x
in the cloud, pick
k
nearest neighbors or all points in
r
-ball:
Find a plane
Π
that minimizes the sum of square distances:Slide20
Linear Least Squares?
x
y
March 13, 2013
Olga Sorkine-Hornung
20Slide21
Linear Least Squares?
Find a line y = ax+b s.t.
x
y
March 13, 2013
Olga Sorkine-Hornung
21Slide22
Linear Least Squares?
Find a line
y = ax+b
s.t.
But we would like true orthogonal distances
x
y
March 13, 2013
Olga Sorkine-Hornung
22Slide23
Best Fit with SSD
x
y
x
y
March 13, 2013
Olga Sorkine-Hornung
23Slide24
Principle Component Analysis (PCA)
PCA finds an orthogonal basis that best represents a given data set
PCA finds the best approximating line/plane/orientation… (
in terms of
distances
2
)
x
y
z
x
y
x
y
March 13, 2013
Olga Sorkine-Hornung
24Slide25
Notations
Input points:
Looking for a (hyper) plane
passing
through
c
with
normal
n
s.t.
March 13, 2013
Olga Sorkine-Hornung
25Slide26
Notations
Input points:Centroid:
Vectors from the centroid:
m
March 13, 2013
Olga Sorkine-Hornung
26Slide27
It can be shown that
:m minimizes SSDm will be the origin of
the (hyper)-planeOur problem becomes:
Centroid: 0-dim Approximation
m
March 13, 2013
Olga Sorkine-Hornung
27Slide28
Hyperplane Normal
Minimize!
March 13, 2013
Olga Sorkine-Hornung
28Slide29
Hyperplane Normal
Minimize!
March 13, 2013
Olga Sorkine-Hornung
29Slide30
Hyperplane Normal
Constrained minimization – Lagrange multipliers
March 13, 2013
Olga Sorkine-Hornung
30Slide31
Hyperplane Normal
Constrained minimization – Lagrange multipliers
March 13, 2013
Olga Sorkine-Hornung
31Slide32
Hyperplane Normal
Constrained minimization – Lagrange multipliers
What can be said about
n
??
March 13, 2013
Olga Sorkine-Hornung
32Slide33
Hyperplane Normal
Constrained minimization – Lagrange multipliers
n
is the eigenvector of
S
with the smallest eigenvalue
March 13, 2013
Olga Sorkine-Hornung
33Slide34
Solution with Principal Components Analysis (PCA):
Just use PCAInput:Compute centroid = plane originCompute SVD ofSingular Value Decomposition: Y = UΣV*
Plane normal n is last column vector of U.
Best
Fitting Plane
Recipe -- PCA
March 13, 2013
Olga Sorkine-Hornung
34Slide35
Relation between SVD / Eigenvectors
If we have a Singular Value Decomposition of a matrix Y:Y = UΣ
V*Then the column vectors of U are the eigenvectors of YY*.
March 13, 2013
Olga Sorkine-Hornung
35Slide36
Input:Compute centroid = plane
originSolution using Eigenvectors:Compute scatter matrixThe plane normal n is the eigenvector of
S with the smallest eigenvalue
Best
Fitting Plane
Recipe -- Eigenvectors
March 13, 2013
Olga Sorkine-Hornung
36Slide37
What does Scatter Matrix do?
Let’s
look at a
line
l
through the center of mass
m
with direction vector v
, and project our points xi onto it. The
variance of the
projected points
xi
is:
Original set
Small variance
Large variance
l
l
l
l
v
m
x
i
x
i
l
y
i
March 13, 2013
Olga Sorkine-Hornung
37Slide38
What does Scatter Matrix do?
Original set
Small variance
Large variance
l
l
l
l
v
m
x
i
x
i
l
y
i
March 13, 2013
Olga Sorkine-Hornung
38
The scatter matrix measures the variance of
our data points along the direction
vSlide39
Principal Components
Eigenvectors of S that correspond to
big eigenvalues are the directions in which the data has strong components (= large variance).If the eigenvalues are more or less the same – there is no preferable direction.
March 13, 2013
Olga Sorkine-Hornung
39Slide40
Principal Components
There’s no preferable direction
S
looks like this:
Any vector is an eigenvector
There’s a clear preferable direction
S
looks like this:
is close to zero, much smaller than
March 13, 2013
Olga Sorkine-Hornung
40Slide41
Normal Orientation
PCA may return arbitrarily oriented eigenvectorsWish to orient consistentlyNeighboring points should have similar normals
March 13, 2013
Olga Sorkine-Hornung
41Slide42
Build graph connecting neighboring poin
ts
Edge
(
i,j
)
exists if
x
i
∈
kNN
(
xj) or xj ∈ kNN(xi
)Propagate normal orientation through graphFor neighbors xi, xj : Flip nj if niTnj < 0Fails at sharp edges/cornersPropagate along “safe”
paths (parallel normals)Minimum spanning tree with angle-based edge weights wij = 1- | niTnj |Normal Orientation
March 13, 2013Olga Sorkine-Hornung42Slide43
Build graph connecting
neighboring pointsEdge (
i,j
)
exists if
x
i
∈
kNN(x
j)
or
xj
∈ kNN(
xi)Propagate normal orientation through graphFor neighbors xi, xj : Flip nj if niTnj
< 0Fails at sharp edges/cornersPropagate along “safe” paths (parallel normals)Minimum spanning tree with angle-based edge weightsNormal OrientationMarch 13, 2013Olga Sorkine-Hornung43