SlideShare a Scribd company logo
1 of 177
Download to read offline
3D	
  Vision	
  in	
  a	
  Changing	
  World	
  
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	
  
RECOVER	
  3D	
  SHAPE	
  FROM	
  ONE	
  OR	
  MORE	
  IMAGES	
  OR	
  VIDEOS	
  
	
  
IN	
  DYNAMIC	
  SCENES	
  	
  
	
  
WITHOUT	
  DENSE	
  (>50)	
  POINT	
  CORRESPONDENCES	
  
Goal	
  
3	
  
FITTING	
  HANDS	
  TO	
  3D	
  DATA	
  
FITTING	
  HANDS	
  TO	
  3D	
  DATA	
  
FITTING	
  SUBDIVISION	
  SURFACES	
  TO	
  2D	
  DATA	
  
FITTING	
  SUBDIVISION	
  SURFACES	
  TO	
  2D	
  DATA	
  
REALTIME	
  MESH	
  FITTING	
  TO	
  3D	
   9	
  
KINÊTRE	
   10	
  
UNWRAP	
  MOSAICS	
  
TO	
  BEGIN…	
  
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	
  
EARLY	
  WORK	
  
EARLY	
  WORK	
  
EARLY	
  WORK	
  
EARLY	
  WORK	
  
EARLY	
  WORK	
  
EARLY	
  WORK	
  
EARLY	
  WORK	
  
 
	
  
	
  
	
  
...	
  but	
  so	
  flat,	
  so	
  dull	
  ...	
  
HOW	
  DO	
  I	
  DO	
  IT?	
  
Optic	
  flow	
  
Error	
  Accumulation,	
  No	
  occlusion	
  
Desired	
  
The	
  future	
  of	
  computer	
  vision	
  
	
  
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	
  
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	
  
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 ) 	
  
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 ) 	
  
TIP:	
  HOW	
  TO	
  WRITE	
  A	
  MULTIVARIATE	
  GAUSSIAN	
   33	
  
𝒩​ 𝒙⁠ 𝝁,  𝚺 =  
​|2 𝜋 𝚺|↑−​1/2  ​exp⁠(−​1/2 ​( 𝒙− 𝝁)↑⊤ ​ 𝚺↑−1 (𝒙− 𝝁)) 	
  
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 (​ 𝑥↓𝑖 −​ 𝜇↓𝑘 ))  	
  
WHAT,	
  WHAT,	
  HOW	
   35	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Model	
   𝒑(​ 𝒙↓𝒊 )	
   Objective	
   Algorithm	
  
𝒩(​ 𝑥↓𝑖 ;   𝑐,1)	
   ​​min┬𝑐 ⁠∑ 𝑖↑▒​(​ 𝑥↓𝑖 − 𝑐)↑2   	
   mean	
  
𝒩(​ 𝑥↓𝑖 ;   𝑐, 𝜎)	
   ​​min┬𝑐, 𝜎 ⁠∑ 𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  )  	
   Mean	
  &	
  
variance	
  
∑𝑘↑▒​ 𝛼↓𝑘  𝒩(​ 𝑥↓𝑖 ;​ 𝜇↓𝑘 ,​Σ↓𝑘 ) 	
   ​​max┬█■​ 𝛼↓1.. 𝐾 ⁠█■​ 𝜇↓1.. 𝐾 ⁠​Σ↓1.. 𝐾    ⁠∑ 𝑖↑▒​log⁠ 𝑝(​ 𝑥↓𝑖 )   	
   GMM-­‐EM	
  
Bishop’96	
  
DRILLDOWN:	
  FITTING	
  A	
  GAUSSIAN	
   36	
  
𝐸(𝑐, 𝜎)=∑𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  ) 	
  
𝑐→	
  
← 𝜎	
  
“Closed	
  form”	
   “Just	
  do	
  it”	
  
!  Set	
  ​ 𝜕 𝐸/𝜕𝑐 =0,​ 𝜕 𝐸/𝜕𝜎 =0	
  
37	
  
HOW	
  TO	
  MINIMIZE	
   𝐸( 𝑐, 𝜎)	
  
𝐸(𝑐, 𝜎)=∑𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  ) 	
  
!  It’s	
  quasiconvex.	
  
!  Are	
  you	
  relieved?	
  
BUT	
  HOW	
  CAN	
  FMINUNC	
  POSSIBLY	
  WORK?	
   38	
  
Model	
   Algorithm	
  
!  For	
   𝑖=1: 𝑛
	
  ​ 𝜈↓𝑖   ~  Gaussian(0, 𝜎)	
  	
  ​ 𝑥↓𝑖 
= 𝑐+​ 𝑣↓𝑖 	
  

	
  	
  
39	
  
AH,	
  BUT	
  I	
  KNOW	
  MORE:	
  PRIOR	
  ON	
   𝜎	
  
Model	
   Algorithm	
  
!  𝜎  ~  Exponential(𝜆=0.5)	
  
For	
   𝑖=1: 𝑛
	
  ​ 𝜈↓𝑖   ~  Gaussian(0, 𝜎)	
  	
  ​ 𝑥↓𝑖 
= 𝑐+​ 𝑣↓𝑖 	
  

	
  	
  
40	
  
AH,	
  BUT	
  I	
  KNOW	
  MORE:	
  PRIOR	
  ON	
   𝜎	
  
𝐸(𝑐, 𝜎)=∑𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  ) + 𝜆𝜎	
  
 
	
  
	
  
...	
  Quick	
  Matlab	
  interlude	
  ...	
  
	
  
(these	
  scripts	
  are	
  on	
  awful.codeplex.com)	
  
41	
  
A	
  ONE-­‐DIMENSIONAL	
  PROBLEM	
  
A	
  ONE-­‐DIMENSIONAL	
  PROBLEM	
  
GRADIENT	
  DESCENT	
  
BISECTION	
  METHODS	
  
NEWTON'S	
  METHOD	
  
SUCCESS	
  OF	
  NEWTON’S	
  METHOD	
  
SUCCESS	
  OF	
  NEWTON’S	
  METHOD	
  
SUCCESS	
  OF	
  NEWTON’S	
  METHOD	
  
SUCCESS	
  OF	
  NEWTON’S	
  METHOD	
  
SUCCESS	
  OF	
  NEWTON’S	
  METHOD	
  
SUCCESS	
  OF	
  NEWTON’S	
  METHOD	
  
SUCCESS	
  OF	
  NEWTON’S	
  METHOD	
  
NEWTON'S	
  METHOD	
  
FAILURE	
  OF	
  NEWTON'S	
  METHOD	
  
FAILURE	
  OF	
  NEWTON'S	
  METHOD	
  
FAILURE	
  OF	
  NEWTON'S	
  METHOD	
  
FAILURE	
  OF	
  NEWTON'S	
  METHOD	
  
FAILURE	
  OF	
  NEWTON'S	
  METHOD	
  
FAILURE	
  OF	
  NEWTON'S	
  METHOD	
  
FAILURE	
  OF	
  NEWTON'S	
  METHOD	
  
HOW	
  TO	
  GET	
  THE	
  BEST	
  OF	
  BOTH	
  WORLDS?	
  
!  Over	
  to	
  you...	
  
MULTIPLE	
  DIMENSIONS	
  
!  Alternation	
  
!  Gradient	
  descent	
  
!  2nd	
  order	
  methods	
  
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.	
  
NOTATION	
  
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	
  
	
  
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)	
  
OPTIMIZERS	
  IN	
  MATLAB	
  
!  Lsqnonlin	
  
!  Fminunc	
  
!  Fmincon	
  
!  Use	
  most	
  specific	
  
!  Check	
  options.LargeScale!	
  
!  It’s	
  quasiconvex.	
  
!  Are	
  you	
  relieved?	
  
BUT	
  HOW	
  CAN	
  FMINUNC	
  POSSIBLY	
  WORK?	
   70	
  
“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	
  
!  The	
  real	
  world	
  is	
  not	
  Gaussian	
  in	
  many	
  ways…	
  
"  Perhaps	
  most	
  crucially	
  for	
  us,	
  in	
  robust	
  estimation	
  
TWO	
  WRONG	
  THINGS	
   72	
  
Cauchy	
   Laplace	
  
WHAT,	
  WHAT,	
  HOW	
   73	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Model	
   𝒑(​ 𝒙↓𝒊 )	
   Objective	
   Algorithm	
  
𝒩(​ 𝑥↓𝑖 ;   𝑐,1)	
   ∑𝑖↑▒​(​ 𝑥↓𝑖 − 𝑐)↑2  	
   mean	
  
𝐶𝑎𝑢𝑐ℎ𝑦(​ 𝑥↓𝑖 ; 𝑐, 𝛾)	
   ∑𝑖↑▒​log⁠(1+​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝛾↑2  ) + 𝑓( 𝛾) 	
  
?	
  
𝐿𝑎𝑝𝑙𝑎𝑐𝑒(​ 𝑥↓𝑖 ;   𝑐)	
   ∑𝑖↑▒|​ 𝑥↓𝑖 − 𝑐| 	
   ?	
  
WHAT,	
  WHAT,	
  HOW	
   74	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Model	
   Algorithm	
  
​ 𝑥↓𝑖 = 𝑐+𝓃	
   Mean,	
  median,	
  trimmed	
  mean	
  
​ 𝑥↓𝑖 = 𝑅​ 𝑦↓𝑐(𝑖) + 𝑇	
  
“ICP”	
  
​ 𝒙↓𝑖 = 𝐴​ 𝒗↓𝑖 ,  ​ 𝒙↓𝑖 ∈​ℝ↑𝑁 ,​ 𝒗↓𝑖 ∈​ℝ↑𝑑 	
  
Principal	
  Components	
  Analysis	
  
Principle	
  Components	
  Analysis	
  
PCA	
  with	
  missing	
  data
​ 𝒙↓𝑖 = 𝑑𝑖𝑎𝑔(𝑊𝑒𝑖𝑔ℎ𝑡​ 𝑠↓𝑖 )𝐴​ 𝒗↓𝑖 	
  
“Imputation”	
  
​ 𝒙↓𝑖 = 𝑓(​ 𝜃↓𝑖 )𝐴​ 𝒗↓𝑖 	
   Transformed	
  Components	
  
Analysis	
  
GMM	
   “EM”	
  
!  So.	
  	
  Nonlinear	
  optimization	
  works.	
  
!  Let’s	
  look	
  at	
  nonrigid	
  3d	
  reconstruction.	
  
79	
  
HOW	
  DO	
  I	
  DO	
  IT?	
  
Non-­‐Rigid	
  Structure	
  from	
  Motion	
  
C	
  Bregler,	
  L	
  Torresani,	
  A	
  Hertzmann,	
  H	
  Biermann	
  
CVPR	
  2000	
  –	
  PAMI	
  2008	
  
(311, 308)	
  
311	
  
308	
  
	
  
(204, 285)	
  
311	
  
308	
  
204	
  
285	
  
	
  
(142, 296)	
  
311	
  
308	
  
204	
  
285	
  
142	
  
296	
  
311	
  
308	
  	
  
204	
  
285	
  
142	
  
296	
  
*	
  
*	
  
204,285	
   142,296	
  311,308	
  
2T	
  
311	
  
308	
  	
  
204	
  
285	
  
142	
  
296	
  
*	
  
*	
  
 	
  *	
  
	
  	
  *	
  
	
  	
  *	
  
	
  	
  *	
  
357	
  
377	
  
	
  	
  333	
  
	
  	
  377	
  
	
  
204,285	
   142,296	
  311,308	
  
357,377	
   333,377	
  
311	
  
308	
  	
  
204	
  
285	
  
142	
  
296	
  
*	
  
*	
  
	
  *	
  
	
  	
  *	
  
	
  	
  *	
  
	
  	
  *	
  
357	
  
377	
  
333	
  
377	
  
311	
  
308	
  	
  
204	
  
285	
  
142	
  
296	
  
*	
  
*	
  
	
  *	
  
	
  	
  *	
  
	
  	
  *	
  
	
  	
  *	
  
357	
  
377	
  
333	
  
377	
  
track	
  no.	
  
Frame	
  no	
  
1	
  
2T	
  
1	
   ntracks	
  
(For	
  this	
  example:	
  ntracks	
  =	
  1135,	
  T	
  =	
  227)	
  
MEASUREMENT	
  MATRIX:	
  S	
  
Derive	
  S= 𝑃   𝑋,	
  and	
  factorize	
  
…	
  
​ 𝑃↓1 	
  
​ 𝑃↓2 	
  
​ 𝑃↓𝑇 	
  
​ 𝑋↓1 	
   ​ 𝑋↓𝑚 	
  
track	
  no.	
  
Frame	
  no	
  
1
2T	
  
1 ntracks	
  
(For	
  this	
  example:	
  ntracks	
  =	
  1135,	
  T	
  =	
  227)	
  
⋮	
   ⋮	
  
​ 𝑋↓𝑗 :4×1	
  
​ 𝑃↓𝑖 :2×4	
  
!  3D	
  Point 	
  	
   	
  ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]  	
  
!  Affine	
  camera 	
  	
  ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​
𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​ 𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ]	
  
!  2D	
  point 	
  	
   	
  ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗 	
  
AFFINE	
  STRUCTURE	
  FROM	
  MOTION	
  
!  ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​
𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ],	
  ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]	
  
!  2D	
  point 	
  	
   	
  ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗 	
  
!  2T-­‐D	
  track	
   	
  	
  	
  	
  [█■​ 𝑥↓1 𝑗 ⁠​ 𝑥↓2 𝑗 ⁠⋮⁠​ 𝑥↓𝑇𝑗  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​
𝑃↓𝑇  ]​ 𝑋↓𝑗 	
  
AFFINE	
  STRUCTURE	
  FROM	
  MOTION	
  
!  ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​
𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ],	
  ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]	
  
!  2D	
  point 	
  	
   	
  ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗 	
  
!  [█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​
𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​
𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][█■​ 𝑋↓1 &​ 𝑋↓2 &…&​ 𝑋↓𝑚  ]	
  
AFFINE	
  STRUCTURE	
  FROM	
  MOTION	
  
!  ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​
𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ],	
  ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]	
  
!  2D	
  point 	
   	
   	
  ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗 	
  
!  [█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​
𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​
𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][█■​ 𝑋↓1 &​ 𝑋↓2 &…&​ 𝑋↓𝑚  ]	
  
!  Matrix	
  factorization:	
   𝑆= 𝑃𝑋,	
  the	
  same	
  equations	
  as	
  PCA	
  
!  Hint	
  1:	
  Do	
  not	
  use	
  SVD.	
  
AFFINE	
  STRUCTURE	
  FROM	
  MOTION	
  
Derive	
  S= 𝑃   𝑋,	
  and	
  factorize	
  
…	
  
​ 𝑃↓1 	
  
​ 𝑃↓2 	
  
​ 𝑃↓𝑇 	
  
​ 𝑋↓1 	
   ​ 𝑋↓𝑚 	
  
track	
  no.	
  
Frame	
  no	
  
1
2T	
  
1 ntracks	
  
(For	
  this	
  example:	
  ntracks	
  =	
  1135,	
  T	
  =	
  227)	
  
⋮	
   ⋮	
  
​ 𝑋↓𝑗 :4×1	
  
​ 𝑃↓𝑖 :2×4	
  
[█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][​ 𝑋↓1   ​ 𝑋↓2 …​ 𝑋↓𝑚 
Derive	
   𝑀= 𝑃  (∑𝑘↑▒​ 𝛼↓𝑘 ​ 𝐵↓𝑘 ) ,	
  and	
  factorize	
  
LINEAR	
  SHAPE	
  BASIS	
  
[█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​
𝑃↓𝑇  ][​ 𝑋↓1   ​ 𝑋↓2 …​ 𝑋↓𝑚 ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ]​×↓2 [█■​ 𝛼↓1↑1 …​ 𝛼↓1↑𝑘 ⁠⋮⁠​ 𝛼↓𝑚↑1 …​ 𝛼↓𝑚↑𝑘  ]​×↓? [​ 𝐵↓1   ​ 𝐵↓2 …​ 𝐵↓𝐾 ]	
  
​ 𝛼↓𝑖0   ​ℬ↓0 	
   ​ 𝛼↓𝑖1   ​ℬ↓1 	
   ​ 𝛼↓𝑖2   ​ℬ↓2 	
  +	
   +	
  ​ 𝒳↓𝑖 =	
  
Derive	
   𝑀= 𝑃  (∑𝑘↑▒​ 𝛼↓𝑘 ​ 𝐵↓𝑘 ) ,	
  and	
  factorize	
  
LINEAR	
  SHAPE	
  BASIS	
  
[█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​
𝑃↓𝑇  ][​ 𝑋↓1   ​ 𝑋↓2 …​ 𝑋↓𝑚 ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ]​×↓2 [█■​ 𝛼↓1↑1 …​ 𝛼↓1↑𝑘 ⁠⋮⁠​ 𝛼↓𝑚↑1 …​ 𝛼↓𝑚↑𝑘  ]​×↓? [​ 𝐵↓1   ​ 𝐵↓2 …​ 𝐵↓𝐾 ]	
  
​ 𝛼↓𝑖0   ​ℬ↓0 	
   ​ 𝛼↓𝑖1   ​ℬ↓1 	
   ​ 𝛼↓𝑖2   ​ℬ↓2 	
  +	
   +	
  ​ 𝒳↓𝑖 =	
  
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 𝐾 	
  
INTERLUDE:	
  WHAT	
  IS	
  A	
  SURFACE?	
   99	
  
!  Surface:	
  mapping	
   𝑀(𝒖)	
  from	
  ​ℝ↑2 ↦​ℝ↑3 	
  
"  E.g.	
  cylinder	
   𝑀(𝑢, 𝑣)=(​cos⁠ 𝑢 ,​sin⁠ 𝑢 , 𝑣)	
  
*the	
  surface	
  is	
  actually	
  the	
  set	
  { 𝑀(𝑢;Θ)|
𝑢∈Ω}	
  
𝑢
𝑣
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	
  { 𝑀(𝑢;Θ)|
𝑢∈Ω}	
  
𝑢
𝑣
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 𝐾 	
  
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 	
  
	
  
NONLINEAR	
  EMBEDDING	
  INTO	
  ​ℝ↑ 𝟐 	
  
EVERYTHING’S	
  EASY	
  WITH	
  A	
  REFERENCE	
  
STITCHING,	
  DISCRETE	
  MRF,	
  ETC	
  
“UNWRAP	
  MOSAICS”	
  
FAILURE	
  CASES:	
  NON-­‐DISC	
  TOPOLOGY	
  
Something	
  trickier	
  
111	
  
3D	
  reconstruction	
  of	
  object	
  classes	
  
from	
  silhouettes	
  
	
  
RIGID	
  MODEL	
  
Easy	
  to	
  make	
  a	
  rough	
  rigid	
  model.	
  
	
  
But	
  need	
  to:	
  
1.  Match	
  it	
  to	
  images	
  
2.  Learn	
  how	
  it	
  moves	
  
MODEL	
  REPRESENTATION	
  
​ 𝒳↓𝑛 =∑𝑘=0↑𝐾▒​ 𝛼↓𝑖𝑘 ​ℬ↓𝑘  	
  
​ 𝛼↓𝑖0   ​ℬ↓0 	
   ​ 𝛼↓𝑖1   ​ℬ↓1 	
   ​ 𝛼↓𝑖2   ​ℬ↓2 	
  +	
   +	
  ​ 𝒳↓𝑖 =	
  
Linear	
  blend	
  shapes:	
  	
  
Image	
  𝑖	
  represented	
  by	
  coefficient	
  
vector	
  ​ 𝜶↓𝑖 =[​ 𝛼↓𝑖1 ,…,​ 𝛼↓𝑖𝐾 ]	
  
MODEL	
  REPRESENTATION	
  
​ 𝒳↓𝑛 =∑𝑘=0↑𝐾▒​ 𝛼↓𝑖𝑘 ​ℬ↓𝑘  	
  
​ 𝛼↓𝑖1   ​ℬ↓1 	
   ​ 𝛼↓𝑖2   ​ℬ↓2 	
  +	
   +	
  ​ 𝒳↓𝑖 =	
  
Linear	
  blend	
  shapes:	
  	
  
Image	
  𝑖	
  represented	
  by	
  coefficient	
  
vector	
  ​ 𝜶↓𝑖 =[​ 𝛼↓𝑖1 ,…,​ 𝛼↓𝑖𝐾 ]	
  
    ​ℬ↓0 	
  
DATA	
  TERMS	
  
Image 𝑖
​
𝒔
↓
𝑖
𝑗
 ,  ​
𝒏
↓
𝑖
𝑗
 	
  
Linear	
  Blend	
  Shapes	
  Model:	
  
​ 𝑿↓𝑖 =∑𝑘↑▒​ 𝛼↓𝑖𝑘 ​ 𝑩↓𝑘  	
  
	
  
Silhouette:	
  
​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖​ 𝑠↓𝑖𝑗 − 𝜋(​ 𝜃↓𝑖 ,   𝑀(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 ))‖↑2  	
  
Normal:	
  
​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖[█■​ 𝑛↓𝑖𝑗 @0 ]−​ 𝑅↓𝑖 𝑁(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 )‖↑2  	
  
SURFACE	
  FITTING	
  TO	
  MULTIPLE	
  SILHOUETTES	
  
APPLICATIONS	
  
Curve/surface	
  fitting	
   Parameter	
  estimation	
   “Bundle	
  adjustment”	
  
(Video	
  from	
  our	
  friends	
  at	
  G)	
  
SURFACE	
  FITTING	
  
	
  	
  
126	
  
!  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	
  
SURFACE	
   128	
  
*the	
  surface	
  is	
  actually	
  the	
  set	
  { 𝑀(𝑢;Θ)|
𝑢∈Ω}	
  
𝑢
𝑣
!  Surface:	
  mapping	
   𝑀(𝒖)	
  from	
  ​ℝ↑2 ↦​ℝ↑3 	
  
"  E.g.	
  cylinder	
   𝑀(𝑢, 𝑣)=(​cos⁠ 𝑢 ,​sin⁠ 𝑢 , 𝑣)	
  
!  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	
  { 𝑀(𝑢;Θ)|
𝑢∈Ω}	
  
𝑢
𝑣
A	
  PROXY	
  PROBLEM	
  
WE	
  KNOW	
  THE	
  EXACT	
  MODEL	
   132	
  
𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​
𝜃↓6   )  	
  
	
  
AND	
  ESTIMATING	
  IT	
  WELL	
  GETS	
  US	
  CLOSE…	
   133	
  
𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​
𝜃↓6   )  	
  
	
  
!  Given	
  a	
  parametric	
  surface	
  model	
   𝑀(𝒖;Θ)	
  
	
  
!  And	
  data	
  samples	
  ​{​ 𝒔↓𝑖 }↓𝑖=1↑𝑚 ⊂​ℝ↑3 	
  
!  And	
  known	
  correspondences	
  ​{​ 𝒖↓𝑖 }↓𝑖=1↑𝑚 ⊂Ω	
  
!  Compute	
  
​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖↑▒‖​ 𝒔↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖  	
  
!  For	
  various	
  “norms”	
  ‖⋅‖
SURFACE	
  FITTING:	
  KNOWN	
  CORRESPONDENCES	
  
134	
  
𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​
𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )  	
  
	
  
Problem:	
  
!  Parametric	
  surface	
  model	
   𝑀(𝒖;Θ)	
  
!  Data	
  samples	
  ​{​ 𝒔↓𝑖 }↓𝑖=1↑𝑚 ⊂​ℝ↑3 	
  
!  Correspondences	
  ​{​ 𝒖↓𝑖 }↓𝑖=1↑𝑚 ⊂Ω
​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖↑▒‖​ 𝒔↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖  	
  
Solution:	
  
!  Derivatives	
  
​ 𝜕 𝐸/𝜕Θ =−2∑𝑖↑▒(​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ))⋅​ 𝜕/𝜕Θ 𝑀(​ 𝒖↓𝑖 ;Θ) 	
  
!  And	
  solve	
  ​ 𝜕 𝐸/𝜕Θ =0	
  
	
  
	
  KNOWN	
  CORRESPONDENCES:	
  EASY	
  
135	
  
𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​
𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )  	
  
	
  
Input:	
  
!  Parametric	
  surface	
  model	
   𝑀(𝒖;Θ)	
  
!  Data	
  samples	
  ​{​ 𝒔↓𝑖 }↓𝑖=1↑𝑚 ⊂​ℝ↑3 	
  
!  Correspondences	
  ​{​ 𝒖↓𝑖 }↓𝑖=1↑𝑚 ⊂Ω
​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖↑▒‖​ 𝒔↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖  	
  
Compute:	
  
	
  
	
  
	
  
	
  
!  Assuming	
  smooth	
   𝑀…	
  See	
  later	
  
KNOWN	
  CORRESPONDENCES:	
  EASY	
  
136	
  
interface	
  Surface	
  {	
  
	
  	
  Vec3	
  	
  	
  Eval_M(Vec2	
   𝑢,	
  VecN	
  Θ);	
  
	
  	
  //	
  Derivatives	
  
	
  	
  Vec3	
  	
  	
  Eval_Mu(Vec2	
   𝑢,	
  VecN	
  Θ);	
  
	
  	
  Vec3	
  	
  	
  Eval_Mv(Vec2	
   𝑢,	
  VecN	
  Θ);	
  
	
  	
  Matrix	
  Eval_M 𝚯(Vec2	
   𝑢,	
  VecN	
  Θ);	
  
};	
  
	
  
struct	
  Problem	
  {	
  
	
  	
  Vec3	
  s[m];	
  
	
  	
  Vec2	
  u[m];	
  
	
  	
  Surface	
  M;	
  
	
  	
  	
  
	
  	
  Vec3m	
  residuals(VecN	
  Θ)	
  -­‐>	
  out	
  {	
  
	
  	
  	
  	
  for(i…)	
  
	
  	
  	
  	
  	
  out[3i:3i+2]	
  =	
  	
  
	
  	
  	
  	
  	
  	
  s[i]	
  –	
  M.Eval_M(u[i],	
  Θ);	
  
	
  	
  }	
  
	
  	
  Matrix3mxN	
  jacobian(VecN	
  Θ)	
  -­‐>	
  J	
  {	
  
	
  	
  	
  	
  	
  …	
  J[3i][p]=	
  …	
  M.Eval_Mu	
  …	
  
	
  …	
  M.Eval_MΘ	
  …	
  
	
  	
  }	
  
}	
  
	
  
Problem	
  prob;	
  
VecN	
  Θ	
  =	
  some_generic_initializer(…);	
  
Θ	
  =	
  LevenbergMarquardt(prob,	
  Θ);	
  
!  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	
  
BAD	
  SOLUTION:	
  “ALTERNATION”	
  OR	
  “ICP”	
  
ICP,	
  a	
  bad	
  1st-­‐order	
  method	
  
𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )  	
  	
  
	
  
Problem:	
  	
  Find	
  ​Θ↑∗ 	
  
​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖=1↑𝑚▒​​min┬𝑢 ⁠​‖​ 𝒔↓𝑖 − 𝑀( 𝑢;Θ)‖↑2    	
  
	
  
	
  
Solution:	
  
-­‐  Get	
  initial	
  ​Θ↓0 	
  
-­‐  Repeat	
  
-­‐  ∀ 𝑖:​ 𝑢↓𝑖 ≔​​argmin┬𝑢 ⁠​‖​ 𝒔↓𝑖 − 𝑀( 𝑢;Θ)‖↑2  	
  
-­‐  Θ≔  ​​argmin┬Θ ⁠∑ 𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2   	
  
JOINT	
  MINIMIZATION	
  OF	
   𝑢	
  AND	
   𝑋	
  
𝐸(Θ)=  ∑𝑖=1↑𝑚▒​​min┬​ 𝑢↓𝑖  ⁠​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2   
=​​min┬​ 𝑢↓1.. 𝑚  ⁠∑ 𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2   
  
𝐸({​ 𝑢↓1 ,  …,  ​ 𝑢↓𝑚 },Θ)=  ∑𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2  	
  
	
  
!  Joint	
  minimization	
  of	
  {​ 𝑢↓1 ,  …,  ​ 𝑢↓𝑚 }	
  and	
   𝑋	
  using	
  a	
  non-­‐linear	
  optimiser.	
  
"  Move	
  calculating	
  the	
  minimum	
  distance	
  “out”	
  to	
  the	
  overall	
  minimization	
  problem.	
  
BETTER	
  SOLUTION:	
  JUST	
  USE	
  LSQNONLIN	
  
Lsqnonlin,	
   𝑚+6	
  params,	
  slowed	
  down	
  10x	
  
𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )  	
  	
  
	
  
Problem:	
  	
  Find	
  ​Θ↑∗ 	
  
​Θ↑∗ =​​argmin┬Θ,​u↓1 ,…,​ 𝑢↓𝑚  ⁠∑ 𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2   	
  
	
  
	
  
Solution:	
  
-­‐  Get	
  initial	
  ​Θ↓0 	
  
-­‐  ∀ 𝑖:​ 𝑢↓𝑖 ≔​​argmin┬𝑢 ⁠​‖​ 𝒔↓𝑖 − 𝑀( 𝑢;Θ)‖↑2  	
  
-­‐  ​Θ↑∗ =	
  lsqnonlin( 𝐸,[​Θ↓0 ,​ 𝑢↓1 ,..,​ 𝑢↓𝑚 ])	
  
[Or	
  au_levmarq	
  on	
  http://awful.codeplex.com]	
  
CONVERGENCE	
  RATES	
  
ICP,	
  a	
  bad	
  1st-­‐order	
  method	
   A	
  second	
  order	
  method,	
  slowed	
  down	
  10x	
  
CONVERGENCE	
  CURVES	
  
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
	
  
	
  
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
	
  
	
  
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
!  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↑𝑚▒‖​ 𝑠↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖  	
  
Θ	
   ​ 𝒖↓ 𝟏 …​ 𝒖↓𝒎 	
  
FITTING	
  A	
  CUBIC	
  B-­‐SPLINE	
  
Contour:	
  linear	
  in	
  control	
  vertices	
   𝑋∈​ℝ↑2×4 ,	
  piecewise	
  cubic	
  in	
   𝑢	
  	
  
	
  
𝑀(𝑢; 𝑋)=​ 𝒙↓𝑖 (​​−​ 𝑢 ↑3 /6 +​​​ 𝑢 ↑2 /2 −​​ 𝑢 /2 +​1/6 )+​
𝒙↓⌊𝑢⌋⊕1 (​​​ 𝑢 ↑3 /2 −​​ 𝑢 ↑2 +​2/3 )+​ 𝒙↓⌊𝑢⌋⊕2 (​​−​ 𝑢 ↑3 /2 +​​​
𝑢 ↑2 /2 +​​ 𝑢 /2 +​1/6 )+​ 𝒙↓⌊𝑢⌋⊕3 (​​​ 𝑢 ↑3 /6 )
	
   	
   𝑖=⌊𝑢⌋,	
  ​ 𝑢 = 𝑢− 𝑖	
  
	
  
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	
   𝑋	
  
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.	
  
TOOL:	
  SUBDIVISION	
  SURFACES	
  
	
  	
  
149	
  
CONTROL	
  MESH	
   151	
  
Control	
  mesh	
  vertices	
   𝑉∈​ℝ↑3× 𝑛 	
  
Here	
   𝑛=16	
  
SUBDIV	
  RULE:	
  STEP	
  1.	
  ADD	
  NEW	
  VERTICES	
   152	
  
SUBDIV	
  RULE:	
  STEP	
  2.	
  AVERAGE	
  NEIGHBOURS	
   153	
  
2	
  	
  SUBDIVISIONS	
   154	
  
3	
  	
  SUBDIVISIONS	
   155	
  
LIMIT	
  SURFACE	
   156	
  
Control	
  mesh	
  vertices	
   𝑉∈​ℝ↑3× 𝑛 	
  
Here	
   𝑛=16	
  
Blue	
  surface	
  is	
  { 𝑀(𝒖; 𝑉)  |   𝒖∈Ω}  	
  
Ω	
  is	
  the	
  grey	
  surface	
  
CONTROL	
  VERTICES	
  DEFINE	
  THE	
  SHAPE	
   157	
  
Control	
  mesh	
  vertices	
   𝑉∈​ℝ↑3× 𝑛 	
  
Here	
   𝑛=16	
  
Blue	
  surface	
  is	
  { 𝑀(𝒖; 𝑉)  |   𝒖∈Ω}  	
  
Ω	
  is	
  the	
  grey	
  surface	
  
!  Mostly,	
   𝑀	
  is	
  quite	
  simple:	
  
𝑀(𝒖; 𝑋)= 𝑀(𝑡,   𝑢, 𝑣;​ 𝒙↓1 ,…,​ 𝒙↓𝑛 )=∑█■𝑖+ 𝑗≤4⁠ 𝑘=1.. 𝑛 ↑▒​
𝐴↓𝑖𝑗𝑘↑𝑡 ​ 𝑢↑𝑖 ​ 𝑣↑𝑗 ​ 𝒙↓𝑘  	
  
"  Integer	
  triangle	
  id	
   𝑡	
  
"  Quartic	
  in	
   𝑢, 𝑣	
  
"  Linear	
  in	
   𝑋	
  
"  Easy	
  derivatives	
  
!  But…	
  
"  2nd	
  Derivatives	
  unbounded	
  although	
  normals	
  well	
  defined	
  
"  Piecewise	
  parameter	
  domain	
  
SUBDIVISION	
  SURFACE:	
  PARAMETRIC	
  FORM	
   158	
  
EXAMPLES	
   159	
  
SIGNAL:	
  OBJECT	
  SILHOUETTE	
  
	
  	
  
160	
  
​ 𝒔↓𝑖𝑗  	
  2D	
  point	
  
​ 𝒏↓𝑖𝑗  	
  2D	
  normal	
  
DATA	
  TERMS	
  
Image 𝑖
​ 𝒖↓𝑖𝑗  	
  Contour	
  generator	
  
	
  preimage	
  in	
   𝛀	
  
	
  (unknown)	
  
	
  
c.g.	
  point	
  in	
  3D	
  is	
   𝑀(​ 𝒖↓𝑖𝑗 ;​ 𝑿↓𝑖 )	
  	
  
DATA	
  TERMS	
  
Image 𝑖
​
𝒔
↓
𝑖
𝑗
 ,  ​
𝒏
↓
𝑖
𝑗
 	
  
Linear	
  Blend	
  Shapes	
  Model:	
  
​ 𝑿↓𝑖 =∑𝑘↑▒​ 𝛼↓𝑖𝑘 ​ 𝑩↓𝑘  	
  
	
  
Silhouette:	
  
​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖​ 𝑠↓𝑖𝑗 − 𝜋(​ 𝜃↓𝑖 ,   𝑀(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 ))‖↑2  	
  
Normal:	
  
​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖[█■​ 𝑛↓𝑖𝑗 @0 ]−​ 𝑅↓𝑖 𝑁(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 )‖↑2  	
  
Data	
  fidelity	
  
terms	
  
“Technical”	
  
terms	
  
	
  
Smoothing	
  
terms	
  
	
  
165	
  
OPTIMIZATION	
  
!  Alternation++:	
  
"  Dynamic	
  programming	
  on	
  discretized	
   𝑢	
  parameters	
  
"  Quasi-­‐Newton	
  on	
  all	
  parameters	
  
!  NOT:	
  
"  Fit	
  shapes,	
  perform	
  PCA,	
  repeat	
  
INITIAL	
  ESTIMATE	
  FOR	
  MEAN	
  SHAPE	
  
This	
  is	
  true,	
  but	
  misleading	
  
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	
  
EXAMPLE	
  RESULTS	
   170	
  
EXAMPLE	
  RESULTS	
   171	
  
OPTIMIZATION	
  
NUMBER	
  OF	
  IMAGES	
   173	
  
8	
   16	
   32	
  
PARAMETER	
  SENSITIVITY	
  
“Pixel”	
  terms:	
  noise	
  level	
  params	
   “Dimensionless”	
  terms	
   “Smoothness”	
  terms	
  
𝐸=∑𝑖=1↑𝑛▒(​ 𝐸↓𝑖↑sil +​ 𝐸↓𝑖↑norm +​ 𝐸↓𝑖↑con )     +      ∑𝑖=1↑𝑛▒(​ 𝐸↓𝑖↑cg +​ 𝐸↓𝑖↑reg ) 	
  	
  	
  +	
  	
  	
  ​ 𝝃↓ 𝟎↑ 𝟐 ​ 𝐸↓0↑tp +​ 𝝃↓ 𝐝𝐞𝐟↑ 𝟐 ∑𝑖=1↑𝑛▒​
𝐸↓𝑚↑tp  	
  
 
	
  
Before	
  we	
  stop...	
  
	
  
	
  some	
  very	
  exciting	
  recent	
  work	
  
178	
  
!  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	
  
A	
  NOTE	
  ON	
  MANIFOLDS	
  
180	
  
GIVEN	
  ®,	
  WHAT	
  IS	
  P(X|®)?	
  
-2 -1 0 1 2
-2
-1
0
1
2
-2 -1 0 1 2
-2
-1
0
1
2
APPROXIMATE	
  BY	
  MAX...	
  
!  Not	
  a	
  great	
  approximation?	
  
COMPUTING	
  P(X|®)	
  
!  Not	
  a	
  great	
  approximation?	
  
COMPUTING	
  P(X|®)	
  
!  Not	
  a	
  great	
  approximation?	
  
!  Think:	
  what	
  is	
  the	
  real	
  noise	
  model?	
  
!  Let’s	
  work	
  with	
  this	
  for	
  a	
  while...	
  
COMPUTING	
  P(X|®)	
  
!  “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	
  

More Related Content

Similar to Lecture 12 andrew fitzgibbon - 3 d vision in a changing world

Understanding Basics of Machine Learning
Understanding Basics of Machine LearningUnderstanding Basics of Machine Learning
Understanding Basics of Machine LearningPranav Ainavolu
 
BEGAN Boundary Equilibrium Generative Adversarial Networks
BEGAN Boundary Equilibrium Generative Adversarial NetworksBEGAN Boundary Equilibrium Generative Adversarial Networks
BEGAN Boundary Equilibrium Generative Adversarial NetworksChung-Il Kim
 
Lecture 5 backpropagation
Lecture 5 backpropagationLecture 5 backpropagation
Lecture 5 backpropagationParveenMalik18
 
Lecture 1
Lecture 1Lecture 1
Lecture 1butest
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural NetworkDessy Amirudin
 
Machine Learning on Azure - AzureConf
Machine Learning on Azure - AzureConfMachine Learning on Azure - AzureConf
Machine Learning on Azure - AzureConfSeth Juarez
 
Fuzzy entropy based optimal
Fuzzy entropy based optimalFuzzy entropy based optimal
Fuzzy entropy based optimalijsc
 
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...Simplilearn
 
Presentation at SMI 2023
Presentation at SMI 2023Presentation at SMI 2023
Presentation at SMI 2023Joaquim Jorge
 
Computational Intelligence Assisted Engineering Design Optimization (using MA...
Computational Intelligence Assisted Engineering Design Optimization (using MA...Computational Intelligence Assisted Engineering Design Optimization (using MA...
Computational Intelligence Assisted Engineering Design Optimization (using MA...AmirParnianifard1
 
05 contours seg_matching
05 contours seg_matching05 contours seg_matching
05 contours seg_matchingankit_ppt
 
Deep Residual Hashing Neural Network for Image Retrieval
Deep Residual Hashing Neural Network for Image RetrievalDeep Residual Hashing Neural Network for Image Retrieval
Deep Residual Hashing Neural Network for Image RetrievalEdwin Efraín Jiménez Lepe
 
Lesson_8_DeepLearning.pdf
Lesson_8_DeepLearning.pdfLesson_8_DeepLearning.pdf
Lesson_8_DeepLearning.pdfssuser7f0b19
 
Introduction to mathematical modelling
Introduction to mathematical modellingIntroduction to mathematical modelling
Introduction to mathematical modellingArup Kumar Paria
 

Similar to Lecture 12 andrew fitzgibbon - 3 d vision in a changing world (20)

Understanding Basics of Machine Learning
Understanding Basics of Machine LearningUnderstanding Basics of Machine Learning
Understanding Basics of Machine Learning
 
BEGAN Boundary Equilibrium Generative Adversarial Networks
BEGAN Boundary Equilibrium Generative Adversarial NetworksBEGAN Boundary Equilibrium Generative Adversarial Networks
BEGAN Boundary Equilibrium Generative Adversarial Networks
 
그림 그리는 AI
그림 그리는 AI그림 그리는 AI
그림 그리는 AI
 
Regression
RegressionRegression
Regression
 
Lecture 5 backpropagation
Lecture 5 backpropagationLecture 5 backpropagation
Lecture 5 backpropagation
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural Network
 
Machine Learning on Azure - AzureConf
Machine Learning on Azure - AzureConfMachine Learning on Azure - AzureConf
Machine Learning on Azure - AzureConf
 
HMM & R & FK
HMM & R & FKHMM & R & FK
HMM & R & FK
 
Fuzzy entropy based optimal
Fuzzy entropy based optimalFuzzy entropy based optimal
Fuzzy entropy based optimal
 
Explore ml day 2
Explore ml day 2Explore ml day 2
Explore ml day 2
 
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...
 
Presentation at SMI 2023
Presentation at SMI 2023Presentation at SMI 2023
Presentation at SMI 2023
 
Computational Intelligence Assisted Engineering Design Optimization (using MA...
Computational Intelligence Assisted Engineering Design Optimization (using MA...Computational Intelligence Assisted Engineering Design Optimization (using MA...
Computational Intelligence Assisted Engineering Design Optimization (using MA...
 
Spc training
Spc training Spc training
Spc training
 
05 contours seg_matching
05 contours seg_matching05 contours seg_matching
05 contours seg_matching
 
Deep Residual Hashing Neural Network for Image Retrieval
Deep Residual Hashing Neural Network for Image RetrievalDeep Residual Hashing Neural Network for Image Retrieval
Deep Residual Hashing Neural Network for Image Retrieval
 
Lesson_8_DeepLearning.pdf
Lesson_8_DeepLearning.pdfLesson_8_DeepLearning.pdf
Lesson_8_DeepLearning.pdf
 
Introduction to mathematical modelling
Introduction to mathematical modellingIntroduction to mathematical modelling
Introduction to mathematical modelling
 
Backpropagation - Elisa Sayrol - UPC Barcelona 2018
Backpropagation - Elisa Sayrol - UPC Barcelona 2018Backpropagation - Elisa Sayrol - UPC Barcelona 2018
Backpropagation - Elisa Sayrol - UPC Barcelona 2018
 

More from mustafa sarac

Uluslararasilasma son
Uluslararasilasma sonUluslararasilasma son
Uluslararasilasma sonmustafa sarac
 
Real time machine learning proposers day v3
Real time machine learning proposers day v3Real time machine learning proposers day v3
Real time machine learning proposers day v3mustafa sarac
 
Latka december digital
Latka december digitalLatka december digital
Latka december digitalmustafa sarac
 
Axial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manualAxial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manualmustafa sarac
 
Array programming with Numpy
Array programming with NumpyArray programming with Numpy
Array programming with Numpymustafa sarac
 
Math for programmers
Math for programmersMath for programmers
Math for programmersmustafa sarac
 
TEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimizTEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimizmustafa sarac
 
How to make and manage a bee hotel?
How to make and manage a bee hotel?How to make and manage a bee hotel?
How to make and manage a bee hotel?mustafa sarac
 
Cahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir miCahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir mimustafa sarac
 
How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?mustafa sarac
 
Staff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital MarketsStaff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital Marketsmustafa sarac
 
Yetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimiYetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimimustafa sarac
 
Consumer centric api design v0.4.0
Consumer centric api design v0.4.0Consumer centric api design v0.4.0
Consumer centric api design v0.4.0mustafa sarac
 
State of microservices 2020 by tsh
State of microservices 2020 by tshState of microservices 2020 by tsh
State of microservices 2020 by tshmustafa sarac
 
Uber pitch deck 2008
Uber pitch deck 2008Uber pitch deck 2008
Uber pitch deck 2008mustafa sarac
 
Wireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guideWireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guidemustafa sarac
 
State of Serverless Report 2020
State of Serverless Report 2020State of Serverless Report 2020
State of Serverless Report 2020mustafa sarac
 
Dont just roll the dice
Dont just roll the diceDont just roll the dice
Dont just roll the dicemustafa sarac
 

More from mustafa sarac (20)

Uluslararasilasma son
Uluslararasilasma sonUluslararasilasma son
Uluslararasilasma son
 
Real time machine learning proposers day v3
Real time machine learning proposers day v3Real time machine learning proposers day v3
Real time machine learning proposers day v3
 
Latka december digital
Latka december digitalLatka december digital
Latka december digital
 
Axial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manualAxial RC SCX10 AE2 ESC user manual
Axial RC SCX10 AE2 ESC user manual
 
Array programming with Numpy
Array programming with NumpyArray programming with Numpy
Array programming with Numpy
 
Math for programmers
Math for programmersMath for programmers
Math for programmers
 
The book of Why
The book of WhyThe book of Why
The book of Why
 
BM sgk meslek kodu
BM sgk meslek koduBM sgk meslek kodu
BM sgk meslek kodu
 
TEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimizTEGV 2020 Bireysel bagiscilarimiz
TEGV 2020 Bireysel bagiscilarimiz
 
How to make and manage a bee hotel?
How to make and manage a bee hotel?How to make and manage a bee hotel?
How to make and manage a bee hotel?
 
Cahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir miCahit arf makineler dusunebilir mi
Cahit arf makineler dusunebilir mi
 
How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?How did Software Got So Reliable Without Proof?
How did Software Got So Reliable Without Proof?
 
Staff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital MarketsStaff Report on Algorithmic Trading in US Capital Markets
Staff Report on Algorithmic Trading in US Capital Markets
 
Yetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimiYetiskinler icin okuma yazma egitimi
Yetiskinler icin okuma yazma egitimi
 
Consumer centric api design v0.4.0
Consumer centric api design v0.4.0Consumer centric api design v0.4.0
Consumer centric api design v0.4.0
 
State of microservices 2020 by tsh
State of microservices 2020 by tshState of microservices 2020 by tsh
State of microservices 2020 by tsh
 
Uber pitch deck 2008
Uber pitch deck 2008Uber pitch deck 2008
Uber pitch deck 2008
 
Wireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guideWireless solar keyboard k760 quickstart guide
Wireless solar keyboard k760 quickstart guide
 
State of Serverless Report 2020
State of Serverless Report 2020State of Serverless Report 2020
State of Serverless Report 2020
 
Dont just roll the dice
Dont just roll the diceDont just roll the dice
Dont just roll the dice
 

Recently uploaded

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Recently uploaded (20)

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

Lecture 12 andrew fitzgibbon - 3 d vision in a changing world

  • 1. 3D  Vision  in  a  Changing  World  
  • 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  
  • 4. FITTING  HANDS  TO  3D  DATA  
  • 5. FITTING  HANDS  TO  3D  DATA  
  • 6. FITTING  SUBDIVISION  SURFACES  TO  2D  DATA  
  • 7. FITTING  SUBDIVISION  SURFACES  TO  2D  DATA  
  • 8. REALTIME  MESH  FITTING  TO  3D   9  
  • 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  
  • 20.         ...  but  so  flat,  so  dull  ...  
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. HOW  DO  I  DO  IT?   Optic  flow   Error  Accumulation,  No  occlusion   Desired  
  • 26.
  • 27. The  future  of  computer  vision     28  
  • 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 (​ 𝑥↓𝑖 −​ 𝜇↓𝑘 ))    
  • 34. WHAT,  WHAT,  HOW   35                 Model   𝒑(​ 𝒙↓𝒊 )   Objective   Algorithm   𝒩(​ 𝑥↓𝑖 ;   𝑐,1)   ​​min┬𝑐 ⁠∑ 𝑖↑▒​(​ 𝑥↓𝑖 − 𝑐)↑2      mean   𝒩(​ 𝑥↓𝑖 ;   𝑐, 𝜎)   ​​min┬𝑐, 𝜎 ⁠∑ 𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  )     Mean  &   variance   ∑𝑘↑▒​ 𝛼↓𝑘  𝒩(​ 𝑥↓𝑖 ;​ 𝜇↓𝑘 ,​Σ↓𝑘 )    ​​max┬█■​ 𝛼↓1.. 𝐾 ⁠█■​ 𝜇↓1.. 𝐾 ⁠​Σ↓1.. 𝐾    ⁠∑ 𝑖↑▒​log⁠ 𝑝(​ 𝑥↓𝑖 )      GMM-­‐EM   Bishop’96  
  • 35. DRILLDOWN:  FITTING  A  GAUSSIAN   36   𝐸(𝑐, 𝜎)=∑𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  )    𝑐→   ← 𝜎  
  • 36. “Closed  form”   “Just  do  it”   !  Set  ​ 𝜕 𝐸/𝜕𝑐 =0,​ 𝜕 𝐸/𝜕𝜎 =0   37   HOW  TO  MINIMIZE   𝐸( 𝑐, 𝜎)   𝐸(𝑐, 𝜎)=∑𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  )   
  • 37. !  It’s  quasiconvex.   !  Are  you  relieved?   BUT  HOW  CAN  FMINUNC  POSSIBLY  WORK?   38  
  • 38. Model   Algorithm   !  For   𝑖=1: 𝑛  ​ 𝜈↓𝑖   ~  Gaussian(0, 𝜎)    ​ 𝑥↓𝑖  = 𝑐+​ 𝑣↓𝑖        39   AH,  BUT  I  KNOW  MORE:  PRIOR  ON   𝜎  
  • 39. Model   Algorithm   !  𝜎  ~  Exponential(𝜆=0.5)   For   𝑖=1: 𝑛  ​ 𝜈↓𝑖   ~  Gaussian(0, 𝜎)    ​ 𝑥↓𝑖  = 𝑐+​ 𝑣↓𝑖        40   AH,  BUT  I  KNOW  MORE:  PRIOR  ON   𝜎   𝐸(𝑐, 𝜎)=∑𝑖↑▒(​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝜎↑2  +​log⁠​ 𝜎↑2  ) + 𝜆𝜎  
  • 40.       ...  Quick  Matlab  interlude  ...     (these  scripts  are  on  awful.codeplex.com)   41  
  • 54. FAILURE  OF  NEWTON'S  METHOD  
  • 55. FAILURE  OF  NEWTON'S  METHOD  
  • 56. FAILURE  OF  NEWTON'S  METHOD  
  • 57. FAILURE  OF  NEWTON'S  METHOD  
  • 58. FAILURE  OF  NEWTON'S  METHOD  
  • 59. FAILURE  OF  NEWTON'S  METHOD  
  • 60. FAILURE  OF  NEWTON'S  METHOD  
  • 61. HOW  TO  GET  THE  BEST  OF  BOTH  WORLDS?   !  Over  to  you...  
  • 62. MULTIPLE  DIMENSIONS   !  Alternation   !  Gradient  descent   !  2nd  order  methods  
  • 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  
  • 71. WHAT,  WHAT,  HOW   73                 Model   𝒑(​ 𝒙↓𝒊 )   Objective   Algorithm   𝒩(​ 𝑥↓𝑖 ;   𝑐,1)   ∑𝑖↑▒​(​ 𝑥↓𝑖 − 𝑐)↑2     mean   𝐶𝑎𝑢𝑐ℎ𝑦(​ 𝑥↓𝑖 ; 𝑐, 𝛾)   ∑𝑖↑▒​log⁠(1+​​(​ 𝑥↓𝑖 − 𝑐)↑2 /​ 𝛾↑2  ) + 𝑓( 𝛾)    ?   𝐿𝑎𝑝𝑙𝑎𝑐𝑒(​ 𝑥↓𝑖 ;   𝑐)   ∑𝑖↑▒|​ 𝑥↓𝑖 − 𝑐|    ?  
  • 72. WHAT,  WHAT,  HOW   74                 Model   Algorithm   ​ 𝑥↓𝑖 = 𝑐+𝓃   Mean,  median,  trimmed  mean   ​ 𝑥↓𝑖 = 𝑅​ 𝑦↓𝑐(𝑖) + 𝑇   “ICP”   ​ 𝒙↓𝑖 = 𝐴​ 𝒗↓𝑖 ,  ​ 𝒙↓𝑖 ∈​ℝ↑𝑁 ,​ 𝒗↓𝑖 ∈​ℝ↑𝑑    Principal  Components  Analysis   Principle  Components  Analysis   PCA  with  missing  data ​ 𝒙↓𝑖 = 𝑑𝑖𝑎𝑔(𝑊𝑒𝑖𝑔ℎ𝑡​ 𝑠↓𝑖 )𝐴​ 𝒗↓𝑖    “Imputation”   ​ 𝒙↓𝑖 = 𝑓(​ 𝜃↓𝑖 )𝐴​ 𝒗↓𝑖    Transformed  Components   Analysis   GMM   “EM”  
  • 73. !  So.    Nonlinear  optimization  works.   !  Let’s  look  at  nonrigid  3d  reconstruction.   79  
  • 74. HOW  DO  I  DO  IT?   Non-­‐Rigid  Structure  from  Motion   C  Bregler,  L  Torresani,  A  Hertzmann,  H  Biermann   CVPR  2000  –  PAMI  2008  
  • 75.
  • 76. (311, 308)   311   308    
  • 77. (204, 285)   311   308   204   285    
  • 78. (142, 296)   311   308   204   285   142   296  
  • 79. 311   308     204   285   142   296   *   *  
  • 80. 204,285   142,296  311,308   2T   311   308     204   285   142   296   *   *  
  • 81.    *      *      *      *   357   377      333      377     204,285   142,296  311,308   357,377   333,377   311   308     204   285   142   296   *   *    *      *      *      *   357   377   333   377  
  • 82. 311   308     204   285   142   296   *   *    *      *      *      *   357   377   333   377  
  • 83. track  no.   Frame  no   1   2T   1   ntracks   (For  this  example:  ntracks  =  1135,  T  =  227)   MEASUREMENT  MATRIX:  S  
  • 84. Derive  S= 𝑃   𝑋,  and  factorize   …   ​ 𝑃↓1    ​ 𝑃↓2    ​ 𝑃↓𝑇    ​ 𝑋↓1    ​ 𝑋↓𝑚    track  no.   Frame  no   1 2T   1 ntracks   (For  this  example:  ntracks  =  1135,  T  =  227)   ⋮   ⋮   ​ 𝑋↓𝑗 :4×1   ​ 𝑃↓𝑖 :2×4  
  • 85. !  3D  Point      ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]     !  Affine  camera    ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​ 𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ]   !  2D  point      ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗    AFFINE  STRUCTURE  FROM  MOTION  
  • 86. !  ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​ 𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ],  ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]   !  2D  point      ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗    !  2T-­‐D  track          [█■​ 𝑥↓1 𝑗 ⁠​ 𝑥↓2 𝑗 ⁠⋮⁠​ 𝑥↓𝑇𝑗  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ]​ 𝑋↓𝑗    AFFINE  STRUCTURE  FROM  MOTION  
  • 87. !  ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​ 𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ],  ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]   !  2D  point      ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗    !  [█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][█■​ 𝑋↓1 &​ 𝑋↓2 &…&​ 𝑋↓𝑚  ]   AFFINE  STRUCTURE  FROM  MOTION  
  • 88. !  ​ 𝑃↓𝑖 =[█■​ 𝑝↓𝑖11 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖13 &​ 𝑝↓𝑖14 @​ 𝑝↓𝑖21 &​ 𝑝↓𝑖22 &​ 𝑝↓𝑖24 &​ 𝑝↓𝑖24  ],  ​ 𝑋↓𝑗 =[█■​ 𝑥↓𝑗 ⁠​ 𝑦↓𝑗 ⁠​ 𝑧↓𝑗 ⁠1 ]   !  2D  point      ​ 𝑥↓𝑖𝑗 =​ 𝑃↓𝑖 ​ 𝑋↓𝑗    !  [█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][█■​ 𝑋↓1 &​ 𝑋↓2 &…&​ 𝑋↓𝑚  ]   !  Matrix  factorization:   𝑆= 𝑃𝑋,  the  same  equations  as  PCA   !  Hint  1:  Do  not  use  SVD.   AFFINE  STRUCTURE  FROM  MOTION  
  • 89. Derive  S= 𝑃   𝑋,  and  factorize   …   ​ 𝑃↓1    ​ 𝑃↓2    ​ 𝑃↓𝑇    ​ 𝑋↓1    ​ 𝑋↓𝑚    track  no.   Frame  no   1 2T   1 ntracks   (For  this  example:  ntracks  =  1135,  T  =  227)   ⋮   ⋮   ​ 𝑋↓𝑗 :4×1   ​ 𝑃↓𝑖 :2×4   [█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][​ 𝑋↓1   ​ 𝑋↓2 …​ 𝑋↓𝑚 
  • 90. Derive   𝑀= 𝑃  (∑𝑘↑▒​ 𝛼↓𝑘 ​ 𝐵↓𝑘 ) ,  and  factorize   LINEAR  SHAPE  BASIS   [█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][​ 𝑋↓1   ​ 𝑋↓2 …​ 𝑋↓𝑚 ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ]​×↓2 [█■​ 𝛼↓1↑1 …​ 𝛼↓1↑𝑘 ⁠⋮⁠​ 𝛼↓𝑚↑1 …​ 𝛼↓𝑚↑𝑘  ]​×↓? [​ 𝐵↓1   ​ 𝐵↓2 …​ 𝐵↓𝐾 ]   ​ 𝛼↓𝑖0   ​ℬ↓0    ​ 𝛼↓𝑖1   ​ℬ↓1    ​ 𝛼↓𝑖2   ​ℬ↓2   +   +  ​ 𝒳↓𝑖 =  
  • 91. Derive   𝑀= 𝑃  (∑𝑘↑▒​ 𝛼↓𝑘 ​ 𝐵↓𝑘 ) ,  and  factorize   LINEAR  SHAPE  BASIS   [█■​ 𝑥↓11 &​ 𝑥↓12 &…&​ 𝑥↓1 𝑚 @​ 𝑥↓21 &​ 𝑥↓22 &…&​ 𝑥↓2 𝑚 @⋮&⋮&⋱&⋮@​ 𝑥↓𝑇1 &​ 𝑥↓𝑇2 &…&​ 𝑥↓𝑇𝑚  ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ][​ 𝑋↓1   ​ 𝑋↓2 …​ 𝑋↓𝑚 ]=[█■​ 𝑃↓1 ⁠​ 𝑃↓2 ⁠⋮⁠​ 𝑃↓𝑇  ]​×↓2 [█■​ 𝛼↓1↑1 …​ 𝛼↓1↑𝑘 ⁠⋮⁠​ 𝛼↓𝑚↑1 …​ 𝛼↓𝑚↑𝑘  ]​×↓? [​ 𝐵↓1   ​ 𝐵↓2 …​ 𝐵↓𝐾 ]   ​ 𝛼↓𝑖0   ​ℬ↓0    ​ 𝛼↓𝑖1   ​ℬ↓1    ​ 𝛼↓𝑖2   ​ℬ↓2   +   +  ​ 𝒳↓𝑖 =  
  • 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     
  • 97. NONLINEAR  EMBEDDING  INTO  ​ℝ↑ 𝟐   
  • 98. EVERYTHING’S  EASY  WITH  A  REFERENCE  
  • 101.
  • 102.
  • 104.
  • 105. Something  trickier   111   3D  reconstruction  of  object  classes   from  silhouettes    
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113. RIGID  MODEL   Easy  to  make  a  rough  rigid  model.     But  need  to:   1.  Match  it  to  images   2.  Learn  how  it  moves  
  • 114.
  • 115. MODEL  REPRESENTATION   ​ 𝒳↓𝑛 =∑𝑘=0↑𝐾▒​ 𝛼↓𝑖𝑘 ​ℬ↓𝑘     ​ 𝛼↓𝑖0   ​ℬ↓0    ​ 𝛼↓𝑖1   ​ℬ↓1    ​ 𝛼↓𝑖2   ​ℬ↓2   +   +  ​ 𝒳↓𝑖 =   Linear  blend  shapes:     Image  𝑖  represented  by  coefficient   vector  ​ 𝜶↓𝑖 =[​ 𝛼↓𝑖1 ,…,​ 𝛼↓𝑖𝐾 ]  
  • 116. MODEL  REPRESENTATION   ​ 𝒳↓𝑛 =∑𝑘=0↑𝐾▒​ 𝛼↓𝑖𝑘 ​ℬ↓𝑘     ​ 𝛼↓𝑖1   ​ℬ↓1    ​ 𝛼↓𝑖2   ​ℬ↓2   +   +  ​ 𝒳↓𝑖 =   Linear  blend  shapes:     Image  𝑖  represented  by  coefficient   vector  ​ 𝜶↓𝑖 =[​ 𝛼↓𝑖1 ,…,​ 𝛼↓𝑖𝐾 ]      ​ℬ↓0   
  • 117. DATA  TERMS   Image 𝑖 ​ 𝒔 ↓ 𝑖 𝑗  ,  ​ 𝒏 ↓ 𝑖 𝑗     Linear  Blend  Shapes  Model:   ​ 𝑿↓𝑖 =∑𝑘↑▒​ 𝛼↓𝑖𝑘 ​ 𝑩↓𝑘       Silhouette:   ​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖​ 𝑠↓𝑖𝑗 − 𝜋(​ 𝜃↓𝑖 ,   𝑀(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 ))‖↑2     Normal:   ​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖[█■​ 𝑛↓𝑖𝑗 @0 ]−​ 𝑅↓𝑖 𝑁(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 )‖↑2    
  • 118. SURFACE  FITTING  TO  MULTIPLE  SILHOUETTES  
  • 119. APPLICATIONS   Curve/surface  fitting   Parameter  estimation   “Bundle  adjustment”   (Video  from  our  friends  at  G)  
  • 120. SURFACE  FITTING       126  
  • 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  { 𝑀(𝑢;Θ)| 𝑢∈Ω}   𝑢 𝑣
  • 125. WE  KNOW  THE  EXACT  MODEL   132   𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )      
  • 126. AND  ESTIMATING  IT  WELL  GETS  US  CLOSE…   133   𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )      
  • 127. !  Given  a  parametric  surface  model   𝑀(𝒖;Θ)     !  And  data  samples  ​{​ 𝒔↓𝑖 }↓𝑖=1↑𝑚 ⊂​ℝ↑3    !  And  known  correspondences  ​{​ 𝒖↓𝑖 }↓𝑖=1↑𝑚 ⊂Ω   !  Compute   ​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖↑▒‖​ 𝒔↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖     !  For  various  “norms”  ‖⋅‖ SURFACE  FITTING:  KNOWN  CORRESPONDENCES   134   𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )      
  • 128. Problem:   !  Parametric  surface  model   𝑀(𝒖;Θ)   !  Data  samples  ​{​ 𝒔↓𝑖 }↓𝑖=1↑𝑚 ⊂​ℝ↑3    !  Correspondences  ​{​ 𝒖↓𝑖 }↓𝑖=1↑𝑚 ⊂Ω ​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖↑▒‖​ 𝒔↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖     Solution:   !  Derivatives   ​ 𝜕 𝐸/𝜕Θ =−2∑𝑖↑▒(​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ))⋅​ 𝜕/𝜕Θ 𝑀(​ 𝒖↓𝑖 ;Θ)    !  And  solve  ​ 𝜕 𝐸/𝜕Θ =0      KNOWN  CORRESPONDENCES:  EASY   135   𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )      
  • 129. Input:   !  Parametric  surface  model   𝑀(𝒖;Θ)   !  Data  samples  ​{​ 𝒔↓𝑖 }↓𝑖=1↑𝑚 ⊂​ℝ↑3    !  Correspondences  ​{​ 𝒖↓𝑖 }↓𝑖=1↑𝑚 ⊂Ω ​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖↑▒‖​ 𝒔↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖     Compute:           !  Assuming  smooth   𝑀…  See  later   KNOWN  CORRESPONDENCES:  EASY   136   interface  Surface  {      Vec3      Eval_M(Vec2   𝑢,  VecN  Θ);      //  Derivatives      Vec3      Eval_Mu(Vec2   𝑢,  VecN  Θ);      Vec3      Eval_Mv(Vec2   𝑢,  VecN  Θ);      Matrix  Eval_M 𝚯(Vec2   𝑢,  VecN  Θ);   };     struct  Problem  {      Vec3  s[m];      Vec2  u[m];      Surface  M;            Vec3m  residuals(VecN  Θ)  -­‐>  out  {          for(i…)            out[3i:3i+2]  =                s[i]  –  M.Eval_M(u[i],  Θ);      }      Matrix3mxN  jacobian(VecN  Θ)  -­‐>  J  {            …  J[3i][p]=  …  M.Eval_Mu  …    …  M.Eval_MΘ  …      }   }     Problem  prob;   VecN  Θ  =  some_generic_initializer(…);   Θ  =  LevenbergMarquardt(prob,  Θ);  
  • 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  
  • 131. BAD  SOLUTION:  “ALTERNATION”  OR  “ICP”   ICP,  a  bad  1st-­‐order  method   𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )         Problem:    Find  ​Θ↑∗    ​Θ↑∗ =​​argmin┬Θ ⁠∑ 𝑖=1↑𝑚▒​​min┬𝑢 ⁠​‖​ 𝒔↓𝑖 − 𝑀( 𝑢;Θ)‖↑2           Solution:   -­‐  Get  initial  ​Θ↓0    -­‐  Repeat   -­‐  ∀ 𝑖:​ 𝑢↓𝑖 ≔​​argmin┬𝑢 ⁠​‖​ 𝒔↓𝑖 − 𝑀( 𝑢;Θ)‖↑2     -­‐  Θ≔  ​​argmin┬Θ ⁠∑ 𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2     
  • 132. JOINT  MINIMIZATION  OF   𝑢  AND   𝑋   𝐸(Θ)=  ∑𝑖=1↑𝑚▒​​min┬​ 𝑢↓𝑖  ⁠​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2    =​​min┬​ 𝑢↓1.. 𝑚  ⁠∑ 𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2      𝐸({​ 𝑢↓1 ,  …,  ​ 𝑢↓𝑚 },Θ)=  ∑𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2       !  Joint  minimization  of  {​ 𝑢↓1 ,  …,  ​ 𝑢↓𝑚 }  and   𝑋  using  a  non-­‐linear  optimiser.   "  Move  calculating  the  minimum  distance  “out”  to  the  overall  minimization  problem.  
  • 133. BETTER  SOLUTION:  JUST  USE  LSQNONLIN   Lsqnonlin,   𝑚+6  params,  slowed  down  10x   𝑀(𝑢,Θ)=(█■​ 𝜃↓1 ​cos⁠ 𝑢+​ 𝜃↓2 ​sin⁠ 𝑢 +​ 𝜃↓3  ⁠​ 𝜃↓4 ​cos⁠ 𝑢+​ 𝜃↓5 ​sin⁠ 𝑢 +​ 𝜃↓6   )         Problem:    Find  ​Θ↑∗    ​Θ↑∗ =​​argmin┬Θ,​u↓1 ,…,​ 𝑢↓𝑚  ⁠∑ 𝑖=1↑𝑚▒​‖​ 𝒔↓𝑖 − 𝑀(​ 𝑢↓𝑖 ;Θ)‖↑2          Solution:   -­‐  Get  initial  ​Θ↓0    -­‐  ∀ 𝑖:​ 𝑢↓𝑖 ≔​​argmin┬𝑢 ⁠​‖​ 𝒔↓𝑖 − 𝑀( 𝑢;Θ)‖↑2     -­‐  ​Θ↑∗ =  lsqnonlin( 𝐸,[​Θ↓0 ,​ 𝑢↓1 ,..,​ 𝑢↓𝑚 ])   [Or  au_levmarq  on  http://awful.codeplex.com]  
  • 134. CONVERGENCE  RATES   ICP,  a  bad  1st-­‐order  method   A  second  order  method,  slowed  down  10x  
  • 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↑𝑚▒‖​ 𝑠↓𝑖 − 𝑀(​ 𝒖↓𝑖 ;Θ)‖     Θ   ​ 𝒖↓ 𝟏 …​ 𝒖↓𝒎   
  • 139. FITTING  A  CUBIC  B-­‐SPLINE   Contour:  linear  in  control  vertices   𝑋∈​ℝ↑2×4 ,  piecewise  cubic  in   𝑢       𝑀(𝑢; 𝑋)=​ 𝒙↓𝑖 (​​−​ 𝑢 ↑3 /6 +​​​ 𝑢 ↑2 /2 −​​ 𝑢 /2 +​1/6 )+​ 𝒙↓⌊𝑢⌋⊕1 (​​​ 𝑢 ↑3 /2 −​​ 𝑢 ↑2 +​2/3 )+​ 𝒙↓⌊𝑢⌋⊕2 (​​−​ 𝑢 ↑3 /2 +​​​ 𝑢 ↑2 /2 +​​ 𝑢 /2 +​1/6 )+​ 𝒙↓⌊𝑢⌋⊕3 (​​​ 𝑢 ↑3 /6 )     𝑖=⌊𝑢⌋,  ​ 𝑢 = 𝑢− 𝑖    
  • 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.  
  • 142. TOOL:  SUBDIVISION  SURFACES       149  
  • 143. CONTROL  MESH   151   Control  mesh  vertices   𝑉∈​ℝ↑3× 𝑛    Here   𝑛=16  
  • 144. SUBDIV  RULE:  STEP  1.  ADD  NEW  VERTICES   152  
  • 145. SUBDIV  RULE:  STEP  2.  AVERAGE  NEIGHBOURS   153  
  • 146. 2    SUBDIVISIONS   154  
  • 147. 3    SUBDIVISIONS   155  
  • 148. LIMIT  SURFACE   156   Control  mesh  vertices   𝑉∈​ℝ↑3× 𝑛    Here   𝑛=16   Blue  surface  is  { 𝑀(𝒖; 𝑉)  |   𝒖∈Ω}     Ω  is  the  grey  surface  
  • 149. CONTROL  VERTICES  DEFINE  THE  SHAPE   157   Control  mesh  vertices   𝑉∈​ℝ↑3× 𝑛    Here   𝑛=16   Blue  surface  is  { 𝑀(𝒖; 𝑉)  |   𝒖∈Ω}     Ω  is  the  grey  surface  
  • 150. !  Mostly,   𝑀  is  quite  simple:   𝑀(𝒖; 𝑋)= 𝑀(𝑡,   𝑢, 𝑣;​ 𝒙↓1 ,…,​ 𝒙↓𝑛 )=∑█■𝑖+ 𝑗≤4⁠ 𝑘=1.. 𝑛 ↑▒​ 𝐴↓𝑖𝑗𝑘↑𝑡 ​ 𝑢↑𝑖 ​ 𝑣↑𝑗 ​ 𝒙↓𝑘     "  Integer  triangle  id   𝑡   "  Quartic  in   𝑢, 𝑣   "  Linear  in   𝑋   "  Easy  derivatives   !  But…   "  2nd  Derivatives  unbounded  although  normals  well  defined   "  Piecewise  parameter  domain   SUBDIVISION  SURFACE:  PARAMETRIC  FORM   158  
  • 152. SIGNAL:  OBJECT  SILHOUETTE       160  
  • 153. ​ 𝒔↓𝑖𝑗   2D  point   ​ 𝒏↓𝑖𝑗   2D  normal   DATA  TERMS   Image 𝑖 ​ 𝒖↓𝑖𝑗   Contour  generator    preimage  in   𝛀    (unknown)     c.g.  point  in  3D  is   𝑀(​ 𝒖↓𝑖𝑗 ;​ 𝑿↓𝑖 )    
  • 154. DATA  TERMS   Image 𝑖 ​ 𝒔 ↓ 𝑖 𝑗  ,  ​ 𝒏 ↓ 𝑖 𝑗     Linear  Blend  Shapes  Model:   ​ 𝑿↓𝑖 =∑𝑘↑▒​ 𝛼↓𝑖𝑘 ​ 𝑩↓𝑘       Silhouette:   ​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖​ 𝑠↓𝑖𝑗 − 𝜋(​ 𝜃↓𝑖 ,   𝑀(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 ))‖↑2     Normal:   ​ 𝐸↓𝑖↑𝑠𝑖𝑙 =∑𝑗=1↑​ 𝑆↓𝑖 ▒​‖[█■​ 𝑛↓𝑖𝑗 @0 ]−​ 𝑅↓𝑖 𝑁(​ 𝑢↓𝑖𝑗 ,  ​ 𝑿↓𝑖 )‖↑2    
  • 155. Data  fidelity   terms   “Technical”   terms     Smoothing   terms    
  • 156. 165  
  • 157. OPTIMIZATION   !  Alternation++:   "  Dynamic  programming  on  discretized   𝑢  parameters   "  Quasi-­‐Newton  on  all  parameters   !  NOT:   "  Fit  shapes,  perform  PCA,  repeat  
  • 158. INITIAL  ESTIMATE  FOR  MEAN  SHAPE   This  is  true,  but  misleading  
  • 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  
  • 160.
  • 164. NUMBER  OF  IMAGES   173   8   16   32  
  • 165. PARAMETER  SENSITIVITY   “Pixel”  terms:  noise  level  params   “Dimensionless”  terms   “Smoothness”  terms   𝐸=∑𝑖=1↑𝑛▒(​ 𝐸↓𝑖↑sil +​ 𝐸↓𝑖↑norm +​ 𝐸↓𝑖↑con )     +      ∑𝑖=1↑𝑛▒(​ 𝐸↓𝑖↑cg +​ 𝐸↓𝑖↑reg )       +      ​ 𝝃↓ 𝟎↑ 𝟐 ​ 𝐸↓0↑tp +​ 𝝃↓ 𝐝𝐞𝐟↑ 𝟐 ∑𝑖=1↑𝑛▒​ 𝐸↓𝑚↑tp    
  • 166.
  • 167.
  • 168.
  • 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  
  • 171. A  NOTE  ON  MANIFOLDS   180  
  • 172. GIVEN  ®,  WHAT  IS  P(X|®)?   -2 -1 0 1 2 -2 -1 0 1 2
  • 173. -2 -1 0 1 2 -2 -1 0 1 2 APPROXIMATE  BY  MAX...  
  • 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