iphone8多少钱,北京正规seo搜索引擎优化价格,网站建设服务公司选哪家比较好?,游戏推广平台在最新版的2.4.2中#xff0c;文档的更新也是一大亮点#xff0c;refrence manual扩充了200多页的内容#xff0c;添加了contrib部分的文档。contrib就是指OpenCV中新添加的模块#xff0c;但又不是很稳定#xff0c;可以认为是一个雏形的部分。这次结合refman的阅读… 在最新版的2.4.2中文档的更新也是一大亮点refrence manual扩充了200多页的内容添加了contrib部分的文档。contrib就是指OpenCV中新添加的模块但又不是很稳定可以认为是一个雏形的部分。这次结合refman的阅读介绍一下FaceRecognizer这个人脸识别类这个类也是2.4.2更新日志里着重强调过的更新配套的文档也是相当充实。这个类的基类也是Algorithm类对于Algorithm类的简单介绍请参看我之前的blogOpenCV学习笔记五十——Algorithm类介绍core这个类内的接口函数也是异常简单人脸识别的任务也就是两大部分训练和预测分别对应着train函数和predict函数还有对应的数据加载保存函数save和load。不过它当然还可以调用其基类Algorithm的函数。特别说明的是人脸识别中预测的参数也是可以调节的但这里只给出了train和predict函数为啥没有setparameter的函数呢那是因为各中人脸识别方法的参数并不相同要通过Algorithm的get和set函数实时的调整~~v5啊 先来说说训练的过程train函数的两个参数也很简单训练的图像组vectorMat和对应的标签组vectorint这个label标签只需保证同一个人的标签相同即可不需要保证图像的按标签顺序输入方便极了。对于预测有两种调用其中的参数有测试图像、返回的标签值和测试样本和标签样本的相似性。返回的标签值为-1说明测试样本在训练集中无对应或距离较远。这里用个FisherFace作为示例说明一下如何训练和预测 [cpp] view plaincopy vectorMat images; vectorint labels; // images for first person images.push_back(imread(person0/0.jpg, CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0); images.push_back(imread(person0/1.jpg, CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0); // images for second person images.push_back(imread(person1/0.jpg, CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(1); images.push_back(imread(person1/1.jpg, CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(1); PtrFaceRecognizer model createFisherFaceRecognizer(); model-train(images, labels); Mat img imread(person1/2.jpg, CV_LOAD_IMAGE_GRAYSCALE); int predicted model-predict(img); 当然我们也不需要每次使用都进行一次训练可以把训练好的模型通过save函数保存成一个文件下次使用的时候只需load即可。 目前支持的3种人脸识别的方案特征脸EigenFace、Fisher脸FisherFace、LBP直方图LBPHFace。分别调用函数createEigenFaceRecognizer、createFisherFaceRecognizer、createLBPHFaceRecognizer建立模型。 对于EigenFace两个输入参数分别为PCA主成分的维数num_components和预测时的阈值threshold主成分这里没有一个选取的准则要根据输入数据的大小而决定通常认为80维主成分是足够的。除了这两个输入参数外还有eigenvalues和eigenvectors分别代表特征值和特征向量mean参数为训练样本的平均值projections为训练数据的预测值labels为预测时的阈值。 对于FisherFace和EigenFace非常相似也有num_components和threshold两个参数和其他5个参数FisherFace的降维是LDA得到的。默认值为c-1如果设置的初始值不在0c-1]的范围内会自动设定为c-1。 特别需要强调的是EigenFace和FisherFace的训练图像和测试图像都必须是灰度图而且是经过归一化裁剪过的。 对于LBPHFace我想不用过多介绍LBP简单和效果是大家都很喜欢的参数包括半径radius邻域大小即采样点个数neighborsx和y方向的单元格数目grid_x,grid_y还有两个参数histograms为训练数据得到的直方图labels为直方图对应的标签。这个方法也要求训练和测试的图像是灰度图 接下来应该结合文档进一步研究一下这个人脸识别类。我之前大量的人脸实验都是在matlab下进行的有了这个利器我感觉会有越来越多的学生做老师和老板布置的project会选择用OpenCV而不是Matlab。希望我们都爱的OpenCV越来越好越来越强大。欢迎交流