First Principles Of Computer Vision