opencv 人脸识别 (二)训练和识别_第1页
opencv 人脸识别 (二)训练和识别_第2页
opencv 人脸识别 (二)训练和识别_第3页
opencv 人脸识别 (二)训练和识别_第4页
opencv 人脸识别 (二)训练和识别_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

opencv 人脸识别 (二)训练和识别 分类: C/C+ Computer Vision Machine Learning 2014-03-04 13:21 9819 人阅读 评论(59) 收藏 举报 人脸检测人脸识别归一化对齐 opencv 上一篇中我们对训练数据做了一些预处理,检测出人脸并保存在piccolorx 文件夹下 (x=1,2,3,.类别号),本文做训练和识别。为了识别,首先将人脸训练数据 转为灰度、 对齐、归一化,再放入分类器(EigenFaceRecognizer) ,最后用训练出的 model 进行 predict。 - 环境:vs2010+opencv 2.4.6.0 特征:eigenface Input:一个人脸数据库, 15 个人,每人 20 个样本(左右)。 Output:人脸检测,并识别出每张检测到的人脸。 - 1. 为训练数据预处理( 转为灰度、对齐、归一化 ) 转为灰度和对齐是后面做训练时 EigenFaceRecognizer 的要求; 归一化是防止光照带来的影响 在上一篇的 2.2 Prehelper.cpp 文件中加入函数 void resizeandtogray(char* dir,int k, vector cpp view plaincopyprint? 1. void resizeandtogray(char* dir,int K, vector 5. string cur_dir; 6. char id5; 7. int i,j; 8. for(int i=1; ifile_vec = statdir.BeginBrowseFilenames(“*.*“); 23. for (j=0;j images,testimages; 11. vector labels,testlabels; 12. resizeandtogray(dir,K,images,labels,testimages,testlabels); /togray, normalize and resize 13. 14. system(“pause“); 15. return 0; 16. 2. 训练 有了 vector images,testimages; vector labels,testlabels; 可以开始训 练了,我们采用 EigenFaceRecognizer 建模。 在 Prehelper.cpp 中加入函数 Ptr Recognition(vector images, vector labels,vector testimages, vector testlabels); cpp view plaincopyprint? 1. Ptr Recognition(vector images, vector labels, 2. vector testimages, vector testlabels) 3. 4. Ptr model = createEigenFaceRecognizer(10);/10 Princi pal components 5. couttrain(images,labels); 7. int i,acc=0,predict_l; 8. for (i=0;ipredict(testimagesi); 11. if(predict_l != testlabelsi) 12. 13. cout model 主函数改为: cpp view plaincopyprint? 1. int main( ) 2. 3. CvCapture* capture = 0; 4. Mat frame, frameCopy, image; 5. string inputName; 6. int mode; 7. 8. char dir256 = “D:CoursesCVFace_recognitionpic“; 9. /preprocess_trainingdata(dir,K); /face_detection and extract to fil e 10. vector images,testimages; 11. vector labels,testlabels; 12. /togray, normalize and resize; load to images,labels,testimages,test labels 13. resizeandtogray(dir,K,images,labels,testimages,testlabels); 14. /recognition 15. Ptr model = Recognition(images,labels,testimages,test labels); 16. char* dirmodel = new char 256; 17. strcpy(dirmodel,dir); strcat(dirmodel,“model.out“); 18. FILE* f = fopen(dirmodel,“w“); 19. fwrite(model,sizeof(model),1,f); 20. system(“pause“); 21. return 0; 22. 最终结果:一个错分样本,正确率 93.3% 文章所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论