请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
首页 社区 AI 怎样使用 OpenCV 进行人脸识别

怎样使用 OpenCV 进行人脸识别

猿梦 2022-8-4 20:09:14
1、首先就是数据的准备,你要从网络上下载一些人脸库,后面用来训练人脸识别模型。人脸检测模型opencv是自带的,但是识别模型需要自己训练。下载人脸库之后需要对人脸进行标记,这是一个繁琐的工作,不过网上有脚本或者自己写个程序简化工作量。2、把数据标记好之后就是opencv的事情。训练的函数非常简单。只有下面这三句:Ptr<FaceRecognizer> model = createEigenFaceRecognizer();model->train(images, labels);model->save(&quot;MyFacePCAModel.xml&quot;);3、然后打开摄像头进行人脸检测,就是框出人脸的位置。人脸检测模型是opencv自带的。CascadeClassifier cascade;cascade.load(&quot;haarcascade_frontalface_alt.xml&quot;);这是加载的方法。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<FaceRecognizer> modelPCA = createEigenFaceRecognizer();modelPCA->load(&quot;MyFacePCAModel.xml&quot;);检测:int predictPCA = 0;if (face.rows >= 120){resize(face, face_test, Size(92, 112));}if (!face_test.empty()){predictPCA = modelPCA->predict(face_test);}如果预测结果等于标记结果,说明识别正确。大致流程就这样了,如果你对opencv有了一定的了解,应该能看懂了。

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册