2. PEOPLE
Unwrap
mosaics:
a
new
representation
for
video
editing
SIGGRAPH
2008
Alex
Rav-‐Acha,
Pushmeet
Kohli,
Carsten
Rother
and
Andrew
Fitzgibbon.
What
shape
are
dolphins?
Building
3D
morphable
models
from
2D
images
PAMI
2013
Tom
Cashman,
Andrew
Fitzgibbon
User-‐Specific
Hand
Modeling
from
Monocular
Depth
Sequences
CVPR
2014
Jonathan
Taylor,
Richard
Stebbing,
Varun
Ramakrishna,
Cem
Keskin,
Jamie
Shotton,
Shahram
Izadi,
Andrew
Fitzgibbon,
Aaron
Hertzmann
Real-‐Time
Non-‐Rigid
Reconstruction
Using
an
RGB-‐D
Camera
SIGGRAPH
2014
Michael
Zollhöfer,
Matthias
Nießner,
Shahram
Izadi,
Christoph
Rehmann,
Christopher
Zach,
Matthew
Fisher,
Chenglei
Wu,
Andrew
Fitzgibbon,
Charles
Loop,
Christian
Theobalt,
Marc
Stamminger
3. RECOVER
3D
SHAPE
FROM
ONE
OR
MORE
IMAGES
OR
VIDEOS
IN
DYNAMIC
SCENES
WITHOUT
DENSE
(>50)
POINT
CORRESPONDENCES
Goal
3
12. EARLY
WORK
! 1998:
we
computed
a
decent
3D
reconstruction
of
a
36-‐frame
sequence
! Giving
3D
super-‐resolution
! And
set
ourselves
the
goal
of
solving
a
1500-‐frame
sequence
! Leading
to…
[FCZ98]
Fitzgibbon,
Cross
&
Zisserman,
SMILE
1998
28. I’M
NOT
GOING
TO
TELL
YOU
WHAT
YOU
WILL
INVENT…
…I
AM
GOING
TO
TRY
TO
TELL
YOU
HOW
TO
DO
IT.
The
future
of
computer
vision
YOU!
29
29. HOW
TO
INVENT
THE
FUTURE
Say
WHAT
you
want
to
do,
not
HOW
you’re
going
to
do
it.
Know
the
difference
between
MODEL
and
ALGORITHM
30
30. Model
Algorithm
! Describes
how
your
data
came
into
being
! For
𝑖=1: 𝑛
𝜈↓𝑖 ~ Gaussian(0,1)
𝑥↓𝑖
= 𝑐+ 𝑣↓𝑖
!
! Describes
how
you
will
find
model
parameters
! “Compute
the
mean”
𝑐=1/𝑛 ∑𝑖↑▒ 𝑥↓𝑖
31
MODEL,
NOT
ALGORITHM
𝑝( 𝑥↓𝑖 )=(2 𝜋)↑−1/2 exp(−1/2 ( 𝑥↓𝑖 − 𝑐)↑2 )
31. Model
Algorithm
! Describes
how
your
data
came
into
being
! For
𝑖=1: 𝑛
𝜈↓𝑖 ~ Gaussian(0, 𝜎)
𝑥↓𝑖
= 𝑐+ 𝑣↓𝑖
! Describes
how
you
will
find
model
parameters
! “Mean
and
variance”
𝑐=1/𝑛 ∑𝑖↑▒ 𝑥↓𝑖
32
MODEL,
NOT
ALGORITHM
𝜎=(1/𝑛 ∑𝑖↑▒( 𝑥↓𝑖 − 𝑐)↑2 )↑1/2
𝑝( 𝑥↓𝑖 )=(2 𝜋 𝜎↑2 )↑−1/2 exp(−1/2 ( 𝑥↓𝑖 − 𝑐)↑2 )
32. TIP:
HOW
TO
WRITE
A
MULTIVARIATE
GAUSSIAN
33
𝒩 𝒙 𝝁, 𝚺 =
|2 𝜋 𝚺|↑−1/2 exp(−1/2 ( 𝒙− 𝝁)↑⊤ 𝚺↑−1 (𝒙− 𝝁))
33. Model
Algorithm
! Describes
how
your
data
came
into
being
! For
𝑖=1: 𝑛
𝑘 ~ Categorical(𝜶)
𝒙↓𝑖 ~ Gaussian( 𝝁↓𝑘 , 𝚺↓𝑘 )
!
! Describes
how
you
will
find
model
parameters
! “EM”
34
GAUSSIAN
MIXTURE
𝑝( 𝑥↓𝑘 )=∑𝑘↑▒ 𝛼↓𝑘 |2 𝜋Σ↓𝑘 |↑−1/2 exp(−1/2 ( 𝑥↓𝑖 − 𝜇↓𝑘 )↑⊤ Σ↓𝑘↑−1 ( 𝑥↓𝑖 − 𝜇↓𝑘 ))
63. HOW
BIG
CAN
N
BE?
! Problem
sizes
can
range
from
a
handful
of
parameters
to
about
1
million.
! First
consider
examples
for
which
N=2
to
make
things
easy
to
visualize.
! Extension
to
higher
dimensions
follows
trivially,
although
not
all
algorithms
work
well
for
all
problem
sizes.
65. DERIVATIVES
! Can
be
computed:
" symbolically;
use
maple/mathematica
" numerically;
by
“finite
differences”:
𝜕/𝜕𝑥 𝑓(𝑥, 𝑦)=lim┬𝛿→0 𝑓(𝑥+ 𝛿, 𝑦)− 𝑓( 𝑥, 𝑦)/𝛿
" Numerical
derivatives
surprisingly
accurate,
but
generally
very
expensive
" Use
only
to
check
the
symbolic
ones
! If
you
can’t
compute
derivatives,
use
Powell’s
direction
set
method
" Probably
best
not
to
use
Downhill
simplex
(fminsearch)
unless
function
very
noisy
66. CONDITIONING
! Be
aware
that
these
algorithms
make
some
assumptions
about
the
behaviour
of
your
function
" try
to
ensure
the
minimum
is
in
the
unit
cube,
and
start
at
a
corner
" keep
all
numbers
“around
1”
–
don’t
use
pixel
values
of
O(500)
67. OPTIMIZERS
IN
MATLAB
! Lsqnonlin
! Fminunc
! Fmincon
! Use
most
specific
! Check
options.LargeScale!
68. ! It’s
quasiconvex.
! Are
you
relieved?
BUT
HOW
CAN
FMINUNC
POSSIBLY
WORK?
70
69. “CLOSED
FORM”
71
Direct
least
square
fi.ng
of
ellipses
A
Fitzgibbon,
M
Pilu,
RB
Fisher
Pa>ern
Analysis
and
Machine
Intelligence
1999
~1800
Simultaneous
linear
esImaIon
of
mulIple
view
geometry
and
lens
distorIon
A
Fitzgibbon
Computer
Vision
and
Pa>ern
RecogniIon,
2001
~200
70. ! The
real
world
is
not
Gaussian
in
many
ways…
" Perhaps
most
crucially
for
us,
in
robust
estimation
TWO
WRONG
THINGS
72
Cauchy
Laplace
92. EMBEDDING
𝑆↓:, 𝑖 = 𝜋( 𝑋↓𝑖 ) 𝜋:ℝ↑𝑟 ↦ℝ↑2 𝑇
Orthographic:
linear
(in
𝑋)
embedding
in
ℝ↑4
)
embedding
in
ℝ↑4
Perspective:
(slightly)
nonlinear
embedding
in
ℝ↑3
Previous
work
on
nonrigid
case:
embed
into
ℝ↑3 𝐾
93. INTERLUDE:
WHAT
IS
A
SURFACE?
99
! Surface:
mapping
𝑀(𝒖)
from
ℝ↑2 ↦ℝ↑3
" E.g.
cylinder
𝑀(𝑢, 𝑣)=(cos 𝑢 ,sin 𝑢 , 𝑣)
*the
surface
is
actually
the
set
{ 𝑀(𝑢;Θ)|
𝑢∈Ω}
𝑢
𝑣
94. INTERLUDE:
WHAT
IS
A
SURFACE?
100
! Surface:
mapping
𝑀(𝒖)
from
ℝ↑2 ↦ℝ↑3
" E.g.
cylinder
𝑀(𝑢, 𝑣)=(cos 𝑢 ,sin 𝑢 , 𝑣)
! Probably
not
all
of
ℝ↑2 ,
but
a
subset
Ω
" E.g.
square
Ω=[0,2 𝜋)×[0, 𝐻]
! And
we’ll
look
at
parameterised
surfaces
𝑀(𝒖;Θ)
" E.g.
Cylinder
𝑀(𝑢, 𝑣; 𝑅, 𝐻)=(𝑅cos 𝑢 , 𝑅sin 𝑢 , 𝐻𝑣)
with
Ω=[0,2 𝜋)×[0,1]
*the
surface
is
actually
the
set
{ 𝑀(𝑢;Θ)|
𝑢∈Ω}
𝑢
𝑣
95. EMBEDDING
𝑆↓:, 𝑖 = 𝜋( 𝑋↓𝑖 ) 𝜋:ℝ↑𝑟 ↦ℝ↑2 𝑇
Orthographic:
linear
(in
𝑋)
embedding
in
ℝ↑4
)
embedding
in
ℝ↑4
Perspective:
(slightly)
nonlinear
embedding
in
ℝ↑3
Previous
work
on
nonrigid
case:
embed
into
ℝ↑3 𝐾
96. EMBEDDING
𝑆↓:, 𝑖 = 𝜋( 𝑋↓𝑖 ) 𝜋:ℝ↑𝑟 ↦ℝ↑2 𝑇
Orthographic:
linear
(in
𝑋)
embedding
in
ℝ↑4
)
embedding
in
ℝ↑4
Perspective:
(slightly)
nonlinear
embedding
in
ℝ↑3
Previous
work
on
nonrigid
case:
embed
into
ℝ↑3 𝐾
Our
big
idea:
surfaces
are
mappings
ℝ↑2 ↦ℝ↑3
So
embed
(nonlinearly)
into
ℝ↑2
121. ! Given
some
data
" 2d
points,
3d
points,
silhouettes,
shading,…
! Fit
a
3D
surface
" Under
appropriate
priors:
e.g.
spatial/temporal
smoothness
" And
possibly
other
parameters:
camera/light
positions,
BRDF…
GOAL
127
122. SURFACE
128
*the
surface
is
actually
the
set
{ 𝑀(𝑢;Θ)|
𝑢∈Ω}
𝑢
𝑣
! Surface:
mapping
𝑀(𝒖)
from
ℝ↑2 ↦ℝ↑3
" E.g.
cylinder
𝑀(𝑢, 𝑣)=(cos 𝑢 ,sin 𝑢 , 𝑣)
123. ! Surface:
mapping
𝑀(𝒖)
from
ℝ↑2 ↦ℝ↑3
" E.g.
cylinder
𝑀(𝑢, 𝑣)=(cos 𝑢 ,sin 𝑢 , 𝑣)
! Probably
not
all
of
ℝ↑2 ,
but
a
subset
Ω
" E.g.
square
Ω=[0,2 𝜋)×[0, 𝐻]
! And
we’ll
look
at
parameterised
surfaces
𝑀(𝒖;Θ)
" E.g.
Cylinder
𝑀(𝑢, 𝑣; 𝑅, 𝐻)=(𝑅cos 𝑢 , 𝑅sin 𝑢 , 𝐻𝑣)
with
Ω=[0,2 𝜋)×[0,1]
SURFACE
129
*the
surface
is
actually
the
set
{ 𝑀(𝑢;Θ)|
𝑢∈Ω}
𝑢
𝑣
130. ! Given
a
parametric
surface
model
𝑀(𝒖;Θ)
! And
data
samples
{ 𝒔↓𝑖 }↓𝑖=1↑𝑚 ⊂ℝ↑3
! And
known
correspondences
{ 𝑢↓𝑖 }↓𝑖=1↑𝑚 ⊂Ω
! Minimize
sum
of
closest-‐point
distances
Θ↑∗ =argmin┬Θ ∑ 𝑖↑▒min┬𝒖 ‖ 𝒔↓𝑖 − 𝑀( 𝒖;Θ)‖
SURFACE
FITTING:
UNKNOWN
CORRESPONDENCES
137
136. AH,
BUT
WHAT
ABOUT
TEST
ERROR?
10
-‐1
10
0
10
1
10
2
10
3
10
-‐1.4
10
-‐1.3
10
-‐1.2
10
-‐1.1
Time
(sec)
Error
137. NOT
𝑂( 𝑚↑3 )
144
10
2
10
3
10
4
10
5
10
6
10
-‐2
10
0
10
2
O(n)O(n
2
)
Number
of
data
points
Time
(sec)
Timings
for
n-‐point
ellipse
fit
fdgrad
cp
simplex
marg
5+n
ad
lbfgs
5+n
ad
noHess
5+n
ad
Hess
5+n
LSQ
lev-‐marq
Hsampson
sampson
138. ! Say
Θ∈ℝ↑𝑁
for
N=600,
and
𝑚=40 𝐾
! Option
1:
Alternate
min
over
Θ
and
𝑢
" Very
fast
per
iteration
" Requires
lots
of
iterations
! Option
2:
Simultaneous
optimization
" Needs
smooth
𝑀
to
compute
derivatives
" Requires
few
iterations.
" Very
slow
per
iteration
unless
we
make
good
use
of
sparsity.
MINIMIZATION
STRATEGIES:
SUMMARY
145
min┬Θ, 𝒖↓1.. 𝑚 ∑ 𝑖=1↑𝑚▒‖ 𝑠↓𝑖 − 𝑀( 𝒖↓𝑖 ;Θ)‖
Θ
𝒖↓ 𝟏 … 𝒖↓𝒎
140. FITTING
A
CUBIC
B-‐SPLINE
…
…
#1
#10
#40
• Fix
𝑋
and
solve
for
𝑢↓𝑖 =arg min┬𝑢∈Ω ‖ 𝒔↓𝑖 − 𝑀( 𝑢; 𝑋)‖↑2
• This
is
itself
a
nonlinear
minimization
• Then
fix
𝑢↓1.. 𝑚
and
solve
for
𝑋
141. JOINT
MINIMIZATION
OF
𝑢
AND
𝑋
𝐸(𝑋)= ∑𝑖=1↑𝑚▒min┬ 𝑢↓𝑖 ‖ 𝒔↓𝑖 − 𝑀( 𝑢↓𝑖 ; 𝑋)‖↑2
𝐸({ 𝑢↓1 , …, 𝑢↓𝑚 }, 𝑋)= ∑𝑖=1↑𝑚▒‖ 𝒔↓𝑖 − 𝑀( 𝑢↓𝑖 ; 𝑋)‖↑2
→
! Advantages
" Typically
faster
and
better
convergence.
" Greater
model
flexibility
(e.g.
ability
to
share
correspondence
points,
pairwise
terms).
! Need
to
compute
derivatives
…
! Joint
minimization
of
{ 𝑢↓1 , …, 𝑢↓𝑚 }
and
𝑋
using
a
non-‐linear
optimiser.
" Move
calculating
the
minimum
distance
“out”
to
the
overall
minimization
problem.
159. CONTINOUS
OPTIMIZATION
! Can
focus
on
this
term
to
understand
entire
optimization.
" Total
number
of
residuals
𝑛
=
number
of
silhouette
points.
Say
300 𝑁
( 𝑁=
number
of
images)
≈10,000
" Total
number
of
unknowns
2 𝑛+ 𝐾𝑁+ 𝑚
where
𝑚≈3 𝐾×
number
of
vertices
≈3,000
169.
Before
we
stop...
some
very
exciting
recent
work
178
170. ! For
textured
scenes,
3D
is
relatively
easy
" Some
algorithms
look
like
PCA
" But
don’t
use
SVD,
use
lsqnonlin
! When
freed
from
concerns
of
“linearity”,
can
use
much
more
powerful
tools
(e.g.
subdivision
surfaces)
" But
you
must
allow
correspondences
to
vary
" And
you
must
exploit
sparsity
! Future
work:
" Video,
More/less
user
intervention.
CONCLUSIONS
ETC
179
174. ! Not
a
great
approximation?
COMPUTING
P(X|®)
175. ! Not
a
great
approximation?
COMPUTING
P(X|®)
176. ! Not
a
great
approximation?
! Think:
what
is
the
real
noise
model?
! Let’s
work
with
this
for
a
while...
COMPUTING
P(X|®)
177. ! “I
tried
fminX
and
it
didn’t
work”
" Matlab’s
implementations
not
necessarily
the
best
" You
must
supply
derivatives
" They
must
be
correct
" You
must
take
care
of
sparseness
" You
should
choose
a
good
parametrization
! All
parameters
have
a
similar
effect
! All
parameters
“around
1”
! What
about
LBFGS?
! What
about
netscale?
DISCUSSION
POINTS:
OPTIMIZATION