OpenCV 4.10.0
开源计算机视觉库
|
可训练人脸标记模型的抽象基类。 更多...
#include <opencv2/face/facemark_train.hpp>
公共成员函数 | |
virtual bool | addTrainingSample (InputArray image, InputArray landmarks)=0 |
向训练器添加一个训练样本。 | |
virtual bool | getData (void *items=0)=0 |
从算法获取数据。 | |
virtual bool | getFaces (InputArray image, OutputArray faces)=0 |
使用默认或用户定义的人脸检测器从给定图像中检测人脸。 一些 Algorithm 可能不提供默认的人脸检测器。 | |
virtual bool | setFaceDetector (FN_FaceDetector detector, void *userData=0)=0 |
为 Facemark 算法设置用户定义的人脸检测器。 | |
virtual void | training (void *parameters=0)=0 |
使用给定数据集训练 Facemark 算法。 在训练过程开始之前,应使用 face::addTrainingSample 函数将训练样本添加到训练器中。 | |
从 cv::face::Facemark 继承的公共成员函数 | |
virtual bool | fit (InputArray image, InputArray faces, OutputArrayOfArrays landmarks)=0 |
从图像中检测面部特征点。 | |
virtual void | loadModel (String model)=0 |
在拟合过程之前加载训练好的模型的函数。 | |
从 cv::Algorithm 继承的公共成员函数 | |
Algorithm () | |
virtual | ~Algorithm () |
virtual void | clear () |
清除算法状态。 | |
virtual bool | empty () const |
如果 Algorithm 为空(例如,在最开始或读取不成功后),则返回 true。 | |
virtual String | getDefaultName () const |
virtual void | read (const FileNode &fn) |
从文件存储区读取算法参数。 | |
virtual void | save (const String &filename) const |
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
virtual void | write (FileStorage &fs) const |
将算法参数存储到文件存储区。 | |
void | write (FileStorage &fs, const String &name) const |
其他继承成员 | |
从 cv::Algorithm 继承的静态公共成员函数 | |
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
从文件加载算法。 | |
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
从字符串加载算法。 | |
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
从文件节点读取算法。 | |
从 cv::Algorithm 继承的受保护成员函数 | |
void | writeFormat (FileStorage &fs) const |
可训练人脸标记模型的抽象基类。
要在您的程序中使用此 API,请查看 人脸特征点检测器 API 教程
OpenCV 中的 AAM 和 LBF 人脸标记模型都派生自抽象基类 FacemarkTrain,它提供对 OpenCV 中这些人脸标记算法的统一访问。
以下是如何声明人脸标记算法的示例:
人脸标记检测的典型流程如下所示:
|
纯虚函数 |
向训练器添加一个训练样本。
image | 输入图像。 |
landmarks | 与图像相对应的面部特征点的地面实况。 |
用法示例
训练文件中的内容应遵循标准格式。 以下是这些文件中内容的示例。 images_train.txt 中内容的示例
points_train.txt 中内容的示例
|
纯虚函数 |
从算法获取数据。
items | 获取的数据,算法相关。 |
用法示例
|
纯虚函数 |
使用默认或用户定义的人脸检测器从给定图像中检测人脸。 一些 Algorithm 可能不提供默认的人脸检测器。
image | 输入图像。 |
faces | 函数的输出,表示检测到的脸部的感兴趣区域。每个脸部都存储在 cv::Rect 容器中。 |
用法示例
|
纯虚函数 |
为 Facemark 算法设置用户定义的人脸检测器。
detector | 用户定义的脸部检测函数 |
userData | 检测器参数 |
用法示例
用户定义的脸部检测器示例
TODO 检测器参数的寿命不受控制。重新设计接口以“Ptr<FaceDetector>”。
|
纯虚函数 |
使用给定数据集训练 Facemark 算法。 在训练过程开始之前,应使用 face::addTrainingSample 函数将训练样本添加到训练器中。
parameters | 可选的额外参数(算法相关)。 |
用法示例