DeMoN

Ummenhofer 2017 · Paper

One-line summary — DeMoN (CVPR 2017) formulated two-view structure-from-motion as a learning problem: a chain of stacked encoder-decoder networks jointly estimates depth and camera motion from an unconstrained image pair, learning correspondence via forced optical-flow prediction.

Problem

Classical two-view SfM chains keypoint detection, descriptor matching, essential-matrix estimation, and dense stereo — motion is estimated first from sparse, outlier-prone correspondences, so a bad motion estimate poisons the depth, texture-poor regions fail, and all existing pipelines break under small camera translation. Single-image depth networks avoid matching but generalize poorly outside their training distribution because they rely purely on appearance priors. DeMoN trains a network end-to-end to compute depth and motion from successive, unconstrained image pairs — and shows that the naive approach fails: a plain encoder-decoder fed two frames takes the single-image shortcut and simply ignores the second image.

Method & architecture

gh[f]=(f(i+h,j)f(i,j)f(i+h,j)+f(i,j), f(i,j+h)f(i,j)f(i,j+h)+f(i,j)),\mathbf{g}_{h}[f]=\left(\tfrac{f(i+h,j)-f(i,j)}{|f(i+h,j)|+|f(i,j)|},\ \tfrac{f(i,j+h)-f(i,j)}{|f(i,j+h)|+|f(i,j)|}\right)^{\top},

Lgradξ=h{1,2,4,8,16}i,j gh[ξ]gh[ξ^] 2,\mathcal{L}_{\text{grad}\,\xi}=\sum_{h\in\{1,2,4,8,16\}}\sum_{i,j}\left\|\ \mathbf{g}_{h}[\xi]-\mathbf{g}_{h}[\hat{\xi}]\ \right\|_{2},

which penalizes relative depth errors between neighbours over 5 spacings — sharpening depth discontinuities and smoothing homogeneous regions.

Results

Why it matters for SLAM

DeMoN is the ancestor of the “feed the network two images, get geometry out” family. It demonstrated that learned two-view geometry needs matching, not just recognition — a lesson that still shapes front-end design — and its learned iterative refinement prefigures BA-Net, DeepV2D, and RAFT-style systems, while its unconstrained two-view setting is exactly what DUSt3R revisits at foundation-model scale.