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 |