OpenCV 4.11.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 继承的公共成员函数 | |
算法 () | |
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 中这些 facemark 算法的统一访问。
这是一个关于如何声明 facemark 算法的示例
facemark 检测的典型流程如下所示
|
纯虚函数 |
向训练器添加一个训练样本。
image | 输入图像。 |
landmarks | 与图像对应的面部特征点真值。 |
使用方法示例
训练文件中的内容应遵循标准格式。以下是这些文件内容的示例。images_train.txt 中的内容示例
points_train.txt 中的内容示例
|
纯虚函数 |
从算法获取数据。
items | 获得的数据,与算法相关。 |
使用方法示例
|
纯虚函数 |
使用默认或用户定义的人脸检测器从给定图像中检测人脸。一些 Algorithm 算法可能不提供默认的人脸检测器。
image | 输入图像。 |
faces | 函数的输出,表示检测到的人脸的感兴趣区域。每张脸都存储在 cv::Rect 容器中。 |
使用方法示例
|
纯虚函数 |
为 Facemark 算法设置用户定义的人脸检测器。
detector | 用户自定义的人脸检测器函数 |
userData | 检测器参数 |
使用方法示例
用户自定义人脸检测器示例
待办事项 检测器参数的生命周期不受控制。修改接口设计为“Ptr<FaceDetector>”。
|
纯虚函数 |
使用给定的数据集训练 Facemark 算法。在训练过程之前,应使用 face::addTrainingSample 函数将训练样本添加到训练器。
parameters | 可选的额外参数(与算法相关)。 |
使用方法示例