Reverse Engineering of Point Clouds to Obtain Tensor...

Post on 20-Feb-2020

0 views 0 download

Transcript of Reverse Engineering of Point Clouds to Obtain Tensor...

Reverse Engineering of Point Clouds to Obtain Tensor Product B-Spline

Surfaces

Lavanya Sita Tekumalla

Advisor:

Prof. Elaine Cohen

School of Computing University of Utah

Masters Thesis Defense

Motivation

Digitizing Geometry• CAD Modeling• Field of Entertainment

Aim• Reverse Engineering segmented

point clouds to obtain tensor product B-splines

http://www.qcinspect.com/rev.htm

Problem definition

Dealing with problems associated with point clouds

• Large data sets• Noise• Holes and missing data

Problem Definition

Finding a Suitable Parameterization• Minimum distortion• Intuitive parameterization• A rectangular boundary for fitting

tensor product surfaces

Problem Definition

Finding a good fitting strategy• Capture detail: Knot placement• Computation speed

Background Moving Least Squares

• Weighted Least Squares fit

• Moving least square fit at point (xj , yj)– The weighting function defined from the

point of view of (xj , yj)

2( ( ) ) ( )i i j

i

Min f x y w i−∑

BackgroundMLS Projection

• A given point set implicitly defines a surface S

• A projection procedure F such that

• S is the set of all points that project onto themselves

( ) ( ( ))F x F F x=

Previous Work: Hole Filling

• Whitaker, R.: “A Level-set Approach to 3D Reconstruction from range data”

• Curless B., Levoy M., “A Volumetric Method for Building Complex Models from Range Images”, Proc. SIGGRAPH ’96.

• J. C. Carr, R. K. Beatson, J.B. Cherrie, T. J. Mitchell, W. R. Fright, B. C. Mc-Callum and T. R. Evans: “Reconstruction and Representation of 3D Objects with Radial Basis Functions”

• Wang J. and Oliveira M.: “A Hole Filling Strategy for Reconstruction of Smooth Surfaces in Range Images”

Previous WorkKnot placement

• Non-linear optimization- Free knot problem– Jupp et al– Dierekx – Deboor and Rice

• Iterative knot insertion and removal– Dierekx– Baussard et al

BackgroundParameterization

• Projection - might not be a bijection• Curves - chord length parameterization• Surfaces

Background :ParameterizationConvex combination maps

• Map the boundary vertices to a convex polygon

• For each interior vertex Pi choose a neighborhood Ni and positive weights λj

– The parameterization maps Pi to Ui

, 1i

i j

j N

λ⊂

=∑,

i

i i j j

j N

U Uλ⊂

= ∑

Background: ParameterizationParameterizing Triangular meshes• Convex Combination Maps: Floater• Mesh as a Spring System: Hormann et al• Harmonic Maps :Eck et al, Floaters mean-

valued coordinates• Conformal Maps: Hormann et al, Sheffer et

al, Levy et al

The Framework

A reverse engineering framework to obtain tensor produce B-splines from point clouds

• Deal with a single patch of segmented data• Obtain a surface dealing with holes

generated during the process of segmentation

• An underlying mesh structure is available

The Framework

A multistage framework• Smoothing surface for noise removal• Hole filling and triangulation of hole• Parameterization• Domain completion - completing

rectangular domain• Fitting by blending local fits

Smoothing

• Find the local neighborhood of each point• Project each point onto the surface obtained using

MLS projection procedure

SmoothingTangential noise

• The normal at the boundary curve differs from the normal at the surface

Boundary Smoothing

• Inspired by MLS projection for surfaces• Project each point onto the local quadratic

approximation of the curve• Does not preserve ordering in the input• Preserving sharp features: User identifies

the corners in the input

SmoothingMLS Projection for curves: StepsFor each point in the curve• Find the local neighborhood• Find a local reference line• Find a local parameterization• Fit a parametric quadratic polynomial MLS

approximation• Project the point onto it

SmoothingMLS projection for curves: Finding

the local reference line

• Minimize • Find the optimal value of q and u.

2

1

|| ( ) , || (|| ||)N

i i i

i

p q p q u u p qθ=

− − − −∑

Smoothing- Results

Smoothing with different values of standard deviation for the weighting function

Smoothing: Results

Smoothing: Results

Hole filling

• Motivation– Parameterize data– Lack of data – Numerical instabilities– Effect on areas around the hole

• Issues– Need a local method– Adequate sampling density

Hole Filling

For each point in the boundary:• Find the local neighborhood• Find a local reference plane and a local

parameterization by projection• Introduce points in the local parameterization• Project each point in the parametric domain onto

its local least squares surface• Triangulate simultaneously(for meshes)

Hole Filling – Curve Example

Hole Filling: Results

Hole Filling- Results

Parameterization

• Aim: To obtain a rectangular domain• Parameterization by Mean Value

coordinates• Fixing boundaries:

– By chord length– Identify the corners of the rectangle– Identify the corners and map to a convex

polygon + complete domain

Parameterization

By chord length

Parameterization

Identify the corners of a rectangle

Domain Completion

•Intuitive parameterization

•Introduce points in the parametric domain

•Projecting them onto the surface.

ParameterizationMap corners to a convex polygon and

complete domain

FittingKnot placement

Hierarchical Domain Decomposition

Fitting

• Blending local fits

• Moving least squares fit with respect to the mid-point of the patch (xj , yj)

• Basis functions: Cubic b-spline bases truncated in a knot interval.

2( ( ) ) ( )i i j

i

Min f x y w i−∑

FittingBlending Local Fits – Basis Functions

FittingBlending Local Fits: Curve

• The global least squares fit to fit the curve given data

• Blending Local Fits: For each patch p

Pi=0

Nà1

(Pj=0

nà1

Cjìj,k(ti)à fi)2

f(t) =Pj=0

nà1

Cjìj,k(t) {(ti, fi)}Nà1i=0

Min

Pi∈Np

(Pj=0

3

Lpjìj+p,k(ti)à fi)

2Minwhere

L0p , L1

p , L2p , and L3

p are coefficients of a local patch

FittingBlending Local Fits: Curve

Blending Control Points

whereGi = r0Lià33 + r1Lià2

2 + r2Lià11 + r3Li

0

Gi: ith Control point of global mesh

Lij

: jth Control point of the ith patch

r0 + r1 + r2 + r3 = 1

FittingBlending Local Fits: Curve

Several Methods of Blending Control Points

FittingBlending Local Fits: Curve

Blending Control Points

Gi = 2

(Lià22

+Lià11

)

r0 = r3 = 0r1 = r2 = 0.5

FittingBlending Local Fits: Curve

Blending Control Pointsr0=βi+1,3(u) r1=βi,3(u) r

2=βi,3(u) r

2=βi-1,3(u)

Gi = r0Lià33 + r1Lià2

2 + r2Lià11 + r3Li

0

FittingBlending local Fits-Surface

Blending control pointsBlending Coefficients of

Different PatchesA single Patch

Fitting Weighting function

• The weighting function– Full weight to points within the patch– Weight decreases exponentially in adjacent patches– Patch size chosen appropriately.

2

21

2121

( )( ) /4

1

( )( ) /4

1

( ) 1

i

i i

i

i i

t tt t

i

i i

t tt t

i

e t twt t t t

e t t

+

+

−−

+

−−

+

⎧⎪ <⎪= ≤ ≤⎨⎪⎪ >⎩

FittingAnalysis

• Blending local fits vs Global Least Squares fit– Error– Computation time

FittingBlending Local Fits Vs Global Least

Square Fit- Quality of fit.• Quantifying error

– Parametric error : where is the data and S the fitted surface

– Minimum distance error: where Ci is the closest point on the fitted surface to Pi

• The global least squares fit performs better

1

0

1 | ( ) |N

i i

i

P S UN

=

−∑ ( , )i iP U

1

0

1 | |N

i i

i

P CN

=

−∑

Fitting: Error Global Least Squares Fit Vs Blending Local Fits

Global Least Squares Fit Blending Local Fits

FittingBlending Local Fits Vs Global Least

Square Fit- Computation Time• With n patches,

– n small surfaces vs one large surface• SVD:

– Global Least Squares Fit: O(m n2 )• with m data points and n control points

– Blending Local Fits: O(m)• m/n points per local patch• Constant number of unknowns per patch• Performed n times

Results

Results

Summary of Research

• Smoothing surfaces by MLS projection.• Boundary smoothing to remove tangential noise• Hole filling• Parameterization using convex combination maps• Domain completion • Knot placement : Hierarchical domain

decomposition• Fitting by blending local fits

Contributions

• A framework to reverse engineer segmented point clouds

• A space curve smoothing procedure based on MLS projection

• A hole-filling technique for meshes• A B-spline fitting method

Questions.

Future Work

• An alternate way of handling lack of data • Reparameterization

– Stretch minimizing reparameterization– Parameter correction: Iterative

reparameterization.• More Domain information: Example

circular objects

Papers/ Tech Reports• ‘A Hole Filling Algorithm for Triangle Meshes’, Technical

Report, School of Computing, University of Utah, UUCS-04-019.

• ‘Reverse Engineering Point Clouds to Obtain Tensor Product B-Spline Surfaces’, submitted to Computer Graphics International 2005. (In Review)

• ‘Smoothing Space Curves with the MLS Projection’ submitted to Geometric Modeling, Visualization and Graphics, Salt Lake City , GMVAG 2005.(In Review).

• ‘Smooth Repair of Holes in Arbitrary Triangle Meshes’, Submitted to Computer Graphics and Geometric Modeling CGGM’2005. (In Review).

SmoothingMLS Projection

Smoothing- MLS ProjectionStep 1 – Find the local reference domain

-This is a non-linear optimization problem

- Solved using Powell minimization to find the suitable n and t

- Initial guess for (n,t) by making t 0 and solving the above equation for n

SmoothingMLS projection for curves: Finding the

local reference plane

• where h determines the standard deviation.

• This problem has 4 degrees of freedom• Solution obtained using Powell

minimization

2 /( ) x hx eθ −=

SmoothingMLS Projection for Curves: Local

Polynomial approximation• Find local orthonormal basis

: unit vectors along• Fit a parametric quadratic

Where t is the parameterization This handles 3D curves

• Evaluate the curve at t=0 to obtain the projection

, and x ( )u r q u r q− −

( ) ( , ( ), ( ))g t t v t w t=

Hole FillingResultant Fit with and Without

filling the hole

Hole FillingMeshes: Two step process

Iteratively perform• Make-Convex:

Hole FillingTwo step process

• Add Vertices

Until the hole can be filled by a single triangle.

Hole FillingChecks for overlap

• Ensure that there are no overlaps in the local parameterization

During Make-Convex During Add vertices

Fitting Domain Decomposition

Fitting: Error Global Least Squares Fit Vs Blending Local Fits

Method Parametric Error Minimum distance ErrorGLF 0.076 0.047BLF1 0.163 0.1BLF2 0.11 0.073

Fitting: Time Global Least Squares Fit Vs Blending Local Fits

• 261 25 23 x 23• 26 10 15 x 15• 4 6 11 x 11

Basis Functions

Previous WorkFitting a network of patches

• 1996: Eck M., Hoppe, H. et al ,"Automatic reconstruction of B-spline surfaces of arbitrary topological type."

• 1999: I.K. Park, I.D. Yun, S.U. Lee, "Constructing NURBS Surface Model from Scattered and Unorganized Range Data“

• 2000: Benjamin F. Gregorski, Bernd Hamann, Kenneth I. Joy , “Reconstruction of B-spline Surfaces from Scattered Data Points”