The scope is to recognize/detect faces on an image – check whether the image contains any faces. The kinds of faces on this scope which we intend to work on: frontal faces + turned faces (around 30-60 degree) + half-profile faces + some faces in profile.
The algorithm for recognizing/detecting frontal, turned faces will be based on Viola Jones method, but it should certainly be an extended algorithm – the improved implementation will be getting a good result when working on frontal faces.
Regarding half-profile and profile faces, we will use an algorithm applying a classifier from David Bradley to recognize/detect that kind of faces. However, it might be not good in this case, hence we need to build a verification stage to reduce false positives.
The flowchart of the entire algorithm:
1. Getting an image and doing some enhancement like normalizing histograms, improving contrast
2. Recognizing/detecting frontal, turned faces on that image -> if have: return the result (Yes). If not, we will move on step 3.
3. Using David Bradley’s algorithm for recognizing/detecting half-profile and profile faces. If not, return the result (No). If have, we go to step 4.
4. Building the verification stage to verify face candidates from step 3, we may use a skin detector for that purpose. If passed, return Yes, otherwise No.