DeepTAM

Zhou 2018 · Paper

One-line summary — DeepTAM (ECCV 2018) is a learned re-imagining of DTAM: a coarse-to-fine tracking network estimates pose increments against a synthetic keyframe view, and a mapping network extracts keyframe depth from a plane-sweep cost volume refined in a narrow band around the current estimate.

Problem

Classical dense tracking-and-mapping (DTAM, LSD-SLAM) relies on direct photometric minimization and handcrafted regularizers, which are brittle under low texture and need good initialization. Naive learned alternatives (DeepVO, SfM-Learner, UnDeepVO) regress motion between two frames and inherit the motion statistics of their training sets — KITTI-style planar 3-DoF motion — so they generalize poorly to full 6-DoF tracking. DeepTAM asks whether keyframe-based dense camera tracking and depth-map estimation can be entirely learned while keeping the proven tracking/mapping architecture.

Method & architecture

Tracking. Given the current image IC\mathbf{I}^C and a keyframe (IK,DK)(\mathbf{I}^K, \mathbf{D}^K) (image + inverse depth), the goal is the transform TKC\mathbf{T}^{KC} with TC=TKTKC\mathbf{T}^{C}=\mathbf{T}^{K}\mathbf{T}^{KC}, all in SE(3)\mathbf{SE}(3). Instead of regressing this directly, DeepTAM renders a virtual keyframe (IV,DV)(\mathbf{I}^V, \mathbf{D}^V) at the current pose guess TV\mathbf{T}^V and learns only the small increment

TC=TVδT,δT=f(IC,IV,DV),\mathbf{T}^{C}=\mathbf{T}^{V}\,\delta\mathbf{T}, \qquad \delta\mathbf{T}=f(\mathbf{I}^{C},\mathbf{I}^{V},\mathbf{D}^{V}),

which “significantly simplifies the learning problem and alleviates the dataset bias for camera motions.” Three encoder-decoder networks run coarse-to-fine at 80×6080\times 60, 160×120160\times 120, and 320×240320\times 240; each predicts an increment δTi\delta\mathbf{T}_i against a freshly rendered virtual keyframe, and the final pose is the product of all increments. An auxiliary optical-flow branch (active only during training) forces the encoder to learn motion features. Rather than one pose, N=64N=64 weight-sharing fully connected branches emit hypotheses δξi=(ri,ti)\delta\boldsymbol{\xi}_i=(\mathbf{r}_i,\mathbf{t}_i)^{\top} (angle-axis rotation + translation), averaged as

δξ=1Ni=1N=64δξi.\delta\boldsymbol{\xi}=\frac{1}{N}\sum_{i=1}^{N=64}\delta\boldsymbol{\xi}_{i}.

The loss Ltracking=Lflow+Lmotion+Luncertainty\mathcal{L}_{\text{tracking}}=\mathcal{L}_{\text{flow}}+\mathcal{L}_{\text{motion}}+\mathcal{L}_{\text{uncertainty}} combines flow endpoint error, a weighted pose error Lmotion=αrrgt2+ttgt2\mathcal{L}_{\text{motion}}=\alpha\lVert\mathbf{r}-\mathbf{r}_{\text{gt}}\rVert_2+\lVert\mathbf{t}-\mathbf{t}_{\text{gt}}\rVert_2, and the negative log-likelihood of a multivariate Laplace distribution over the hypothesis spread (covariance Σ\mathbf{\Sigma} estimated from the samples), which pushes the network to predict distinct hypotheses. Virtual keyframes double as data augmentation: sampling T0V\mathbf{T}^V_0 around ground truth simulates all 6-DoF motions despite biased training data (SUN3D, SUNCG).

Mapping. Depth per keyframe comes from a plane-sweep cost volume. For pixel x\mathbf{x} and depth label dd, photoconsistency is accumulated over mm frames:

C(x,d)=i{1,..,m}ρi(x,d)wi(x),\mathbf{C}(\mathbf{x},d)=\sum_{i\in\{1,..,m\}}\rho_{i}(\mathbf{x},d)\cdot w_{i}(\mathbf{x}),

where ρi\rho_i is the SAD of 3×33\times 3 patches between keyframe and warped image, and wiw_i is a matching-confidence weight close to 1 when the cost curve has a clear unique minimum dd^*. A fixed-band module (32 labels evenly spaced over the depth range, inputs IK\mathbf{I}^K + cost volume) regresses an interpolation factor sfb\mathbf{s}_{fb} giving Dfb=(1sfb)dmin+sfbdmax\mathbf{D}_{fb}=(1-\mathbf{s}_{fb})\cdot d_{min}+\mathbf{s}_{fb}\cdot d_{max} — a scale-free output that aids generalization. A narrow-band module then iterates: it rebuilds the cost volume on per-pixel labels bi=dprev+iσnbdprevb_{i}=d_{\text{prev}}+i\cdot\sigma_{\text{nb}}\cdot d_{\text{prev}} centered at the previous estimate (band width σnb=0.0125\sigma_{nb}=0.0125); one encoder-decoder turns it into a learned cost volume read out by a differentiable soft argmin, and a second encoder-decoder regularizes the result — the pair acting like alternating data and smoothness terms of a variational method.

Results

Why it matters for SLAM

DeepTAM showed that the classical dense tracking-and-mapping architecture survives the transition to deep learning: keep the structure (keyframes, cost volumes, incremental alignment) and learn the components that classical methods do poorly (robust alignment, depth regularization). Its incremental-alignment idea foreshadows the iterative update operators of RAFT and DROID-SLAM, making it an important conceptual link between DTAM-era dense SLAM and today’s learned systems.