4.24 out of 5
2523 reviews on Udemy

Master Computer Vision™ OpenCV4 in Python with Deep Learning

Learn OpenCV4, Dlib, Keras, TensorFlow & Caffe while completing over 21 projects such as classifiers, detectors & more!
Rajeev Ratan
14,078 students enrolled
English [Auto-generated] More
Understand and use OpenCV4 in Python
How to use Deep Learning using Keras & TensorFlow in Python
Create Face Detectors & Recognizers and create your own advanced face swaps using DLIB
Object Detection, Tracking and Motion Analysis
Create Augmented Reality Apps
Programming skills such as basic Python and Numpy
How to use Computer Vision in executing cool startup ideas
Understand Neural and Convolutional Neural Networks
Learn to build simple Image Classifiers in Python
Learn to build an OCR Reader for Credit Cards
Learn to Perform Neural Style Transfer Using OpenCV
Learn how to do Multi Object Detection in OpenCV (up to 90 Objects!) using SSDs (Single Shot Detector)
Learn how to convert black and white Images to color using Caffe
Learn to build an Automatic Number (License) Plate Recognition (ALPR)
Learn the Basics of Computer Vision and Image Processing

Welcome to one of the most thorough and well taught courses on OpenCV, where you’ll learn how to Master Computer Vision using newest version of OpenCV4 in Python!


You will be learning:

  1. The key concepts of Computer Vision & OpenCV (using the newest version OpenCV 4)

  2. To perform image manipulations such as transformations, cropping, blurring, thresholding, edge detection and cropping.

  3. To segment images by understanding contours, circle, and line detection. You’ll even learn how to approximate contours, do contour filtering and ordering as well as approximations.

  4. Use feature detection (SIFT, SURF, FAST, BRIEF & ORB) to do object detection.

  5. Implement Object Detection for faces, people & cars.

  6. Extract facial landmarks for face analysis, applying filters and face swaps.

  7. Implement Machine Learning in Computer Vision for handwritten digit recognition.

  8. Implement Facial Recognition.

  9. Implement and understand Motion Analysis & Object Tracking.

  10. Use basic computational photography techniques for Photo Restoration (eliminate marks, lines, creases, and smudges from old damaged photos).

  11. How to become a true computer vision expert by getting started in Deep Learning ( 3+ hours of Deep Learning with Keras in Python)

  12. How to develop Computer Vision Product Ideas

  13. How to perform Multi Object Detection (90 Object Types)

  14. How to colorize Black & White Photos and Video

  15. Neural Style Transfers – Apply the artistic style of Van Gogh, Picasso and others to any image even your webcam input

  16. How to make your own Automatic Number-Plate Recognition (ALPR

  17. Credit Card Number Identification (Build your own OCR Classifier with PyTesseract)


You’ll also be implementing 21 awesome projects! 


OpenCV Projects Include:

  1. Live Drawing Sketch using your webcam

  2. Identifying Shapes

  3. Counting Circles and Ellipses

  4. Finding Waldo

  5. Single Object Detectors using OpenCV

  6. Car and Pedestrian Detector using Cascade Classifiers

  7. Live Face Swapper (like MSQRD & Snapchat filters!!!)

  8. Yawn Detector and Counter

  9. Handwritten Digit Classification

  10. Facial Recognition

  11. Ball Tracking

  12. Photo-Restoration

  13. Automatic Number-Plate Recognition (ALPR)

  14. Neural Style Transfer Mini Project

  15. Multi Object Detection in OpenCV (up to 90 Objects!) using SSD (Single Shot Detector)

  16. Colorize Black & White Photos and Video

Deep Learning Projects Include:

  1. Build a Handwritten Digit Classifier

  2. Build a Multi Image Classifier

  3. Build a Cats vs Dogs Classifier

  4. Understand how to boost CNN performance using Data Augmentation

  5. Extract and Classify Credit Card Numbers


What previous students have said: 

“I’m amazed at the possibilities. Very educational, learning more than what I ever thought was possible. Now, being able to actually use it in a practical purpose is intriguing… much more to learn & apply”

“Extremely well taught and informative Computer Vision course! I’ve trawled the web looking for Opencv python tutorials resources but this course was by far the best amalgamation of relevant lessons and projects. Loved some of the projects and had lots of fun tinkering them.”

“Awesome instructor and course. The explanations are really easy to understand and the materials are very easy to follow. Definitely a really good introduction to image processing.”

“I am extremely impressed by this course!! I think this is by far the best Computer Vision course on Udemy. I’m a college student who had previously taken a Computer Vision course in undergrad. This 6.5 hour course blows away my college class by miles!!”

“Rajeev did a great job on this course. I had no idea how computer vision worked and now have a good foundation of concepts and knowledge of practical applications. Rajeev is clear and concise which helps make a complicated subject easy to comprehend for anyone wanting to start building applications.”


Why Learn Computer Vision in Python using OpenCV?

Computer vision applications and technology are exploding right now! With several apps and industries making amazing use of the technology, from billion dollar apps such as Pokémon GO, Snapchat and up and coming apps like MSQRD and PRISMA.

Even Facebook, Google, Microsoft, Apple, Amazon, and Tesla are all heavily utilizing computer vision for face & object recognition, image searching and especially in Self-Driving Cars!

As a result, the demand for computer vision expertise is growing exponentially!

However, learning computer vision is hard! Existing online tutorials, textbooks, and free MOOCs are often outdated, using older an incompatible libraries or are too theoretical, making it difficult to understand. 

This was my problem when learning Computer Vision and it became incredibly frustrating. Even simply running example code I found online proved difficult as libraries and functions were often outdated.

I created this course to teach you all the key concepts without the heavy mathematical theory while using the most up to date methods. 

I take a very practical approach, using more than 50 Code Examples.

At the end of the course, you will be able to build 12 Awesome Computer Vision Apps using OpenCV in Python.

I use OpenCV which is the most well supported open source computer vision library that exists today! Using it in Python is just fantastic as Python allows us to focus on the problem at hand without being bogged down by complex code.

If you’re an academic or college student I still point you in the right direction if you wish to learn more by linking the research papers of techniques we use. 

So if you want to get an excellent foundation in Computer Vision, look no further.

This is the course for you!

In this course, you will discover the power of OpenCV in Python, and obtain skills to dramatically increase your career prospects as a Computer Vision developer.

You get 3+ Hours of Deep Learning in Computer Vision using Keras, which includes:

  • A free Virtual Machine with all Deep Learning Python Libraries such as Keras and TensorFlow pre-installed

  • Detailed Explanations on Neural Networks and Convolutional Neural Networks

  • Understand how Keras works and how to use and create image datasets

  • Build a Handwritten Digit Classifier

  • Build a Multi Image Classifier

  • Build a Cats vs Dogs Classifier

  • Understand how to boost CNN performance using Data Augmentation

  • Extract and Classify Credit Card Numbers

As for Updates and support:

I will be continuously adding updates, fixes, and new amazing projects every month! 

I will be active daily in the ‘questions and answers’ area of the course, so you are never on your own.    

So, are you ready to get started? Enroll now and start the process of becoming a master in Computer Vision today!

Course Introduction and Setup


A brief into to the course, what it covers and the ideal types of students.

Introduction to Computer Vision and OpenCV

Get a brief introduction to what makes computer vision difficult.

About this course

A more detailed look at what this course covers. 

READ THIS - Guide to installing and setting up your OpenCV4.0.1 Virtual Machine
Recomended - Setup your OpenCV4.0.1 Virtual Machine
Installation of OpenCV & Python on Windows
  • Installation guide for Windows users. 

NOTE: Ideally you should install Anaconda with Python 2.7 and OpenCV 2.4.13 or OpenCV 3.3 with the contrib package added. 

Installation of OpenCV & Python on Mac

Installation guide for Mac users. Ideally you should be using Python 2.7 and OpenCV 2.4.13 or OpenCV 3.0.0 or 3.3.0 with the contrib package added. All code is compatible with Python 3.5, so there's no need to create a separate install for Python or downgrade. 

Please note, if you have issues installing OpenCV alongside your Anaconda installation, you can try to create a virtual environment, install OpenCV and its dependencies there. To best use the jupyter/ipython notebooks provided in this course, you can open them in a regular jupyter notebook and copy the code into a *.py file.

Installation of OpenCV & Python on Linux

Installation guide for Linux (Ubantu) users. Ideally you should be using Python 2.7 and OpenCV 2.4.13 or OpenCV 3.0.0 or 3.3.0 with the contrib package added. All code is compatible with Python 3.5, so there's no need to create a separate install for Python or downgrade. 

Please note, if you have issues installing OpenCV alongside your Anaconda installation, you can try to create a virtual environment, install OpenCV and its dependencies there. To best use the jupyter/ipython notebooks provided in this course, you can open them in a regular jupyter notebook and copy the code into a *.py file.

Set up course materials (DOWNLOAD LINK BELOW) - Not needed if using the new VM

Please download the course resources. 

Basics of Computer Vision and OpenCV

What are Images?

Understand what exactly is meant when we say "image". 

How are Images Formed?

You'll understand how images are formed.

Storing Images on Computers

Understand how images are stored on computers, specifically in python in numpy arrays.

Getting Started with OpenCV - A Brief OpenCV Intro

Reading writing and displaying images. 

Grayscaling - Converting Color Images To Shades of Gray

Convert color images to black and white (grayscaling). 

Understanding Color Spaces - The Many Ways Color Images Are Stored Digitally

Understand the different color spaces (RGB and HSV) and understand why they're important. 

Histogram representation of Images - Visualizing the Components of Images

Understand how to display the histogram representation of an image and how to interpret it. 

Creating Images & Drawing on Images - Make Squares, Circles, Polygons & Add Text

Know how to draw lines, circles, rectangles, polygons and text in images using OpenCV.

Image Manipulations & Processing

Transformations, Affine And Non-Affine - The Many Ways We Can Change Images

Understand the different types of image transforms, what makes affine different to non-affine transforms.

Image Translations - Moving Images Up, Down. Left And Right

Implement translations in OpenCV.

Rotations - How To Spin Your Image Around And Do Horizontal Flipping

Implement rotations in OpenCV and understand how images are rotated around an axis. Also use OpenCV's flip function to rotate without needing to re-size the image canvas.

Scaling, Re-sizing and Interpolations - Understand How Re-Sizing Affects Quality

Implement re-sizing (up-scaling or down-scaling) of images. Understand what interpolation is and the different methods of interpolation. 

Image Pyramids - Another Way of Re-Sizing

Implement and understand what image pyramiding is and when it can be useful. 

Cropping - Cut Out The Image The Regions You Want or Don't Want

Perform cropping on images using numpy indexing abilities to extract or crop segments of an image. 

Arithmetic Operations - Brightening and Darkening Images

Perform summation or negation operations on images using OpenCV which produces a brightening or darkening effects. 

Bitwise Operations - How Image Masking Works

Understand and implement different bitwise operations on images, very useful technique when masking images. 

Blurring - The Many Ways We Can Blur Images & Why It's Important

Understand and implement different types of blurring methods in OpenCV.

Sharpening - Reverse Your Images Blurs

Understand and implement sharpening of images in OpenCV, using a special kernel. 

Thresholding (Binarization) - Making Certain Images Areas Black or White

Implement several different types of thresholding operations in OpenCV.

Dilation, Erosion, Opening/Closing - Importance of Thickening/Thinning Lines

Understand what is dilation and erosion and learn how to implement and properly use both operations.

Edge Detection using Image Gradients & Canny Edge Detection

Implement different methods of Edge Detection including the powerful Canny Edge Detection Algorithm.

Perspective & Affine Transforms - Take An Off Angle Shot & Make It Look Top Down

Understand how to obtain transformation matrices from both affine (3 pairs of points) and non-affine (4 pairs of points).

Mini Project 1 - Live Sketch App - Turn your Webcam Feed Into A Pencil Drawing

Create a live sketching app. It uses a live video from your webcam and extracts the edges to create a sketch drawing effect. 

Image Segmentation & Contours

Segmentation and Contours - Extract Defined Shapes In Your Image

Understand what contours are, perform the operation using OpenCV and understand the different types of extraction methods. 

Sorting Contours - Sort Those Shapes By Size

Be able to sort contours either left-to-right or by size.

Approximating Contours & Finding Their Convex Hull - Clean Up Messy Contours

Implement contour approximations and find the convex hull of contours. 

Matching Contour Shapes - Match Shapes In Images Even When Distorted

Match contours to predefined shape templates.

Mini Project 2 - Identify Shapes (Square, Rectangle, Circle, Triangle & Stars)

Create an app that can extract contours and identify the shapes in the image.

Line Detection - Detect Straight Lines E.g. The Lines On A Sudoku Game

Using Houghlines and Probabilistic Hough Lines. 

Circle Detection

Identify circles in an image

Blob Detection - Detect The Center of Flowers

Understand what blobs are as defined by computer vision theory and implement a simple blob detection example.

Mini Project 3 - Counting Circles and Ellipses

Use blob detection to distinguish between circles and ellipses in an image. 

Object Detection in OpenCV

Object Detection Overview

Understand why Object Detection is important.

Mini Project # 4 - Finding Waldo (Quickly Find A Specific Pattern In An Image)

Use template matching to find Waldo in an image.

Feature Description Theory - How We Digitally Represent Objects

Understand what are image features and why they are important. 

Finding Corners - Why Corners In Images Are Important to Object Detection

Implement two methods of finding corners in an image. 

SIFT, SURF, FAST, BRIEF & ORB - Learn The Different Ways To Get Image Features

Implement common feature extraction algorithms such as SIFT, SURF, FAST, BRIEF and ORB.

Mini Project 5 - Object Detection - Detect A Specific Object Using Your Webcam

Use both SIFT or ORB to identify a specific object. A fun exercise would be to extend this to multiple objects.

Histogram of Oriented Gradients - Another Novel Way Of Representing Images

You'll get a brief overview of how we find HOGs and use them as image descriptors. We then visualize the HOGs of an image.

Object Detection - Build a Face, People and Car/Vehicle Detectors

HAAR Cascade Classifiers - Learn How Classifiers Work And Why They're Amazing

Get a quick overview of what HAAR feature are and how HAAR Cascade Classifiers work.

Face and Eye Detection - Detect Human Faces and Eyes In Any Image

Use HAAR Cascade Classifiers to identify faces and eyes in images.

Mini Project 6 - Car and Pedestrian Detection in Videos

Use HAAR Cascade Classifiers to identify cars and people/pedestrians in images. 

Augmented Reality (AR) - Facial Landmark Identification (Face Swaps)

Face Analysis and Filtering - Identify Face Outline, Lips, Eyes Even Eyebrows

Install and use DLIB to identify 68 facial landmarks in images.

Merging Faces (Face Swaps) - Combine Two Faces For Fun & Sometimes Scary Results

Use facial landmarks to create a very accurate face swap app.

Mini Project 7 - Live Face Swapper (like MSQRD & Snapchat filters!!!)

Implement a very cool live face swapping app. Use any face image to overlay onto yours creating amazing and fun effects!

Mini Project 8 - Yawn Detector and Counter

Use the tracking of facial landmarks around lips to determine when your mouth is open. This constitutes a yawn in our basic program and we then keep track of the number of times you've yawned. 

Simple Machine Learning using OpenCV

Machine Learning Overview - What Is It & Why It's Important to Computer Vision

Get a basic overview of what machine learning is and how we use it in Computer Vision.

Mini Project 9 - Handwritten Digit Classification

Implement a basic machine learning program that can identify handwritten digits. 

Mini Project # 10 - Facial Recognition - Make Your Computer Recognize You

Use one of OpenCV's inbuilt facial recognition functions to implement a basic facial recognition program.

Object Tracking & Motion Analysis

Filtering by Color

Filter images by specific colors. 

Background Subtraction and Foreground Subtraction

Implement simple background subtraction as well an interesting foreground extraction technique. 

Using Meanshift for Object Tracking

Implement Meanshift for Object Tracking.

Using CAMshift for Object Tracking

Implement CAMshift for Object Tracking.

Optical Flow - Track Moving Objects In Videos

Use Optical Flow to tracking movement in images. 

Mini Project # 11 - Ball Tracking

Implement a simple ball tracking app that also creates a trail.

Computational Photography & Make a License Plate Reader

Mini Project # 12 - Photo-Restoration

Remove scratches, folds and lines on old damaged images 

Mini Project # 13 - Automatic Number-Plate Recognition (ALPR)


Course Summary and how to become an Expert

Get a recap on the topics we've covered and understand what it takes a become a computer vision expert. 

Latest Advances, 12 Startup Ideas & Implementing Computer VIsion in Mobile Apps

See what's the latest advances in Computer Vision, get 12 awesome startup ideas and how to use OpenCV in mobile phone apps. 

BONUS - Deep Learning Computer Vision 1 - Setup a Deep Learning Virtual Machine

Setup your Deep Learning Virtual Machine
Intro to Handwritten Digit Classification (MNIST)
Intro to Multiple Image Classification (CIFAR10)

BONUS - Deep Learning Computer Vision 2 - Introduction to Neural Networks

Neural Networks Chapter Overview
Machine Learning Overview
Neural Networks Explained
Forward Propagation
Activation Functions
Training Part 1 – Loss Functions
Training Part 2 – Backpropagation and Gradient Descent
Backpropagation & Learning Rates – A Worked Example
Regularization, Overfitting, Generalization and Test Datasets
Epochs, Iterations and Batch Sizes
Measuring Performance and the Confusion Matrix
Review and Best Practices

BONUS - Deep Learning Computer Vision 3 - Convolutional Neural Networks (CNNs)

Convolutional Neural Networks Chapter Overview
Introduction to Convolutional Neural Networks (CNNs)
Convolutions & Image Features
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.2 out of 5
2523 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


10 hours on-demand video
12 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion