OpenCV中的人脸识别API
来源:互联网 发布:微信出现网络通信异常 编辑:程序博客网 时间:2024/06/02 07:34
今天打算用几种基准算法做人脸识别的测试,突然想到用OpenCV里边的API,查了一下文档,发现竟然还提供了3种方法:EigenFace,FisherFace,LBP。果然是强大呀。
1.建立人脸识别器
createEigenFaceRecognizer
- C++: Ptr<FaceRecognizer> createEigenFaceRecognizer(intnum_components=0, double threshold=DBL_MAX)¶
Parameters: - num_components – The number of components (read: Eigenfaces) kept for this Prinicpal Component Analysis. As a hint: There’s no rule how many components (read: Eigenfaces) should be kept for good reconstruction capabilities. It is based on your input data, so experiment with the number. Keeping 80 components should almost always be sufficient.
- threshold – The threshold applied in the prediciton.
createFisherFaceRecognizer
- C++: Ptr<FaceRecognizer> createFisherFaceRecognizer(intnum_components=0, doublethreshold=DBL_MAX)
Parameters: - num_components – The number of components (read: Fisherfaces) kept for this Linear Discriminant Analysis with the Fisherfaces criterion. It’s useful to keep all components, that means the number of your classesc (read: subjects, persons you want to recognize). If you leave this at the default (0) or set it to a value less-equal0 or greater(c-1), it will be set to the correct number(c-1) automatically.
- threshold – The threshold applied in the prediction. If the distance to the nearest neighbor is larger than the threshold, this method returns -1.
createLBPHFaceRecognizer
- C++: Ptr<FaceRecognizer> createLBPHFaceRecognizer(int radius=1, int neighbors=8, int grid_x=8, intgrid_y=8, doublethreshold=DBL_MAX)
Parameters: - radius – The radius used for building the Circular Local Binary Pattern. The greater the radius, the
- neighbors – The number of sample points to build a Circular Local Binary Pattern from. An appropriate value is to use `` 8`` sample points. Keep in mind: the more sample points you include, the higher the computational cost.
- grid_x – The number of cells in the horizontal direction, 8 is a common value used in publications. The more cells, the finer the grid, the higher the dimensionality of the resulting feature vector.
- grid_y – The number of cells in the vertical direction, 8 is a common value used in publications. The more cells, the finer the grid, the higher the dimensionality of the resulting feature vector.
- threshold – The threshold applied in the prediction. If the distance to the nearest neighbor is larger than the threshold, this method returns -1.
2.训练
C++: void FaceRecognizer::train(InputArrayOfArrayssrc, InputArraylabels) = 0¶
Parameters: - src – The training images, that means the faces you want to learn. The data has to be given as avector<Mat>.
- labels – The labels corresponding to the images have to be given either as avector<int> or a
3.预测
- C++: int FaceRecognizer::predict(InputArraysrc) const = 0¶
- C++: void FaceRecognizer::predict(InputArraysrc, int&label, double& confidence) const = 0¶
Predicts a label and associated confidence (e.g. distance) for a given input image.
Parameters: - src – Sample image to get a prediction from.
- label – The predicted label for the given image.
- confidence – Associated confidence (e.g. distance) for the predicted label.
简单应用:
int FR::FR_LBPH(){if(trainImages.size()<=0){cout<<"please read train data first!"<<endl;return 1;}Ptr<FaceRecognizer> model=createLBPHFaceRecognizer(2,8,10,14);model->train(trainImages,trainLabels);int plabel= -1;double predicted_confidence = 0.0;double correct=0;for(int i=0;i<testImages.size();i++){model->predict(testImages[i],plabel,predicted_confidence);if(plabel==testLabels[i]){correct++;}else{cout<<"name:"<<testNames[i]<<" label:"<<testLabels[i]<<" plabel:"<<plabel<<endl;}}cout<<correct/testImages.size()<<endl;return 0;}
注意:包含头文件#include "opencv2/contrib/contrib.hpp"
0 1
- OpenCV中的人脸识别API
- openCV中的人脸识别API
- OpenCV人脸识别
- opencv人脸识别
- openCV人脸识别
- Opencv 人脸识别
- opencv人脸识别
- Opencv 人脸识别
- opencv 人脸识别
- OpenCv人脸识别
- openCV人脸识别
- OpenCV人脸识别
- 人脸识别opencv
- openCV人脸识别
- opencv人脸识别
- OpenCV的行人识别&人脸识别
- OpenCV的行人识别&人脸识别
- 【opencv】树莓派picamera+opencv人脸识别
- XCode 同一Project创建多个target
- 查看linux下oracle链接配置
- C++纯手工打造COM:COM之来龙去脉——组件如何被创建
- 项目一
- u3d 1
- OpenCV中的人脸识别API
- 项目二
- 嵌入式ubuntu自动登入
- 2014年百度之星程序设计大赛 - 资格赛 1004 Labyrinth(Dp)
- POJ 3977Subset(枚举+二分)
- Git 常用命令
- .net Web API 2,return HttpResponseMessage with ObjectContent Json Type
- 使用 Spring 2.5 基于注解驱动的 Spring MVC
- bootstrap样式的引用