What this book covers
Chapter 1, Getting Started with TensorFlow 2.x for Computer Vision, serves as an overview of basic deep learning concepts, as well as being a first look at some important TensorFlow 2.x features, such as the Keras and tf.data.Dataset
APIs. It also teaches you about common and necessary tasks such as saving and loading a model and visualizing a network architecture. It ends with the implementation of a simple image classifier.
Chapter 2, Performing Image Classification, goes in-depth about the most common application of deep neural networks to computer vision: image classification. It explores the common varieties of classification, such as binary and multiclass classification, and then transitions to examples of multilabel classification and out-of-the-box solutions using transfer learning and TensorFlow Hub.
Chapter 3, Harnessing the Power of Pre-Trained Networks with Transfer Learning, focuses on transfer learning, a powerful technique to reuse networks pre-trained on massive datasets to increase development productivity and the performance of deep learning-powered computer vision applications. This chapter starts by seeing you use pre-trained networks as feature extractors. Then, you will learn how to combine deep learning with traditional machine learning algorithms through a procedure called incremental learning. Finally, the chapter closes with two examples of fine-tuning: the first using the Keras API and the second relying on TensorFlow Hub.
Chapter 4, Enhancing and Styling Images with DeepDream, Neural Style Transfer, and Image Super-Resolution, focuses on fun and less conventional applications of deep neural networks in computer vision, namely DeepDream, neural style transfer, and image super-resolution.
Chapter 5, Reducing Noise with Autoencoders, goes over autoencoders, a composite architecture used in domains such as image restoration, inverse image search indexes, and image denoising. It starts by introducing the dense and convolutional variants of autoencoders and then explains several applications, such as inverse image search engines and outlier detection.
Chapter 6, Generative Models and Adversarial Attacks, introduces you to many examples and applications of Generative Adversarial Networks (GANs). The chapter ends with an example of how to perform an adversarial attack on convolutional neural networks.
Chapter 7, Captioning Images with CNNs and RNNs, focuses on how to combine both convolutional and recurrent neural networks to generate textual descriptions of images.
Chapter 8, Fine-Grained Understanding of Images through Segmentation, focuses on image segmentation, a fine-grained version of image classification, at the pixel level. It covers seminal segmentation architectures, such as U-Net and Mask-RCNN.
Chapter 9, Localizing Elements in Images with Object Detection, covers the complex and yet common task of object detection. It goes over both traditional approaches based on image pyramids and sliding windows and more modern solutions, such as YOLO. It includes a thorough explanation of how to leverage the TensorFlow Object Detection API to train state-of-the-art models on custom datasets.
Chapter 10, Applying the Power of Deep Learning to Videos, expands the application of deep neural networks to videos. Here, you will find examples of how to detect emotions, recognize actions, and generate frames in a video.
Chapter 11, Streamlining Network Implementation with AutoML, explores the exciting subfield of AutoML using Autokeras, an experimental library built on top of TensorFlow 2.x, which uses Neural Architecture Search (NAS) to arrive at the best model possible for a given problem. The chapter starts by exploring the basic features of Autokeras and closes by using AutoML to create an age and gender prediction tool.
Chapter 12, Boosting Performance, explains in detail many different techniques that can be used to boost the performance of a network, from simple but powerful methods, such as using ensembles, to more advanced ones, such as using GradientTape to tailor the training process to the specific needs of a project.