Computer Vision: Modeling, Learning, and Reasoning