Vous êtes sur la page 1sur 36

Estimating Surface Normals

in Noisy Point Cloud Data

Niloy J. Mitra, An Nguyen

Stanford University
The Normal Estimation Problem

 Given
Noisy PCD sampled from
a curve/surface

Normal Estimation for Noisy PCD Symposium on Computational Geometry


The Normal Estimation Problem

 Given
Noisy PCD sampled from
a curve/surface

 Goal
Compute surface normals
at each point p

Error bound the normal estimates

Normal Estimation for Noisy PCD Symposium on Computational Geometry


A Standard Solution

Use least square fit to a neighborhood of


radius r around point p

Normal Estimation for Noisy PCD Symposium on Computational Geometry


A Standard Solution

Use least square fit to a neighborhood of


radius r around point p

PROBLEM !!
what neighborhood size to choose?

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Contributions of this paper
 Study the effects of curvature, noise,
sampling density on the choice of
neighborhood size.

 Use this insight to choose an optimal


neighborhood size.

 Compute bound on the estimation error.

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Outline

 Problem statement
 Related work
 Neighborhood Size Estimation
 Analysis in 2D and 3D
 Applications
 Future Work

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Related Work

 Surface reconstruction
 crust, cocone, etc
 Guarantees about the surface normals
 Mostly works in absence of noise

 Curve/Surface fitting
 pointShop3D, point-set
 Works in presence of noise
 Performance guarantees?

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Least Square Fit
aTp=c
 Assume
best fit hyperplane: aTp=c
 Minimize k
1
 i
k i 1
( a T
p  c ) 2

 Reduces to the eigen-analysis of


the covariance matrix

 Smallest eigenvector of M is the estimate of the


normal
1 k
M   pi  p pi  p
k i 1
T
  
Normal Estimation for Noisy PCD Symposium on Computational Geometry
Deceptive Case

Collusive noise

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Deceptive Cases

Collusive noise

Curvature effect
Normal Estimation for Noisy PCD Symposium on Computational Geometry
Outline

 Problem statement
 Related work
 Neighborhood Size Estimation
 Analysis in 2D and 3D
 Applications
 Future Work

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Assumptions

 Noise
 Independent of measurement
 Zero mean
 Variance is known (noise need not be bounded)
 Data
 Sampling criterion satisfied
 Evenly distributed data
 To prevent biased estimates
 Curvature is bounded

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Sampling Criteria (2D)
Sampling density
• lower bound (like Nyquist rate)
• upper bound (to prevent biased fits)

Evenly distributed
Number of points in a disc of radius r bounded
above and below by (1)r

(,) sampling condition [Dey et. al.] implies


evenly distributed.

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Modeling (2D)
y x

 At a point O O
2r

 Points of PCD inside a disc of radius r comes


from a segment of the curve
 y = g(x) define the curve for all x[-r,r]
 Bounded curvature: |g’’(x)|< for all x
 Additive Noise(n) in y-direction (x,g(x)+n)
 r, n/r assumed to be small

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Proof Idea

 Eigen-analysis of covariance matrix

 m11 m12 
M  
 21
m m22 

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Proof Idea
 m11 m12 
M  
 covariance matrix  21
m m22 

 let,
=(|m12|+m22)/m11

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Proof Idea
 m11 m12 
M  
 covariance matrix  21
m m22 

 let, =(|m12|+m22)/m11
 error angle bounded by,
  (1   ) 
1
tan   
2 
 (1   ) 
 to bound estimation error,
need to bound 

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Bounding Terms of M

 m11 m12 
M  
m21 m22 

 For evenly distributed samples it follows,

1

2
m11  ( xi  x )  (1)r 2
k

1

2
m22  ( yi  y )  (1)( 2 r 4  n 2 )
k

| m12 | ?

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Bounding m12  m11 m12 
M  
 21
m m22 

 Evenly sampled distribution


 Noise and measurement are uncorrelated
 E(xn)= E(x)E(n)= 0

 Var(xn)= (1)r2n2

 Chebyshev Inequality
 x n  E ( xn) with probability (1-)
1
 bound i i
k i

 Finally,
r
| m12 | (1)r 3  (1) n


Normal Estimation for Noisy PCD Symposium on Computational Geometry


Bounding Estimation Error

1
 i
2
m11  ( x  x )   (1) r 2

1

2
m22  ( yi  y )   (1)( 2 4
r  n 2
)
k

r
| m12 | (1)r 3  (1) n


=(|m12|+m22)/m11

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Final Result in 2D

n  n2
  (1)r  (1)  (1)
r 3 r2

•  = 0,
take as large a neighborhood as possible

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Final Result in 2D

n  n2
  (1)r  (1)  (1)
r 3 r2

•  = 0, take as large a neighborhood as possible


•  n= 0
take as small a neighborhood as possible

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Experiments in 2D

n  n2
error  (1)r  (1)  (1)
r 3 r2

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Result for 3D

A similar but involved analysis results in,

error  (1)r  (1) n /( r 2  )  (1) n2 / r 2

A good choice of r is,


1/ 3
1   
r    c1 n  c2 n  
2
   
  

Normal Estimation for Noisy PCD Symposium on Computational Geometry


How can we use this result?
1/ 3
1   
r    c1 n  c2 n2  
   
  
 Need to
 know
 estimate suitable values for
 estimate locally

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Estimating c1, c2

Exact normals known at almost all points


1/ 3
1  
r    c1 n
 c2 n  
2
   
  

c1=1, c2=4
• same constants used for
following results

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Algorithm

 For each point, start with k =15


 Iterate and refine (maximum of 10 steps)
 Compute r, ,  [Gumhold et al.] locally

 Use them to compute rnew

 knew = rnew old


2

 Stop if

 k>threshold
 k saturates

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Effect of Curvature on Neighborhood
Size

1x noise

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Effect of Noise on Neighborhood
Size

1x noise 2x noise

Normal Estimation for Noisy PCD Symposium on Computational Geometry


o
Estimation Error > 5

1x noise 2x noise

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Increasing Noise
Can still get good
estimates in flat areas

1x noise 2x noise 4x noise

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Future Work

 How to find a suitable neighborhood size for good


curvature estimation
 Find a better way for estimating c1, c2
 Design of a sparse query data structure for quick
extraction of normal, curvature, etc from PCDs

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Different Noise Distribution
(same variance)

uniform gaussian

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Result: phone

1x noise

Normal Estimation for Noisy PCD Symposium on Computational Geometry


Varying neighborhood size

Neighborhood size at all


points being shown using
color-coding. Purple
denotes the smallest
neighborhood and turns
blue as the neighborhood
size increases

Normal Estimation for Noisy PCD Symposium on Computational Geometry

Vous aimerez peut-être aussi