This is a dense introduction to the field of computer vision. It covers all three approaches, the classical engineering approach based on contours and regions; the local-features approach; and the Deep Learning approach; summarized in Table 1. The book provides plenty of code snippets and copy-paste examples for Matlab, Python and OpenCV, the latter accessed through Python. We use PyTorch to introduce Deep Neural Networks. Our code notation (variable names, section titles, etc.) is the same throughout all examples and makes understanding code easy.
We firstly sketch some of the basic feature extraction methods as those help us to understand the architecture of Deep Neural Networks. Then we introduce those networks, their technique of transfer learning and their use for segmentation using autoencoders. Following that, we sketch object detection and recognition techniques using networks. Then we turn toward the more classical techniques, such as feature extraction and matching based on histograms of gradients. It follows a treatment of image processing techniques - segmentation and morphological processing - and of shape and contour recognition techniques. We overview the essential tracking and motion estimation methods as well as networks for pose estimation. We close with a survey of video surveillance, in-vehicle vision system, text recognition and remote sensing.