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:
The key concepts of Computer Vision & OpenCV (using the newest version OpenCV 4)
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 ( 3+ hours of Deep Learning with Keras in Python)
How to develop Computer Vision Product Ideas
How to perform Multi Object Detection (90 Object Types)
How to colorize Black & White Photos and Video
Neural Style Transfers – Apply the artistic style of Van Gogh, Picasso and others to any image even your webcam input
How to make your own Automatic Number-Plate Recognition (ALPR
Credit Card Number Identification (Build your own OCR Classifier with PyTesseract)
======================================================
You’ll also be implementing 21 awesome projects!
======================================================
OpenCV Projects Include:
Live Drawing Sketch using your webcam
Identifying Shapes
Counting Circles and Ellipses
Finding Waldo
Single Object Detectors using OpenCV
Car and Pedestrian Detector using Cascade Classifiers
Live Face Swapper (like MSQRD & Snapchat filters!!!)
Yawn Detector and Counter
Handwritten Digit Classification
Facial Recognition
Ball Tracking
Photo-Restoration
Automatic Number-Plate Recognition (ALPR)
Neural Style Transfer Mini Project
Multi Object Detection in OpenCV (up to 90 Objects!) using SSD (Single Shot Detector)
Colorize Black & White Photos and Video
Deep Learning Projects Include:
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
======================================================
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.
Get a brief introduction to what makes computer vision difficult.
A more detailed look at what this course covers.
- 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 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 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.
Please download the course resources.
Basics of Computer Vision and OpenCV
Understand what exactly is meant when we say "image".
You'll understand how images are formed.
Understand how images are stored on computers, specifically in python in numpy arrays.
Reading writing and displaying images.
Convert color images to black and white (grayscaling).
Understand the different color spaces (RGB and HSV) and understand why they're important.
Understand how to display the histogram representation of an image and how to interpret it.
Know how to draw lines, circles, rectangles, polygons and text in images using OpenCV.
Image Manipulations & Processing
Understand the different types of image transforms, what makes affine different to non-affine transforms.
Implement translations in OpenCV.
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.
Implement re-sizing (up-scaling or down-scaling) of images. Understand what interpolation is and the different methods of interpolation.
Implement and understand what image pyramiding is and when it can be useful.
Perform cropping on images using numpy indexing abilities to extract or crop segments of an image.
Perform summation or negation operations on images using OpenCV which produces a brightening or darkening effects.
Understand and implement different bitwise operations on images, very useful technique when masking images.
Understand and implement different types of blurring methods in OpenCV.
Understand and implement sharpening of images in OpenCV, using a special kernel.
Implement several different types of thresholding operations in OpenCV.
Understand what is dilation and erosion and learn how to implement and properly use both operations.
Implement different methods of Edge Detection including the powerful Canny Edge Detection Algorithm.
Understand how to obtain transformation matrices from both affine (3 pairs of points) and non-affine (4 pairs of points).
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
Understand what contours are, perform the operation using OpenCV and understand the different types of extraction methods.
Be able to sort contours either left-to-right or by size.
Implement contour approximations and find the convex hull of contours.
Match contours to predefined shape templates.
Create an app that can extract contours and identify the shapes in the image.
Using Houghlines and Probabilistic Hough Lines.
Identify circles in an image
Understand what blobs are as defined by computer vision theory and implement a simple blob detection example.
Use blob detection to distinguish between circles and ellipses in an image.
Object Detection in OpenCV
Understand why Object Detection is important.
Use template matching to find Waldo in an image.
Understand what are image features and why they are important.
Implement two methods of finding corners in an image.
Implement common feature extraction algorithms such as SIFT, SURF, FAST, BRIEF and ORB.
Use both SIFT or ORB to identify a specific object. A fun exercise would be to extend this to multiple objects.
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
Get a quick overview of what HAAR feature are and how HAAR Cascade Classifiers work.
Use HAAR Cascade Classifiers to identify faces and eyes in images.
Use HAAR Cascade Classifiers to identify cars and people/pedestrians in images.
Augmented Reality (AR) - Facial Landmark Identification (Face Swaps)
Install and use DLIB to identify 68 facial landmarks in images.
Use facial landmarks to create a very accurate face swap app.
Implement a very cool live face swapping app. Use any face image to overlay onto yours creating amazing and fun effects!
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
Get a basic overview of what machine learning is and how we use it in Computer Vision.
Implement a basic machine learning program that can identify handwritten digits.
Use one of OpenCV's inbuilt facial recognition functions to implement a basic facial recognition program.
Object Tracking & Motion Analysis
Filter images by specific colors.
Implement simple background subtraction as well an interesting foreground extraction technique.
Implement Meanshift for Object Tracking.
Implement CAMshift for Object Tracking.
Use Optical Flow to tracking movement in images.
Implement a simple ball tracking app that also creates a trail.
Computational Photography & Make a License Plate Reader
Remove scratches, folds and lines on old damaged images
Conclusion
Get a recap on the topics we've covered and understand what it takes a become a computer vision expert.
See what's the latest advances in Computer Vision, get 12 awesome startup ideas and how to use OpenCV in mobile phone apps.