The English name of face recognition is Face Recognition, Some time ago, when I searched for data science, I found that, Many people will face recognition and face detection(Face
Detection) Be confused, It greatly increases the difficulty of querying learning materials, On the basis of referring to some predecessors, Write your own code, A complete version has been sorted out.

     

         This series of articles will be integrated from theory to practice: Narrate in three parts,
The first part of face recognition from zero, Make sure that most of your friends can understand the concept of face recognition through this article, And can form a basic framework. The second part will carry out preliminary practice, Including face image acquisition, And how to useopencv Existing models are trained according to face images, Get the required classifier. The third is comprehensive, Show the program in modularity, Face recognition and establishment in document formMFC Face recognition by program.


 

One, Face detection and recognition


       
First of all, we need to introduce the difference between face recognition and face detection. Face detection refers to the detection of a picture, Detect whether there is a face in the picture; Face recognition is based on face detection, Not only to detect whether there is a face in the picture, It is necessary to further compare the detected face image with the existing face database, Identify which one of the corresponding databases of the face image.
The knowledge of face detection can refer to the WeChat public address.(Mr_cplus) Related historical articles of.




Two, General process of face recognition

      Face recognition is generally divided into four steps: Face image acquisition and detection, Face image preprocessing, Face image feature extraction, Matching and recognition.

(1) Face image acquisition and detection

      
Face image acquisition refers to the acquisition of face image according to the research objectives( For example, face recognition under different postures), Collecting a certain amount of image data and organizing it into a database. At present, there are many ready-made face databases in academia, Meet basic research needs, Of course, it can also be added on the basis of these databases( For example, add your own face to a database). Currently, the most commonly used face image databases are:

1. FERET Face database
     
fromFERET Project creation, Contain14,051 Zhang duo's posture, Gray face image of illumination, It is one of the most widely used face databases in the field of face recognition. Most of them are Westerners, Each person's face image has a single change. 
2. MIT Face database 
      Created by MIT Media Lab, Contain16 Volunteer2,592 Zhang different posture, Face images in light and size. 
3. Yale Face database 
      Created by Yale computing vision and control center, Contain15 Volunteer165 Zhang picture, Contains illumination, Changes in expression and posture. 
4. Yale Face databaseB
     
Contains10 Individual5,850 Multi pose, Multi illumination image. The images of attitude and illumination change are collected under strict control, Mainly used for modeling and analysis of illumination and attitude problems. Due to the small number of people collected, The further application of the database is limited. 
5. PIE Face database
     
Founded by Carnegie Mellon University, Contain68 Volunteer41,368 Zhang duo's posture, Face images of light and expression. The attitude and illumination change images are also collected under strict control, At present, it has gradually become an important test set in the field of face recognition. 
6. ORL Face database
     
By Cambridge UniversityAT&T Lab creation, Contain40 Common people400 Face images, Some of the volunteers' images included posture,  Changes in expression and facial accessories. This face database is often used in the early days of face recognition research, But there are few modes of change, The recognition rate of most systems can reach90% Above, Therefore, the value of further utilization is not great. 
……

(2) Face image preprocessing


         This mainly refers to two aspects: One is how to process the acquired face image, Make it the same size as the image data to be put into the face database, Format, etc.; The other is to process the pictures in the whole library, Make it meet the requirements of feature extraction and recognition.

(3) Face image feature extraction

       
Face image feature extraction is based on a certain algorithm, Processing face image, Extract feature information, Forming characteristic matrix, etc, Then used for classifier training. The algorithm of feature extraction often determines the recognition effect.

(4) Matching and recognition

       
The feature matrix of face image is formed by feature extraction, After that, the face image to be recognized( Or some frames in the video) As input, According to the same feature extraction algorithm, The matrix of human face, And then classify with classifier, Identify which category it belongs to in the library.




Three, Common methods of face recognition

        There are many face recognition methods, At present, it can be roughly divided into four categories:

*
Recognition algorithm based on face feature points(Feature-based recognition algorithms).


*
Recognition algorithm based on whole face image(Appearance-based recognition algorithms).

*
Template based recognition algorithm(Template-based recognition algorithms).

*
An algorithm of recognition based on Neural Network(Recognition algorithms using neural network).




Four, Advance presentation of some results

       The face database used in this practice is
ORL Face database, And in order to recognize their own faces, I wrote a photo taking program to take self portraits, Add the collected image information to the database, Form a new database containing face information.

1, Take the document program as an example to show, When the camera detects that the face is itself, Meeting“ Exaggerate" Oneself is“
Commander in chief”, It will be displayed when the test result is not self“ Big ugly force”. Ha ha ha, It's no secret that I'm handsome!(41 It refers to the result of identification judgment,41 For myself,ORL Zhongyuan40 personal)




2, withMFC Show the program as an example. same, When the camera detects that the face is itself, Meeting“ Exaggerate" Oneself is“
Commander in chief”, It will be displayed when the test result is not self“ Big ugly force”. And it can be set when the test result is one of the databases, In another picture control(picture
control) The corresponding image in the face database is displayed in.( VariousBUTTON Represent different functions, This will be covered in the next two articles.)







That's all, If it works, Please pay attention~