  We review solutions to the problem of depth estimation, arguably the most
important subtask in scene understanding. We focus on the single image depth
estimation problem. Due to its properties, the single image depth estimation
problem is currently best tackled with machine learning methods, most
successfully with convolutional neural networks. We provide an overview of the
field by examining key works. We examine non-deep learning approaches that
mostly predate deep learning and utilize hand-crafted features and assumptions,
and more recent works that mostly use deep learning techniques. The single
image depth estimation problem is tackled first in a supervised fashion with
absolute or relative depth information acquired from human or sensor-labeled
data, or in an unsupervised way using unlabelled stereo images or video
datasets. We also study multitask approaches that combine the depth estimation
problem with related tasks such as semantic segmentation and surface normal
estimation. Finally, we discuss investigations into the mechanisms, principles,
and failure cases of contemporary solutions.
