opencv查找人脸_opencv实时人脸识别

hacker|
306

文章导读:

怎样使用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特征的。要检测人眼可以自己训练自己的分类器,检测别的同样道理可以自己训练。

2条大神的评论

  • avatar
    访客 2022-07-07 下午 11:16:28

    v::FaceRecognizerfacerPCA,facerLDA; cv::Ptrcv::FaceRecognizerfacerLBPH=cv::create

  • avatar
    访客 2022-07-08 上午 12:45:03

    文章导读:1、怎样使用OpenCV进行人脸识别2、opencv实现人脸识别有多少种算法3、opencv 人脸识别是用什么方法实现的怎样使用OpenCV进行人脸识别1、首先就

发表评论