Face detection

Creation of a compute vision pipeline to detect keypoints on photo's faces.

AI CNN Computer Vision (CV) Keras


The idea of this project was to create a Computer Vision (CV) pipeline.

In the first part I explored some CV techniques to detect faces or edges. I also learned how to denoise an image and to blur people's faces to hide their identities.

Then a neural network was used to detect the keypoints in all faces present in any photo. To do so I trained a CNN using Keras.


I did this project as a part of the Artificial Intelligence Nanodegree (udacity moved the project to the Computer Vision Nanodegree). This project was designed so that students could learn everything involved with having a CV machine learning model working. This includes all the preprocessing of the image and the creation of the pipeline itself.

Pipline designed

Detecting faces

In the first part I used Haar-Cascade to detect faces and eyes. This is a technique that consists of using a series of kernels in order to create a classifier that detects some object/feature. I used a pretrained classifier to detect faces.

I also worked with Non-Local Means denoising to clean images. With this I was able to make the face detection step more robust. I also worked with canny edge detection to detect edges but I ended up not using it in the final pipeline.

Detecting keypoints in faces

For the second part I created a simple CNN to detect the keypoints of any face.

Finally I put everything together in order to have a program that was able to:

At the end I could use those keypoints to add some stickers to any photo.


More Projects

More Projects