类 Face


  • public class Face
    extends java.lang.Object
    • 构造函数摘要

      构造函数 
      构造函数 描述
      Face()  
    • 方法摘要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 描述
      static Facemark createFacemarkAAM()  
      static Facemark createFacemarkKazemi()  
      static Facemark createFacemarkLBF()  
      static void drawFacemarks​(Mat image, Mat points)
      用于绘制检测到的面部特征点。
      static void drawFacemarks​(Mat image, Mat points, Scalar color)
      用于绘制检测到的面部特征点。
      static boolean getFacesHAAR​(Mat image, Mat faces, java.lang.String face_cascade_name)
      默认人脸检测器。此函数主要由 Facemark 算法的实现利用。
      static boolean loadDatasetList​(java.lang.String imageList, java.lang.String annotationList, java.util.List<java.lang.String> images, java.util.List<java.lang.String> annotations)
      用于加载训练图像和注释文件路径列表的实用工具。
      static boolean loadFacePoints​(java.lang.String filename, Mat points)
      用于从给定文件加载面部特征点信息的实用工具。
      static boolean loadFacePoints​(java.lang.String filename, Mat points, float offset)
      用于从给定文件加载面部特征点信息的实用工具。
      static boolean loadTrainingData​(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints)
      用于从数据集中加载面部特征点信息的实用工具。
      static boolean loadTrainingData​(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints, float offset)
      用于从数据集中加载面部特征点信息的实用工具。
      static boolean loadTrainingData​(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints)
      用于从单个文件加载面部特征点数据集的实用工具。
      static boolean loadTrainingData​(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim)
      用于从单个文件加载面部特征点数据集的实用工具。
      static boolean loadTrainingData​(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim, float offset)
      用于从单个文件加载面部特征点数据集的实用工具。
      static boolean loadTrainingData​(java.util.List<java.lang.String> filename, java.util.List<MatOfPoint2f> trainlandmarks, java.util.List<java.lang.String> trainimages)
      此函数从包含相应图像名称和地标的 .txt 文件中提取训练数据。
      • 从类继承的方法 java.lang.Object

        clone、equals、finalize、getClass、hashCode、notify、notifyAll、toString、wait、wait、wait
    • 构造函数详细信息

      • Face

        public Face()
    • 方法详细信息

      • getFacesHAAR

        public static boolean getFacesHAAR​(Mat image,
                                           Mat faces,
                                           java.lang.String face_cascade_name)
        默认人脸检测器。此函数主要由 Facemark 算法的实现利用。建议最终用户使用 Facemark::getFaces 函数,该函数可以手动定义并通过 Facemark::setFaceDetector 绕过算法。
        参数
        image - 要处理的输入图像。
        faces - 函数的输出,表示检测到的人脸的感兴趣区域。每个人脸都存储在 cv::Rect 容器中。<B>用法示例</B> 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);
        face_cascade_name - 自动生成
        返回
        自动生成
      • loadDatasetList

        public static boolean loadDatasetList​(java.lang.String imageList,
                                              java.lang.String annotationList,
                                              java.util.List<java.lang.String> images,
                                              java.util.List<java.lang.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);
        返回
        自动生成
      • loadTrainingData

        public static boolean loadTrainingData​(java.lang.String filename,
                                               java.util.List<java.lang.String> images,
                                               Mat facePoints,
                                               char delim,
                                               float offset)
        用于从单个文件加载面部特征点数据集的实用工具。
        参数
        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 - 用于调整已加载点的偏移值。 <B>用法示例</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);
        返回
        自动生成
      • loadTrainingData

        public static boolean loadTrainingData​(java.lang.String filename,
                                               java.util.List<java.lang.String> images,
                                               Mat facePoints,
                                               char delim)
        用于从单个文件加载面部特征点数据集的实用工具。
        参数
        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 - 每个元素之间的分隔符,默认值为空格。 <B>用法示例</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);
        返回
        自动生成
      • loadTrainingData

        public static boolean loadTrainingData​(java.lang.String filename,
                                               java.util.List<java.lang.String> images,
                                               Mat facePoints)
        用于从单个文件加载面部特征点数据集的实用工具。
        参数
        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 - 所有训练数据的已加载地标点。 <B>用法示例</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);
        返回
        自动生成
      • loadTrainingData

        public static boolean loadTrainingData​(java.lang.String imageList,
                                               java.lang.String groundTruth,
                                               java.util.List<java.lang.String> images,
                                               Mat facePoints,
                                               float offset)
        用于从数据集中加载面部特征点信息的实用工具。
        参数
        imageList - 一个文件,其中包含训练数据集中图像文件名的列表。
        groundTruth - 一个文件,其中包含存储地标点信息的文件名列表。每个文件中的内容应遵循标准格式(参见 face::loadFacePoints)。
        images - 一个向量,其中每个元素表示数据集中图像的文件名。默认情况下不加载图像以节省内存。
        facePoints - 所有训练数据的已加载地标点。
        offset - 用于调整已加载点的偏移值。 <B>用法示例</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); 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
        返回
        自动生成
      • loadTrainingData

        public static boolean loadTrainingData​(java.lang.String imageList,
                                               java.lang.String groundTruth,
                                               java.util.List<java.lang.String> images,
                                               Mat facePoints)
        用于从数据集中加载面部特征点信息的实用工具。
        参数
        imageList - 一个文件,其中包含训练数据集中图像文件名的列表。
        groundTruth - 一个文件,其中包含存储地标点信息的文件名列表。每个文件中的内容应遵循标准格式(参见 face::loadFacePoints)。
        images - 一个向量,其中每个元素表示数据集中图像的文件名。默认情况下不加载图像以节省内存。
        facePoints - 所有训练数据的已加载地标点。 <B>用法示例</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); 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
        返回
        自动生成
      • loadTrainingData

        public static boolean loadTrainingData​(java.util.List<java.lang.String> filename,
                                               java.util.List<MatOfPoint2f> trainlandmarks,
                                               java.util.List<java.lang.String> trainimages)
        此函数从包含相应图像名称和地标的 .txt 文件中提取训练数据。每个文件中的第一个文件应该给出图像的路径,该图像的地标在文件中描述。然后在随后的行中应该是图像中地标的坐标,即每行应该是 x,y 的形式,其中 x 表示地标的 x 坐标,y 表示地标的 y 坐标。作为参考,您可以查看 <a href="http://www.ifp.illinois.edu/~vuongle2/helen/">HELEN 数据集</a> 中提供的文件
        参数
        filename - 一个 cv::String 类型的向量,包含 .txt 文件的名称。
        trainlandmarks - 一个 cv::Point2f 类型的向量,它将存储所有图像的形状或地标。
        trainimages - 一个 cv::String 类型的向量,它存储跟踪地标的图像的名称
        返回
        一个布尔值。成功读取数据时返回 true,否则返回 false
      • loadFacePoints

        public static boolean loadFacePoints​(java.lang.String filename,
                                             Mat points,
                                             float offset)
        用于从给定文件加载面部特征点信息的实用工具。
        参数
        filename - 包含面部地标数据的文件名。
        points - 加载的面部地标点。
        offset - 用于调整加载点的偏移值。 <B>用法示例</B> std::vector<Point2f> points; face::loadFacePoints("filename.txt", points, 0.0f); 注释文件应遵循默认格式,该格式为 version: 1 n_points: 68 { 212.716603 499.771793 230.232816 566.290071 ... } 其中 n_points 是考虑的点数,每个点表示为它在 x 和 y 中的位置。
        返回
        自动生成
      • loadFacePoints

        public static boolean loadFacePoints​(java.lang.String filename,
                                             Mat points)
        用于从给定文件加载面部特征点信息的实用工具。
        参数
        filename - 包含面部地标数据的文件名。
        points - 加载的面部地标点。 <B>用法示例</B> std::vector<Point2f> points; face::loadFacePoints("filename.txt", points, 0.0f); 注释文件应遵循默认格式,该格式为 version: 1 n_points: 68 { 212.716603 499.771793 230.232816 566.290071 ... } 其中 n_points 是考虑的点数,每个点表示为它在 x 和 y 中的位置。
        返回
        自动生成
      • drawFacemarks

        public static void drawFacemarks​(Mat image,
                                         Mat points,
                                         Scalar color)
        用于绘制检测到的面部特征点。
        参数
        image - 要处理的输入图像。
        points - 包含将要绘制的点的数据。
        color - BGR 格式的点颜色,由 cv::Scalar 表示。 <B>用法示例</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)); }
      • drawFacemarks

        public static void drawFacemarks​(Mat image,
                                         Mat points)
        用于绘制检测到的面部特征点。
        参数
        image - 要处理的输入图像。
        points - 包含将要绘制的点的数据。 <B>用法示例</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)); }
      • createFacemarkAAM

        public static Facemark createFacemarkAAM()
      • createFacemarkLBF

        public static Facemark createFacemarkLBF()
      • createFacemarkKazemi

        public static Facemark createFacemarkKazemi()