WhatsApp网页版登录WhatsApp网页版登录

WhatsApp中文版

opencv中识别行人的脚_人脸识别OpenCV教程

不知道你说的人脸识别是识别出来是某个人还是只是在图像中检测出人脸。

刚用opencv完成对自己的人脸识别,但是还需要继续优化。说一下大致步骤吧:

1、首先就是数据的准备WhatsApp网页版,你要从网络上下载一些人脸库,后面用来训练人脸识别模型。人脸检测模型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、然后就是对检测到的人脸进行识别了WhatsApp网页版WhatsApp网页版,用我们刚才训练好的人脸模型。加载:

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有了一定的了解,应该能看懂了。没看懂只能私聊了。

第一次回答这么长,自己都有点不习惯。

相关文章