OpenCV 4.5.3(日本語機械翻訳)
クラス | 型定義 | 関数
Face Analysis

クラス

class cv::face::FaceRecognizer
すべての顔認識モデルのための抽象ベースクラス[【詳解】(英語]
struct cv::face::CParams
class cv::face::FacemarkTrain
学習可能な顔マークモデルのための抽象ベースクラス[【詳解】(英語]
class cv::face::FacemarkAAM
class cv::face::FacemarkLBF
class cv::face::BasicFaceRecognizer
class cv::face::EigenFaceRecognizer
class cv::face::FisherFaceRecognizer
class cv::face::LBPHFaceRecognizer
class cv::face::MACE
最小平均相関エネルギーフィルタは,(キャンセル可能な)バイオメトリクス特徴を用いた認証に役立ちます.(学習に多くの陽性(10-50)と全くの陰性を必要とせず,ノイズや塩分にも強い)[【詳解】(英語]
class cv::face::PredictCollector
予測結果処理のすべての戦略のための抽象ベースクラス[【詳解】(英語]
class cv::face::StandardCollector
デフォルトの予測コレクター[【詳解】(英語]

型定義

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

関数

CV_EXPORTS bool cv::face::getFaces (InputArray image, OutputArray faces, CParams *params)
デフォルトの顔検出器. この関数は,主に顔検出器の実装に利用されます.Facemark Algorithm. エンドユーザは,関数 Facemark::getFaces を利用することをお勧めします.これは,手動で定義することができ,Facemark::setFaceDetector によってアルゴリズムを回避することができます.[【詳解】(英語]
CV_EXPORTS_W bool cv::face::getFacesHAAR (InputArray image, OutputArray faces, const String &face_cascade_name)
CV_EXPORTS_W bool cv::face::loadDatasetList (String imageList, String annotationList, std::vector< String > &images, std::vector< String > &annotations)
トレーニング画像とアノテーションファイルのパスのリストを読み込むためのユーティリティ.[【詳解】(英語]
CV_EXPORTS_W bool cv::face::loadTrainingData (String filename, std::vector< String > &images, OutputArray facePoints, char delim=' ', float offset=0.0f)
フェイシャルランドマークデータセットを1つのファイルから読み込むためのユーティリティ.[【詳解】(英語]
CV_EXPORTS_W bool cv::face::loadTrainingData (String imageList, String groundTruth, std::vector< String > &images, OutputArray facePoints, float offset=0.0f)
顔のランドマーク情報をデータセットから読み込むためのユーティリティです.[【詳解】(英語]
CV_EXPORTS_W 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座標を表しています。[【詳解】(英語]
CV_EXPORTS_W bool cv::face::loadFacePoints (String filename, OutputArray points, float offset=0.0f)
指定されたファイルから顔のランドマーク情報を読み込むユーティリティーです。[【詳解】(英語]
CV_EXPORTS_W void cv::face::drawFacemarks (InputOutputArray image, InputArray points, Scalar color=Scalar(255, 0, 0))
検出された顔のランドマークポイントを描画するユーティリティ[【詳解】(英語]

詳解

関数詳解

drawFacemarks()

CV_EXPORTS_W void cv::face::drawFacemarks ( InputOutputArray image,
InputArray points,
Scalar color = Scalar(255, 0, 0)
)

検出された顔のランドマークポイントを描画するユーティリティ

引数
image 処理対象となる入力画像。
points 描画される点のデータが格納されています。
color cv::Scalar で表現される BGR フォーマットの点の色.

使用例

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));
}
CV_EXPORTS_W void drawFacemarks(InputOutputArray image, InputArray points, Scalar color=Scalar(255, 0, 0))
Utility to draw the detected facial landmark points

getFaces()

CV_EXPORTS bool cv::face::getFaces ( InputArray image,
OutputArray faces,
CParams * params
)

デフォルトの顔検出器. この関数は,主に顔検出器の実装に利用されます.Facemark Algorithm. エンドユーザは,関数 Facemark::getFaces を利用することをお勧めします.これは,手動で定義することができ,Facemark::setFaceDetector によってアルゴリズムを回避することができます.

引数
image 処理対象となる入力画像。
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);
CV_EXPORTS bool getFaces(InputArray image, OutputArray faces, CParams *params)
Default face detector This function is mainly utilized by the implementation of a Facemark Algorithm....
CV_EXPORTS_W void imshow(const String &winname, InputArray mat)
Displays an image in the specified window.
CV_EXPORTS_W void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
Draws a simple, thick, or filled up-right rectangle.
Definition: facemark_train.hpp:35

loadDatasetList()

CV_EXPORTS_W bool cv::face::loadDatasetList ( String imageList,
String annotationList,
std::vector< String > & images,
std::vector< String > & annotations
)

トレーニング画像とアノテーションファイルのパスのリストを読み込むためのユーティリティ.

引数
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);
CV_EXPORTS_W bool loadDatasetList(String imageList, String annotationList, std::vector< String > &images, std::vector< String > &annotations)
A utility to load list of paths to training image and annotation file.

loadFacePoints()

CV_EXPORTS_W bool cv::face::loadFacePoints ( String filename,
OutputArray points,
float offset = 0.0f
)

指定されたファイルから顔のランドマーク情報を読み込むユーティリティーです。

引数
filename 指定されたファイルのファイル名には、顔のランドマークデータが含まれています。
points 読み込まれた顔のランドマークのポイント。
offset 読み込まれたポイントを調整するためのオフセット値。

使用例

std::vector<Point2f> points;
face::loadFacePoints("filename.txt", points, 0.0f);
CV_EXPORTS_W bool loadFacePoints(String filename, OutputArray points, float offset=0.0f)
A utility to load facial landmark information from a given file.

アノテーションファイルは,以下のようなデフォルトのフォーマットに従います

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

ここで,n_points は,考慮される点の数であり,各点は,xとyの位置で表現されます.

loadTrainingData() [1/3]

CV_EXPORTS_W 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座標を表しています。

参考までに、HELENデータセットで提供されているファイルをご覧ください。HELENデータセット

引数
filename .txt ファイルの名前を含む cv::String 型のベクトル.
trainlandmarks cv::Point2f 型のベクトル.全画像の形状やランドマークを格納します.
trainimages ランドマークが追跡された画像の名前を格納する cv::String 型のベクトル.
戻り値
真偽値.データの読み込みに成功した場合は true を返し,そうでない場合は false を返します.

loadTrainingData() [2/3]

CV_EXPORTS_W bool cv::face::loadTrainingData ( String filename,
std::vector< String > & images,
OutputArray facePoints,
char delim = ' ',
float offset = 0.0f
)

フェイシャルランドマークデータセットを1つのファイルから読み込むためのユーティリティ.

引数
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);
CV_EXPORTS_W bool loadTrainingData(String filename, std::vector< String > &images, OutputArray facePoints, char delim=' ', float offset=0.0f)
A utility to load facial landmark dataset from a single file.

loadTrainingData() [3/3]

CV_EXPORTS_W bool cv::face::loadTrainingData ( String imageList,
String groundTruth,
std::vector< String > & images,
OutputArray facePoints,
float offset = 0.0f
)

顔のランドマーク情報をデータセットから読み込むためのユーティリティです.

引数
imageList A fileには,学習データセットに含まれる画像のファイル名のリストが格納されています.
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