public class Face extends Object
Constructor and Description |
---|
Face() |
Modifier and Type | Method and Description |
---|---|
static Facemark |
createFacemarkAAM() |
static Facemark |
createFacemarkKazemi() |
static Facemark |
createFacemarkLBF() |
static void |
drawFacemarks(Mat image,
Mat points)
Utility to draw the detected facial landmark points
|
static void |
drawFacemarks(Mat image,
Mat points,
Scalar color)
Utility to draw the detected facial landmark points
|
static boolean |
getFacesHAAR(Mat image,
Mat faces,
String face_cascade_name)
Default face detector
This function is mainly utilized by the implementation of a Facemark Algorithm.
|
static boolean |
loadDatasetList(String imageList,
String annotationList,
List<String> images,
List<String> annotations)
A utility to load list of paths to training image and annotation file.
|
static boolean |
loadFacePoints(String filename,
Mat points)
A utility to load facial landmark information from a given file.
|
static boolean |
loadFacePoints(String filename,
Mat points,
float offset)
A utility to load facial landmark information from a given file.
|
static boolean |
loadTrainingData(List<String> filename,
List<MatOfPoint2f> trainlandmarks,
List<String> trainimages)
This function extracts the data for training from .txt files which contains the corresponding image name and landmarks.
|
static boolean |
loadTrainingData(String filename,
List<String> images,
Mat facePoints)
A utility to load facial landmark dataset from a single file.
|
static boolean |
loadTrainingData(String filename,
List<String> images,
Mat facePoints,
char delim)
A utility to load facial landmark dataset from a single file.
|
static boolean |
loadTrainingData(String filename,
List<String> images,
Mat facePoints,
char delim,
float offset)
A utility to load facial landmark dataset from a single file.
|
static boolean |
loadTrainingData(String imageList,
String groundTruth,
List<String> images,
Mat facePoints)
A utility to load facial landmark information from the dataset.
|
static boolean |
loadTrainingData(String imageList,
String groundTruth,
List<String> images,
Mat facePoints,
float offset)
A utility to load facial landmark information from the dataset.
|
public static Facemark createFacemarkAAM()
public static Facemark createFacemarkKazemi()
public static Facemark createFacemarkLBF()
public static boolean getFacesHAAR(Mat image, Mat faces, String face_cascade_name)
image
- The input image to be processed.faces
- Output of the function which represent region of interest of the detected faces.
Each face is stored in cv::Rect container.
<B>Example of usage</B>
std::vector<cv::Rect> faces;
CParams params("haarcascade_frontalface_alt.xml");
cv::face::getFaces(frame, faces, ¶ms);
for(int j=0;j<faces.size();j++){
cv::rectangle(frame, faces[j], cv::Scalar(255,0,255));
}
cv::imshow("detection", frame);
face_cascade_name
- automatically generatedpublic static boolean loadDatasetList(String imageList, String annotationList, List<String> images, List<String> annotations)
imageList
- The specified file contains paths to the training images.annotationList
- The specified file contains paths to the training annotations.images
- The loaded paths of training images.annotations
- The loaded paths of annotation files.
Example of usage:
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);
public static boolean loadFacePoints(String filename, Mat points, float offset)
filename
- The filename of file contains the facial landmarks data.points
- The loaded facial landmark points.offset
- An offset value to adjust the loaded points.
<B>Example of usage</B>
std::vector<Point2f> points;
face::loadFacePoints("filename.txt", points, 0.0f);
The annotation file should follow the default format which is
version: 1
n_points: 68
{
212.716603 499.771793
230.232816 566.290071
...
}
where n_points is the number of points considered
and each point is represented as its position in x and y.public static boolean loadFacePoints(String filename, Mat points)
filename
- The filename of file contains the facial landmarks data.points
- The loaded facial landmark points.
<B>Example of usage</B>
std::vector<Point2f> points;
face::loadFacePoints("filename.txt", points, 0.0f);
The annotation file should follow the default format which is
version: 1
n_points: 68
{
212.716603 499.771793
230.232816 566.290071
...
}
where n_points is the number of points considered
and each point is represented as its position in x and y.public static boolean loadTrainingData(String filename, List<String> images, Mat facePoints, char delim, float offset)
filename
- The filename of a file that contains the dataset information.
Each line contains the filename of an image followed by
pairs of x and y values of facial landmarks points separated by a space.
Example
/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
- A vector where each element represent the filename of image in the dataset.
Images are not loaded by default to save the memory.facePoints
- The loaded landmark points for all training data.delim
- Delimiter between each element, the default value is a whitespace.offset
- An offset value to adjust the loaded points.
<B>Example of usage</B>
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);
public static boolean loadTrainingData(String filename, List<String> images, Mat facePoints, char delim)
filename
- The filename of a file that contains the dataset information.
Each line contains the filename of an image followed by
pairs of x and y values of facial landmarks points separated by a space.
Example
/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
- A vector where each element represent the filename of image in the dataset.
Images are not loaded by default to save the memory.facePoints
- The loaded landmark points for all training data.delim
- Delimiter between each element, the default value is a whitespace.
<B>Example of usage</B>
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);
public static boolean loadTrainingData(String filename, List<String> images, Mat facePoints)
filename
- The filename of a file that contains the dataset information.
Each line contains the filename of an image followed by
pairs of x and y values of facial landmarks points separated by a space.
Example
/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
- A vector where each element represent the filename of image in the dataset.
Images are not loaded by default to save the memory.facePoints
- The loaded landmark points for all training data.
<B>Example of usage</B>
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);
public static boolean loadTrainingData(String imageList, String groundTruth, List<String> images, Mat facePoints, float offset)
imageList
- A file contains the list of image filenames in the training dataset.groundTruth
- A file contains the list of filenames
where the landmarks points information are stored.
The content in each file should follow the standard format (see face::loadFacePoints).images
- A vector where each element represent the filename of image in the dataset.
Images are not loaded by default to save the memory.facePoints
- The loaded landmark points for all training data.offset
- An offset value to adjust the loaded points.
<B>Example of usage</B>
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);
example of content in the 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
example of content in the 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
public static boolean loadTrainingData(String imageList, String groundTruth, List<String> images, Mat facePoints)
imageList
- A file contains the list of image filenames in the training dataset.groundTruth
- A file contains the list of filenames
where the landmarks points information are stored.
The content in each file should follow the standard format (see face::loadFacePoints).images
- A vector where each element represent the filename of image in the dataset.
Images are not loaded by default to save the memory.facePoints
- The loaded landmark points for all training data.
<B>Example of usage</B>
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);
example of content in the 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
example of content in the 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
public static boolean loadTrainingData(List<String> filename, List<MatOfPoint2f> trainlandmarks, List<String> trainimages)
filename
- A vector of type cv::String containing name of the .txt files.trainlandmarks
- A vector of type cv::Point2f that would store shape or landmarks of all images.trainimages
- A vector of type cv::String which stores the name of images whose landmarks are trackedpublic static void drawFacemarks(Mat image, Mat points, Scalar color)
image
- The input image to be processed.points
- Contains the data of points which will be drawn.color
- The color of points in BGR format represented by cv::Scalar.
<B>Example of usage</B>
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));
}
public static void drawFacemarks(Mat image, Mat points)
image
- The input image to be processed.points
- Contains the data of points which will be drawn.
<B>Example of usage</B>
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));
}
Generated on Wed Oct 9 2019 23:24:43 UTC / OpenCV 4.1.2