0%

Book Description

Computer vision has become increasingly important and effective in recent years due to its wide-ranging applications in areas as diverse as smart surveillance and monitoring, health and medicine, sports and recreation, robotics, drones, and self-driving cars. Visual recognition tasks, such as image classification, localization, and detection, are the core building blocks of many of these applications, and recent developments in Convolutional Neural Networks (CNNs) have led to outstanding performance in these state-of-the-art visual recognition tasks and systems. As a result, CNNs now form the crux of deep learning algorithms in computer vision.

This self-contained guide will benefit those who seek to both understand the theory behind CNNs and to gain hands-on experience on the application of CNNs in computer vision. It provides a comprehensive introduction to CNNs starting with the essential concepts behind neural networks: training, regularization, and optimization of CNNs. The book also discusses a wide range of loss functions, network layers, and popular CNN architectures, reviews the different techniques for the evaluation of CNNs, and presents some popular CNN tools and libraries that are commonly used in computer vision. Further, this text describes and discusses case studies that are related to the application of CNN in computer vision, including image classification, object detection, semantic segmentation, scene understanding, and image generation.

This book is ideal for undergraduate and graduate students, as no prior background knowledge in the field is required to follow the material, as well as new researchers, developers, engineers, and practitioners who are interested in gaining a quick understanding of CNN models.

Table of Contents

  1. Cover
  2. Copyright
  3. Title Page
  4. Dedication
  5. Contents
  6. Preface
  7. Acknowledgments
  8. 1 Introduction
    1. 1.1 What is Computer Vision?
      1. 1.1.1 Applications
      2. 1.1.2 Image Processing vs. Computer Vision
    2. 1.2 What is Machine Learning?
      1. 1.2.1 Why Deep Learning?
    3. 1.3 Book Overview
  9. 2 Features and Classifiers
    1. 2.1 Importance of Features and Classifiers
      1. 2.1.1 Features
      2. 2.1.2 Classifiers
    2. 2.2 Traditional Feature Descriptors
      1. 2.2.1 Histogram of Oriented Gradients (HOG)
      2. 2.2.2 Scale-invariant Feature Transform (SIFT)
      3. 2.2.3 Speeded-up Robust Features (SURF)
      4. 2.2.4 Limitations of Traditional Hand-engineered Features
    3. 2.3 Machine Learning Classifiers
      1. 2.3.1 Support Vector Machine (SVM)
      2. 2.3.2 Random Decision Forest
    4. 2.4 Conclusion
  10. 3 Neural Networks Basics
    1. 3.1 Introduction
    2. 3.2 Multi-layer Perceptron
      1. 3.2.1 Architecture Basics
      2. 3.2.2 Parameter Learning
    3. 3.3 Recurrent Neural Networks
      1. 3.3.1 Architecture Basics
      2. 3.3.2 Parameter Learning
    4. 3.4 Link with Biological Vision
      1. 3.4.1 Biological Neuron
      2. 3.4.2 Computational Model of a Neuron
      3. 3.4.3 Artificial vs. Biological Neuron
  11. 4 Convolutional Neural Network
    1. 4.1 Introduction
    2. 4.2 Network Layers
      1. 4.2.1 Pre-processing
      2. 4.2.2 Convolutional Layers
      3. 4.2.3 Pooling Layers
      4. 4.2.4 Nonlinearity
      5. 4.2.5 Fully Connected Layers
      6. 4.2.6 Transposed Convolution Layer
      7. 4.2.7 Region of Interest Pooling
      8. 4.2.8 Spatial Pyramid Pooling Layer
      9. 4.2.9 Vector of Locally Aggregated Descriptors Layer
      10. 4.2.10 Spatial Transformer Layer
    3. 4.3 CNN Loss Functions
      1. 4.3.1 Cross-entropy Loss
      2. 4.3.2 SVM Hinge Loss
      3. 4.3.3 Squared Hinge Loss
      4. 4.3.4 Euclidean Loss
      5. 4.3.5 The ℓ¹ Error
      6. 4.3.6 Contrastive Loss
      7. 4.3.7 Expectation Loss
      8. 4.3.8 Structural Similarity Measure
  12. 5 CNN Learning
    1. 5.1 Weight Initialization
      1. 5.1.1 Gaussian Random Initialization
      2. 5.1.2 Uniform Random Initialization
      3. 5.1.3 Orthogonal Random Initialization
      4. 5.1.4 Unsupervised Pre-training
      5. 5.1.5 Xavier Initialization
      6. 5.1.6 ReLU Aware Scaled Initialization
      7. 5.1.7 Layer-sequential Unit Variance
      8. 5.1.8 Supervised Pre-training
    2. 5.2 Regularization of CNN
      1. 5.2.1 Data Augmentation
      2. 5.2.2 Dropout
      3. 5.2.3 Drop-connect
      4. 5.2.4 Batch Normalization
      5. 5.2.5 Ensemble Model Averaging
      6. 5.2.6 The ℓ² Regularization
      7. 5.2.7 The ℓ¹ Regularization
      8. 5.2.8 Elastic Net Regularization
      9. 5.2.9 Max-norm Constraints
      10. 5.2.10 Early Stopping
    3. 5.3 Gradient-based CNN Learning
      1. 5.3.1 Batch Gradient Descent
      2. 5.3.2 Stochastic Gradient Descent
      3. 5.3.3 Mini-batch Gradient Descent
    4. 5.4 Neural Network Optimizers
      1. 5.4.1 Momentum
      2. 5.4.2 Nesterov Momentum
      3. 5.4.3 Adaptive Gradient
      4. 5.4.4 Adaptive Delta
      5. 5.4.5 RMSprop
      6. 5.4.6 Adaptive Moment Estimation
    5. 5.5 Gradient Computation in CNNs
      1. 5.5.1 Analytical Differentiation
      2. 5.5.2 Numerical Differentiation
      3. 5.5.3 Symbolic Differentiation
      4. 5.5.4 Automatic Differentiation
    6. 5.6 Understanding CNN through Visualization
      1. 5.6.1 Visualizing Learned Weights
      2. 5.6.2 Visualizing Activations
      3. 5.6.3 Visualizations based on Gradients
  13. 6 Examples of CNN Architectures
    1. 6.1 LeNet
    2. 6.2 AlexNet
    3. 6.3 Network in Network
    4. 6.4 VGGnet
    5. 6.5 GoogleNet
    6. 6.6 ResNet
    7. 6.7 ResNeXt
    8. 6.8 FractalNet
    9. 6.9 DenseNet
  14. 7 Applications of CNNs in Computer Vision
    1. 7.1 Image Classification
      1. 7.1.1 PointNet
    2. 7.2 Object Detection and Localization
      1. 7.2.1 Region-based CNN
      2. 7.2.2 Fast R-CNN
      3. 7.2.3 Regional Proposal Network (RPN)
    3. 7.3 Semantic Segmentation
      1. 7.3.1 Fully Convolutional Network (FCN)
      2. 7.3.2 Deep Deconvolution Network (DDN)
      3. 7.3.3 DeepLab
    4. 7.4 Scene Understanding
      1. 7.4.1 DeepContext
      2. 7.4.2 Learning Rich Features from RGB-D Images
      3. 7.4.3 PointNet for Scene Understanding
    5. 7.5 Image Generation
      1. 7.5.1 Generative Adversarial Networks (GANs)
      2. 7.5.2 Deep Convolutional Generative Adversarial Networks (DCGANs)
      3. 7.5.3 Super Resolution Generative Adversarial Network (SRGAN)
    6. 7.6 Video-based Action Recognition
      1. 7.6.1 Action Recognition From Still Video Frames
      2. 7.6.2 Two-stream CNNs
      3. 7.6.3 Long-term Recurrent Convolutional Network (LRCN)
  15. 8 Deep Learning Tools and Libraries
    1. 8.1 Caffe
    2. 8.2 TensorFlow
    3. 8.3 MatConvNet
    4. 8.4 Torch7
    5. 8.5 Theano
    6. 8.6 Keras
    7. 8.7 Lasagne
    8. 8.8 Marvin
    9. 8.9 Chainer
    10. 8.10 PyTorch
  16. 9 Conclusion
  17. Bibliography
  18. Authors’ Biographies
3.129.211.87