  Both optical flow and stereo disparities are image matches and can therefore
benefit from joint training. Depth and 3D motion provide geometric rather than
photometric information and can further improve optical flow. Accordingly, we
design a first network that estimates flow and disparity jointly and is trained
without supervision. A second network, trained with optical flow from the first
as pseudo-labels, takes disparities from the first network, estimates 3D rigid
motion at every pixel, and reconstructs optical flow again. A final stage fuses
the outputs from the two networks. In contrast with previous methods that only
consider camera motion, our method also estimates the rigid motions of dynamic
objects, which are of key interest in applications. This leads to better
optical flow with visibly more detailed occlusions and object boundaries as a
result. Our unsupervised pipeline achieves 7.36% optical flow error on the
KITTI-2015 benchmark and outperforms the previous state-of-the-art 9.38% by a
wide margin. It also achieves slightly better or comparable stereo depth
results. Code will be made available.
