![]() |
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 | 可選的額外引數(取決於演算法)。 |
使用示例