Table of Contents: Deep Learning for Computer Vision with Python


A couple of days ago 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”.

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 parallelgreatly 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!


16 Responses to Table of Contents: Deep Learning for Computer Vision with Python

  1. Kenny January 14, 2017 at 1:24 am #

    Awesome Adrian, looking forward to it!

    • Adrian Rosebrock January 15, 2017 at 12:07 pm #

      Thank you for the support Kenny, I appreciate it! 🙂

  2. Jordan Collier January 15, 2017 at 12:34 pm #

    Sounds pretty cool! Just completed a course on Computer Vision and Pattern Recognition now and the one thing I found a great lack of was a ‘how to’ guide such as this. Best of luck with the kick starter!

    • Adrian Rosebrock January 16, 2017 at 8:15 am #

      Thank you Jordan! Congrats on finishing your computer vision and pattern recognition course. The goal of this book will be to include some theory as well, but supplement heavily with code so you can see how these algorithms are actually used in the real-world. If you have any questions regarding the book please let me know.

  3. A.Rashid January 17, 2017 at 9:28 am #

    Hi Mr. Rosebrock,

    I would like to buy the PyImagesearch reference material including the new deep learning one. I would request a quotation.

    • Adrian Rosebrock January 18, 2017 at 12:21 pm #

      Hey there — you can find the prices for the Deep Learning for Computer Vision with Python book on the Kickstarter page.

  4. Arnold Ilkyoung Kwoun January 17, 2017 at 9:43 pm #

    So excited to read the list of topics and signed up to the notification list in no time.
    I love your ‘Practical Python and OpenCV + Case Study’ bundle and believe your deep learning bundle above will be a more LOVELY one. 🙂
    This is exactly what I was looking for since last December.

    Will be waiting for the update soon.

    • Adrian Rosebrock January 18, 2017 at 7:11 am #

      Thank you for picking up a copy of Practical Python and OpenCV (and for being such a loyal PyImageSearch reader)! I’m really excited about this deep learning book and it’s certainly going to be as good, if not better, than my previous book.

  5. Raul January 18, 2017 at 9:59 am #

    Hi Adrian,

    Is there a way of acquiring the 3 bundles at a discounted price?

    Looking forward to reading more of your awesome content!

    • Adrian Rosebrock January 18, 2017 at 12:18 pm #

      Hey Raul — the ImageNet Bundle actually includes both the Starter Bundle and Practitioner Bundle. The bundles build on top of each and include the content from the lower tiers.

      • Raul January 20, 2017 at 12:10 am #

        Wow! Tried to update my bundle but everything’s gone 🙁

        • Adrian Rosebrock January 20, 2017 at 10:56 am #

          The early bird bundles sold out extremely fast. I’m sorry to hear that you didn’t get the early bird special, but I would still suggest backing the project as the book will be more expensive once it publicly launches.

  6. Davood January 25, 2017 at 10:35 pm #

    Amazing!!! As always 🙂

    Adrian …Go Go Go…

    • Adrian Rosebrock January 26, 2017 at 8:16 am #

      Thank you Davood!

  7. Suman January 2, 2020 at 1:42 pm #

    Hey Adrian,

    I want to buy the all three bundles of Deep learning for computer vision along with PyImageSearch Gurus course.

    Please help me that how can I get all these in one package and what would be the fees?


    • Adrian Rosebrock January 16, 2020 at 11:03 am #

      Hey Suman — I’m happy to help you with that. Email me or use my contact form and we can discuss there 🙂

Before you leave a comment...

Hey, Adrian here, author of the PyImageSearch blog. I'd love to hear from you, but before you submit a comment, please follow these guidelines:

  1. If you have a question, read the comments first. You should also search this page (i.e., ctrl + f) for keywords related to your question. It's likely that I have already addressed your question in the comments.
  2. If you are copying and pasting code/terminal output, please don't. Reviewing another programmers’ code is a very time consuming and tedious task, and due to the volume of emails and contact requests I receive, I simply cannot do it.
  3. Be respectful of the space. I put a lot of my own personal time into creating these free weekly tutorials. On average, each tutorial takes me 15-20 hours to put together. I love offering these guides to you and I take pride in the content I create. Therefore, I will not approve comments that include large code blocks/terminal output as it destroys the formatting of the page. Kindly be respectful of this space.
  4. Be patient. I receive 200+ comments and emails per day. Due to spam, and my desire to personally answer as many questions as I can, I hand moderate all new comments (typically once per week). I try to answer as many questions as I can, but I'm only one person. Please don't be offended if I cannot get to your question
  5. Do you need priority support? Consider purchasing one of my books and courses. I place customer questions and emails in a separate, special priority queue and answer them first. If you are a customer of mine you will receive a guaranteed response from me. If there's any time left over, I focus on the community at large and attempt to answer as many of those questions as I possibly can.

Thank you for keeping these guidelines in mind before submitting your comment.

Leave a Reply