文章导读:
怎样使用OpenCV进行人脸识别
1、首先就是数据的准备,你要从网络上下载一些人脸库,后面用来训练人脸识别模型。人脸检测模型opencv是自带的,但是识别模型需要自己训练。下载人脸库之后需要对人脸进行标记,这是一个繁琐的工作,不过网上有脚本或者自己写个程序简化工作量。
2、把数据标记好之后就是opencv的事情。训练的函数非常简单。只有下面这三句:
Ptr model = createEigenFaceRecognizer();
model-train(images, labels);
model-save("MyFacePCAModel.xml");
3、然后打开摄像头进行人脸检测,就是框出人脸的位置。人脸检测模型是opencv自带的。
CascadeClassifier cascade;
cascade.load("haarcascade_frontalface_alt.xml");
这是加载的方法。
cascade.detectMultiScale(gray, faces,
1.1, 2, 0
//|CV_HAAR_FIND_BIGGEST_OBJECT
//|CV_HAAR_DO_ROUGH_SEARCH
| CV_HAAR_SCALE_IMAGE,
Size(30, 30));
这是检测的方法。这里检测得到的就是一个一个的人脸的矩形框,然后用画矩形的方法把它们画出来就行了。
4、然后就是对检测到的人脸进行识别了,用我们刚才训练好的人脸模型。加载:
Ptr modelPCA = createEigenFaceRecognizer();
modelPCA-load("MyFacePCAModel.xml");
预测:
int predictPCA = 0;
if (face.rows = 120)
{
resize(face, face_test, Size(92, 112));
}
if (!face_test.empty())
{
predictPCA = modelPCA-predict(face_test);
}
opencv实现人脸识别有多少种算法
OpenCV在2.4.1以后的版本中开始自带人脸识别,共有三种人脸识别算法的实现,分别是PCA , LDA , LBPH. OpenCV2创建方法如下:
cv::Ptrcv::FaceRecognizerfacerPCA,facerLDA;
cv::Ptrcv::FaceRecognizerfacerLBPH=cv::createLBPHFaceRecognizer();
facerPCA=cv::Algorithm::createcv::FaceRecognizer("FaceRecognizer.Eigenfaces");
facerLDA=cv::Algorithm::createcv::FaceRecognizer("FaceRecognizer.Fisherfaces");
在OpenCV3中,人脸识别的实现被移动到第三方库opencv_contrib中,而且OpenCV3版本的各个版本3.0.0,3.2.0,3.3.0的创建方法均不同,且都被移动到cv::face::名字空间下.
opencv 人脸识别是用什么方法实现的
opencv用adaboost检测人脸,是基于haar特征的。要检测人眼可以自己训练自己的分类器,检测别的同样道理可以自己训练。
v::FaceRecognizerfacerPCA,facerLDA; cv::Ptrcv::FaceRecognizerfacerLBPH=cv::create
文章导读:1、怎样使用OpenCV进行人脸识别2、opencv实现人脸识别有多少种算法3、opencv 人脸识别是用什么方法实现的怎样使用OpenCV进行人脸识别1、首先就