Computer Vision for Faces

Become an expert in Computer Vision for faces in just 10 weeks with this practical course for building applications using OpenCV + Dlib (C++ & Python)

   Watch Promo

We are sorry the course is not open for enrollment.

Important Dates
Early Bird Enrollment start date April 5, 2017
Early Bird Enrollment end date April 12, 2017
Course start date June 19, 2017

Why join this course?

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.

Become a Face Processing Expert in 10 weeks!

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

Why Faces?

  1. Faces are everywhere: A vast majority of photos and videos contain faces. Processing and analyzing faces is an area rich with applications, jobs, and opportunities. Trust me, Snapchat filters are just a start!
  2. Face processing touches many areas of Computer Vision: Even before "selfie" was a word, a vast number of Computer Vision and Machine Learning (CVML) algorithms were developed for and applied to human faces.

    Face processing trains you for object detection, face recognition, emotion recognition, landmark detection, computational photography, augmented reality and much more.
  3. The world rewards expertise: CVML is a vast area. Mastering every aspect of CVML will takes months, if not years, of hard work. This course will help you build expertise in a short period of time by focussing on an extremely important field of Computer Vision. The motto of this course is

    Think big. Start small. Act Now!

  4. Instant gratification: A short course is incredibly motivating when you are starting something new. You know the journey is short, sweet, guided and extremely rewarding.

What topics will we cover?

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!

Build a Face Recognition system (OpenCV and Deep Learning)

Face Recognition

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

  1. OpenCV based: We will train a face recognition system using OpenCV.
  2. Deep Learning based: A Deep Learning based system for advanced users. You will need to have an Amazon AWS account and familiarity with Linux to use this Deep Learning based system.

Object Detector & Tracking

Object Detection and Tracking 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.

Train your own Facial Landmark Detector ( with eye centers!)

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!

Blink and Drowsy Driver Detection

Blink Detection

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.

Snapchat filters are easy!

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!

Skin Detection & Smoothing for Faces

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!

Make your machine Recognize Emotions

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!

Build your own Instagram with cool Photo Filters

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.

Face Morphing

Face Morphing 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.

Build your own Spot Healing tool

Spot Healing Tool using OpenCV

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.

Face Averaging

Face Averaging

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!

Basic Image Processing and Computer Vision

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.

Facial Landmark Detection on iOS (Plus and Premium)

Facial Landmark Detection for iOS

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.

Who is this course for?

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

  1. Programmers and Engineers looking to make a move into the exciting new world of Artificial Intelligence with better-paying jobs and opportunities. You may have tinkered with OpenCV, run a few demos, but now you want to dig deeper and get better.
  2. Entrepreneurs who want to quickly build expertise to write their own applications or start a new company to bring their AI idea to life.
  3. Students who are evaluating their career options in Computer Vision and Machine Learning.
  4. Hobbyists who love building fun stuff; who can learn by reading but prefer to learn by doing.
  5. CVML folks who have worked in other areas of CVML and want to expand their expertise in the domain of Face Processing.


The curriculum is listed below. This represents the approximate order in which the course will progress.

Getting Started
Face Processing : Applications and Opportunities.
Setup / Installations / Checkout
Introduction to OpenCV basics
Introduction to Dlib
Instagram Filters
Image Filtering
Color Spaces
Alpha Blending
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 Processing
Blemish Removal
Skin Detection & Smoothing
Snapchat Filters
Non-linear image warping
Bug eyes!
Mustache, Eye patch and more!
Blending Faces
Delaunay Triangulation
Face Averaging
Face Morphing
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?
Face Recognition
Theory of Face Recognition
OpenCV based Face Recognition
Deep Learning based Face Recognition
Emotion Recognition
Theory of Emotion Recognition
Deep Learning based Emotion Recognition

Course Format and Timeline

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.

  1. April 5: Enrollment begins. Get 10% super early bird discount on Day-1.
  2. April 12: Early bird enrollment ends. If we ever open the course again, it will be priced at least 25% higher.
  3. June 19: Launch! Content for week 1 will be unlocked.

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 or work.

Your Instructor

Satya Mallick, Ph.D.
Satya Mallick, Ph.D.

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 -- a popular computer vision and machine learning blog.

Frequently Asked Questions

When does the course start and finish?
Enrollment begins on April 4, 2017 and ends on 11:59 PM PST on April 12, 2017. The course starts on June 19, 2017. It is a completely self-paced online course, and you can take as much time as you need. You can complete the course in 10-12 weeks with an effort of about 4 hours a week. We will be actively involved in course forums until 14 weeks after the start of the course.
When will the course be open for enrollment again?
We are not sure if we will open the course for enrollment again or if it will be available as a standalone course in the future. If we do open it for enrollment, the course will be priced at least 25% higher than the current price.
Will the price of the course go up the next time it is open for enrollment?
Short answer: Yes! We are not sure if the course will be open for enrollment in future or if it will be a standalone course. The current price is a promotional offer for readers of my blog who have put enormous faith in me. If the course opens for enrollment in future, it will be priced at least 25% higher than the current price. So grab it now and reserve this price!
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own. However, we will be active in course forums until 6 months after the launch of the course.
What are the prerequisites for the course?
You need an intermediate level of expertise in C++ or Python. You do not need to have any prior experience with OpenCV or Dlib. If you are an absolute beginner, allow yourself more time to complete the course.
Are all lessons available in C++ and Python?
Most lessons will be available in both C++ and Python. Some Deep Learning based lessons may be limited to Python only.
Can I get the entire course on week 1?
No. In the beginning of each week we will unlock the material for that week. This allows us to have focussed Q/A in the forum and also incorporate your feedback in future weeks.
Can I use the code shared in this course in my commercial application?
In certain cases, we will use code shared in opencv_contrib module. It is not clear if all code inside opencv_contrib is free from patents. For parts of the code written by Big Vision LLC (i.e. my team), please contact for an enterprise license if you plan to build a commercial application. I will be happy to provide a license free of charge to individuals. Companies will need to pay a small licensing fee. Similarly, consultants working for other companies will need to pay the licensing fee. You are not permitted to share this code publicly.
Will you support Visual Studios?
We will use CMAKE to support Windows, Linux and OSX. However, we will not be able to support Visual Studios.
Will Deep Learning be covered in depth?
No, but we will provide an overview of Deep Learning and explain the architectures we use for the specific application. Only a couple of applications will use Deep Learning algorithms.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days after the launch of the course and we will give you a full refund.

This course is not open for enrollment.