Real-time Acquisition and Rendering of Large 3D Models Szymon Rusinkiewicz

advertisement
Real-time Acquisition and
Rendering of Large 3D Models
Szymon Rusinkiewicz
Computer Graphics Pipeline
Shape
Rendering
Motion
Lighting
and
Reflectance
• Human time = expensive
• Sensors = cheap
– Computer graphics increasingly relies on
measurements of the real world
3D Scanning
3D Scanning Applications
•
•
•
•
Computer graphics
Product inspection
Robot navigation
As-built floorplans
•
•
•
•
Product design
Archaeology
Clothes fitting
Art history
The Digital Michelangelo Project
• Push state of the art in range scanning and
demonstrate applications in art and art
history
Working in
the museum
Scanning
geometry
Scanning
color
Traditional Range Scanning Pipeline
• High-quality, robust pipeline for producing
3D models:
– Scan object with laser triangulation scanner:
many views from different angles
– Align pieces into single coordinate frame:
initial manual alignment, refined with ICP
– Merge overlapping regions: compute “average”
surface using VRIP [Curless & Levoy 96]
– Display resulting model
3D Scan of David: Statistics
• Over 5 meters tall
• 1/4 mm resolution
• 22 people
• 30 nights of scanning
• Efficiency max : min = 8 : 1
– Needed view planning
• Weight of gantry: 800 kg
• Putting model together:
1000+ man-hours and counting
New 3D Scanning Pipeline
• Need for a fast, inexpensive,
easy-to-use 3D scanning system
• Wave a (small, rigid) object by
hand in front of the scanner
• Automatically align data as
it is acquired
• Let user see partial model as it
is being built – fill holes
Real-Time Model Acquisition
Real-Time 3D Model Acquisition
• Prototype real-time model acquisition system
– 3D scanning of moving objects
– Fast alignment
– Real-time merging and display
Applications of Easy-to-Use
3D Model Acquisition
•
•
•
•
•
Advertising
More capabilities in Photoshop
Movie sets
Augmented reality
User interfaces
3D Scanning Technologies
• Contact-based: touch probes
• Passive: shape from stereo, motion, shading
• Active: time-of-flight, defocus, photometric
stereo, triangulation
• Triangulation systems are inexpensive, robust,
and flexible
– Take advantage of trends in DLP projectors
Laser Triangulation
Object
Laser
Camera
• Project laser stripe onto object
Laser Triangulation
Object
Laser
(x,y)
Camera
• Depth from ray-plane triangulation
Triangulation
• Faster acquisition: project multiple stripes
• Correspondence problem: which stripe
is which?
Triangulation
Multi-stripe
Multi-frame
Single-stripe
Slow, robust
Single-frame
Fast, fragile
Time-Coded Light Patterns
• Assign each stripe a unique illumination code
over time [Posdamer 82]
Time
Space
Gray-Code Patterns
• To minimize effects of quantization error:
each point may be a boundary only once
Time
Space
Structured-Light Assumptions
• Structured-light systems make certain assumptions
about the scene:
• Spatial continuity assumption:
– Assume scene is one object
– Project a grid, pattern of dots, etc.
• Temporal continuity assumption:
– Assume scene is static
– Assign stripes a code over time
Codes for Moving Scenes
• We make a different assumption:
– Object may move
– Velocity low enough to permit tracking
– “Spatio-temporal” continuity
Codes for Moving Scenes
• Code stripe boundaries
instead of stripes
• Perform frame-to-frame
tracking of corresponding
boundaries
– Propagate illumination history
Illumination history = (WB),(BW),(WB)
[Hall-Holt & Rusinkiewicz, ICCV 2001]
Code
New Scanning Pipeline
Project
Code
Capture
Images
Find
Boundaries
Match
Boundaries
Decode
Compute
Range
Designing a Code
Project
Code
Capture
Images
Find
Boundaries
Match
Boundaries
Decode
• Biggest problem is ghosts – WW or BB
“boundaries” that can’t be seen directly
Compute
Range
Designing a Code
• Design a code to make tracking possible:
– Do not allow two spatially adjacent ghosts
– Do not allow two temporally adjacent ghosts
t
Designing a Code
• Graph (for 4 frames):
0000
1101
– Nodes: stripes (over time)
– Edges: boundaries (over time)
1010
1111
0111
0010
0101
1000
1011
0110
0001
0100
Time
1110
Space
1100
1001
0011
Designing a Code
• Graph (for 4 frames):
0000
1101
– Nodes: stripes (over time)
– Edges: boundaries (over time)
Boundary visible at even times
1010
1111
0111
0010
0101
1000
Boundary visible at odd times
1011
0110
0001
0100
1100
1001
• Path with alternating colors: 1110
55 edges in graph 
maximal-length traversal has 110 boundaries (111 stripes)
0011
Image Capture
Project
Code
Capture
Images
Find
Boundaries
Match
Boundaries
Decode
• Standard video camera: fields at 60 Hz
• Genlock camera to projector
Compute
Range
Finding Boundaries
Project
Code
Capture
Images
Find
Boundaries
Match
Boundaries
Decode
Compute
Range
• Standard edge detection problem
• Current solution: find minima and maxima of
intensity, boundary is between them
Matching Stripe Boundaries
Project
Code
Capture
Images
Find
Boundaries
Match
Boundaries
• Even if number of ghosts is
minimized, matching is not easy
?
Decode
Compute
Range
Matching Stripe Boundaries
• Resolve ambiguity by constraining maximum
stripe velocity
• Could accommodate higher speeds by
estimating velocities
• Could take advantage of methods in
tracking literature (e.g., Kalman filters)
Decoding Boundaries
Project
Code
Capture
Images
Find
Boundaries
Match
Boundaries
Decode
Compute
Range
• Propagate illumination history
• Table lookup based on illumination history
and position in four-frame sequence
– Once a stripe has been tracked for at least four frames,
it contributes useful data on every subsequent frame
Computing 3D Position
Project
Code
Capture
Images
Find
Boundaries
Match
Boundaries
• Ray-plane intersection
• Requires calibration of:
– Camera, projector intrinsics
– Relative position and orientation
Decode
Compute
Range
Results
Video
frames
Stripe
boundaries
unknown
known
ghosts
Results
• Single range image of moving object
Top View
Front View
Gray codes, no tracking
Top View
Front View
Boundary codes and tracking
Aligning 3D Data
• This range scanner can be used for any
moving objects
• For rigid objects, range images can be aligned
to each other as object moves
Aligning 3D Data
• If correct correspondences are known,
it is possible to find correct relative
rotation/translation
Aligning 3D Data
• How to find corresponding points?
• Previous systems based on user input,
feature matching, surface signatures, etc.
Aligning 3D Data
• Alternative: assume closest points correspond
to each other, compute the best transform…
Aligning 3D Data
• … and iterate to find alignment
– Iterated Closest Points (ICP) [Besl & McKay 92]
• Converges if starting position “close enough“
ICP Variants
• Classic ICP algorithm not real-time
• To improve speed: examine stages of ICP and
evaluate proposed variants
1.
2.
3.
4.
5.
6.
Selecting source points (from one or both meshes)
Matching to points in the other mesh
Weighting the correspondences
Rejecting certain (outlier) point pairs
Assigning an error metric to the current transform
Minimizing the error metric
[Rusinkiewicz & Levoy, 3DIM 2001]
ICP Variant –
Point-to-Plane Error Metric
• Using point-to-plane distance instead of
point-to-point lets flat regions slide along
each other more easily [Chen & Medioni 91]
Finding Corresponding Points
• Finding closest point is most expensive stage of ICP
– Brute force search – O(n)
– Spatial data structure (e.g., k-d tree) – O(log n)
– Voxel grid – O(1), but large constant, slow preprocessing
Finding Corresponding Points
• For range images, simply project point [Blais 95]
– Constant-time, fast
– Does not require precomputing a spatial data structure
High-Speed ICP Algorithm
• ICP algorithm with projection-based
correspondences, point-to-plane matching
can align meshes in a few tens of ms.
(cf. over 1 sec. with closest-point)
Anchor Scans
• Alignment of consecutive scans leads to
accumulation of ICP errors
• Alternative: align all scans to an “anchor”
scan, only switch anchor when overlap low
• Given anchor scans, restart after failed ICP
becomes easier
Merging and Rendering
• Goal: visualize the model well enough
to be able to see holes
• Cannot display all the scanned data –
accumulates linearly with time
• Standard high-quality merging methods:
processing time ~ 1 minute per scan
Merging and Rendering
• Real-time incremental merging and rendering:
– Quantize samples to a 3D grid
– Maintain average normal of all points
at a grid cell
– Point (splat) rendering
– Can be made hierarchical to conserve memory
Photograph
Real-time Scanning Demo
Postprocessing
• Goal of real-time display is to let user evaluate
coverage, fill holes
– Quality/speed tradeoff
• Offline postprocessing for high-quality models
Merged Result
Photograph
Aligned scans
Merged
Future Work
• Technological improvements:
– Use full resolution of projector
– Higher-resolution cameras
– Ideas from design of single-stripe 3D scanners
• Pipeline improvements:
–
–
–
–
–
Better detection of failed alignment
Better handling of object texture – combine with stereo?
Global registration to eliminate drift
More sophisticated merging
Improve user interaction during scanning
Future Work
• Faster scanning
– Better stripe boundary matching
– Multiple cameras, projectors
– High-speed cameras
• Application in different contexts
– Small, hand-held
– Cart- or shoulder-mounted for digitizing rooms
– Infrared for imperceptibility
Rendering of Large Models
• Range scanners increasingly capable of producing
very large models
– DMich models are 100 million to 1 billion samples
• Challenge: how to allow viewing in real time
– Fast startup, progressive loading
• Traditional answer: triangle meshes, simplification,
hardware-accelerated rendering
– Impractical for such large models
• Alternative: revisit basic data structure
QSplat [Rusinkiewicz & Levoy, SIGGRAPH 00]
QSplat
• Key observation: a single bounding sphere
hierarchy can be used for
– Hierarchical frustum and backface culling
– Level of detail control
– Splat rendering [Westover 89]
QSplat Node Structure
Position
and
Radius
Tree
Structure
13 bits
3 bits
Normal
Width of
Cone of
Normals
Color
(Optional)
14 bits
2 bits
16 bits
6 bytes
QSplat Node Structure
Position
and
Radius
Tree
Structure
13 bits
3 bits
Normal
Width of
Cone of
Normals
Color
(Optional)
14 bits
2 bits
16 bits
• Position and radius encoded
relative to parent node
Center Offset
– Hierarchical coding vs. delta coding
along a path for vertex positions
Radius Ratio
QSplat Node Structure
Position
and
Radius
Tree
Structure
13 bits
3 bits
Uncompressed
Normal
Width of
Cone of
Normals
Color
(Optional)
14 bits
2 bits
16 bits
QSplat Node Structure
Position
and
Radius
Tree
Structure
13 bits
3 bits
Delta Coding
[Deering 96]
Normal
Width of
Cone of
Normals
Color
(Optional)
14 bits
2 bits
16 bits
QSplat Node Structure
Position
and
Radius
Tree
Structure
13 bits
3 bits
Hierarchical
Coding
Normal
Width of
Cone of
Normals
Color
(Optional)
14 bits
2 bits
16 bits
QSplat Rendering Algorithm
• Traverse hierarchy recursively
Hierarchical frustum /
backface culling
if (node not visible)
Skip this branch
Point rendering
else if (leaf node)
Level of detail
control
Draw a splat
else if (size on screen < threshold)
Draw a splat
else
Traverse children
Adjusted to maintain
desired frame rate
Demo – St. Matthew
• 3D scan of 2.7 meter statue
at 0.25 mm
• 102,868,637 points
• File size: 644 MB
• Preprocessing time: 1 hour
Future Work
• Splats as primitive
– Unify rendering of meshes, volumes, point clouds
– Compatible with shading after rasterization
– Hybrid point/polygon systems
• High-level visibility / LOD frameworks
– Store different kinds of data at each node: alpha, BRDF,
scattering function, etc.
– Potentially could be used to unify image-based-rendering
(IBR) techniques
Contributions
• Real-time 3D model acquisition system
–
–
–
–
Video-rate 3D scanner for moving objects
Analysis of ICP variants; real-time algorithm
Real-time merging and rendering
Allows user to see model and fill holes
• QSplat: interactive rendering of large 3D meshes
– Single data structure used for visibility culling,
level-of-detail control, point rendering, compression
– Extension to network streaming [I3D 2001]
Acknowledgments
• Olaf Hall-Holt
• Lucas Pereira
• The Original DMich Gang: Dave Koller, Sean Anderson,
James Davis, Kari Pulli, Matt Ginzton, Jon Shade
• DMich, the next generation: Gary King, Steve Marschner
• Graphics lab
• Advisor: Marc Levoy
• Committee: Pat Hanrahan, Leo Guibas, Mark Horowitz,
Bernd Girod
• Family, friends
• Sponsors: NSF, Interval, Honda, Sony, Intel
Download