Learning and Exploiting Camera Geometry for Computer Vision