Estimation / Approximation Problems in 3D Photography

advertisement

Estimation / Approximation Problems in 3D Photography

Tom Duchamp, Department of Mathematics

Werner Stuetzle, Department of Statistics

University of Washington

Previous and current members of UW 3D Photography group :

G. Arden , D. Azuma, A. Certain, B. Curless, T. DeRose, T. Duchamp, M. Eck, H. Hoppe, H.

Jin, M. Lounsbery, J.A. McDonald, J. Popovic, K. Pulli, D. Salesin, S. Seitz, W. Stuetzle, D.

Wood

Funded by NSF and industry contributions.

Most of the research published in a series of Siggraph papers.

Prepared for MGA Workshop III: Multiscale structures in the analysis of High-Dimensional Data,

UCLA, October 25 -2 9, 2004

Outline of talk

• What is 3D Photography, and what is it good for ?

• Sensors

• Modeling 2D manifolds by subdivision surfaces

• Parametrization and multiresolution analysis of meshes

• Surface light fields

• (Smoothing on 2D manifolds)

• Conclusions

1. What is 3D Photography and what is it good for ?

Technology aimed at

• capturing

• viewing

• manipulating digital representations of shape and visual appearance of 3D objects.

Could have large impact because 3D photographs can be

• stored and transmitted digitally,

• viewed on CRTs,

• used in computer simulations,

• manipulated and edited in software, and

• used as templates for making electronic or physical copies

Modeling humans

• Anthropometry

• Create data base of body shapes for garment sizing

• Mass customization of clothing

• Virtual dressing room

• Avatars

Scan of lower body

(Textile and Clothing Technology

Corp.)

Fitted template

(Dimension curves drawn in yellow)

Full body scan

(Cyberware)

Modeling artifacts

• Archival

• Quantitative analysis

• Virtual museums

Image courtesy of Marc Levoy and the

Digital Michelangelo project

Left: Photo of David’s head

Right: Rendition of digital model

(1mm spatial resolution, 4 million polygons)

Modeling artifacts Images courtesy of Marc Rioux and the

Canadian National Research Council

Nicaraguan stone figurine

Painted Mallard duck

Modeling architecture

• Virtual walk-throughs and walkarounds

• Real estate advertising

• Trying virtual furniture

Left image: Paul Debevec, Camillo Taylor,

Jitendra Malik (Berkely)

Right image: Chris Haley (Berkeley)

Model of Berkeley Campanile Model of interior with artificial lighting

Modeling environments

• Virtual walk-throughs and walk arounds

• Urban planning

Two renditions of model of MIT campus

(Seth Teller, MIT)

2. Sensors

Need to acquire data on shape and “color”

Simplest idea for shape: Active light scanner using triangulation

Cyberware scanner

Scanner output

Laser spot on object allows matching of image points in the cameras

A more substantial engineering effort:

The Cyberware Full Body Scanner

“Color” acquisition

Through digital photography

Need to register images to geometry

Watch out!

“Color” can mean:

• RGB value for each surface point

• RBG value for each surface point and viewing direction

• BRDF (allows re-lighting)

Will return to this point later

Output of sensing process

• 1,000’s to 1,000,000’s of surface points which we assemble into triangular mesh

• Collection of ~700 images taken from different directions

Mesh generated from fish scans

Interlude: What does 3D photography have to do with this workshop?

• We estimate manifolds from data – 2D, but complex geometry and topology.

• We use multi-resolution representation of shape and “color”.

• We estimate radiance – a function on surface with values in function space.

For every surface point we have function that assigns RGB values to directions.

How did we come to work on this problem?

Earlier methodological work (with Trevor Hastie) on principal curves – find a curve that “goes through the middle of a data set.”

Theoretical work on principal curves and surfaces using calculus of variations.

Where might principal surfaces be useful??

3. Modeling shape

Why not stick with meshes ?

• Real world objects are often smooth or piecewise smooth

• Modeling a smooth object by a mesh requires lots of small faces

• Want more parsimonious representation

Fitted mesh

Sensor data Fitted subdivision surface

Subdivision surfaces

(Catmull – Clark, Loop)

Defined by limiting process, starting with control mesh (bottom left)

Split each face into four (right)

Reposition vertices by local averaging

Repeat the process

Remarks

• Limiting position of each vertex is weighted mean of control vertices.

• Important question: what choices of weights produce smooth limiting surface ?

• Averaging rules can be modified to allow for sharp edges, creases, and corners (below)

• Fitting subdivision surface to data requires solving nonlinear least squares problem.

4. Parametrization and multiresolution analysis of meshes

Idea:

Decompose mesh into simple “base mesh” (few faces) and sequence of correction terms of decreasing magnitude

Motivation:

• Compression

• Progressive transmission

• Level-of-detail control

- Rendering time ~ number of triangles

- No need to render detail if screen area is small

Full resolution

70K faces

LoD control

38K - 4.5K - 1.9K faces

Procedure

(“computational differential geometry”)

• Partition mesh into triangular regions, each homeomorphic to a disk

• Create a triangular “base mesh”, associating a triangle with each of the regions

• Construct a piecewise linear homeomorphism from each region to the corresponding base mesh face

• Now we have representation of original as vector-valued function over the base mesh

• Natural multi-resolution sequence of spaces of PL functions on base mesh induced by 1-to-4 splits of triangles.

• (Lot of work…)

PL homeomorphism

Texture mapping

• Homeomorphism allows us to transfer color from original mesh to base mesh

• This in turn allows us to efficiently color low resolution approximations (using texture mapping hardware)

• Texture can cover up imperfections in geometry

Mesh doesn’t much look like face, but…

What would it look like without texture ?

PL homeomorphism

What we would see if we walked around the object

Thanks for your interest

Naïve idea: Associate color with direction of reflected light

Better idea: Associate color with direction of incoming light.

Higher coherence between points on surface

Lumisphere can be easily obtained by reflecting around normal.

Naïve idea: Associate color with direction of reflected light

Better idea: Associate color with direction of incoming light.

Higher coherence between points on surface

Lumisphere can be easily obtained by reflecting around normal.

Before

After

Reflected reparameterization

Median removal

Median values Specular Result

Geometry (fish)

Reconstruction: 129,000 faces

Memory for reconstruction: 2.5 MB

Base mesh: 199 faces

Re-mesh (4x subdivided): 51,000 faces

Memory for re-mesh: 1 MB

Memory with view-dependence: 7.5 MB

Compression (fish)

Pointwise faired:

Memory = 177 MB

FQ (2000 codewords)

Memory = 3.4 MB

PFA (dimension 3)

Memory = 2.5 MB

PFA (dimension 5)

Memory = 2.9 MB

RMS error = 9

RMS error = 23

RMS error = 24

RMS error = ?

Breakdown and rendering (fish)

For PFA dimension 3…

Direction mesh: 11 KB

Normal maps: 680 KB

Median maps: 680 KB

Index maps: 455 KB

Weight maps: 680 KB

Codebook: 3 KB

Geometry w/o view dependence: <1 MB

Geometry w/ view dependence: 7.5 MB

Rendering platform: 550 MHz PIII, linux, Mesa

Rendering performance: 6-7 fps (typical)

Data acquisition (ii)

Take photographs

Camera positions Stanford Spherical Gantry

Download