Face Detection Using Python and OpenCV

ABSTRACT:
The growing interest in computer vision of the past decade. Fuelled by the steady doubling rate of computing power every 13 months, face detection and recognition has transcended from an esoteric to a popular area of research in computer vision and one of the better and successful applications of image analysis and algorithm based understanding. Because of the intrinsic nature of the problem, computer vision is not only a computer science area of research, but also the object of neuron-scientific and psychological studies, mainly because of the general opinion that advances in computer image processing and understanding research will provide insights into how our brain work and vice versa. 
Because of general curiosity and interest in the matter, the author has proposed to create an application that would allow user access to a particular machine based on an in-depth analysis of a person’s facial features. This application will be developed using Intel’s open source computer vision project, OpenCV and PYTHON.

INTRODUCTION:
 The goal of this article is to provide an easier human-machine interaction routine when user authentication is needed through face detection and recognition.  With the aid of a regular web camera, a machine is able to detect and recognize a person’s face; a custom login screen with the ability to filter user access based on the users’ facial features will be developed. 
The objectives of this thesis are to provide a set of detection algorithms that can be later packaged in an easily-portable framework amongst the different processor architectures we see in machines (computers) today. These algorithms must provide at least a 95% successful recognition rate, out of which less than 3% of the detected faces are false positives.

EXISTING METHOD:

Over the past decade face detection and recognition have transcended from esoteric to popular areas of research in computer vision and one of the better and successful applications of image analysis and algorithm based understanding. 

A general statement of the face recognition problem (in computer vision) can be formulated as follows: given still or video images of a scene, identify or verify one or more persons in the scene using a stored database of faces.

Facial recognition generally involves two stages: 

Face Detection 

Where a photo is searched to find a face, then the image is processed to crop and extract the person’s face for easier recognition. 

Face Recognition 

Where that detected and processed face is compared to a database of known faces, to decide who that person is. 
Since 2002, face detection can be performed fairly easily and reliably with Intel’s open source framework called Open CV. This framework has an in-built Face Detector that works in roughly 90-95% of clear photos of a person looking forward at the camera. However, detecting a person’s face when that person is viewed from an angle is usually harder, sometimes requiring 3D Head Pose Estimation. Also, lack of proper brightness of an image can greatly increase the difficulty of detecting a face, or increased contrast in shadows on the face, or maybe the picture is blurry, or the person is wearing glasses, etc.

PROPOSED METHOD:

When image quality is taken into consideration, there is a plethora of factors that influence the system’s accuracy. 
It is extremely important to apply various image pre-processing techniques to standardize the images that you supply to a face recognition system. Most face recognition algorithms are extremely sensitive to lighting conditions, so that if it was trained to recognize a person when they are in a dark room, it probably won’t recognize them in a bright room, etc. 
This problem is referred to as "lamination dependent", and there are also many other issues, such as the face should also be in a very consistent position within the images (such as the eyes being in the same pixel coordinates), consistent size, rotation angle, hair and makeup, emotion (smiling, angry, etc), position of lights (to the left or above, etc). 

ADVANTAGES:

Improved Security

A facial biometric security system can drastically improve your security because every individual who enters your premise will be accounted for. Any trespassers will be quickly captured by the recognition system and you would be alerted promptly. With a facial recognition security system, you can potentially reduce costs of hiring a security staff.

High Accuracy

With today’s technology, face ID technology is becoming more and more reliable. The success rate is currently at a high due to the developments of 3D facial recognition technologies and infrared cameras. The combination of these technologies make it very hard to trick the system. With such accuracy, you can have confidence that the premise is more secure and safe for you and your peers.

Fully Automated

Before, in order to confirm a match, security guards were needed to ensure that the system was correct. As previously stated, the technology is now so developed that this will no longer be necessary. The facial recognition technology can now fully automate the process and ensure its accuracy at a very high rate. This means that convenience and lower costs.

HARDWARE AND SOFTWARE REQUIREMENT:

SOFTWARE REQUIREMENTS:

Operating System            :   WINDOWS
Simulation Tool                            :    OPENCV PYTHON
Documentation               :   Ms-Office

HARDWARE REQUIREMENTS:

CPU type                                  :    Intel Pentium 4
Clock speed                              :    3.0 GHz
Ram size                                   :    512 MB
Hard disk capacity                    :    80 GB
Monitor type                             :    15 Inch colour monitor
Keyboard type                          :     Internet keyboard
CD -drive type                          :     52xmax