Dynamic 2D/3D Registration
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Presenters
2
Computer Graphics and Geometry
Mark Pauly
Sofien Bouaziz Andrea Tagliasacchi
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
3
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
4
2008
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
4
2008
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
4
2008 2010
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
4
2008 2010
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
4
2008 2010 2013
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
4
...
2008 2010 2013
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
4
...
2008 2010
size/cost
2013
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly
Dynamic 2D/3D Registration For the Kinect 5
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Overview
• Registration
• 3D Geometry
• 2D Images
• Combined 2D / 3D
6
• Applications
• Rigid Scanning
• Non-rigid Modeling
• Realtime Face Tracking
Introduction
Conclusions
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
RGB-D Sensors
7
http://www.openni.org
http://www.openni.org/openni-programmers-guide
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Scan to scan
Registration - Examples
8
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Scan to scan
Registration - Examples
8
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Scan to scan
Registration - Examples
8
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Scan to scan
Registration - Examples
9
Newcombe, Izadi, Hilliges, Molyneaux, Kim, Davison, Kohli, Shotton, Hodges, Fitzgibbon:
KinectFusion: Real-Time Dense Surface Mapping and Tracking, ISMAR 2011
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Parameterized template to scan
Registration - Examples
10
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Parameterized template to scan
Registration - Examples
10
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Parameterized template to scan
Registration - Examples
10
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Pairwise Registration
• Align a source model onto a target model
11
X Y
X Y
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Pairwise Registration
• Align a source model onto a target model
• find a transformation that brings into alignment with
11
X Y
X Y
X Y
T ( X )
Y
Z = T ( X )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Pairwise Registration
• Align a source model onto a target model
• find a transformation that brings into alignment with
12
X Y
X Y
X Y
T ( X )
Z = T ( X )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Pairwise Registration
• Align a source model onto a target model
• find a transformation that brings into alignment with
• Two main questions:
13
X Y
T ( X )
X Y
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Pairwise Registration
• Align a source model onto a target model
• find a transformation that brings into alignment with
• Two main questions:
• How do we measure the quality of the alignment?
13
X Y
T ( X )
X Y
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Pairwise Registration
• Align a source model onto a target model
• find a transformation that brings into alignment with
• Two main questions:
• How do we measure the quality of the alignment?
• What transformations are allowed / good?
13
X Y
T ( X )
X Y
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Issues
Pairwise Registration
14
Noise
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Issues
Pairwise Registration
14
Partial matching
missing data
Noise
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Issues
Pairwise Registration
14
Partial matching
missing data
Noise
Ambiguity
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Issues
Pairwise Registration
14
Partial matching
missing data
Noise
Illumination changes
Ambiguity
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Registration
• 3D Geometry
• 2D Images
• Combined 2D / 3D
Overview
15
• Applications
• Rigid Scanning
• Non-rigid Modeling
• Realtime Face Tracking
Introduction
Conclusions
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
• Registration as energy minimization
16
arg min
T
E reg (T, X , Y )
source
target
transformation
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
• Registration as energy minimization
17
Alignment Error
How do we measure the quality of the alignment?
arg min
T
E reg (T, X , Y )
E reg (T, X , Y ) = E match (T, X , Y ) + E prior (T )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
• Registration as energy minimization
18
Alignment Error
How do we measure the quality of the alignment?
Transformation Error
What transformations are allowed / good?
arg min
T
E reg (T, X , Y )
E reg (T, X , Y ) = E match (T, X , Y ) + E prior (T )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
19
• Alignment Error E reg = E match + E prior
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
distance function
=
Z
X
'(T (x), Y )dx
Registration
19
• Alignment Error E reg = E match + E prior
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
distance function
=
Z
X
'(T (x), Y )dx
Registration
19
• Alignment Error E reg = E match + E prior
X
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
distance function
=
Z
X
'(T (x), Y )dx
Registration
19
• Alignment Error E reg = E match + E prior
Y X
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
distance function
=
Z
X
'(T (x), Y )dx
Registration
19
• Alignment Error E reg = E match + E prior
Y X
T ( X )
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
distance function
=
Z
X
'(T (x), Y )dx
Registration
19
• Alignment Error E reg = E match + E prior
E match Y
X
T ( X )
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
distance function
=
Z
X
'(T (x), Y )dx
Registration
19
• Alignment Error E reg = E match + E prior
E match Y
X
T ( X )
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
distance function
=
Z
X
'(T (x), Y )dx
Registration
19
• Alignment Error E reg = E match + E prior
E match Y
X
T ( X )
E match (T, X , Y )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
20
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
20
E reg = E match + E prior
rigid
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
20
E reg = E match + E prior
elastic
rigid
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
20
E reg = E match + E prior
elastic
articulated
rigid
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
20
E reg = E match + E prior
elastic
articulated rigid
composite
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
20
E reg = E match + E prior
elastic
articulated rigid
fluid
composite
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
21
E reg = E match + E prior
elastic
articulated rigid
fluid
composite
rigid motion
prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
21
E reg = E match + E prior
elastic
articulated rigid
fluid
composite
(pseudo-) elastic deformation prior rigid motion
prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
21
E reg = E match + E prior
elastic
articulated rigid
fluid
composite
(pseudo-) elastic deformation prior
skeletal model prior
rigid motion
prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
21
E reg = E match + E prior
elastic
articulated rigid
fluid
composite
(pseudo-) elastic deformation prior
skeletal model prior
data-driven prior
rigid motion
prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
21
E reg = E match + E prior
elastic
articulated rigid
fluid
composite
(pseudo-) elastic deformation prior
skeletal model prior
data-driven prior
rigid motion prior
?
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
21
E reg = E match + E prior
elastic
articulated rigid
fluid
composite
(pseudo-) elastic deformation prior
skeletal model prior
data-driven prior
rigid motion prior
?
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
• typically non-linear
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
• typically non-linear
• common solution: linearize, iterate
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
• typically non-linear
• common solution: linearize, iterate
E reg = E match + E prior
( X , Y )
Input
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
• typically non-linear
• common solution: linearize, iterate
E reg = E match + E prior
( X , Y )
Input
E reg
Z 1 = T 1 ( X )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
• typically non-linear
• common solution: linearize, iterate
E reg = E match + E prior
( X , Y )
Input
E reg Z 1 = T 1 ( X )
Z 2 = T 2 ( X )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
• typically non-linear
• common solution: linearize, iterate
E reg = E match + E prior
( X , Y )
Input
E reg Z 1 = T 1 ( X )
Z 2 = T 2 ( X ) Z n = T n ( X )
. . .
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Registration
22
arg min
T
E reg (T, X , Y )
source
target transformation
• Registration as energy minimization
• typically non-linear
• common solution: linearize, iterate
E reg = E match + E prior
( X , Y )
Input
T = T n
Output E reg
Z 1 = T 1 ( X ) Z 2 = T 2 ( X ) Z n = T n ( X )
. . .
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Registration
• 3D Geometry
• 2D Images
• Combined 2D / 3D
Overview
23
• Applications
• Rigid Scanning
• Non-rigid Modeling
• Realtime Face Tracking
Introduction
Conclusions
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration
24
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration
25
source
target
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration
26
source
target
transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration
27
source
target
transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Matching
28
E match ( Z ) =
Z
Z
'(z, Y )dz
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Matching
29
E match ( Z ) =
Z
Z
'(z, Y )dz
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Matching
30
E match ( Z ) =
Z
Z
'(z, Y )dz
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
3D Registration - Matching
31
E match ( Z ) =
Z
Z
'(z, Y )dz E reg = E match + E prior
discretized matching cost based
on point correspondences
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Matching
32
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Matching
32
transformed point on source
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Matching
32
transformed point on source
corresponding point on target
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Matching
32
transformed point on source
corresponding point on target correspondence
weight
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
33
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
33
• Step 1: find correspondences
using closest points for fixed
transformation
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
33
• Step 1: find correspondences using closest points for fixed transformation
• Step 2: find best rigid
transformation for fixed
correspondences
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
33
• Step 1: find correspondences using closest points for fixed transformation
• Step 2: find best rigid transformation for fixed correspondences
Iterate until
convergence
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
33
• Step 1: find correspondences using closest points for fixed transformation
→ efficient data structures
• Step 2: find best rigid transformation for fixed correspondences
Iterate until
convergence
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
33
• Step 1: find correspondences using closest points for fixed transformation
→ efficient data structures
• Step 2: find best rigid transformation for fixed correspondences
→ closed form solution Iterate until
convergence
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
33
• Step 1: find correspondences using closest points for fixed transformation
→ efficient data structures
• Step 2: find best rigid transformation for fixed correspondences
→ closed form solution Iterate until
convergence
DEMO
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• (approximate) closest points→ (more) efficient data structures
34
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• (approximate) closest points→ (more) efficient data structures
• weight accounts for importance (area measure) and confidence
34
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• (approximate) closest points→ (more) efficient data structures
• weight accounts for importance (area measure) and confidence
• heuristics to prune or down-weigh bad correspondences
34
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• (approximate) closest points→ (more) efficient data structures
• weight accounts for importance (area measure) and confidence
• heuristics to prune or down-weigh bad correspondences
34
Rusinkiewicz, Levoy: Efficient Variants of the ICP Algorithm, 3D Digital Imaging and Modeling, 2001
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
35
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• Side Remark: Error norm
35
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• Side Remark: Error norm
• squared Euclidean distance is sensitive to outliers
35
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• Side Remark: Error norm
• squared Euclidean distance is sensitive to outliers
• robust norms reduce this sensitivity
35
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Example
• Iterative Closest Point (ICP) Algorithm
• Side Remark: Error norm
• squared Euclidean distance is sensitive to outliers
• robust norms reduce this sensitivity
35
Bouaziz, Tagliasacchi, Pauly: Sparse Iterative Closest Point, SGP 2013
E match ( Z ) =
X n
i=1
w i k z i P Y (z i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
36
elastic
articulated rigid
fluid
composite
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Global Rigidity
37
E reg = E match + E prior
source transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Global Rigidity
37
E prior (Z, R, t) =
X n
i=1
k z i (Rx i + t) k 2 2 E reg = E match + E prior
source transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Local Rigidity
38
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Local Rigidity
38
E reg = E match + E prior
source
transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Local Rigidity
38
E prior (Z, R i | n i=1 ) =
X n
i=1
X
j 2N i
k (z j z i ) R i (x j x i ) k 2 2 E reg = E match + E prior
source
transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Local Rigidity
38
E prior (Z, R i | n i=1 ) =
X n
i=1
X
j 2N i
k (z j z i ) R i (x j x i ) k 2 2 E reg = E match + E prior
Sorkine, Alexa: As-Rigid-As-Possible Surface Modeling, SGP 2007
source
transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Local Rigidity
39
E reg = E match + E prior
DEMO source
transformed source
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Local Rigidity
40
Sumner, Schmid, Pauly:
Embedded Deformation for Shape Manipulation ACM SIGGRAPH 2007
E reg = E match + E prior
Bouaziz, Deuss, Schwartzburg, Weise, Pauly:
Shape-Up: Shaping Discrete Geometry With Projection
SGP 2012
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
41
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
41
E reg = E match + E prior
m p 1 p 2 p 3 p 4
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
41
E reg = E match + E prior
s = Pd + m,
m p 1 p 2 p 3 p 4
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
41
E reg = E match + E prior
s = Pd + m,
m p 1 p 2 p 3 p 4 mean shape
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
41
E reg = E match + E prior
s = Pd + m,
m p 1 p 2 p 3 p 4 basis mean shape
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
41
E reg = E match + E prior
s = Pd + m,
m p 1 p 2 p 3 p 4 basis mean shape
coefficients
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
41
E reg = E match + E prior
s = Pd + m,
m p 1 p 2 p 3 p 4
d 4 d 3
d 2
+ d 1 + + + =
basis mean shape
coefficients
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
42
E reg = E match + E prior
s = Pd + m,
E prior (Z, d) =
X n
i=1
k z i (P i d + m i ) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
42
E reg = E match + E prior
s = Pd + m,
E prior (Z, d) =
X n
i=1
k z i (P i d + m i ) k 2 2
Blanz, Vetter: A Morphable Model for the Synthesis of 3D Faces
ACM SIGGRAPH 1999
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
3D Registration - Prior
• Linear Model
42
E reg = E match + E prior
s = Pd + m,
E prior (Z, d) =
X n
i=1
k z i (P i d + m i ) k 2 2
Blanz, Vetter: A Morphable Model for the Synthesis of 3D Faces
ACM SIGGRAPH 1999
Weise, Bouaziz, Li, Pauly: Realtime
Performance-based Facial Animation
ACM SIGGRAPH 2011
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Registration
• 3D Geometry
• 2D Images
• Combined 2D / 3D
Overview
43
• Applications
• Rigid Scanning
• Non-rigid Modeling
• Realtime Face Tracking
Introduction
Conclusions
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration
44
? Source
Target
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration
45
T
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration
45
T
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration
45
T
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration
45
T
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration
45
T
DEMO
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration - Matching
46
E match (Z ) =
X n
i=1
k I(x i ) J(z i ) k 2 2
E reg = E match + E prior
color value at of image
x i I
color value at of image
z i J
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Lucas-Kanade
• Constant displacement field
2D Registration - Prior
47
E prior (Z ) =
X n
i=1
X
j 2N i
k (z j x j ) (z i x i ) k 2 2
E reg = E match + E prior
Lucas, Kanade: An Iterative Image Registration Technique with an Application to Stereo Vision, IJCAI 1981
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration - Prior
48
• Lucas-Kanade
• Constant displacement field
E prior (Z ) =
X n
i=1
X
j 2N i
k (z j x j ) (z i x i ) k 2 2
E reg = E match + E prior
Lucas, Kanade: An Iterative Image Registration Technique with an Application to Stereo Vision, IJCAI 1981
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration - Prior
• Lucas-Kanade
• Constant displacement field
E prior (Z ) =
X n
i=1
X
j 2N i
k (z j x j ) (z i x i ) k 2 2
E reg = E match + E prior
|| - ||
|| - || + || - || + || - || + || - || + + || - || + || - | | + | | - | |
Lucas, Kanade: An Iterative Image Registration Technique with an Application to Stereo Vision, IJCAI 1981
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration - Prior
50
• Horn-Schunck
• Smooth displacement field
E prior (Z ) =
X n
i=1
k (z i x i ) 1
|N i |
X
j 2N i
(z j x j ) k 2 2
E reg = E match + E prior
Horn, Schunk: “Determining Optical Flow”, Artificial Intelligence Journal 1981
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration - Prior
51
• Horn-Schunck
• Smooth displacement field
E prior (Z ) =
X n
i=1
k (z i x i ) 1
|N i |
X
j 2N i
(z j x j ) k 2 2
E reg = E match + E prior
Horn, Schunk: “Determining Optical Flow”, Artificial Intelligence Journal 1981
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D Registration - Prior
52
• Horn-Schunck
• Smooth displacement field
E prior (Z ) =
X n
i=1
k (z i x i ) 1
|N i |
X
j 2N i
(z j x j ) k 2 2
E reg = E match + E prior
+ + + + +
+
( + )
- ||
|| 1/8
Horn, Schunk: “Determining Optical Flow”, Artificial Intelligence Journal 1981
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Registration
• 3D Geometry
• 2D Images
• Combined 2D / 3D
Overview
53
• Applications
• Rigid Scanning
• Non-rigid Modeling
• Realtime Face Tracking
Introduction
Conclusions
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D/3D Registration
54
?
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D/3D Registration
54
?
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D/3D Registration
55
T
Weise, Bouaziz, Li, Pauly: Realtime
Performance-based Facial Animation,
ACM SIGGRAPH 2011
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D/3D - Matching
56
E match (Z ) = w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k I(x i ) J(f (z i )) k 2 2
E reg = E match + E prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D/3D - Matching
56
E match (Z ) = w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k I(x i ) J(f (z i )) k 2 2 E reg = E match + E prior
projection of the 3D vertex
in the 2D image
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
2D/3D - Matching
57
f(z i ) = h f z
i,x
z i,z
f z i,y z i,z
i T
Perspective projection
f(z i ) = ⇥
z i,x z i,y ⇤ T
Orthographic projection
E match (Z ) = w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k I(x i ) J(f (z i )) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
• Applications
• Rigid Scanning
• Non-rigid Modeling
• Realtime Face Tracking
• Registration
• 3D Geometry
• 2D Images
• Combined 2D / 3D
Overview
58
Introduction
Conclusions
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning
• Popular Kinect application
59
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning
60
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning
60
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning
60
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning
60
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning
60
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning
60
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Pipeline
61
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Pipeline
61
Calibration matrix K
Depth map
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Pipeline
61
Calibration matrix K
Depth map
Smoothing
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Pipeline
61
Calibration matrix K
Depth map
Smoothing Mesh & Normals
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Pipeline
61
Alignment &
Accumulation Calibration matrix K
Depth map
Smoothing Mesh & Normals
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Pipeline
61
Alignment &
Accumulation Calibration matrix K
Depth map
Smoothing Mesh & Normals
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
62
arg min
Z,R,t
w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k z i (Rx i + t) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
62
arg min
Z,R,t
w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k z i (Rx i + t) k 2 2
matching term
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
62
arg min
Z,R,t
w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k z i (Rx i + t) k 2 2
matching term rigid prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
62
arg min
Z,R,t
w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k z i (Rx i + t) k 2 2
matching term rigid prior
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
63
arg min
Z t+1 , R, ˜ ˜ t
w 1
X n
i=1
k z t+1 i P Y (z t i ) k 2 2 + w 2
X n
i=1
|| z t+1 i ( ˜ R(R t x i + t t ) + ˜ t) || 2 2
arg min
Z,R,t
w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k z i (Rx i + t) k 2 2
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
63
arg min
Z t+1 , R, ˜ ˜ t
w 1
X n
i=1
k z t+1 i P Y (z t i ) k 2 2 + w 2
X n
i=1
|| z t+1 i ( ˜ R(R t x i + t t ) + ˜ t) || 2 2
arg min
Z,R,t
w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k z i (Rx i + t) k 2 2
use previous estimate
= closest point
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
63
arg min
Z t+1 , R, ˜ ˜ t
w 1
X n
i=1
k z t+1 i P Y (z t i ) k 2 2 + w 2
X n
i=1
|| z t+1 i ( ˜ R(R t x i + t t ) + ˜ t) || 2 2
arg min
Z,R,t
w 1
X n
i=1
k z i P Y (z i ) k 2 2 + w 2
X n
i=1
k z i (Rx i + t) k 2 2
use previous estimate
= closest point linearize rotation matrix
R t+1 = ˜ RR t
t t+1 = ˜ Rt t + ˜ t
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
64
R ⇡ R ˜ =
2
4 1
1 ↵
↵ 1
3 5
Rotation matrix linearization
cos(✓ ) ⇡ 1
sin(✓ ) ⇡ ✓
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
65
k z t+1 i P Y (z t i ) k 2 2
z t i
Y
P Y (z t i )
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
65
k z t+1 i P Y (z t i ) k 2 2
z t i
Y
P Y (z t i )
z t i
Y
P Y (z t i )
n i
Sofien Bouaziz Andrea Tagliasacchi Mark Pauly Dynamic 2D/3D Registration For the Kinect
Rigid Scanning - Optimization
65