Index Field Iterative Updates.    We use a 3-level GRUs [1]} to estimate a sequence of index fields, \(\lbrace  \phi _t \in \mathbb {R} ^{H/4 \times W/4} \rbrace _{t=1}^{T}\)  from an initial starting point \(\phi _0\) .
We use a softargmin-start from the cost volume \(C_0\) , i.e., \( \phi _0 = \sum _{i=0}^{M_1-1} i \sigma (C_0)\) , where \(\sigma (\cdot )\)  is the \(\operatorname{softmax}\)  operator along the last dimension of cost volume \(C_0\) , to convert it to a probability of each index \(i\) . This setup facilitates the convergence of our predictions.
A four-layer matching pyramid \(\lbrace  C_0^i \in \mathbb {R} ^{H/4 \times W/4 \times M_0/{2^i}} \rbrace _{i=1}^4\)  is built by repeated pooling the cost volume \(C_0\)  along the depth dimension with kernel size 2 as in [2]}. To index the matching pyramid, we define a lookup operator analogous to the one in [1]}. Given a current estimate of index field \(\phi _t\) , a 1D grid is constructed with integer offsets up to \(r=\pm 4\)  around the \(\phi _t\) . The grid is used to index from each level of the matching pyramid via linear interpolation due to \(\phi _t\)  being real numbers. The retrieved cost values are then concatenated into a single feature map \(C_0^{\phi _t} \in \mathbb {R} ^{H/4 \times W/4 \times F_2}\) . Then the index field \(\phi _t\) , the retrieved cost features \(C_0^{\phi _t}\) , and context features \(f_0^c\)  are concatenated, and fed into the GRU layer, together with a latent hidden state \(h_{t}\) . The GRU outputs a residual index field \(\delta \phi _{t}\) , and a new hidden state \(h_{t+1}\) :
\(\delta \phi _t, h_{t+1} \Longleftarrow \operatorname{GRU}(\langle \phi _t, C_0^{\phi _t}, f_0^c \rangle , h_{t}), \text{ and } \phi _{t+1} \Leftarrow \phi _{t} + \delta \phi _t\) 
