![]() |
OpenCV 4.12.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 |
| 使用默认或用户定义的人脸检测器从给定图像中检测人脸。某些算法可能未提供默认的人脸检测器。 | |
| 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 | 面部特征点ground-truth对应于图像。 |
使用示例
训练文件中的内容应遵循标准格式。以下是这些文件中内容的示例。images_train.txt 文件内容示例
points_train.txt 文件内容示例
|
纯虚函数 |
从算法获取数据。
| items | 获取到的数据,取决于算法。 |
使用示例
|
纯虚函数 |
使用默认或用户定义的人脸检测器从给定图像中检测人脸。某些算法可能未提供默认的人脸检测器。
| image | 输入图像。 |
| faces | 函数输出,表示检测到的人脸的感兴趣区域。每张人脸都存储在 cv::Rect 容器中。 |
使用示例
|
纯虚函数 |
为Facemark算法设置用户定义的人脸检测器。
| detector | 用户定义的人脸检测函数 |
| userData | 检测器参数 |
使用示例
用户定义人脸检测器的示例
TODO 检测器参数的生命周期不受控制。重新设计接口为 "Ptr<FaceDetector>"。
|
纯虚函数 |
使用给定数据集训练Facemark算法。在训练过程之前,应使用 face::addTrainingSample 函数将训练样本添加到训练器中。
| parameters | 可选的额外参数(取决于算法)。 |
使用示例