/
Normal Estimation in Normal Estimation in

Normal Estimation in - PowerPoint Presentation

jane-oiler
jane-oiler . @jane-oiler
Follow
379 views
Uploaded On 2015-09-19

Normal Estimation in - PPT Presentation

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

sorkine normal 2013 march normal sorkine march 2013 olga hornung point direction orientation fitting vector local cloud tree spanning estimation global consistent

Share:

Link:

Embed:

Download Presentation from below link

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.


Presentation Transcript

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

xi

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