Title: Table of Contents: Deep Learning for Computer Vision with Python - PyImageSearch

URL Source: https://pyimagesearch.com/2017/01/13/table-of-contents-deep-learning-for-computer-vision-with-python/

Published Time: 2017-01-13T17:00:13+00:00

Markdown Content:
![Image 1: dl_ks_book_formatted](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20402'%3E%3C/svg%3E)

[A couple of days ago](https://pyimagesearch.com/2017/01/11/my-deep-learning-kickstarter-will-go-live-on-wednesday-january-18th-at-10am-est/) I mentioned that on **Wednesday, January 18th at 10AM EST** I am launching a Kickstarter to fund my new book — _Deep Learning for Computer Vision with Python_.

As you’ll see later in this post, there is a _huge_ amount of content I’ll be covering, so I’ve decided to break the book down into **_three volumes_** called **“bundles”**.

A **_bundle_** includes the eBook, video tutorials, and source code for a given volume.

Each bundle _builds on top of the others_ and _includes all content from lower bundles_. You should choose a bundle based on how in-depth you want to study deep learning and computer vision:

*   **Starter Bundle:** A great fit for those taking their first steps toward deep learning for image classification mastery.
*   **Practitioner Bundle:** Perfect for readers who are ready to study deep learning in-depth, understand advanced techniques, and discover common best practices and rules of thumb.
*   **ImageNet Bundle:** The _complete deep learning for computer vision experience_. In this bundle, I demonstrate how to train large-scale neural networks from scratch on the _massive_ ImageNet dataset. You can’t beat this bundle.

The _complete_ Table of Contents for each bundle is listed in the next section.

Starter Bundle
--------------

The _Starter Bundle_ includes the following topics:

#### Machine Learning Basics

**Take the first step:**

*   Learn how to set up and configure your development environment to study deep learning.
*   Understand image basics, including coordinate systems; width, height, depth; and aspect ratios.
*   Review popular image datasets used to benchmark machine learning, deep learning, and Convolutional Neural Network algorithms.

#### **Form a solid understanding of machine learning basics, including:**

*   The simple k-NN classifier.
*   Parameterized learning (i.e., “learning from data”)
*   Data and feature vectors.
*   Understanding scoring functions.
*   How loss functions work.
*   Defining weight matrices and bias vectors (and how they facilitate learning).

#### **Study basic optimization methods (i.e., how “learning” is actually done) via:**

*   Gradient Descent
*   Stochastic Gradient Descent
*   Batched Stochastic Gradient Descent

#### Fundamentals of Neural Networks

**Discover feedforward network architectures:**

*   Implement the classic Perceptron algorithm by hand.
*   Use the Perceptron algorithm to learn actual _functions_ (and understand the limitations of the Perceptron algorithm).
*   Take an **_in-depth dive_** into the **_Backpropagation algorithm_**.
*   Implement Backpropagation by hand using Python + NumPy.
*   Utilize a worksheet to help you practice the Backpropagation algorithm.
*   Grasp multi-layer networks (and train them from scratch).
*   Implement neural networks both _by hand_ and with the _Keras library_.

#### Introduction to Convolutional Neural Networks

**Start with the basics of convolutions:**

*   Understand convolutions (and why they are so much easier to grasp than they seem).
*   Study Convolutional Neural Networks (what they are used for, why they work so well for image classification, etc.).
*   Train your first Convolutional Neural Network from scratch.

**Review the building blocks of Convolutional Neural Networks, including:**

*   Convolutional layers
*   Activation layers
*   Pooling layers
*   Batch Normalization
*   Dropout

**Uncover common architectures and training patterns:**

*   Discover common network architecture patterns you can use to design architectures of your own with minimal frustration and headaches.
*   Utilize out-of-the-box CNNs for classification that are _pre-trained_ and ready to be applied to your own images/image datasets (VGG16, VGG19, ResNet50, etc.)
*   Save and load your own network models from disk.
*   Checkpoint your models to spot high performing epochs and restart training.
*   Learn how to spot underfitting and overfitting, allowing you to correct for them and improve your classification accuracy.
*   Utilize decay and learning rate schedulers.
*   Train the classic LeNet architecture from scratch to recognize handwritten digits.

#### Work With Your Own Custom Datasets

**Working with your custom datasets + deep learning is easy:**

*   Learn how to gather your own training images.
*   Discover how to annotate and label your dataset.
*   Train a Convolutional Neural Network from scratch on top of your dataset.
*   Evaluate the accuracy of your model.
*   _…all of this explained by demonstrating how to gather, annotate, and train a CNN to break image captchas._

Practitioner Bundle
-------------------

The _Practitioner Bundle_ includes **_everything_** in the _Starter Bundle_. It also includes the following topics.

#### Advanced Convolutional Neural Networks

**Discover how to use _transfer learning_ to:**

*   Treat pre-trained networks as feature extractors to obtain high classification accuracy with little effort.
*   Utilize fine-tuning to boost the accuracy of pre-trained networks.
*   Apply data augmentation to increase network classification accuracy without gathering more training data.

**Work with deeper network architectures:**

*   Code the seminal AlexNet architecture.
*   Implement the VGGNet architecture (and variants of).

**Explore more advanced optimization algorithms, including:**

*   RMSprop
*   Adagrad
*   Adadelta
*   Adam
*   Adamax
*   Nadam
*   _…and best practices to fine-tune SGD parameters._

#### Best Practices to Boost Network Performance

**Uncover common techniques & best practices to improve classification accuracy:**

*   Understand rank-1 and rank-5 accuracy (and how we use them to measure the classification power of a given network).
*   Utilize image cropping for an easy way to boost accuracy on your test set.
*   Explore how _network ensembles_ can be used to increase classification accuracy simply by training multiple networks.
*   Discover my optimal pathway for applying deep learning techniques to _maximize classification accuracy_ (and which order to apply these techniques in to achieve greatest effectiveness).

#### Scaling to Large Image Datasets

**Work with datasets too large to fit into memory:**

*   Learn how to convert an image dataset from raw images on disk to HDF5 format, making networks easier (and faster) to train.
*   Compress large image datasets into efficiently packed record files.

**Compete in deep learning challenges and competitions:**

*   Compete in Stanford’s _cs231n Tiny ImageNet classification challenge…**and take home the #1 position**_.
*   Train a network on the Kaggle Dogs vs. Cats challenge and claim a position in the top-25 leaderboard with minimal effort.

#### Object Detection and Localization

**Detect objects in images using deep learning by:**

*   Utilizing naive image pyramids and sliding windows for object detection.

ImageNet Bundle
---------------

The _ImageNet Bundle_ includes **_everything_** in the _Starter Bundle_ and _Practitioner Bundle_. It also includes the following additional topics:

#### ImageNet: Large Scale Visual Recognition Challenge

**Train state-of-the-art networks on the ImageNet dataset:**

*   Discover what the _massive_ ImageNet (1,000 category) dataset is and _why_ it’s considered the _de-facto_ challenge to benchmark image classification algorithms.
*   Obtain the ImageNet dataset.
*   Convert ImageNet into a format suitable for training.
*   Learn how to utilize _multiple GPUs_ to train your network in _parallel_, **greatly reducing training time**.
*   Train AlexNet on ImageNet from scratch.
*   Train VGGNet from the ground-up on ImageNet.
*   Apply the SqueezeNet architecture to ImageNet to obtain a (high accuracy) model, fully deployable to smaller devices, such as the Raspberry Pi.

#### ImageNet: Tips, Tricks, and Rules of Thumb

**Unlock the same techniques deep learning pros use on ImageNet:**

*   Save weeks (and even months) of training time by **discovering learning rate schedules _that actually work_**.
*   Spot overfitting on ImageNet and catch it _before_ you waste hours (or days) watching your validation accuracy stall.
*   Learn how to restart training from saved epochs, lower learning rates, and boost accuracy.
*   Uncover methods to quickly tune hyperparameters to massive networks.

#### Case Studies

**Discover how to solve real-world deep learning problems, including:**

*   Train a network to predict the gender and age of people in images using deep learning techniques.
*   Automatically classify car types using Convolutional Neural Networks.
*   Determine (and correct) image orientation using CNNs.

So there you have it — the complete Table of Contents for _Deep Learning for Computer Vision with Python._ I hope after looking over this list you’re as excited as I am!

I also have some _secret bonus chapters_ that I’m keeping under wraps until the Kickstarter officially launches — stay tuned for more details.

To be notified when more Kickstarter announcements go live (including ones I won’t be publishing on this blog), **[be sure to signup for the Kickstarter notification list!](#)**

![Image 2](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20410%20567'%3E%3C/svg%3E)

#### Join the PyImageSearch Newsletter and Grab My FREE 17-page Resource Guide PDF

Enter your email address below to **join the PyImageSearch Newsletter** and **download my FREE 17-page Resource Guide PDF** on Computer Vision, OpenCV, and Deep Learning.

![Image 3](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20240%20240'%3E%3C/svg%3E)

#### **About the Author**

Hi there, I’m Adrian Rosebrock, PhD. All too often I see developers, students, and researchers wasting their time, studying the wrong things, and generally struggling to get started with Computer Vision, Deep Learning, and OpenCV. I created this website to show you what I believe is the best possible way to get your start.

Reader Interactions
-------------------