Monocular depth estimation through virtual-world supervision and real-world SfM self-supervision