Learning to Reconstruct 3D Objects