Here’s The Simplest, Most Effective Way To Learn Face Detection (Or Object Detection) And Jumpstart Your Project
without spending so much time not knowing what to do or where to start
Detecting faces or in general, objects, inside gray-level images is still a hard topic for new researches and students all over the world. It’s certainly not your fault. Many researches who do not have access to the right resources, struggle for weeks and months before they understand how to manage their project. Sometimes the problem happens because the most of the available papers have a space limit and the authors can not put the basic and essential materials inside those papers. As a result, it is very likely that you encounter vague mathematical formulas that even after several times skimming the paper you still cannot understand them without reading some references. The other part of the problem is that you are not experienced enough to understand methods by just reading and examining other people’s programs. In some cases it is even more practical to write your own program than try to understand a code that you find on the Internet without the help of the program’s author. And the other problem is that there exist lots of ways to do object detection using machine learning techniques, neural networks, support vector machines, boosting,… Even more, there are many methods for feature extraction; using Gabor filters, Wavelets, Viola Jones, SVD, … Considering all the problems above, what happens most of the time is that you start reading more and more papers, books and resources and you avoid doing the only thing that you are asked; Writing the code and get the results and finish your study..
But There is a Simple and Effective Way
In fact, it’s something you can start tapping into in the next few minutes (provided you pay close attention to what you’re about to read).The best way to learn and start your project is to learn it from another program that works, while you have access to the author and the thoughts behind each and every line of the program. Face Detection System for MATLAB is one of the best programs that you can learn from. There is a reason behind each line of the program and if you know them and if you follow the program line by line, you will be able to change the program or parameters and adapt it for your own project. And Eventually you will have enough wisdom to write a program without knowing it.
Here is How It Works …
Face detection is the first and foremost step in any automated face recognition system. Its reliability greatly affects the performance and usability of the whole system. Given a single image or a video frame, an ideal face detector should have the ability to locate all the present faces inside that image, regardless of their position, facial gestures, variations in scale and orientation. Furthermore it should be robust against variation in illumination, skin color or background … Several clues may facilitate the detection process. Skin color (for detecting faces in colourful images and videos) is one that often can be used. Motion (for detecting faces in video) is another well-known clue that can be estimated by analyzing several video frames in a row. But the hardest kind of detection is face detector in grey-level still images, in which there is no cue of any type such as color or motion. The processing is usually done as follows:
Step One: Feature Extraction Function
You need a function that can transform a small patch of image into a vector. If you only reshape the 2D patch into a 1D vector, it is still a function and correct. But in practice it contains several stages. This function is the feature extraction function and should extract features in a wise manner, followed by a normalization. In Face Detection System for MATLAB, Gabor features are extracted from the patch and you will learn all about it in the guide that you are about to download.
Step Two: Generating Data for Training
The next thing that you have to do is to crop some images with the same height and width. The height and width is the same size as the patch that we talked about in the previous step. Crop them using any editing software that you have; Paint, Gimp or PhotoShop.Then you use the feature extraction function that you already have and generate a vector for each image. You should store each vector in a matrix, so that it can be used later for the training of the classifier. Not only you need the data for faces, you also need data for patches that does not contain any face. Sometimes gathering these information is a challenge because you don’t really know what is not a face. This problem is discussed in detail in the guide as well as how to read all the files and store them in the matrix.
Step Three: Train The Classifier
Every detection system needs a classifier that looks at your vector and decides if it is the deal or not. In case of face detection, the classifier looks for faces. The main issues are to choose your classifier and set the parameters in a way that you get reasonable results. Face Detection System for MATLAB uses Neural Network as its classifier. Everything regarding how to generate the network and train it is discussed inside the guide in detail.
Step Four: Scan a Picture
Then an image is scanned at all possible locations [and scales] by a sub-window (patch). Each patch is fed to the feature extraction function and the output vector goes to the classifier. There are ways to pre-select possible locations and how to pin point the location of the faces. .