  Surface normal estimation from a single image is an important task in 3D
scene understanding. In this paper, we address two limitations shared by the
existing methods: the inability to estimate the aleatoric uncertainty and lack
of detail in the prediction. The proposed network estimates the per-pixel
surface normal probability distribution. We introduce a new parameterization
for the distribution, such that its negative log-likelihood is the angular loss
with learned attenuation. The expected value of the angular error is then used
as a measure of the aleatoric uncertainty. We also present a novel decoder
framework where pixel-wise multi-layer perceptrons are trained on a subset of
pixels sampled based on the estimated uncertainty. The proposed
uncertainty-guided sampling prevents the bias in training towards large planar
surfaces and improves the quality of prediction, especially near object
boundaries and on small structures. Experimental results show that the proposed
method outperforms the state-of-the-art in ScanNet and NYUv2, and that the
estimated uncertainty correlates well with the prediction error. Code is
available at https://github.com/baegwangbin/surface_normal_uncertainty.
