FlowNet 2.0

Ilg 2017 · Paper

One-line summary — Stacks multiple FlowNet modules with intermediate warping and adds a dedicated small-displacement sub-network, cutting FlowNet’s estimation error by more than 50% and becoming the first deep method to match classical variational optical flow at interactive frame rates.

Problem

FlowNet demonstrated that optical flow estimation can be cast as a learning problem, but the state of the art in flow quality was still defined by traditional variational methods — particularly on small displacements and real-world data, where FlowNet could not compete. Simply making a single FlowNet deeper or wider did not help. The missing ingredient was iterative refinement: classical methods progressively refine a coarse estimate, and FlowNet 2.0 rebuilds that mechanism inside a learnable pipeline.

Method & architecture

The paper’s three contributions form the pipeline:

1. Dataset schedules. The order of training data matters: training FlowNetS/FlowNetC on the simple FlyingChairs first and only then fine-tuning on the 3D FlyingThings3D consistently beats training on either alone or on a mixture — the conjecture is that Chairs teaches general color matching before the network develops confusing priors for 3D motion and lighting. Three learning-rate schedules are defined (SshortS_{\mathit{short}} with 600k iterations, SlongS_{\mathit{long}} with 1.2M, and a low-rate fine-tuning schedule SfineS_{\mathit{fine}}). Schedule changes alone improved FlowNetS results by ~25% and FlowNetC by ~30%, and showed that FlowNetC (with its correlation layer) beats FlowNetS when trained under equal conditions.

2. Stacked networks with warping. A bootstrap FlowNetC receives I1,I2I_1, I_2; every subsequent FlowNetS receives I1I_1, I2I_2, the current flow estimate wi=(ui,vi)w_i = (u_i, v_i)^\top, the second image warped by it via bilinear interpolation

I~2,i(x,y)=I2(x+ui, y+vi)\tilde{I}_{2,i}(x,y) = I_2(x + u_i,\ y + v_i)

and the brightness error ei=I~2,iI1e_i = \lVert \tilde{I}_{2,i} - I_1 \rVert, so each stage only estimates the remaining increment between I1I_1 and I~2,i\tilde{I}_{2,i}. Warping is differentiable, so the stack could train end-to-end, but the best results come from training networks one at a time with earlier ones frozen (stacking without warping overfits). Stacks are named by their components — FlowNet2-CSS is FlowNetC followed by two FlowNetS; lower-case letters denote thin variants with 3/8 of the channels. FlowNet2-CSS improves ~30% over the single FlowNet2-C and ~50% over the original FlowNetC; two small networks beat one large one (FlowNet2-ss at 11M weights outperforms FlowNet2-S at 38M).

3. Small-displacement sub-network and fusion. Real-world video (e.g. UCF101) has mostly sub-pixel motion, which the existing training data lacks; the authors build ChairsSDHom (Chairs-style data with small displacements and homogeneous backgrounds) and FlowNet2-SD — a FlowNetS variant with the stride-2 removed from the first layer, the 7x7/5x5 kernels replaced by multiple 3x3 kernels, and extra convolutions between the upconvolutions to smooth noise. A small fusion network takes both branches’ flows, flow magnitudes, and warped-brightness errors, and outputs the final full-resolution estimate; the whole system is called FlowNet2.

Results

Why it matters for SLAM

FlowNet 2.0 was the moment deep optical flow became genuinely usable: accurate enough to trust and fast enough for online pipelines, which made dense flow a realistic ingredient for visual odometry front-ends. Its stack-and-warp iterative refinement paradigm led directly to PWC-Net and ultimately to RAFT’s recurrent updates — the mechanism at the heart of today’s learned SLAM systems — and its Chairs-then-Things3D curriculum became standard practice for training flow and stereo networks.