Dynamic Geometry Processing
EG 2012 Tutorial
Will Chang, Hao Li, Niloy Mitra, Mark Pauly, Michael Wand
Tutorial: Dynamic Geometry Processing 1
Dynamic Geometry Processing EG 2012 Tutorial Will Chang, Hao Li, - - PowerPoint PPT Presentation
Dynamic Geometry Processing EG 2012 Tutorial Will Chang, Hao Li, Niloy Mitra, Mark Pauly, Michael Wand Tutorial: Dynamic Geometry Processing 1 Eurographics 2012, Cagliari, Italy Articulated Global Registration Introduction and Overview
EG 2012 Tutorial
Will Chang, Hao Li, Niloy Mitra, Mark Pauly, Michael Wand
Tutorial: Dynamic Geometry Processing 1
Eurographics 2012, Cagliari, Italy
Introduction and Overview
Tutorial: Dynamic Geometry Processing 2
Eurographics 2012, Cagliari, Italy
rigid components
Input Range Scans Reconstructed 3D Model
Tutorial: Dynamic Geometry Processing 3
Eurographics 2012, Cagliari, Italy
Input Range Scans Reconstructed 3D Model
Tutorial: Dynamic Geometry Processing 4
Eurographics 2012, Cagliari, Italy
Unlabeled Labeled Labeled Reference Alignment
Tutorial: Dynamic Geometry Processing 5
Eurographics 2012, Cagliari, Italy
Initialization Global Refinement Post-process
Tutorial: Dynamic Geometry Processing 6
Eurographics 2012, Cagliari, Italy
. . .
Labels (per-vertex) and Transformations (per-label) for a coarse registration
Initialization
–Coarse pairwise registration Initialization
Tutorial: Dynamic Geometry Processing 7
Eurographics 2012, Cagliari, Italy
Initialization
–Coarse pairwise registration
Global refinement
–Solve global model incorporating all frames
Initialized Frames
Global Refinement
Optimized labels, motion, joints, and geometry
Tutorial: Dynamic Geometry Processing 8
Eurographics 2012, Cagliari, Italy
Initialization
–Coarse pairwise registration
Global refinement
–Solve global model incorporating all frames
Post-process
–Gather frames, reconstruct mesh Post- process
Initialized Frames
Global Refinement
Tutorial: Dynamic Geometry Processing 9
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 10
Eurographics 2012, Cagliari, Italy
Registered Result
Goal: To establish initial correspondence of consecutive frames
Frame i and i+1
Tutorial: Dynamic Geometry Processing 11
Eurographics 2012, Cagliari, Italy
using feature descriptors
Frame i Frame i+1 Spin Image examples
Tutorial: Dynamic Geometry Processing 12
Eurographics 2012, Cagliari, Italy
using feature descriptors
correspondence
Transformation Space se(3)
Frame i Frame i+1
(R,t) (R,t) (R,t) (R,t) (R,t) (R,t) (R,t) (R,t) (R,t)
Tutorial: Dynamic Geometry Processing 13
Eurographics 2012, Cagliari, Italy
Frame i Frame i+1 Which (R,t)?
using feature descriptors
correspondence
Cuts” [Boykov et al. 2001]
Tutorial: Dynamic Geometry Processing 14
Eurographics 2012, Cagliari, Italy
Frame i Frame i+1
using feature descriptors
correspondence
Cuts” [Boykov et al. 2001]
(R,t)1 (R,t)3 (R,t)2
Tutorial: Dynamic Geometry Processing 15
Eurographics 2012, Cagliari, Italy
Both Frames Registered Result
Tutorial: Dynamic Geometry Processing 16
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 17
Eurographics 2012, Cagliari, Italy
Global refinement
– Solve global model incorporating all frames
Initialized Frames
Global Refinement
Optimized labels, motion, joints, and geometry
Tutorial: Dynamic Geometry Processing 18
Eurographics 2012, Cagliari, Italy
Sparse representation
– Increases efficiency – Joints: part connectivity
Continuously updating
– Update samples from new surface data
Dynamic Sample Graph (DSG) Extracted Joints
Tutorial: Dynamic Geometry Processing 19
Eurographics 2012, Cagliari, Italy
Fit the DSG to all scans simultaneously (Global Fit) Alternating Optimization 1. Optimize Transformations 2. Optimize Labels 3. Update joint locations Repeat until convergence – 3-5 iterations/frame Update samples (Global Fit) Update joint locations
Dynamic Sample Graph (DSG) Input Scans
Global Fit
Tutorial: Dynamic Geometry Processing 20
Eurographics 2012, Cagliari, Italy
possible to all scans
closest point distance
Before After
Tutorial: Dynamic Geometry Processing 21
Eurographics 2012, Cagliari, Italy
articulated Iterative Closest Point (ICP)
linear least squares
(Converged)
Tutorial: Dynamic Geometry Processing 22
Eurographics 2012, Cagliari, Italy
Prevents parts from separating Two types of joints
– Ball Joints (3 DOF) – Hinge Joints (1 DOF)
Derived from part boundaries & transformations solved so far
Reconstructed Joints
Tutorial: Dynamic Geometry Processing 23
Eurographics 2012, Cagliari, Italy
No Joints Ball Joints Only Ball and Hinge Joints
Tutorial: Dynamic Geometry Processing 24
Eurographics 2012, Cagliari, Italy
produce better alignment
using closest point distance
Before After
Tutorial: Dynamic Geometry Processing 25
Eurographics 2012, Cagliari, Italy
– Data constraint: minimize distance – Smoothness constraint: consolidate labels
Before After
Tutorial: Dynamic Geometry Processing 26
Eurographics 2012, Cagliari, Italy
(Converged)
Optimizing Transformations Optimizing Weights Update Samples Add next frame Optimizing Transformations Optimizing Weights Update Samples Add next frame
C?
Tutorial: Dynamic Geometry Processing 27
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 28
Eurographics 2012, Cagliari, Italy
into reference pose
reconstruct mesh
Tutorial: Dynamic Geometry Processing 29
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 30
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 31
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 32
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 33
Eurographics 2012, Cagliari, Italy
Red: Ground-truth Blue: Reconstructed
Tutorial: Dynamic Geometry Processing 34
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 35
Eurographics 2012, Cagliari, Italy
Piecewise rigid approximation
Tutorial: Dynamic Geometry Processing 36
Eurographics 2012, Cagliari, Italy
Needs sufficient overlap
Frame i Frame i+1 Frame i+2 Frame i+3
Tutorial: Dynamic Geometry Processing 37
Eurographics 2012, Cagliari, Italy
Needs sufficient overlap
Frame i Frame i+1
Tutorial: Dynamic Geometry Processing 38
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 39
Eurographics 2012, Cagliari, Italy
Global registration T-step Simple outline of the essential steps Setting up the non-linear system for optimization Global registration W-step Setting up the graph-cut optimization
Tutorial: Dynamic Geometry Processing 40
Eurographics 2012, Cagliari, Italy
At the end of the day: we have a huge “database” of closest-point correspondences. Each correspondence has the following info:
Tutorial: Dynamic Geometry Processing 41
Always a sample from the DSG!
Eurographics 2012, Cagliari, Italy
A simple way to setup the optimization:
Tutorial: Dynamic Geometry Processing 42
O(n2) combinations!!!
Eurographics 2012, Cagliari, Italy
Using the DSG:
Tutorial: Dynamic Geometry Processing 43
Eurographics 2012, Cagliari, Italy
A sample point has multiple target points
Example
How to find the target points?
Tutorial: Dynamic Geometry Processing 44
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 45
Eurographics 2012, Cagliari, Italy
We solve it by repeatedly linearizing the objective How to linearize a rigid transformation T = (R,t)?
How about an inverse T-1 = (RT, -RTt) ?
~ T-1 [ (x – v) – w^x ]
Tutorial: Dynamic Geometry Processing 46
Eurographics 2012, Cagliari, Italy
First three rows: point-to-point constraint Fourth row: point-to-plane constraint
Tutorial: Dynamic Geometry Processing 47
Eurographics 2012, Cagliari, Italy
Three rows for each joint constraint (in each frame)
Tutorial: Dynamic Geometry Processing 48
Eurographics 2012, Cagliari, Italy
Example: Suppose we have 3 frames and 2 bones.
Tutorial: Dynamic Geometry Processing 49
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 50
v0 w1 v1 w0
1
v0
1
w1
1
v1
1
w0
2
v0
2
w1
2
v1
2
2 corresp between f0 & f1 (one for b0, one for b1) 1 corresp between f0 & f2 (for b0) 1 corresp between f1 & f2 (for b1) 1 joint between b0 and b1 (applies to all frames)
Bone number Frame number
Eurographics 2012, Cagliari, Italy
After constructing the matrix: (1) Solve for the values of w, v (2) Convert them to a rigid tf (exponential map) (3) Apply correction (4) Repeat until convergence (δ error < threshold) A number of sparse linear solvers exist
Tutorial: Dynamic Geometry Processing 51
Eurographics 2012, Cagliari, Italy
We need to solve for the weights
transformations and all frames
the closest point only for the current transformation
Example (B = number of bones)
Tutorial: Dynamic Geometry Processing 52
Eurographics 2012, Cagliari, Italy
Use the same error term as before
number of valid correspondences used in the sum
is invalid, exclude all target points for that sample (in that frame). (c) Error in units of distance, not distance2
Tutorial: Dynamic Geometry Processing 53
Eurographics 2012, Cagliari, Italy
Articulated Global Registration Contributions
–Automatic registration algorithm for dynamic subjects –No template, markers, skeleton, or segmentation needed –Final result used directly to produce new animations
In the future
–Add non-rigid motion –Reduce parameters –Real-time Input Range Scans Reconstructed Poseable 3D Model
Tutorial: Dynamic Geometry Processing 54
Eurographics 2012, Cagliari, Italy
Input Range Scans Reconstructed Poseable 3D Model Novel Poses
Tutorial: Dynamic Geometry Processing 55
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 56
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 57
Eurographics 2012, Cagliari, Italy
Tutorial: Dynamic Geometry Processing 58