类 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()
    • 方法详情

      • createFacemarkAAM

        public static Facemark createFacemarkAAM()
      • createFacemarkLBF

        public static Facemark createFacemarkLBF()
      • createFacemarkKazemi

        public static Facemark createFacemarkKazemi()
      • 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 - 一个包含 .txt 文件名称的 cv::String 类型向量。
        trainlandmarks - 一个 cv::Point2f 类型向量,用于存储所有图像的形状或标志点。
        trainimages - 一个 cv::String 类型向量,用于存储已跟踪标志点的图像名称。
        返回
        布尔值。成功读取数据时返回 true,否则返回 false。
      • loadFacePoints

        public static boolean loadFacePoints​(java.lang.String filename,
                                             Mat points,
                                             float offset)
        用于从给定文件加载面部特征点信息的工具函数。
        参数
        filename - 包含面部标志点数据的 .txt 文件的文件名。
        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 - 包含面部标志点数据的 .txt 文件的文件名。
        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 - 点的颜色,以 cv::Scalar 表示的 BGR 格式。<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)); }