Computer Vision And Deep Learning in Python: Novice to Expert

For all those who are interested in becoming experts in Deep Learning and Computer Vision using Python

  • 5.0 (1 Reviews) , 0 students enrolled

Course Overview

Making a computer classify an image using Deep Learning and Neural Networks is comparatively easier than it was before. Using all these readymade packages and libraries will a few lines of code will make the process feel like a piece of cake. 

 It’s just like driving a big fancy car with an automatic transmission. You just only have to know how to use the basic controls to drive it. But, if you are a true engineer, you will also be fascinated by the internal working of the engine. In an expert level, you should be able to build your version of that car from the scratch using the available basic components. Even-though the performance may not match the commercial production line version, the experience knowledge you gain from it cannot be explained in words.

 And only because of this we have our course divided into exactly two halves. In the first half, we will learn the working concepts of image recognition using computer vision and deep learning and will try to implement the simple versions of popular algorithms and techniques using plain python code. In the next half, we will use the popular packages and libraries to implement more complex deep learning image classification models.

 Here is a quick list of sessions that are included in this course. 

 The first three sessions will be theory sessions in which we will have an overview of the concepts of deep learning and neural networks. We will also discuss the basics about a digital image and its composition

 Then we will prepare your computer by installing and configuring Anaconda, the free and open-source Python data science platform and the other dependencies to proceed with our exercises.

 If you are new to python programming, don't worry. The next four sessions will be covering the basics of python program with simple examples. 

 And here comes the aforementioned first half with our custom code and libraries.

 In the coming two theory sessions we will be covering the basics of image classification and the list of datasets that we are planning to cover in this course.

 Then we will do a step by step custom implementation of The k-nearest neighbours (KNN) algorithm. It is a simple, easy-to-implement supervised machine learning algorithm that can be used to solve both non-linear classification and regression problems. We will use our own created classes and methods without using any external library. The theory sessions involve learning the KNN basics. Then we will go ahead with downloading the dataset, loading, preprocessing and splitting the data. We will try to train the program and will do an image classification among the three sets of animals. Dogs, cats and pandas prediction using our custom KNN implementation.

 Now we will proceed with Linear Classification. Starting with the Concept and Theory, we will proceed further with building our scoring function and also implementing it using plain python code. Later we will discuss the loss function concepts and also the performance optimization concepts and the terminology associated with it. 

Then will start with the most important optimization algorithm for deep learning which the Gradient Decent is. We will have separate elaborate sessions where we will learn the concept and also implementation using the custom code for Gradient Decent. Later we will proceed with the more advanced Stochastic Gradient Decent with its concepts in the first sessions, later with implementing it using the custom class and methods we created.

 We will then look at regularization techniques that can also be used for enhancing the performance and also will implement it with our custom code. 

 In the coming sessions, we will have Perceptron, which is a fundamental unit of the neural network which takes weighted inputs, process it and is capable of performing binary classifications. We will discuss the working of the Perceptron Model. Will implement it using Python and also we will try to do some basic prediction exercises using the perceptron we created.

 In deep learning, back-propagation is a widely used algorithm in training feed-forward neural networks for supervised learning. We will then discuss the mechanism of backward propagation of errors. Then to implement this concept, we will create our classes and later implementation projects for a simple binary calculation dataset and also the MNIST optical character recognition dataset.

 And with all the knowledge from the pain of making custom implementations. We can now proceed with the second half of deep learning implementation using the libraries and packages that are used for developing commercial Computer Vision Deep Learning programs

 We will be using Keras which is an open-source neural network library written in Python. It is capable of running on top of Tensor Flow, Theano and also other languages for creating deep learning applications

 At first, we will build a simple Neural Network implementation with Keras using the MNIST Optical Character Recognition Dataset. We will train and evaluate this neural network to obtain the accuracy and loss it got during the process.

 In deep learning and Computer Vision, a convolutional neural network is a class of deep neural networks, most commonly applied to analysing visual imagery. At first, we will discuss the steps and layers in a convolutional neural network. Then we will proceed with creating classes and methods for a custom implementation of Convolutional neural network using the Keras Library which features different filters that we can use for images.

 Then we will have a quick discussion about the CNN Design Best Practices and then will go ahead with shallowness. The basic and simple CNN architecture. We will create the common class for implementing ShallowNet and later will train and evaluate the ShallowNet model using the popular Animals as well as CIFAR 10 image datasets. Then we will see how we can serialize or save the trained model and then later load it and use it. Even-though a very shallow network, we will try to do a prediction for an image we give using shallowNet for both the Animals and CIFAR 10 dataset

 After that, we will try famous CNN architecture called 'LeNet' for handwritten and machine-printed character recognition. For LeNet also, will create the common class and later will train, evaluate and save the LeNet model using the MNIST dataset. Later we will try to do a prediction for a handwritten digit image.

Then comes the mighty VGGNet architecture. We will create the common class and later will train, evaluate and save the VGGNet model using the CIFAR-10 dataset. After hours of training, later we will try to do a prediction for photos of a few common real-life objects falling in the CIFAR-10 categories.

 While training deep networks, it is helpful to reduce the learning rate as the number of training epochs increases. We will learn a technique called Learning Rate Scheduling in our next session and implement it in our python code.

 Since we are spending hours to train a model, if we don't checkpoint our training models at the end of a job, there is a great chance that we'll have lost all of our hard-earned results! We will see how we can efficiently do that in the coming sessions.

 Enough with training using our little computer. Let's go ahead with popular Deep learning models already pre-trained for us which are included in Keras library. They are trained on Imagenet data which is a collection of image data containing 1000 categories of images.

 The first pre-trained model that we are dealing with is the VGGNet-16, we will download the already trained model and then do the prediction. Later will go a bit deeper with VGGNet-19 pre-trained model and will do the image classification prediction.

 The next pre-trained model that we are using is the ResNet, which can utilize a technique called skip connections, or shortcuts to jump over some layers. We will do the image classification prediction with this network too.

 Finally, we will get the Inception and Xception models. Which are convolutional neural networks trained on more than a million images from the ImageNet database? They learn by using Depthwise Separable Convolutions. We will download the weights and do the image classification prediction with this network too.

 Overall, this course will be the perfect recipe of custom and ready-made components that you can use for your career in Computer Vision using Deep Learning. 

 All the example code and sample images with the dataset can be downloaded from the link included in the last session or resource section of this course. 

 We will also provide you with a course completion certificate once you are done with all the sessions and it will add great value to your career.

 So best wishes and happy learning. See you soon in the classroom.

 Bibliography & Reference Credits:

 * CS231M ? Stanford University,  CS231N ? Stanford University

 * pyimagesearch blog by Dr Adrian Rosebrock, PhD. 

 * Deep Learning for Computer Vision: Dr Adrian Rosebrock, PhD. 

 * Andrej Karpathy. CS231n: Convolutional Neural Networks for Visual Recognition. 

 * AndrejKarpathy.LinearClassification

 * Machine Learning is Fun! Adam Geitgey

* Andrew Ng. Machine Learning

 * Andrej Karpathy. Optimization

 * Karen Simonyan and Andrew Zisserman. "Very Deep Convolutional Networks for Large-

 Scale Image Recognition"

 Intro Background Video Credits:

 * Machine Learning: Living in the Age of AI

What are the requirements?

  • A medium configuration computer and the willingness to indulge in the world of Deep Learning

What am I going to get from this course?

  • Computer Vison and Image Recognition Specific Deep Learning and Convolutional Neural Networks using Python for Beginners

What is the target audience?

  • Beginners who are interested in becoming experts in Deep Learning and Computer Vision using Python

About the Author

I  am a pioneering, talented and security-oriented Android/iOS Mobile and PHP/Python Web Developer Application Developer offering more than eight years’ overall IT experience which involves designing, implementing, integrating, testing and supporting impact-full web and mobile applications. I am a Post Graduate Masters Degree holder in Computer Science and Engineering. My experience with PHP/Python Programming is an added advantage for server based Android and iOS Client Applications. I am currently serving full time as a Senior Solution Architect managing my client's projects from start to finish to ensure high quality, innovative and functional design.

Course Curriculum

Course Introduction and Table of Contents
1 Video Lectures | 00:10:13

  • Course Introduction And Table Of Contents
    10:13
     

Introduction to Deep Learning
1 Video Lectures | 00:07:47

  • Introduction to Deep Learning
    07:47
     

Introduction to Neural Networks
1 Video Lectures | 00:06:53

  • Introduction to Neural Networks
    06:53
     

Image Basics
2 Video Lectures | 00:10:13

  • Image Basics - Part 1
    05:55
     
  • Image Basics - Part 2
    04:18
     

Preparing your computer - Installing Anaconda
1 Video Lectures | 00:09:14

  • Preparing your computer - Installing Anaconda
    09:14
     

Preparing your computer - Installing Dependencies
1 Video Lectures | 00:08:24

  • Preparing your computer - Installing Dependencies
    08:24
     

Python Basics
4 Video Lectures | 00:34:37

  • Python Basics - Assignment
    09:16
     
  • Python Basics - Flow Control
    09:27
     
  • Python Basics - Functions
    03:59
     
  • Python Basics - Data Structures
    11:55
     

Load and Show Image
1 Video Lectures | 00:07:08

  • Load and Show Image
    07:08
     

Image Classification Basics
2 Video Lectures | 00:13:40

  • Image Classification Basics - Part 1
    06:10
     
  • Image Classification Basics - Part 2
    07:30
     

List of Popular Datasets Included
1 Video Lectures | 00:05:33

  • List of Popular Datasets Included
    05:33
     

KNN Image Classifier - Downloading Animals Dataset
1 Video Lectures | 00:04:27

  • KNN Image Classifier - Downloading Animals Dataset
    04:27
     

Creating Common Pre-processor
1 Video Lectures | 00:10:54

  • Creating Common Pre-processor
    10:54
     

Creating Common Loader
2 Video Lectures | 00:19:46

  • Creating Common Loader - Part 1
    10:45
     
  • Creating Common Loader - Part 2
    09:01
     

KNN Basics
2 Video Lectures | 00:10:59

  • KNN Basics - Part 1
    05:01
     
  • KNN Basics - Part 2
    05:58
     

KNN Implementation - Load and Process
3 Video Lectures | 00:21:54

  • KNN Implementation - Load and Process - Part 1
    08:00
     
  • KNN Implementation - Load and Process - Part 2
    05:06
     
  • KNN Implementation - Load and Process - Part 3
    08:48
     

KNN Implementation - Splitting the Dataset
1 Video Lectures | 00:07:40

  • KNN Implementation - Splitting the Dataset
    07:40
     

KNN Implementation - Training and Evaluation
2 Video Lectures | 00:12:16

  • KNN Implementation - Training and Evaluation - Part 1
    05:11
     
  • KNN Implementation - Training and Evaluation - Part 2
    07:05
     

KNN Prediction
2 Video Lectures | 00:15:20

  • KNN Prediction - Part 1
    06:52
     
  • KNN Prediction - Part 2
    08:28
     

Introduction to Linear Classification
2 Video Lectures | 00:14:25

  • Introduction to Linear Classification - Part 1
    08:37
     
  • Introduction to Linear Classification - Part 2
    05:48
     

Scoring Function Basics
2 Video Lectures | 00:10:46

  • Scoring Function Basics - Part 1
    06:22
     
  • Scoring Function Basics - Part 2
    04:24
     

Scoring Function - Implementation
2 Video Lectures | 00:15:09

  • Scoring Function - Implementation - Part 1
    07:10
     
  • Scoring Function - Implementation - Part 2
    07:59
     

Loss Function Basics
1 Video Lectures | 00:09:02

  • Loss Function Basics
    09:02
     

Optimization Concept Terminology and Challenges
2 Video Lectures | 00:13:24

  • Optimization Concept Terminology and Challenges - Part 1
    07:30
     
  • Optimization Concept Terminology and Challenges - Part 2
    05:54
     

Gradient Descent Implementation
5 Video Lectures | 00:49:50

  • Gradient Descent Implementation - Part 1
    09:45
     
  • Gradient Descent Implementation - Part 2
    09:54
     
  • Gradient Descent Implementation - Part 3
    07:59
     
  • Gradient Descent Implementation - Part 4
    11:14
     
  • Gradient Descent Implementation - Part 5
    10:58
     

Stochastic Gradient Descent Implementation
2 Video Lectures | 00:17:10

  • Stochastic Gradient Descent Implementation - Part 1
    07:41
     
  • Stochastic Gradient Descent Implementation - Part 2
    09:29
     

Introduction to Regularization
1 Video Lectures | 00:04:43

  • Introduction to Regularization
    04:43
     

Implementing Regularization
1 Video Lectures | 00:11:11

  • Implementing Regularization
    11:11
     

Introduction to Perceptrons
2 Video Lectures | 00:16:08

  • Introduction to Perceptrons - Part 1
    08:07
     
  • Introduction to Perceptrons - Part 2
    08:01
     

Perceptron Implementation: Creating Class
3 Video Lectures | 00:26:32

  • Perceptron Implementation: Creating Class - Part 1
    09:31
     
  • Perceptron Implementation: Creating Class - Part 2
    11:03
     
  • Perceptron Implementation: Creating Class - Part 3
    05:58
     

Perceptron Implementation: Creating BitWise Evaluation Program
2 Video Lectures | 00:16:38

  • Perceptron Implementation: Creating BitWise Evaluation Program - Part 1
    07:02
     
  • Perceptron Implementation: Creating BitWise Evaluation Program - Part 2
    09:36
     

Introduction to Back Propagation
2 Video Lectures | 00:10:53

  • Introduction to Back Propagation - Part 1
    04:50
     
  • Introduction to Back Propagation - Part 2
    06:03
     

Back Propagation Implementation - Creating Class
7 Video Lectures | 01:00:03

  • Back Propagation Implementation - Creating Class - Part 1
    09:25
     
  • Back Propagation Implementation - Creating Class - Part 2
    09:04
     
  • Back Propagation Implementation - Creating Class - Part 3
    10:04
     
  • Back Propagation Implementation - Creating Class - Part 4
    05:34
     
  • Back Propagation Implementation - Creating Class - Part 5
    09:54
     
  • Back Propagation Implementation - Creating Class - Part 6
    08:37
     
  • Back Propagation Implementation - Creating Class - Part 7
    07:25
     

Back Propagation - Create XOR Evaluation Program
2 Video Lectures | 00:18:28

  • Back Propagation - Create XOR Evaluation Program - Part 1
    08:32
     
  • Back Propagation - Create XOR Evaluation Program - Part 2
    09:56
     

Back Propagation - Create MNIST Evaluation Program
3 Video Lectures | 00:24:01

  • Back Propagation - Create MNIST Evaluation Program - Part 1
    03:48
     
  • Back Propagation - Create MNIST Evaluation Program - Part 2
    10:19
     
  • Back Propagation - Create MNIST Evaluation Program - Part 3
    09:54
     

Keras Based MNIST Evaluation Program
4 Video Lectures | 00:34:44

  • Keras Based MNIST Evaluation Program - Part 1
    07:59
     
  • Keras Based MNIST Evaluation Program - Part 2
    09:02
     
  • Keras Based MNIST Evaluation Program - Part 3
    07:35
     
  • Keras Based MNIST Evaluation Program - Part 4
    10:08
     

Introduction to Convolutional Neural Networks
1 Video Lectures | 00:11:18

  • Introduction to Convolutional Neural Networks
    11:18
     

Custom Convolution using Python
4 Video Lectures | 00:30:19

  • Custom Convolution using Python - Part 1
    04:56
     
  • Custom Convolution using Python - Part 2
    09:47
     
  • Custom Convolution using Python - Part 3
    10:03
     
  • Custom Convolution using Python - Part 4
    05:33
     

CNN Design Best Practices and ShallowNet Introduction
1 Video Lectures | 00:05:08

  • CNN Design Best Practices and ShallowNet Introduction
    05:08
     

Create ShallowNet Class
2 Video Lectures | 00:13:51

  • Create ShallowNet Class - Part 1
    05:15
     
  • Create ShallowNet Class - Part 2
    08:36
     

ShallowNet using Animals Dataset
2 Video Lectures | 00:19:49

  • ShallowNet using Animals Dataset - Part 1
    08:52
     
  • ShallowNet using Animals Dataset - Part 2
    10:57
     

ShallowNet using CIFAR10 Dataset
1 Video Lectures | 00:12:47

  • ShallowNet using CIFAR10 Dataset
    12:47
     

ShallowNet CIFAR10 Save and Load Model
1 Video Lectures | 00:07:18

  • ShallowNet CIFAR10 Save and Load Model
    07:18
     

ShallowNet CIFAR10 Predict
1 Video Lectures | 00:12:01

  • ShallowNet CIFAR10 Predict
    12:01
     

ShallowNet Animals Save, Load and Predict
1 Video Lectures | 00:05:19

  • ShallowNet Animals Save, Load and Predict
    05:19
     

LeNet Overview
1 Video Lectures | 00:07:44

  • LeNet Overview
    07:44
     

Create LeNet Class
1 Video Lectures | 00:08:52

  • Create LeNet Class
    08:52
     

Lenet MNIST Train and Save
1 Video Lectures | 00:11:14

  • Lenet MNIST Train and Save
    11:14
     

Lenet MNIST Prediction
1 Video Lectures | 00:06:13

  • Lenet MNIST Prediction
    06:13
     

Introduction to VGGNet Architecture
1 Video Lectures | 00:07:25

  • Introduction to VGGNet Architecture
    07:25
     

Creating VGGNet Class
1 Video Lectures | 00:09:58

  • Creating VGGNet Class
    09:58
     

VGGNet CIFAR 10 Model Save
1 Video Lectures | 00:07:45

  • VGGNet CIFAR 10 Model Save
    07:45
     

VGGNet CIFAR 10 Predict
1 Video Lectures | 00:04:24

  • VGGNet CIFAR 10 Predict
    04:24
     

Learning Rate Scheduler
2 Video Lectures | 00:11:18

  • Learning Rate Scheduler - Part 1
    04:53
     
  • Learning Rate Scheduler - Part 2
    06:25
     

Improvement Checkpoint
2 Video Lectures | 00:15:59

  • Improvement Checkpoint - Part 1
    10:15
     
  • Improvement Checkpoint - Part 2
    05:44
     

Pretrained VGGNet 16
2 Video Lectures | 00:16:08

  • Pretrained VGGNet 16 - Part 1
    10:10
     
  • Pretrained VGGNet 16 - Part 2
    05:58
     

Pretrained VGGNet 19
1 Video Lectures | 00:04:20

  • Pretrained VGGNet 19
    04:20
     

Pretrained ResNet
1 Video Lectures | 00:04:52

  • Pretrained ResNet
    04:52
     

Pretrained Inception
1 Video Lectures | 00:05:55

  • Pretrained Inception
    05:55
     

Pretrained Xception
1 Video Lectures | 00:06:35

  • Pretrained Xception
    06:35
     

SOURCE CODE AND FILES ATTACHED
1 Document Lectures

  • Source Code Download Link Attached
    78 Page

Includes Real Projects
1 Text Lectures

  • Includes Real Projects
     

reviews

  • akbar Pasha
    Nadim