ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:1.21MB ,
资源ID:23006012      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23006012.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(人脸识别.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

人脸识别.docx

1、人脸识别课程实验报告2017 - 2018学年第一学期课程名称: 计算机视觉及应用 实验名称: 班 级: 学生姓名: 学号: 实验日期: 地点: 指导教师: 成绩评定: 批改日期: 实验目的及要求人脸识别是检测解决的问题是图片中有没有人脸。我们通过使用opencv自带的分类器,通过摄像头读取自己图片,并识别相关的人脸特征。此外,在保存自己的样本图片中,选择一张自己的图片,在样本图片中识别出来。实验仪器设备实验设备为一台装有win10系统的PC,qt+opencv软件,matlab。实验原理 目前的人脸检测方法主要有两大类:基于知识和基于统计。基于知识的方法主要利用先验知识将人脸看作器官特征的组

2、合,根据眼睛、眉毛、嘴巴、鼻子等器官的特征以及相互之间的几何位置关系来检测人脸。基于统计的方法则将人脸看作一个整体的模式二维像素矩阵,从统计的观点通过大量人脸图像样本构造人脸模式空间,根据相似度量来判断人脸是否存在。在这两种框架之下,发展了许多方法。1)Haar分类器算法 使用Haar-like特征做检测。 使用积分图( IntegralImage )对Haar-like特征求值进行加速。 使用AdaBoost算法训练区分人脸和非人脸的强分类器。 使用筛选式级联把强分类器级联到一起,提高准确率。 将上面的任意一个矩形放到人脸区域上,然后,将白色区域的像素和减去黑色区域的像素和,得到的值我们暂且

3、称之为人脸特征值,如果你把这个矩形放到一个非人脸区域,那么计算出的特征值应该和人脸特征值是不一样的,而且越不一样越好,所以这些方块的目的就是把人脸特征量化,以区分人脸和非人脸。为了增加区分度,可以对多个矩形特征计算得到一个区分度更大的特征值,那么什么样的矩形特征怎么样的组合到一块可以更好的区分出人脸和非人脸呢,这就是AdaBoost算法要做的事了。同时,利用AdaBoost算法可以帮助我们选择更好的矩阵特征组合,其实这里提到的矩阵特征组合就是我们之前提到的分类器,分类器将矩阵组合用二叉决策树的形式存储起来。 2) 弱分类器最初的弱分类器可能只是一个最基本的Haar-like特征,计算输入图像的

4、Haar-like特征值,和最初的弱分类器的特征值比较,以此来判断输入图像是不是人脸,然而这个弱分类器太简陋了,可能并不比随机判断的效果好,对弱分类器的孵化就是训练弱分类器成为最优弱分类器,注意这里的最优不是指强分类器,只是一个误差相对稍低的弱分类器,训练弱分类器实际上是为分类器进行设置的过程。机器学习 中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。从数据产生决策树的

5、机器学习技术叫做决策树学习,通俗说就是决策树。在分类的应用中,每个非叶子节点都表示一种判断,每个路径代表一种判断的输出,每个叶子节点代表一种类别,并作为最终判断的结果。具体操作过程如下:(1)对于每个特征f,计算所有训练样本的特征值,并将其排序 扫描一遍排好序的特征值,对排好序的表中的每个元素,计算下面四个值; 全部人脸样本的权重的和t1; 全部非人脸样本的权重的和t0; 在此元素之前的人脸样本的权重的和s1; 在此元素之前的非人脸样本的权重的和s0;(2)最终求得每个元素的分类误差 在表中寻找r值最小的元素,则该元素作为最优阈值有了该阈值 2)强分类器1.给定训练样本集S,共 N个样本 ,其

6、中X和Y分别对应 于正 样本和负样本,T为训练的最大循环次数; 2.初始化样本权重为1/ N,即为训练样本的初始概率分布; 3.第一次迭代 训练 N个样本,得到第一个最优弱分类器;4.提高上一轮中被误判的样本的权;5.将新的样本和上次本分错的样本放在一起进行新一轮的训练; 6循环执行 4-5步骤,T轮后得到T个最优弱分类器;7.组合T个最优弱分类器得到强分类器,组合方式如下; 实验内容1)通过摄像头识别自己的脸和面部其他的特征。2)在自己的样本图片中,识别自己。 3)在不同的样本图片中,识别自己。实验步骤及方法1.人脸识别 1.1打开摄像头。1.2.加载人脸检测器,加载人脸模型。1.3.人脸检

7、测1.4.把检测到的人脸与人脸模型里面的对比,找出这是谁的脸。1.5.如果人脸是自己的。实验数据1.人脸检测的程序#include #include#include#include#include#includeusing namespace cv;using namespace std;int main() Mat img; Mat img_show; Mat grayscaleFrame; CascadeClassifier face_cascade; face_cascade.load(G:/opencv/source/data/haarcascades/haarcascade_eye.

8、xml);/相对路径,将xml文件放在相应文件里 VideoCapture cam(0); if (!cam.isOpened() exit(0); while (true) cam img; cvtColor(img, grayscaleFrame, CV_BGR2GRAY); equalizeHist(grayscaleFrame, grayscaleFrame); std:vector faces; face_cascade.detectMultiScale(grayscaleFrame, faces, 1.1, 3, 0, Size(20, 20); for (int i = 0; i

9、 100) resize(img, myFace, Size(a, b); imwrite(H:pictureyy2.bmp, img); imshow(Camera, img); waitKey(10); 2.人脸匹配的程序gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, faceRe_OpeningFcn, . gui_OutputFcn, faceRe_OutputFcn, . gui_LayoutFcn, , . gui_

10、Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction faceRe_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;global c;glo

11、bal a;global b;c = 0;guidata(hObject, handles);function varargout = faceRe_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function selectImg_Callback(hObject, eventdata, handles)global c;global a;global b;a, b, c = uigetfile(.bmp,载入图片);if c = 1 str = b,a; im = imread(str); axes(h

12、andles.axes1); imshow(im);elseendfunction pushbutton2_Callback(hObject, eventdata, handles)global c;global a;global b;if c = 1 k = 0; for i=1:1:40 for j=1:1:7 filename = sprintf( H:MATLABFace_recognitionPicture_databaseatt_facess%d%d.pgm,i,j); image_data = imread(filename); k = k + 1; x(:,k) = image

13、_data(:); anot_name(k,:) = sprintf(%2d:%2d,i,j); end; end;nImages = k; imsize = size(image_data); nPixels = imsize(1)*imsize(2); x = double(x)/255; avrgx = mean(x); for i=1:1:nImages x(:,i) = x(:,i) - avrgx; end;cov_mat = x*x; V,D = eig(cov_mat); V = x*V*(abs(D)-0.5; add = 0.0; D=diag(D); Dsum = sum

14、(D);for k =nImages:-1:1 add = add + D(k); if add/Dsum 0.95 break; endendKLCoef = x*V;filename = b,a;image_data = imread(filename);y(:,1) = image_data(:); y = double(y)/255for i=1:1:1 y(:,i) = y(:,i) - avrgx; end; dKLCoef = y*V; for i=1:1:nImages dist_comp(i) = sqrt(dot(dKLCoef(1,:)-KLCoef(i,:), dKLC

15、oef(1,:)-KLCoef(i,:); end min_index = find(dist_comp = min(dist_comp); str1 = anot_name(min_index,:); if str1(1) = & str1(4) = result = H:MATLABFace_recognitionPicture_databaseatt_facess str1(2) str1(5) .pgm; elseif str1(1)= & str1(4)= result = H:MATLABFace_recognitionPicture_databaseatt_facess str1

16、(2) str1(4) str1(5) .pgm; elseif str1(1)= & str1(4) = result = H:MATLABFace_recognitionPicture_databaseatt_facess str1(1) str1(2) str1(4) str1(5) .pgm; elseif str1(1)= & str1(4) = result = H:MATLABFace_recognitionPicture_databaseatt_facess str1(1) str1(2) str1(5) .pgm; end imr = imread(result); axes

17、(handles.axes2); imshow(imr);else msgbox(没有模型,warn,modal);endfunction clear_Callback(hObject, eventdata, handles)global c;try delete(allchild(handles.axes1); delete(allchild(handles.axes2); c=0;end实验数据分析及处理 图一 识别人脸 图二 识别人的眼睛 图三 自己的样本图片图四 在自己的样本中匹配自己图五 不同人的样本图片图六 在不同的样本中匹配自己实验结果分析1)通过这次实验,能够通过摄像头正确的识别人脸和人的眼睛。2)在自己的样本和不同的样本中,能够准确的识别自己。同时,光照对人脸的识别中有较大的影响,在用摄像头识别人脸过程中存在一定的延时,可能是电脑的性能的影响和程序优化还的进一步完善。 实验总结通过这次实验我熟悉了opencv的使用和matlab的使用,也使得我对QT+OPENCV的运用更加熟练。明白了人脸检测的意义和实际用途。批改意见签名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1