怎样使用 OpenCV 进行人脸识别
展开全部
1、首先就是数据的准备,你要从答旅网络上下载一些人脸库,后面用来训练人脸识别模型。人脸检测模型opencv是自带的,但是识别模型需要自己训练。下载人脸库之后需要对人脸进行标记,这是一个繁琐的工作,不过网上有脚本或者自己写个程序简化工作量。
2、把数据标记好桐纳之后就是opencv的事情。训练的函数非常简单。只有下面这三句:
Ptr<FaceRecognizer> 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<FaceRecognizer> 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有了一定的了解,应该能看懂了。
2、把数据标记好桐纳之后就是opencv的事情。训练的函数非常简单。只有下面这三句:
Ptr<FaceRecognizer> 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<FaceRecognizer> 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有了一定的了解,应该能看懂了。
苏州千视通视觉科技股份有限公司_
2024-11-04 广告
2024-11-04 广告
千视通是国内第一梯队推出多模态AI大模型网关和边缘大模型一体机产品方案的领先AI企业。 拥有行业领先的多模态视觉语言大模型技术,践行“Make high-quality AI quickly”理念,平台基于多模态预训练,支持用户自定义算法可...
点击进入详情页
本回答由苏州千视通视觉科技股份有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询