Book Image

Mastering Computer Vision with TensorFlow 2.x

By : Krishnendu Kar
Book Image

Mastering Computer Vision with TensorFlow 2.x

By: Krishnendu Kar

Overview of this book

Computer vision allows machines to gain human-level understanding to visualize, process, and analyze images and videos. This book focuses on using TensorFlow to help you learn advanced computer vision tasks such as image acquisition, processing, and analysis. You'll start with the key principles of computer vision and deep learning to build a solid foundation, before covering neural network architectures and understanding how they work rather than using them as a black box. Next, you'll explore architectures such as VGG, ResNet, Inception, R-CNN, SSD, YOLO, and MobileNet. As you advance, you'll learn to use visual search methods using transfer learning. You'll also cover advanced computer vision concepts such as semantic segmentation, image inpainting with GAN's, object tracking, video segmentation, and action recognition. Later, the book focuses on how machine learning and deep learning concepts can be used to perform tasks such as edge detection and face recognition. You'll then discover how to develop powerful neural network models on your PC and on various cloud platforms. Finally, you'll learn to perform model optimization methods to deploy models on edge devices for real-time inference. By the end of this book, you'll have a solid understanding of computer vision and be able to confidently develop models to automate tasks.
Table of Contents (18 chapters)
1
Section 1: Introduction to Computer Vision and Neural Networks
6
Section 2: Advanced Concepts of Computer Vision with TensorFlow
11
Section 3: Advanced Implementation of Computer Vision with TensorFlow
14
Section 4: TensorFlow Implementation at the Edge and on the Cloud

Optimizing CNN parameters

CNNs have many different parameters. Training a CNN model requires many input images and performing processing, which can be very time-consuming. If the parameters that are selected are not optimal, the whole process has to be repeated again. This is why it is important to understand the functions of each parameter and their interrelationship: so that their values can be optimized before running the CNN to minimize repeat runs. The parameters of a CNN are as follows:

  • Image size = (n x n)
  • Filter = (fh,fw), fh = filter applied to image height, fw = filter applied to image width
  • Number of filters = nf
  • Padding = p
  • Stride = s
  • Output size = {(n + 2p - f)/s +1} x {(n + 2p - f)/s + 1}
  • Number of parameters = (fh x fw + 1)x nf

The critical task is to select the aforementioned parameters (filter size (f), number of filters (nf), stride (s) in each layer, padding...