Abstract base class for trainable facemark models. More...
#include <opencv2/face/facemark_train.hpp>
Public Member Functions | |
virtual bool | addTrainingSample (InputArray image, InputArray landmarks)=0 |
Add one training sample to the trainer. | |
virtual bool | getData (void *items=0)=0 |
Get data from an algorithm. | |
virtual bool | getFaces (InputArray image, OutputArray faces)=0 |
Detect faces from a given image using default or user defined face detector. Some Algorithm might not provide a default face detector. | |
virtual bool | setFaceDetector (FN_FaceDetector detector, void *userData=0)=0 |
Set a user defined face detector for the Facemark algorithm. | |
virtual void | training (void *parameters=0)=0 |
Trains a Facemark algorithm using the given dataset. Before the training process, training samples should be added to the trainer using face::addTrainingSample function. | |
Public Member Functions inherited from cv::face::Facemark | |
virtual bool | fit (InputArray image, InputArray faces, OutputArrayOfArrays landmarks)=0 |
Detect facial landmarks from an image. | |
virtual void | loadModel (String model)=0 |
A function to load the trained model before the fitting process. | |
Public Member Functions inherited from cv::Algorithm | |
Algorithm () | |
virtual | ~Algorithm () |
virtual void | clear () |
Clears the algorithm state. | |
virtual bool | empty () const |
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. | |
virtual String | getDefaultName () const |
virtual void | read (const FileNode &fn) |
Reads algorithm parameters from a file storage. | |
virtual void | save (const String &filename) const |
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
virtual void | write (FileStorage &fs) const |
Stores algorithm parameters in a file storage. | |
void | write (FileStorage &fs, const String &name) const |
Additional Inherited Members | |
Static Public Member Functions inherited from cv::Algorithm | |
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
Loads algorithm from the file. | |
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
Loads algorithm from a String. | |
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
Reads algorithm from the file node. | |
Protected Member Functions inherited from cv::Algorithm | |
void | writeFormat (FileStorage &fs) const |
Detailed Description
Abstract base class for trainable facemark models.
To utilize this API in your program, please take a look at the Tutorial on Facial Landmark Detector API
Description
The AAM and LBF facemark models in OpenCV are derived from the abstract base class FacemarkTrain, which provides a unified access to those facemark algorithms in OpenCV.
Here is an example on how to declare facemark algorithm:
The typical pipeline for facemark detection is listed as follows:
- (Non-mandatory) Set a user defined face detection using FacemarkTrain::setFaceDetector. The facemark algorithms are designed to fit the facial points into a face. Therefore, the face information should be provided to the facemark algorithm. Some algorithms might provides a default face recognition function. However, the users might prefer to use their own face detector to obtains the best possible detection result.
- (Non-mandatory) Training the model for a specific algorithm using FacemarkTrain::training. In this case, the model should be automatically saved by the algorithm. If the user already have a trained model, then this part can be omitted.
- Load the trained model using Facemark::loadModel.
- Perform the fitting via the Facemark::fit.
Member Function Documentation
◆ addTrainingSample()
|
pure virtual |
Add one training sample to the trainer.
- Parameters
-
image Input image. landmarks The ground-truth of facial landmarks points corresponds to the image.
Example of usage
The contents in the training files should follows the standard format. Here are examples for the contents in these files. example of content in the images_train.txt
example of content in the points_train.txt
◆ getData()
|
pure virtual |
Get data from an algorithm.
- Parameters
-
items The obtained data, algorithm dependent.
Example of usage
◆ getFaces()
|
pure virtual |
Detect faces from a given image using default or user defined face detector. Some Algorithm might not provide a default face detector.
- Parameters
-
image Input image. faces Output of the function which represent region of interest of the detected faces. Each face is stored in cv::Rect container.
Example of usage
◆ setFaceDetector()
|
pure virtual |
Set a user defined face detector for the Facemark algorithm.
- Parameters
-
detector The user defined face detector function userData Detector parameters
Example of usage
Example of a user defined face detector
TODO Lifetime of detector parameters is uncontrolled. Rework interface design to "Ptr<FaceDetector>".
◆ training()
|
pure virtual |
Trains a Facemark algorithm using the given dataset. Before the training process, training samples should be added to the trainer using face::addTrainingSample function.
- Parameters
-
parameters Optional extra parameters (algorithm dependent).
Example of usage
The documentation for this class was generated from the following file:
- opencv2/face/facemark_train.hpp