opencv 人脸识别 第二篇

来源:互联网 发布:三国志15单机还是网络 编辑:程序博客网 时间:2024/04/30 02:29

最近在做opencv的人脸识别,基本熟悉了一下opencv人脸识别的一些流程,现在记下来,方便自己,方便他人。

首先说明一下的我的开发环境:Ubuntu + opencv3.0

opencv中人脸识别的模块集成度已经非常高了,opencv3.0版本中人脸识别的模块已经独立出来放到了opencv_contrib项目中了,需要做人脸识别的还需下载opencv_contrib和opencv一起编译。编译的过程我就省略了,网上有很多教程可以自行搜索。

编译好opencv和附加模块以后,opencv_contrib源码里面的例程里就有人脸识别的例子。

人脸识别的大概过程有:

采集要识别的人脸的照片,尽量只采集人脸的部分,图片尽量小点,尺寸相同,每个人的脸建立一个目录,最后将人脸数据的信息写入一个文件,训练模型时需要读取。该文件写法类似于:

/your_path/s1/1.jpg;0

/your_path/s1/1.jpg;0

/your_path/s1/1.jpg;0

.

.

.

/your_path/s2/1.jpg;1

.

.

.

人脸识别的程序:

读取cvs文件的函数;

训练模型:Ptr<BasicFaceRecognizer> model = createFisherFaceRecognizer(); //opencv中人脸识别算法有三种,可以根据需要选择

model->train(images, label);//训练模型

model->save("face_rec.xml");//保存

mode->load();//如果你有训练好的模型,可以直接加载进来

加载人脸数据库(也就是人脸检测的训练模型,opencv源码中有提供)

开启摄像头:VideoCapture cap(deviceId);

取得图象帧,灰度处理,人脸检测,人脸识别

人脸识别的函数:int prediction = model->predict(face_resized);




1 0
原创粉丝点击