Welcome

Welcome to this newbie tech-savvy blog ! Enjoy !

Monday, November 30, 2015

Face Detection and Blurring

Introduction


What is it?


We have chosen “Face Detection and Blurring” for the topic of our project. We have created a functional Graphical User Interface (GUI) and the face detection and blurring program. MATLAB is used as it is a well-known image processing tool, with the ease of use and easy to learn. This program is mainly used to detect if there is any face on the image that the user chooses. It is using Viola-Jones Object Detection Framework, as it is the first ever real-time face detection system. Viola-Jones Object Detection Framework is a framework that is being used as an object detection, but also is particularly successful to be used as a face detection. It enables an accurate and fast detection by combining three most important part, which is integral image, attentional cascade and adaboost. All three is used for an efficient computational resource allocation to create a fast detection system.

Face detection is a form of object detection, but it is the most complex and challenging as it requires a lot of variation in the face distribution. The high variation caused it to have few limitations that depend on lighting, expression, and facial features. Pose variations and camera position will also be the limitation of a face detection system. This condition has brought a focus only on a detection with a good lighting and frontal faces. Wang, Y,Q, (2014) said that a face detector should be able to detect if an image contains a human face and also detect where is the exact pixel location of it. In order to avoid any misclassification, binary classification is being used to minimize both false positives and negatives to be able to perform. It requires the program to be able to see the differences between human and the other objects that present on an image. It is efficient to use and perform well by applying such techniques as integral image and attentional cascade.

Based on Yang’s survey, there are four categories of it, which is knowledge-based methods, template matching, appearance-based, and feature invariant method. Knowledge-based methods use a simple human rules to define a human with two symmetrical eyes, one nose, and mouth below it. Template matching is being used to calculate the relation between the selected templates and the test image. Feature invariant will check on pose, lighting condition, and small details such as skin color, sharpness and edges of an image. Appearance-based used a technique to take a different feature from a training set. There are few of it, such as Eigenface method, neural networks by Rowley-Balaujam (1998), statistical classifiers by Schneidermann-Kanade (2000), and also adaboost. Paul Viola and Michael Jones crated a new fast and efficient method for face detection and it is quicker and more accurate than any other method. It relies on Haar simple features using Integral Image concept and using adaboost to create a fast interference.

It is using Haar like simple features, and to compensate the lighting effect under any conditions, the images must be variance normalized and mean before continuing. If P is pattern and I is an image with the same size of N X N, the feature of P image can be defined with i as :




The feature selection of adaboost aims to drive down an upper bound of an empirical loss. It does not really able to see the faces on the image but using the algorithm to calculate it instead.






How does it work?

 

Main Menu
            The first will be main menu, which is very clean and simple to use. There are only four buttons, insert photos button will ask the user to insert their image to be checked. It will show up a pop up window to choose the files that the user wanted to use. 


Pop up

            It will bring the image into the user interface on the right side of it. It will show the image as an original image before the user choose to do the face detection and face blurring. 


Original Image

            The user then can choose to do the face detection on the image that they choose from their libraries. They can also choose the one from their own library as it will work with all kind of images.


Face Detection

            It will show the user their image that have been through a face detection system and will replace and show it on the right side of the user interface.


Face Blurring

            It will show the user their image that have been through a face blurring process with the arithmetic mean function, It will replace and show it on the right side of user interface. If the user wish to, they can click the insert photos button again and start over a new image as many as they wanted to. If not, then they can go to exit button which will close all processing that is going through in the background. 




Delegation of Tasks


The task delegation in this project is equally distributed among three of use where each of us contributes and act together for the complement of the project. Here is the layout of how the task delegation is distributed:


Colin Wong Yeng Yeung 
Research on Face Detection, Graphical User Interface Design, General Body Coding, Literature Review, Blog.

Karmanov Niyazbek         
Research on Face Detection, Graphical User Interface Design, General Body Coding, Literature Review, Blog.

Andrew Hutomo Putro  
Research on Face Detection, Graphical User Interface Design & Function, General Body Coding, Literature Review, Blog, File Hosting.


Source Code



          Here is the full source code of the project. This project is done for educational purposes only and should not be plagiarized. If in the future this work can be found in any other place instead of here, please kindly contact the administrator.

You can download it here.

Take note, in order to run this program without any problem, you must run FaceDetectionandBlurringGUI.fig.

Requirements for running the code is stated below, 
  • MATLAB Software r2014a or newer version. (Original – Never use any pirated software by any means, please support the developer).
  • Point the directory in a folder or path which is recognized by MATLAB.
  • Follow the instruction of how it works.
         Initially, examples were shown in class from the lecturer and further enquiries were made to gather the insights of the topic. Most function and part of the coding can be found on Mathworks. This website is created to serve as an educational purpose only.
Below are the references that helps during the completion of the project:

Tarhini, A, (2011), “Efficient Face Detection Algorithm Using Viola Jones Method”, Accessed on 7th of November 2015, [Available] http://www.codeproject.com/Articles/85113/Efficient-Face-Detection-Algorithm-using-Viola-Jon
Viola, P, and Jones, M., J., (2004), “Robust Real-Time Face Detection” International Journal of Computer Vision, 57 (2004), pp. 137–154.[Available] http://dx.doi.org/10.1023/B:VISI.0000013087.49260.fb.
Yi-Qing, Wang, (2014), “An Analysis of the Viola-Jones Face Detection Algorithm, Image Processing On Line”, 4 (2014), pp. 128–148. [Available] http://dx.doi.org/10.5201/ipol.2014.104

Work done by :

Colin Wong Yeng Yeung [12017257]
Karmanov Niyazbek [11038247]
Laurensius Andrew Hutomo Putro [10024479]