My PhD Thesis Work l With: n Tony DeRose (Computer Science) n Tom Duchamp (Mathematics) n John...

Preview:

Citation preview

My PhD Thesis WorkMy PhD Thesis Work

With:With:Tony DeRoseTony DeRose (Computer Science)(Computer Science)Tom DuchampTom Duchamp (Mathematics)(Mathematics)John McDonaldJohn McDonald (Statistics)(Statistics)Werner StuetzleWerner Stuetzle (Statistics)(Statistics)......

(University of Washington, ‘91-’94)(University of Washington, ‘91-’94)

3D Scanning3D Scanning

digitalmodel

physicalobject

computer-aided design (CAD)

reverse engineering/3D scanning

shape color materialsurface

reconstruction

Why 3D scanning?Why 3D scanning?

Digital models for many objects don’t exist.Digital models for many objects don’t exist. reverse engineering reverse engineering (Boeing 737X)(Boeing 737X) archivingarchiving virtual environmentsvirtual environments

Traditional design Traditional design (using clay)(using clay)

car industrycar industry computer animationcomputer animation

3D faxing!3D faxing!

Surface reconstructionSurface reconstruction

pointspointsPP

surfacesurfaceSS

reverse engineeringreverse engineering traditional design (wood,clay)traditional design (wood,clay) virtual environmentsvirtual environments

smo

oth

su

rfa

ces

smo

oth

su

rfa

ces

B-splineB-spline

Previous workPrevious work

subdivisionsubdivision

implicitimplicit

meshesmeshes

simplesimplesurface topological typesurface topological type

[Schumaker93], …[Schumaker93], …

arbitraryarbitrary

[Sclaroff-Pentland91],[Sclaroff-Pentland91],......

--

[Schmitt-etal86],[Schmitt-etal86],[Forsey-Bartels95],...[Forsey-Bartels95],...

[Hoppe-etal92,93],,[Turk-Levoy94], ...[Turk-Levoy94], ...

[Moore-Warren91],[Moore-Warren91],[Bajaj-etal95][Bajaj-etal95]

[Hoppe-etal94]

[Krishnamurthy-Levoy][Krishnamurthy-Levoy][Eck-Hoppe96],……

Surface reconstruction problemSurface reconstruction problem

GivenGiven: points : points PP sampled from sampled from unknown surface unknown surface UU

GoalGoal: reconstruct a surface : reconstruct a surface SS approximating approximating UU accurate (w.r.t. accurate (w.r.t. PP, and , and UU!)!) conciseconcise

Why is this difficult?Why is this difficult?

Points Points PP unorganizedunorganized noisynoisy

Surface Surface SS arbitrary, unknown topological typearbitrary, unknown topological type sharp featuressharp features

Algorithm must infer:Algorithm must infer: topology, geometry, and sharp featurestopology, geometry, and sharp features

3-Phase reconstruction method3-Phase reconstruction method

phase 1phase 1

points

initial mesh

optimized mesh

optimizedsubdivision surface

phase 2phase 2

phase 3phase 3Find piecewise Find piecewise smoothsmooth surface. surface.

Find initial surface of correctFind initial surface of correct topological type. topological type.

Detect Detect sharpsharp features automatically features automatically

Improve its accuracy andImprove its accuracy and conciseness. conciseness.

Goals:Goals:

[SIGGRAPH9[SIGGRAPH92]2]

[SIGGRAPH9[SIGGRAPH93]3]

[SIGGRAPH9[SIGGRAPH94]4]

ExampleExample

1 2

3

13,000 points13,000 points

Phase 1: Initial surface estimationPhase 1: Initial surface estimation

If If UU were known, it would satisfy were known, it would satisfy U = Z(d) = { p | d(p)=0 }U = Z(d) = { p | d(p)=0 } , ,where where d(p)d(p) is the is the signed distancesigned distance of of pp to to UU

UUd(p)?d(p)? ++ ++ ++ ++

++++

++++

++++ ++ ++ ++ ++

++++++

++

++++

++++

++++

++

– – –––––

– – ––d(p)?d(p)?

Estimate Estimate dd from from PP Extract Extract Z(d)Z(d)

SSPP

Phase 1 (cont’d)Phase 1 (cont’d)

How to estimate How to estimate dd??

compute tangent planescompute tangent planes orient them consistentlyorient them consistently

Phase 1 (cont’d)Phase 1 (cont’d)

How to extract How to extract Z(d)Z(d)??

run “marching cubes”run “marching cubes”

Phase 2: Mesh optimizationPhase 2: Mesh optimization

InputInput: data points : data points PP, initial mesh , initial mesh MMinitialinitial

OutputOutput: optimized mesh : optimized mesh M, M, minimizingminimizing

E(M) = EE(M) = Edistancedistance + E + Ecomplexitycomplexity

2

Phase 2 (cont’d)Phase 2 (cont’d)

Optimization over:Optimization over:

the number of verticesthe number of vertices

their connectivitytheir connectivity

their positionstheir positions

consider any mesh of the same topological type as consider any mesh of the same topological type as MMinitialinitial

Phase 2 (cont’d)Phase 2 (cont’d)

Nested optimization:Nested optimization: optimize connectivityoptimize connectivity for fixed connectivity, optimize geometryfor fixed connectivity, optimize geometry

edge collapseedge collapse edge swapedge swapedge splitedge split

Greedy approach:Greedy approach: consider local perturbationsconsider local perturbations accept if accept if E(M)<0E(M)<0

Phase 2: ResultsPhase 2: Results

using 31,000 pointsusing 31,000 pointsfrom Digibotics, Inc.from Digibotics, Inc.

using 13,000 pointsusing 13,000 points using 182,000 pointsusing 182,000 pointsfrom Technical Arts Co.from Technical Arts Co.

Phase 3: Piecewise smooth surfacePhase 3: Piecewise smooth surface

piecewise piecewise planar piecewise piecewise smooth surface surface

3

Subdivision surfacesSubdivision surfaces

MM00 MM11 MM22 S=MS=M

[Loop87]

tagged control mesh

[Hoppe-etal94]

Phase 3 (cont’d)Phase 3 (cont’d)

Generalize phase 2 optimization:Generalize phase 2 optimization:

edge collapseedge collapse edge swapedge swapedge splitedge split edge tag

Again, apply perturbation if Again, apply perturbation if E(M)<0E(M)<0

Phase 3: ResultsPhase 3: Results

Related workRelated work

phase 1phase 1

initial mesh

optimized mesh

optimizedsubdivision surface

phase 2phase 2

phase 3phase 3

volumetric repr. volumetric repr. (Curless&Levoy)(Curless&Levoy)

alpha shapes alpha shapes (Edelsbrunner)(Edelsbrunner)

CAD models (Sequin)CAD models (Sequin)

NURBS surfaceNURBS surface (Krishnamurthy&Levoy) (Krishnamurthy&Levoy) (Eck&Hoppe) (Eck&Hoppe)

Recommended