June 26, 2016

Fitting surface models to data: Accuracy, Speed, Robustness

09:00 - 17:15

Location: CVPR Conference

Andrew Fitzgibbon, Microsoft
Jon Taylor, PerceptiveIO

CVPR Tutorial

In vision and machine learning, almost everything we do may be considered to be a form of model fitting. Whether estimating the parameters of a convolutional neural network, computing structure and motion from image collections, tracking objects in video, computing low-dimensional representations of datasets, estimating parameters for an inference model such as Markov random fields, or extracting shape spaces such as active appearance models, it almost always boils down to minimizing an objective containing some parameters of interest as well as some latent or nuisance parameters.  This tutorial will describe several tools and techniques for solving such optimization problems, with a focus on fitting 3D smooth-surface models, such as subdivision surfaces, to 2D and 3D data.

 

09:00 Intro: Applications in vision and graphics.

·       Lots of exciting and inspirational examples of model fitting:

o   Kinetre (Siggraph 12)

o   Dolphins (PAMI 13)

o   Nonrigid tracking (Siggraph 14)

o   FlexSense (CHI 15)

o   Hand tracking (Siggraph 15)

·       Preview of the day

09:20 Session I: Matrix and vector calculus

·       vector functions and the Jacobian, generalized Jacobian

·       advanced matrix operations: block operations, kronecker products etc

·       derivatives of matrix expressions

·       finite-difference versus symbolic derivatives

·       sparse matrices and sparse storage

·       derivatives of minimization problems

·       nonlinear optimization, Gauss-Newton and Levenberg-Marquardt algorithms

10:30 Coffee
10:45 Session II: Curves, Surfaces, Correspondences

·       What is a surface?  Parametric descriptions of curves and surfaces

·       Surfaces and data points: closest point operations

·       Fitting surfaces to data: correspondences

o   Iterated closest points

o   “Lifting” correspondences

·       Worked example: Gauss’s Ceres problem

11:40 Break and stretch
11:45 Session III: More on surfaces

·       Subdivision surfaces in 3D

·       Taking walks in parameter space

·       Implementing for speed

12:30 Lunch
14:00 Session III: Robustness and speed

·       Using robust kernels in Levenberg-Marquardt (general interest)

o   A great example of where “lifting” really helps

·       Implementing rotations: quaternions vs infinitesimals with recentering

·       Schur complement QR

15:00 Coffee/Stretch
15:15 Session IV: Software

·       OpenSubdiv

·       Eigen

·       Ceres

·       Opt

·       AD tools: Theano etc

16:15 More coffee, more stretching
16:30 Session V: Conclusions and open problems

·       Topology adaptation

·       Where are the local minima?

·       And where lifting really hurts: VarPro algorithms

17:15 Close