OpenCV  3.2.0-dev
Open Source Computer Vision
Classes | Functions
Face Recognition

Classes

class  cv::face::BasicFaceRecognizer
 
class  cv::face::FaceRecognizer
 Abstract base class for all face recognition models. More...
 
class  cv::face::LBPHFaceRecognizer
 
class  cv::face::PredictCollector
 Abstract base class for all strategies of prediction result handling. More...
 
class  cv::face::StandardCollector
 Default predict collector. More...
 

Functions

Ptr< BasicFaceRecognizercv::face::createEigenFaceRecognizer (int num_components=0, double threshold=DBL_MAX)
 
Ptr< BasicFaceRecognizercv::face::createFisherFaceRecognizer (int num_components=0, double threshold=DBL_MAX)
 
Ptr< LBPHFaceRecognizercv::face::createLBPHFaceRecognizer (int radius=1, int neighbors=8, int grid_x=8, int grid_y=8, double threshold=DBL_MAX)
 

Detailed Description

Function Documentation

§ createEigenFaceRecognizer()

Ptr<BasicFaceRecognizer> cv::face::createEigenFaceRecognizer ( int  num_components = 0,
double  threshold = DBL_MAX 
)
Parameters
num_componentsThe number of components (read: Eigenfaces) kept for this Principal Component Analysis. As a hint: There's no rule how many components (read: Eigenfaces) should be kept for good reconstruction capabilities. It is based on your input data, so experiment with the number. Keeping 80 components should almost always be sufficient.
thresholdThe threshold applied in the prediction.

Notes:

  • Training and prediction must be done on grayscale images, use cvtColor to convert between the color spaces.
  • THE EIGENFACES METHOD MAKES THE ASSUMPTION, THAT THE TRAINING AND TEST IMAGES ARE OF EQUAL SIZE. (caps-lock, because I got so many mails asking for this). You have to make sure your input data has the correct shape, else a meaningful exception is thrown. Use resize to resize the images.
  • This model does not support updating.

Model internal data:

  • num_components see createEigenFaceRecognizer.
  • threshold see createEigenFaceRecognizer.
  • eigenvalues The eigenvalues for this Principal Component Analysis (ordered descending).
  • eigenvectors The eigenvectors for this Principal Component Analysis (ordered by their eigenvalue).
  • mean The sample mean calculated from the training data.
  • projections The projections of the training data.
  • labels The threshold applied in the prediction. If the distance to the nearest neighbor is larger than the threshold, this method returns -1.

§ createFisherFaceRecognizer()

Ptr<BasicFaceRecognizer> cv::face::createFisherFaceRecognizer ( int  num_components = 0,
double  threshold = DBL_MAX 
)
Parameters
num_componentsThe number of components (read: Fisherfaces) kept for this Linear Discriminant Analysis with the Fisherfaces criterion. It's useful to keep all components, that means the number of your classes c (read: subjects, persons you want to recognize). If you leave this at the default (0) or set it to a value less-equal 0 or greater (c-1), it will be set to the correct number (c-1) automatically.
thresholdThe threshold applied in the prediction. If the distance to the nearest neighbor is larger than the threshold, this method returns -1.

Notes:

  • Training and prediction must be done on grayscale images, use cvtColor to convert between the color spaces.
  • THE FISHERFACES METHOD MAKES THE ASSUMPTION, THAT THE TRAINING AND TEST IMAGES ARE OF EQUAL SIZE. (caps-lock, because I got so many mails asking for this). You have to make sure your input data has the correct shape, else a meaningful exception is thrown. Use resize to resize the images.
  • This model does not support updating.

Model internal data:

  • num_components see createFisherFaceRecognizer.
  • threshold see createFisherFaceRecognizer.
  • eigenvalues The eigenvalues for this Linear Discriminant Analysis (ordered descending).
  • eigenvectors The eigenvectors for this Linear Discriminant Analysis (ordered by their eigenvalue).
  • mean The sample mean calculated from the training data.
  • projections The projections of the training data.
  • labels The labels corresponding to the projections.

§ createLBPHFaceRecognizer()

Ptr<LBPHFaceRecognizer> cv::face::createLBPHFaceRecognizer ( int  radius = 1,
int  neighbors = 8,
int  grid_x = 8,
int  grid_y = 8,
double  threshold = DBL_MAX 
)
Parameters
radiusThe radius used for building the Circular Local Binary Pattern. The greater the radius, the
neighborsThe number of sample points to build a Circular Local Binary Pattern from. An appropriate value is to use 8 sample points. Keep in mind: the more sample points you include, the higher the computational cost.
grid_xThe number of cells in the horizontal direction, 8 is a common value used in publications. The more cells, the finer the grid, the higher the dimensionality of the resulting feature vector.
grid_yThe number of cells in the vertical direction, 8 is a common value used in publications. The more cells, the finer the grid, the higher the dimensionality of the resulting feature vector.
thresholdThe threshold applied in the prediction. If the distance to the nearest neighbor is larger than the threshold, this method returns -1.

Notes:

  • The Circular Local Binary Patterns (used in training and prediction) expect the data given as grayscale images, use cvtColor to convert between the color spaces.
  • This model supports updating.

Model internal data:

  • radius see createLBPHFaceRecognizer.
  • neighbors see createLBPHFaceRecognizer.
  • grid_x see createLBPHFaceRecognizer.
  • grid_y see createLBPHFaceRecognizer.
  • threshold see createLBPHFaceRecognizer.
  • histograms Local Binary Patterns Histograms calculated from the given training data (empty if none was given).
  • labels Labels corresponding to the calculated Local Binary Patterns Histograms.