Introduction to Computer Vision | Master OpenCV 3 in Python
4.2 (736 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
5,067 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Introduction to Computer Vision | Master OpenCV 3 in Python to your Wishlist.

Add to Wishlist

Introduction to Computer Vision | Master OpenCV 3 in Python

Build 12 Python apps: such as Augmented Reality Face Filters (Snapchat/MSQRD), Face Recognition & car/people detection!
Best Seller
4.2 (736 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
5,067 students enrolled
Created by Rajeev Ratan
Last updated 6/2017
English
English [Auto-generated]
Curiosity Sale
Current price: $10 Original price: $195 Discount: 95% off
30-Day Money-Back Guarantee
Includes:
  • 6.5 hours on-demand video
  • 3 Articles
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Build complex computer vision applications using the latest techniques in OpenCV
  • Understanding how to use Machine Learning & Augmented Reality in computer vision
  • Use computer vision to implement cool startup ideas
  • Use several methods of object detection and facial analysis to create amazing apps
  • Program in Python
  • Use Numpy in Python
View Curriculum
Requirements
  • Basic Python is a plus, but no programming knowledge is needed! I'll be showing you everything you need to know.
  • You will need a computer running Microsoft Windows, or Linux, or a Mac running OS X.
  • All the software needed in this course is free and opensource! I provide all images, models and classifiers used in this course!
  • A webcam to implement some of the mini projects
Description

======================================================

What previous students have said:

"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."

======================================================

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 heavily mathematical theory while using the most up to date methods. 

I take a very practical approach, using almost 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 will learn:

  • The key concepts of computer Vision & OpenCV.
  • To perform image manipulations such as transformations, cropping, blurring, thresholding, edge detection and cropping.
  • 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.
  • Use feature detection (SIFT, SURF, FAST, BRIEF & ORB) to do object detection.
  • Implement Object Detection for faces, people & cars.
  • Extract facial landmarks for face analysis, applying filters and face swaps.
  • Implement Machine Learning in Computer Vision for handwritten digit recognition.
  • Implement Facial Recognition.
  • Implement and understand Motion Analysis & Object Tracking.
  • Use basic computational photography techniques for Photo Restoration (eliminate marks, lines, creases, and smudges from old damaged photos).
  • How to become a true computer vision expert by getting started in Deep Learning
  • 12 Cool computer vision startup ideas

======================================================

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!

Who is the target audience?
  • Beginners who have an interest in computer vision
  • College students looking to get a head start before starting computer vision research
  • Entrepreneurs looking to implement computer vision startup ideas
  • Software Developers and Engineers wanting to develop a computer vision skillset
  • Hobbyists wanting to make a cool computer vision prototype
Students Who Viewed This Course Also Viewed
Curriculum For This Course
65 Lectures
06:25:52
+
Course Introduction and Setup
7 Lectures 24:18

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

Preview 02:05

Get a brief introduction to what makes computer vision difficult.

Preview 03:08

A more detailed look at what this course covers. 

Preview 05:14

Installation guide for Windows users. 

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

OpenCV & Python Installation (Windows)
08:54

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.1.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 (Mac)
01:42

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.1.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 (Linux)
01:33

Please download the course resources from the dropbox link attached. 

Setting up our course materials
01:42
+
Basics of Computer Vision and OpenCV
8 Lectures 43:05

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

What are Images?
02:27

You'll understand how images are formed.

Image Formation
03:20

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

Storing Images on Computers
05:24

Reading writing and displaying images. 

Getting Started with OpenCV
09:19

Convert color images to black and white (grayscaling). 

Grayscaling
01:59

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

Color Spaces
12:12

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

Histograms
04:37

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

Preview 03:47
+
Image Manipulations
15 Lectures 01:01:18

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

Transformations, affine and non-affine
02:22

Implement translations in OpenCV.

Translations
02:47

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.

Rotations
03:11

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

Scaling, Re-sizing and Interpolations
04:27

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

Image Pyramids
01:53

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

Cropping
02:42

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

Arithmetic Operations (Brightening and Darkening Images)
03:36

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

Bitwise Operations (masking)
03:36

Understand and implement different types of blurring methods in OpenCV.

Blurring
07:28

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

Sharpening
01:51

Implement several different types of thresholding operations in OpenCV.

Thresholding (Binarization)
08:39

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

Preview 04:57

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

Edge Detection and Image Gradients
04:52

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

Perspective and Affine Transforms
03:55

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

Mini Project # 1 - Live Sketch App
05:02
+
Image Segmentation
9 Lectures 57:17

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

Segmentation and Contours
11:11

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

Sorting Contours
13:00

Implement contour approximations and find the convex hull of contours. 

Approximating Contours and Finding their Convex Hull
05:41

Match contours to predefined shape templates.

Matching Contour Shapes
05:28

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

Mini Project # 2 - Identifying Shapes
05:29

Using Houghlines and Probabilistic Hough Lines. 

Line Detection
06:24

Identify circles in an image

Circle Detection
00:38

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

Blob Detection
03:20

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

Mini Project # 3 - Counting Circles and Ellipses
06:06
+
Object Detection
7 Lectures 50:50

Understand why Object Detection is important.

Object Detection Overview
03:20

Use template matching to find Waldo in an image.

Mini Project # 4 - Finding Waldo
02:45

Understand what are image features and why they are important. 

Feature Description Theory
04:37

Implement two methods of finding corners in an image. 

Finding Corners
06:46

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

SIFT, SURF, FAST, BRIEF and ORB
10:16

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

Mini Project # 5 - Object Detection
14:57

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.

Histogram of Oriented Gradients
08:09
+
Face, People and Car Detection
3 Lectures 22:38

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

HAAR Cascade Classifiers
05:12

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

Face and Eye Detection
10:40

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

Mini Project # 6 - Car and Pedestrian Detection
06:46
+
Augmented Reality -Facial Landmark Identification (Filters, Swaps & Analysis)
4 Lectures 35:14

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

Face Analysis and Filtering
10:56

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

Merging Faces (Face Swaps)
09:27

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

Mini Project # 7 - Live Face Swapper (like MSQRD & Snapchat filters!!!)
06:07

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. 

Mini Project # 8 - Yawn Detector and Counter
08:44
+
Machine Learning in Computer Vision
3 Lectures 41:01

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

Machine Learning Overview
08:54

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

Mini Project # 9 - Handwritten Digit Classification
20:00

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

Mini Project # 10 - Facial Recognition
12:07
+
Motion Analysis and Object Tracking
6 Lectures 34:26

Filter images by specific colors. 

Filtering by Color
06:15

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

Background Subtraction and Foreground Subtraction
06:54

Implement Meanshift for Object Tracking.

Using Meanshift for Object Tracking
04:55

Implement CAMshift for Object Tracking.

Using CAMshift for Object Tracking
04:04

Use Optical Flow to tracking movement in images. 

Optical Flow
07:17

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

Mini Project # 11 - Ball Tracking
05:01
+
BONUS - Computation Photography
1 Lecture 06:34

Remove scratches, folds and lines on old damaged images 

Mini Project # 12 - Photo-Restoration
06:34
1 More Section
About the Instructor
Rajeev Ratan
4.2 Average rating
730 Reviews
5,067 Students
1 Course
Computer Vision Expert, Data Scientist & Electrical Engineer

Hi I'm Rajeev and I love Data Science and Computer Vision. 

I have a BSc in Computer & Electrical Engineering and MSc in Artificial Intelligence from the University of Edinburgh where I gained extensive knowledge machine learning, computer vision and intelligent robotics.

I have published research on using data-driven methods for probabilistic stochastic modeling and even was part of a group that won a robotic competition at the University of Edinburgh. 

I've attempted my own computer vision startup that was based around deep learning. I've been contributing to 2 more startups in computer vision domains. 

Previously, I worked at two of the Caribbean’s largest telecommunication operators where he gained experience in managing technical staff and deploying complex telecommunications projects.