# SPDepth: Enhancing Self-Supervised Indoor Monocular Depth Estimation via Self-Propagation
## 4 Experiments
### Results  
#### 4.2.1 NYU Depth V2 Results  
We evaluated on the official test split of NYU Depth V2 and compared with other existing methods including supervised and self-supervised ones. Table 1 shows the comparison results. Compared with the baseline P\({}^{2}\)Net [1], our SPDepth improved on almost all the metrics, regardless of whether postprocessing was performed at test time. The postprocessing refers to left-right flipping augmentation, which was proposed in [50]. In postprocessing, the image is fed into the model twice, once normally and once flipped left and right. Then, the final depth is averaged with the two depth results. The results in Table 1 demonstrate that our proposed self-propagation mechanism is effective for indoor monocular depth estimation. For the inference on a 640 \(\times\) 480 image, P\({}^{2}\)Net requires 1.68 G GPU memory, while SPDepth only needs 2.30 G, and P\({}^{2}\)Net spends 9.4 ms while SPDepth needs 15.1 ms. It shows that the addition of self-propagation does not take up too much computing and time resources. Figure 5 compares the depth visualization results of P\({}^{2}\)Net and our SPDepth. Our SPDepth preserved more details and produced much sharper results at object boundaries. And in the framed areas, P\({}^{2}\)Net failed to make correct predictions, while these areas were predicted more accurately by SPDepth. The addition of the self-attention layer helps achieve effective self-propagation of depth. The enhancement of feature encoding makes up for limited self-supervision information to a certain extent. Benefiting from the self-propagation mechanism, the overall depth results were enhanced. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Methods** & **Supervision** & **REL \(\downarrow\)** & **RMS \(\downarrow\)** & **Log10 \(\downarrow\)** & **\& **\textless{1.25 \(\uparrow\)**} & **\textless{1.25 \({}^{2}\)**} \(\uparrow\)** & **\textless{1.25 \({}^{3}\)**} \(\uparrow\)** \\ \hline Liu [51] & \(\surd\) & 0.335 & 1.060 & 0.127 & - & - & - \\ Li [52] & \(\surd\) & 0.232 & 0.821 & 0.094 & 0.621 & 0.886 & 0.968 \\ Liu [13] & \(\surd\) & 0.213 & 0.759 & 0.087 & 0.650 & 0.906 & 0.976 \\ Eigen [9] & \(\surd\) & 0.158 & 0.641 & - & 0.769 & 0.950 & 0.988 \\ Li [10] & \(\surd\) & 0.143 & 0.635 & 0.063 & 0.788 & 0.958 & 0.991 \\ PlaneNet [23] & \(\surd\) & 0.142 & 0.514 & 0.060 & 0.827 & 0.963 & 0.990 \\ PlaneReg [22] & \(\surd\) & 0.134 & 0.503 & 0.057 & 0.827 & 0.963 & 0.990 \\ Laina [8] & \(\surd\) & 0.127 & 0.573 & 0.055 & 0.811 & 0.953 & 0.988 \\ DORN [7] & \(\surd\) & 0.115 & 0.509 & 0.051 & 0.828 & 0.965 & 0.992 \\ VNL [18] & \(\surd\) & 0.108 & 0.416 & 0.048 & 0.875 & 0.976 & 0.994 \\ P3 Depth [21] & \(\surd\) & 0.104 & 0.356 & 0.043 & 0.898 & 0.981 & 0.996 \\ Jun [53] & \(\surd\) & 0.100 & 0.362 & 0.043 & 0.907 & 0.986 & 0.997 \\ DDP [16] & \(\surd\) & **0.094** & **0.329** & **0.040** & **0.921** & **0.990** & **0.998** \\ \hline Moving & & & & & & & \\ Indoor [4] & \(\times\) & 0.208 & 0.712 & 0.086 & 0.674 & 0.900 & 0.968 \\ TrianFlow [54] & \(\times\) & 0.189 & 0.686 & 0.079 & 0.701 & 0.912 & 0.978 \\ Zhang [55] & \(\times\) & 0.177 & 0.634 & - & 0.733 & 0.936 & - \\ Monodepth2 [25] & \(\times\) & 0.170 & 0.617 & 0.072 & 0.748 & 0.942 & **0.986** \\ ADPDepth [56] & \(\times\) & 0.165 & 0.592 & 0.071 & 0.753 & 0.934 & 0.981 \\ SC-Depth [57] & \(\times\) & 0.159 & 0.608 & 0.068 & 0.772 & 0.939 & 0.982 \\ P\({}^{2}\)Net [1] & \(\times\) & 0.159 & 0.599 & 0.068 & 0.772 & 0.942 & 0.984 \\ SPDepth & \(\times\) & 0.159 & 0.585 & 0.067 & 0.776 & 0.946 & **0.986** \\ P\({}^{2}\)Net + PP [1] & \(\times\) & **0.157** & 0.592 & 0.067 & 0.777 & 0.944 & 0.985 \\ SPDepth + PP & \(\times\) & **0.157** & **0.579** & **0.066** & **0.781** & **0.947** & **0.986** \\ \hline \hline \end{tabular}
\end{table} 
Table 1: The performance comparison of SPDepth and other methods on the NYU Depth V2 dataset. PP represents postprocessing. The best results are shown in bold. \(\downarrow\) means the lower the value, the better. \(\uparrow\) means the higher the value, the better.