O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Practical Computer Vision

Book Description

A practical guide designed to get you from basics to current state of art in computer vision systems.

About This Book

  • Master the different tasks associated with Computer Vision and develop your own Computer Vision applications with ease
  • Leverage the power of Python, Tensorflow, Keras, and OpenCV to perform image processing, object detection, feature detection and more
  • With real-world datasets and fully functional code, this book is your one-stop guide to understanding Computer Vision

Who This Book Is For

This book is for machine learning practitioners and deep learning enthusiasts who want to understand and implement various tasks associated with Computer Vision and image processing in the most practical manner possible. Some programming experience would be beneficial while knowing Python would be an added bonus.

What You Will Learn

  • Learn the basics of image manipulation with OpenCV
  • Implement and visualize image filters such as smoothing, dilation, histogram equalization, and more
  • Set up various libraries and platforms, such as OpenCV, Keras, and Tensorflow, in order to start using computer vision, along with appropriate datasets for each chapter, such as MSCOCO, MOT, and Fashion-MNIST
  • Understand image transformation and downsampling with practical implementations.
  • Explore neural networks for computer vision and convolutional neural networks using Keras
  • Understand working on deep-learning-based object detection such as Faster-R-CNN, SSD, and more
  • Explore deep-learning-based object tracking in action
  • Understand Visual SLAM techniques such as ORB-SLAM

In Detail

In this book, you will find several recently proposed methods in various domains of computer vision. You will start by setting up the proper Python environment to work on practical applications. This includes setting up libraries such as OpenCV, TensorFlow, and Keras using Anaconda. Using these libraries, you'll start to understand the concepts of image transformation and filtering. You will find a detailed explanation of feature detectors such as FAST and ORB; you'll use them to find similar-looking objects.

With an introduction to convolutional neural nets, you will learn how to build a deep neural net using Keras and how to use it to classify the Fashion-MNIST dataset. With regard to object detection, you will learn the implementation of a simple face detector as well as the workings of complex deep-learning-based object detectors such as Faster R-CNN and SSD using TensorFlow. You'll get started with semantic segmentation using FCN models and track objects with Deep SORT. Not only this, you will also use Visual SLAM techniques such as ORB-SLAM on a standard dataset.

By the end of this book, you will have a firm understanding of the different computer vision techniques and how to apply them in your applications.

Style and approach

Step-by-step guide filled with real-world, practical examples for understanding and applying various Computer Vision techniques

Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    4. Get in touch
      1. Reviews
  2. A Fast Introduction to Computer Vision
    1. What constitutes computer vision?
    2. Computer vision is everywhere
    3. Getting started
      1. Reading an image 
      2. Image color conversions
    4. Computer vision research conferences
    5. Summary
  3. Libraries, Development Platform, and Datasets
    1. Libraries and installation
      1. Installing Anaconda
        1. NumPy
        2. Matplotlib
        3. SciPy
        4. Jupyter notebook
      2. Installing OpenCV
        1. OpenCV Anaconda installation 
        2. OpenCV build from source
        3. Opencv FAQs
      3. TensorFlow for deep learning
      4. Keras for deep learning 
    2. Datasets
      1. ImageNet
      2. MNIST
      3. CIFAR-10
      4. Pascal VOC
      5. MSCOCO
      6. TUM RGB-D dataset
    3. Summary
    4. References
  4. Image Filtering and Transformations in OpenCV
    1. Datasets and libraries required
    2. Image manipulation
    3. Introduction to filters
      1. Linear filters
        1. 2D linear filters
        2. Box filters
        3. Properties of linear filters
      2. Non-linear filters 
        1. Smoothing a photo 
        2. Histogram equalization
        3. Median filter 
      3. Image gradients
    4. Transformation of an image
      1. Translation
      2. Rotation 
      3. Affine transform 
    5. Image pyramids
    6. Summary
  5. What is a Feature?
    1. Features use cases 
      1. Datasets and libraries
      2. Why are features important?
    2. Harris Corner Detection
      1. FAST features
      2. ORB features
        1. FAST feature limitations
        2. BRIEF Descriptors and their limitations
        3. ORB features using OpenCV
      3. The black box feature
      4. Application – find your object in an image 
      5. Applications – is it similar?
    3. Summary
    4. References
  6. Convolutional Neural Networks
    1. Datasets and libraries used
    2. Introduction to neural networks
      1. A simple neural network
    3. Revisiting the convolution operation
    4. Convolutional Neural Networks
      1. The convolution layer
      2. The activation layer
      3. The pooling layer
      4. The fully connected layer
      5. Batch Normalization
      6. Dropout
    5. CNN in practice 
      1. Fashion-MNIST classifier training code
      2. Analysis of CNNs 
        1. Popular CNN architectures
          1. VGGNet
          2. Inception models
          3. ResNet model
      3. Transfer learning
    6. Summary
  7. Feature-Based Object Detection
    1. Introduction to object detection
    2. Challenges in object detection
    3. Dataset and libraries used
    4. Methods for object detection
      1. Deep learning-based object detection
        1. Two-stage detectors
        2. Demo – Faster R-CNN with ResNet-101
        3. One-stage detectors
        4. Demo
    5. Summary
    6. References
  8. Segmentation and Tracking
    1. Datasets and libraries
    2. Segmentation
      1. Challenges in segmentation 
      2. CNNs for segmentation
      3. Implementation of FCN
    3. Tracking
      1. Challenges in tracking
      2. Methods for object tracking
        1. MOSSE tracker
        2. Deep SORT
    4. Summary
    5. References
  9. 3D Computer Vision
    1. Dataset and libraries
    2. Applications
    3. Image formation
    4. Aligning images 
    5. Visual odometry
    6. Visual SLAM
    7. Summary
    8. References
  10. Mathematics for Computer Vision
    1. Datasets and libraries
    2. Linear algebra
      1. Vectors
        1. Addition
        2. Subtraction
        3. Vector multiplication
        4. Vector norm
        5. Orthogonality
      2. Matrices
        1. Operations on matrices
          1. Addition
          2. Subtraction
          3. Matrix multiplication
        2. Matrix properties
          1. Transpose
          2. Identity matrix
          3. Diagonal matrix
          4. Symmetric matrix
          5. Trace of a matrix
          6. Determinant
          7. Norm of a matrix
          8. Getting the inverse of a matrix 
          9. Orthogonality
          10. Computing eigen values and eigen vectors
      3. Hessian matrix
      4. Singular Value Decomposition
    3. Introduction to probability theory
      1. What are random variables?
      2. Expectation
      3. Variance
      4. Probability distributions
        1. Bernoulli distribution
        2. Binomial distribution
        3. Poisson distribution
        4. Uniform distribution
        5. Gaussian distribution
      5. Joint distribution
      6. Marginal distribution
      7. Conditional distribution
      8. Bayes theorem
    4. Summary
  11. Machine Learning for Computer Vision
    1. What is machine learning?
    2. Kinds of machine learning techniques
      1. Supervised learning
        1. Classification
        2. Regression
      2. Unsupervised learning
    3. Dimensionality's curse
    4. A rolling-ball view of learning
    5. Useful tools
      1. Preprocessing
        1. Normalization
        2. Noise
      2. Postprocessing
    6. Evaluation
      1. Precision
      2. Recall
      3. F-measure
    7. Summary
  12. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think