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 use opencv 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 form MFC 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 .
Face detection knowledge can refer to the official account of WeChat. （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
from FERET Project creation , contain 14,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 , contain 16 Volunteer 2,592 Zhang different posture , Face images in light and size .
3. Yale Face database
Created by Yale computing vision and control center , contain 15 Volunteer 165 Pictures , Include light , Changes in expression and posture .
4. Yale Face database B
Contains 10 individual 5,850 Amplitude multi attitude , 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 , contain 68 Volunteer 41,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 University AT&T Lab creation , contain 40 People in total 400 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 reach 90% above , Therefore, the value of further utilization is not great .
（2） Face image preprocessing
Here 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 " I am “
Shuaibi ”, It will be displayed when the test result is not self “ 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 Central Plains 40 personal ）
2, with MFC Show the program as an example . same , When the camera detects that the face is itself , Meeting “ Exaggerate " I am “
Shuaibi ”, It will be displayed when the test result is not self “ 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 face database is displayed in .（ various BUTTON Represent different functions , This will be covered in the next two articles .）
That's all , If it works , Please pay attention ~