|Enrollment start date||June 13, 2017|
|Enrollment end date||June 16, 2017|
|Course start date||June 19, 2017|
Short answer - AI is fun, and it pays very well!
Want to start a career in the exciting field of Computer Vision, Machine Learning, and Artificial Intelligence? This course is an excellent start. Yes, AI jobs pay a LOT more than regular programming jobs!
Want to build your own applications for faces? This is the perfect course for in-depth education and practical training.
Are you the tinkerer who loves experimenting with new technology? This course will add amazingly cool tools in your arsenal.
Are you an expert in Computer Vision? This course will expand your expertise and help you quickly start with our sample code.
Join us in this course to learn about an important field of Computer Vision quickly and apply the knowledge widely. In just ten weeks, we will deconstruct the mystery behind many face processing algorithms using easy to follow tutorials and code written in both C++ and Python.
We will use OpenCV and Dlib to provide you with the education and training needed to use cutting edge algorithms in your own applications.
For advanced users, we will share some Deep Learning lessons (Linux only).
Face processing trains you for object detection, face recognition, emotion recognition, landmark detection, computational photography, augmented reality and much more.
Think big. Start small. Act Now!
The course is very application-oriented. Everything I teach will be tied to a cool application. We will include enough theory to give you an excellent understanding of how things work, but we will not go over tedious mathematical details. Sorry, this course is not for scientists!
Let's take a look!
Ever wondered how Facebook and other photo applications like iPhoto automatically know who is in the picture? These applications have learned to recognize you in pictures after analyzing photos you were tagged in.
In this course, I will not only help you understand Face Recognition algorithms; I will provide step by step instructions on how to train such a system. You will be able to enroll new people in the system using their images and videos.
Hey, you can even build your own security system that identifies family members and alerts you when a stranger is knocking at your front door!
We will be building two different systems
Do you know the fundamental difference between Image Processing and Computer Vision? In Image Processing, the input is an image, and the output is a processed image. In Computer Vision, the input is an image, and the output is information! A face detector is a classic example -- the input is an image, and the output is the location (x, y, width, height) of faces in that image.
Most people who have used OpenCV know how to use the OpenCV Face Detector. But won't it be cool if you understood the concepts behind object detection and how could you train your object detector from scratch?
You can apply the techniques you learn to build a face detector to build your object detector (e.g. a vehicle detector or an eye detector).
We will also show how to use face detection in conjunction with face tracking to improve robustness.
In this course, we will also learn how to accurately locate the features of the face ( e.g. eyes, nose, lips, eyebrows ) in real time using a facial landmark detector.
Not only will we learn how to use a facial landmark detector included in Dlib, but we will also learn how to train one from scratch.
To train a facial landmark detector, we need the landmarks hand-marked on a couple of thousand images. This data is fed to a training algorithm that learns how to locate these landmarks on a new image. Dlib's landmark detector does not contain the center of the eyes, but ours will!
Stabilize points: For video applications, we will learn how to use point trackers to stabilize the points.
Batteries included! : The best part is that you don't even have to collect your data. My data collection team will do the tedious work for you!
More than a facial landmark detector: The detector we learn for facial landmark detector is a general purpose tool that can be used for locating other shapes ( e.g. the four corners of a book ) when trained with the right data!
A blink lasts anywhere between 100 ms and 400 ms. Fortunately, even your webcam is fast enough to gather a few frames during a blink that can be analyzed to detect a blink!
Why do you need to detect blinks? Some systems developed for physically disabled people interact with computers are based on blinks. If you are constantly looking at a computer screen and not blinking enough, you may develop an eye ailment called the Computer Vision Syndrome. Ironically, you can build a Computer Vision application based on blink analysis to prevent Computer Vision Syndrome!
The movement of the eyelids provides crucial information in systems for detecting drowsy drivers. The tools we will develop during the course will help you solve both the problems.
This course will not help you figure out why Snap Inc. is worth billions of dollars. But, it will teach you how to build some of their filters. You will be amazed how combining some simple ideas you will learn in this course can be used to make sophisticated and fun applications. You can scare anyone by putting on that mustache on a friend; especially if your friend is a woman!
The human skin tone lies in a relatively narrow range in the color spectrum. It is possible to automatically detect pixels in an image that are close to human skin tone. In applications related to faces, we have even more information. We know the structure of the face, and this additional information is used to improve the accuracy of facial skin detection algorithms.
An obvious application of facial skin detection is smooth the picture to make beautiful pictures!
We laugh. We cry. We smile. We are sad. We are disgusted.
Emotions make us human. We want the machines of the future to have empathy. Let's teach them how to read our emotions!
In this course, we will teach a machine -- your computer -- to recognize your emotional state and prevent you from sending that angry email to your girlfriend, boyfriend or spouse! Just kidding. It will let you send that email so you can spend more time on this course!
If you knew how to create these filters, you would have built Instagram over a weekend. Of course, I am exaggerating, but you will learn some tips and tricks for building some very cool filters for your next photo applications.
The special effects industry has used morphing for a few decades to create stunning visual effects. Once you know the underlying principles, implementing your own algorithm for morphing using tools available in OpenCV are easy. With our guidance, you will learn the process in easy, gentle steps in a language of your choice.
We will also learn that the fundamental problem in morphing is establishing point correspondences. If you have a way to establish point correspondences, morphing is not limited to faces; you can morph any object to any other object.
Have you ever used the spot healing tool in Photoshop? You click on a blemish on the face, and it magically disappears! Now imagine having the knowledge and the tools to build your own spot healing tool. Well, we will teach you how to build this application in less than 100 lines of code.
Wouldn't it be cool if you could click photos of your friends and see what the average looks like? Whether you like it or not, the average face is probably going to be better looking than all of you!
In this course, we do not expect you to have any prior knowledge of image processing and computer vision. We will cover many basic algorithms in image processing and computer vision at the beginning of the course. For example, you will start by examples showing how to read images, and after the first two weeks you will have a solid idea about filtering, color transforms, alpha blending, affine transforms, image warping and much more.
If you purchase the Plus or Premium versions of this course, you will get access to the code for Facial Landmark Detection on iOS. The code will contain a sample application that displays landmarks on the face and a toggle button to turn the display on or off.
With this starter code, you will be one big step closer to using some of the skills you have acquired in this course to make an iPhone app. We will provide instructions on how to download code and set up your project.
Dlib's Facial Landmark model is 100 MB in size! For a mobile application, the model size is very large. We will also share a much smaller model with fewer landmark points. Of course, you can build your own model with the skills you acquire in this course!
Disclaimer: We expect most of the C++ code shared in this course to run on iOS, but iOS is not officially supported as part of this course. We will guarantee the starter code works on iOS, but cannot guarantee that all examples shared in this course will compile or run smoothly on a mobile device.
Short answer: It is for people who invest in themselves!
This course is for creative people, like yourself, who have the itch to learn something new and build something awesome. It is for --
The curriculum is listed below. This represents the approximate order in which the course will progress.
|Face Processing : Applications and Opportunities.|
|Setup / Installations / Checkout|
|Introduction to OpenCV basics|
|Introduction to Dlib|
|Color Transforms and Histograms|
|Facial Landmark Detection|
|How to use Dlib's landmark detector|
|Optimizing performance of Dlib's landmark detector|
|Stabilizing landmarks in a video|
|Basic theory of landmark detector|
|How to train your own landmark detector?|
|Skin Detection & Smoothing|
|Non-linear image warping|
|Mustache, Eye patch and more!|
|Face Swapping in Photos|
|Face Swapping in Videos|
|Blink and Drowsy Driver Detection|
|How to handle noisy temporal data for facial activity analysis?|
|Object Detection & Tracking|
|How to train your own object detector?|
|How to track faces in a video?|
|Theory of Face Recognition|
|OpenCV based Face Recognition|
|Deep Learning based Face Recognition|
|Theory of Emotion Recognition|
|Deep Learning based Emotion Recognition|
The course will launch on June 19, 2017! At the start of every week, one week's worth of content will unlock. This gradual unrolling of the course will allow us to be active on course forums.
We will have quizzes at the end of each section. These will be automatically graded. To receive a certification, we will need to do a short project.
You will receive a digital certificate of completion certifying the new skills you have learned! All you have to do is complete all the quizzes and submit a video demo of a project. The project should consume 40 hours or less of work.
Satya is an entrepreneur who loves Computer Vision and Machine Learning. He has more than a dozen years of experience (and a Ph.D.) in the field. Recently Satya was named among the top 30 AI influencers to follow on Twitter by IBM's AI Blog.
Right out of school, Satya co-founded TAAZ Inc, a computer vision company in the beauty and fashion industry. The technology he and his team built has reached more than 100M users. He has been featured in numerous online articles on sites like TechCrunch, IBM, HuffingtonPost and WSJ to name a few.
Today, Satya runs a successful consulting company that helps companies solve complex problems in wide ranging areas like document analysis, face recognition, surveillance, object detection and classification, medical image processing and vision applications in retail.
Satya is also the principal author of LearnOpenCV.com -- a popular computer vision and machine learning blog.