Self-supervised Monocular Depth Estimation on Water Scenes via Specular Reflection Prior
<|reference_start|>Self-supervised Monocular Depth Estimation on Water Scenes via Specular Reflection Prior: Monocular depth estimation from a single image is an ill-posed problem for computer vision due to insufficient reliable cues as the prior knowledge. Besides the inter-frame supervision, namely stereo and adjacent frames, extensive prior information is available in the same frame. Reflections from specular surfaces, informative intra-frame priors, enable us to reformulate the ill-posed depth estimation task as a multi-view synthesis. This paper proposes the first self-supervision for deep-learning depth estimation on water scenes via intra-frame priors, known as reflection supervision and geometrical constraints. In the first stage, a water segmentation network is performed to separate the reflection components from the entire image. Next, we construct a self-supervised framework to predict the target appearance from reflections, perceived as other perspectives. The photometric re-projection error, incorporating SmoothL1 and a novel photometric adaptive SSIM, is formulated to optimize pose and depth estimation by aligning the transformed virtual depths and source ones. As a supplement, the water surface is determined from real and virtual camera positions, which complement the depth of the water area. Furthermore, to alleviate these laborious ground truth annotations, we introduce a large-scale water reflection scene (WRS) dataset rendered from Unreal Engine 4. Extensive experiments on the WRS dataset prove the feasibility of the proposed method compared to state-of-the-art depth estimation techniques.<|reference_end|>
@article{lu2024self-supervised,
    title={Self-supervised Monocular Depth Estimation on Water Scenes via Specular
  Reflection Prior},
    author={Zhengyang Lu and Ying Chen},
    journal={arXiv preprint arXiv:2404.07176},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.07176},
    primaryClass={cs.CV}
}