OpenCV 4.13.0
開源計算機視覺庫 (Open Source Computer Vision)
正在載入...
正在搜尋...
未找到匹配項
面部分析

詳細說明

類  cv::face::BasicFaceRecognizer
 
結構體  cv::face::CParams
 
類  cv::face::EigenFaceRecognizer
 
類  cv::face::Facemark
 所有面部標記模型的抽象基類。更多...
 
類  cv::face::FacemarkAAM
 
類  cv::face::FacemarkLBF
 
類  cv::face::FacemarkTrain
 所有可訓練的面部標記模型的抽象基類。更多...
 
類  cv::face::FaceRecognizer
 所有面部識別模型的抽象基類。更多...
 
類  cv::face::FisherFaceRecognizer
 
類  cv::face::LBPHFaceRecognizer
 
類  cv::face::MACE
 Minimum Average Correlation Energy Filter,可用於透過(可取消的)生物特徵進行身份驗證。(訓練無需大量正樣本(10-50),也無需負樣本,並且對噪聲/加鹽具有魯棒性)更多...
 
類  cv::face::PredictCollector
 所有預測結果處理策略的抽象基類。更多...
 
類  cv::face::StandardCollector
 預設預測收集器。更多...
 

型別定義 (Typedefs)

typedef bool(* cv::face::FN_FaceDetector) (InputArray, OutputArray, void *userData)
 

函式

Ptr< Facemarkcv::face::createFacemarkAAM ()
 構建一個 AAM 面部標記檢測器
 
Ptr< Facemarkcv::face::createFacemarkKazemi ()
 構建一個 Kazemi 面部標記檢測器
 
Ptr< Facemarkcv::face::createFacemarkLBF ()
 構建一個 LBF 面部標記檢測器
 
void cv::face::drawFacemarks (InputOutputArray image, InputArray points, Scalar color=Scalar(255, 0, 0))
 用於繪製檢測到的面部標誌點的實用函式。
 
bool cv::face::getFaces (InputArray image, OutputArray faces, CParams *params)
 預設面部檢測器此函式主要由 Facemark Algorithm 實現使用。建議終端使用者使用 Facemark::getFaces 函式,該函式可以手動定義並透過 Facemark::setFaceDetector 繞過演算法。
 
bool cv::face::getFacesHAAR (InputArray image, OutputArray faces, const String &face_cascade_name)
 
bool cv::face::loadDatasetList (String imageList, String annotationList, std::vector< String > &images, std::vector< String > &annotations)
 載入訓練影像和註釋檔案路徑列表的實用工具。
 
bool cv::face::loadFacePoints (String filename, OutputArray points, float offset=0.0f)
 從給定檔案中載入面部標誌資訊的實用工具。
 
bool cv::face::loadTrainingData (std::vector< String > filename, std::vector< std::vector< Point2f > > &trainlandmarks, std::vector< String > &trainimages)
 此函式從包含相應影像名稱和標誌點的 .txt 檔案中提取訓練資料。每個檔案中的第一個檔案應給出正在檔案中描述其標誌點的影像的路徑。然後,在後續行中,應包含影像中標誌點的座標,即每行應為 x,y 格式,其中 x 代表標誌點的 x 座標,y 代表標誌點的 y 座標。
 
bool cv::face::loadTrainingData (String filename, std::vector< String > &images, OutputArray facePoints, char delim=' ', float offset=0.0f)
 從單個檔案載入面部標誌資料集的實用工具。
 
bool cv::face::loadTrainingData (String imageList, String groundTruth, std::vector< String > &images, OutputArray facePoints, float offset=0.0f)
 從資料集中載入面部標誌資訊的實用工具。
 

型別定義文件 (Typedef Documentation)

◆ FN_FaceDetector

typedef bool(* cv::face::FN_FaceDetector) (InputArray, OutputArray, void *userData)

函式文件 (Function Documentation)

◆ createFacemarkAAM()

Ptr< Facemark > cv::face::createFacemarkAAM ( )
Python
cv.face.createFacemarkAAM() -> retval

#include <opencv2/face/facemark.hpp>

構建一個 AAM 面部標記檢測器

◆ createFacemarkKazemi()

Ptr< Facemark > cv::face::createFacemarkKazemi ( )
Python
cv.face.createFacemarkKazemi() -> retval

#include <opencv2/face/facemark.hpp>

構建一個 Kazemi 面部標記檢測器

◆ createFacemarkLBF()

Ptr< Facemark > cv::face::createFacemarkLBF ( )
Python
cv.face.createFacemarkLBF() -> retval

#include <opencv2/face/facemark.hpp>

構建一個 LBF 面部標記檢測器

◆ drawFacemarks()

void cv::face::drawFacemarks ( InputOutputArray 影像,
InputArray points,
Scalar color = Scalar(255, 0, 0) )
Python
cv.face.drawFacemarks(image, points[, color]) -> 影像

#include <opencv2/face/facemark_train.hpp>

用於繪製檢測到的面部標誌點的實用函式。

引數
影像要處理的輸入影像。
points包含將要繪製的點的資料。
color點的顏色,以 BGR 格式表示,由cv::Scalar表示。

使用示例

std::vector<Rect> faces;
std::vector<std::vector<Point2f> > landmarks;
facemark->getFaces(img, faces);
facemark->fit(img, faces, landmarks);
for(int j=0;j<rects.size();j++){
face::drawFacemarks(frame, landmarks[j], Scalar(0,0,255));
}
Scalar_< double > Scalar
定義於 types.hpp:709
void drawFacemarks(InputOutputArray image, InputArray points, Scalar color=Scalar(255, 0, 0))
用於繪製檢測到的面部標誌點的實用函式。

◆ getFaces()

bool cv::face::getFaces ( InputArray 影像,
OutputArray faces,
CParams * params )

#include <opencv2/face/facemark_train.hpp>

預設面部檢測器此函式主要由 Facemark Algorithm 實現使用。建議終端使用者使用 Facemark::getFaces 函式,該函式可以手動定義並透過 Facemark::setFaceDetector 繞過演算法。

引數
影像要處理的輸入影像。
faces函式輸出,表示檢測到的面部的感興趣區域。每個面部儲存在cv::Rect容器中。
params檢測器引數

使用示例

std::vector<cv::Rect> faces;
CParams params("haarcascade_frontalface_alt.xml");
cv::face::getFaces(frame, faces, &params);
for(int j=0;j<faces.size();j++){
cv::rectangle(frame, faces[j], cv::Scalar(255,0,255));
}
cv::imshow("detection", frame);
bool getFaces(InputArray image, OutputArray faces, CParams *params)
預設面部檢測器此函式主要由 Facemark Algorithm 實現使用……
void imshow(const String &winname, InputArray mat)
在指定視窗中顯示影像。
void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
繪製一個簡單的、粗線條的或填充的正矩形。
定義 facemark_train.hpp:29

◆ getFacesHAAR()

bool cv::face::getFacesHAAR ( InputArray 影像,
OutputArray faces,
const String & face_cascade_name )
Python
cv.face.getFacesHAAR(image, face_cascade_name[, faces]) -> 返回值, faces

◆ loadDatasetList()

bool cv::face::loadDatasetList ( String imageList,
String annotationList,
std::vector< String > & images,
std::vector< String > & annotations )
Python
cv.face.loadDatasetList(imageList, annotationList, images, annotations) -> retval

#include <opencv2/face/facemark_train.hpp>

載入訓練影像和註釋檔案路徑列表的實用工具。

引數
imageList指定的檔案包含訓練影像的路徑。
annotationList指定的檔案包含訓練註釋的路徑。
images載入的訓練影像路徑。
annotations載入的註釋檔案路徑。

使用示例

String imageFiles = "images_path.txt";
String ptsFiles = "annotations_path.txt";
std::vector<String> images_train;
std::vector<String> landmarks_train;
loadDatasetList(imageFiles,ptsFiles,images_train,landmarks_train);
std::string String
定義 cvstd.hpp:151
bool loadDatasetList(String imageList, String annotationList, std::vector< String > &images, std::vector< String > &annotations)
載入訓練影像和註釋檔案路徑列表的實用工具。

◆ loadFacePoints()

bool cv::face::loadFacePoints ( String filename,
OutputArray points,
float offset = 0.0f )
Python
cv.face.loadFacePoints(filename[, points[, offset]]) -> 返回值, points

#include <opencv2/face/facemark_train.hpp>

從給定檔案中載入面部標誌資訊的實用工具。

引數
filename包含面部標誌資料的檔名。
points載入的面部標誌點。
offset用於調整載入點的偏移值。

使用示例

std::vector<Point2f> points;
face::loadFacePoints("filename.txt", points, 0.0f);
bool loadFacePoints(String filename, OutputArray points, float offset=0.0f)
從給定檔案中載入面部標誌資訊的實用工具。

註釋檔案應遵循預設格式,即

version: 1
n_points: 68
{
212.716603 499.771793
230.232816 566.290071
...
}

其中 n_points 是考慮的點數,每個點由其在 x 和 y 中的位置表示。

◆ loadTrainingData() [1/3]

bool cv::face::loadTrainingData ( std::vector< String > filename,
std::vector<std::vector< Point2f > > & trainlandmarks,
std::vector< String > & trainimages )
Python
cv.face.loadTrainingData(filename, images[, facePoints[, delim[, offset]]]) -> retval, facePoints
cv.face.loadTrainingData(imageList, groundTruth, images[, facePoints[, offset]]) -> retval, facePoints
cv.face.loadTrainingData(filename, trainlandmarks, trainimages) -> retval

#include <opencv2/face/facemark_train.hpp>

此函式從包含相應影像名稱和標誌點的 .txt 檔案中提取訓練資料。每個檔案中的第一個檔案應給出正在檔案中描述其標誌點的影像的路徑。然後,在後續行中,應包含影像中標誌點的座標,即每行應為 x,y 格式,其中 x 代表標誌點的 x 座標,y 代表標誌點的 y 座標。

有關參考,請參閱HELEN資料集中提供的檔案。

引數
filename包含 .txt 檔名的 cv::String 型別向量。
trainlandmarks儲存所有影像形狀或標誌點的 cv::Point2f 型別向量。
trainimages儲存被跟蹤的標誌點影像名稱的 cv::String 型別向量。
返回
一個布林值。成功讀取資料時返回 true,否則返回 false。

◆ loadTrainingData() [2/3]

bool cv::face::loadTrainingData ( String filename,
std::vector< String > & images,
OutputArray facePoints,
char delim = ' ',
float offset = 0.0f )
Python
cv.face.loadTrainingData(filename, images[, facePoints[, delim[, offset]]]) -> retval, facePoints
cv.face.loadTrainingData(imageList, groundTruth, images[, facePoints[, offset]]) -> retval, facePoints
cv.face.loadTrainingData(filename, trainlandmarks, trainimages) -> retval

#include <opencv2/face/facemark_train.hpp>

從單個檔案載入面部標誌資料集的實用工具。

引數
filename包含資料集資訊的檔案的檔名。每行包含一個影像的檔名,後跟用空格分隔的面部標誌點 x 和 y 值的對。例如:
/home/user/ibug/image_003_1.jpg 336.820955 240.864510 334.238298 260.922709 335.266918 ...
/home/user/ibug/image_005_1.jpg 376.158428 230.845712 376.736984 254.924635 383.265403 ...
images儲存資料集中影像檔名的向量。預設情況下不載入影像以節省記憶體。
facePoints所有訓練資料的載入標誌點。
delim每個元素之間的分隔符,預設為空格。
offset用於調整載入點的偏移值。

使用示例

cv::String imageFiles = "../data/images_train.txt";
cv::String ptsFiles = "../data/points_train.txt";
std::vector<String> images;
std::vector<std::vector<Point2f> > facePoints;
loadTrainingData(imageFiles, ptsFiles, images, facePoints, 0.0f);
bool loadTrainingData(String filename, std::vector< String > &images, OutputArray facePoints, char delim=' ', float offset=0.0f)
從單個檔案載入面部標誌資料集的實用工具。

◆ loadTrainingData() [3/3]

bool cv::face::loadTrainingData ( String imageList,
String groundTruth,
std::vector< String > & images,
OutputArray facePoints,
float offset = 0.0f )
Python
cv.face.loadTrainingData(filename, images[, facePoints[, delim[, offset]]]) -> retval, facePoints
cv.face.loadTrainingData(imageList, groundTruth, images[, facePoints[, offset]]) -> retval, facePoints
cv.face.loadTrainingData(filename, trainlandmarks, trainimages) -> retval

#include <opencv2/face/facemark_train.hpp>

從資料集中載入面部標誌資訊的實用工具。

引數
imageList一個包含訓練資料集中影像檔名的檔案。
groundTruth一個檔案,其中包含儲存標誌點資訊的檔案的列表。每個檔案中的內容應遵循標準格式(參見face::loadFacePoints)。
images儲存資料集中影像檔名的向量。預設情況下不載入影像以節省記憶體。
facePoints所有訓練資料的載入標誌點。
offset用於調整載入點的偏移值。

使用示例

cv::String imageFiles = "../data/images_train.txt";
cv::String ptsFiles = "../data/points_train.txt";
std::vector<String> images;
std::vector<std::vector<Point2f> > facePoints;
loadTrainingData(imageFiles, ptsFiles, images, facePoints, 0.0f);

images_train.txt 中內容示例

/home/user/ibug/image_003_1.jpg
/home/user/ibug/image_004_1.jpg
/home/user/ibug/image_005_1.jpg
/home/user/ibug/image_006.jpg

points_train.txt 中內容示例

/home/user/ibug/image_003_1.pts
/home/user/ibug/image_004_1.pts
/home/user/ibug/image_005_1.pts
/home/user/ibug/image_006.pts