- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用OpenCV实现基于PCA算法的人脸识别 OpenCV基本介绍 人脸识别概要 PCA原理介绍 用PCA算法人脸识别的优缺点 OpenCV(Open Source Computer Vision Library)是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV 对非商业应用和商业应用都是免费的,源代码公开,具备强大的图像和矩阵运算能力,具有丰富的函数处理函数,减少开发者的工作量,有效提高开发效率和程序运行的可靠性。 应用:人机互动?、物体识别 、图象分割 、人脸识别 、 动作识别、运动跟踪 、机器人 OpenCV基本介绍 人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。 人脸识别基本介绍 PCA方法由于其在降维和特征提取方面的有效性,在人脸识别领域得到了广泛的应用。 PCA方法的基本原理是:利用K-L变换抽取人脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与各个人脸图像比较进行识别。 主要包括两个阶段:训练阶段+识别阶段 PCA算法基本介绍 训练阶段 第一步:假设训练集有10个样本,由灰度图组成,每个样本大小为M*N(ORL人脸库:分辨率92*112=10304) 写出训练样本矩阵: 其中向量xi为由第i个图像的每一列向量堆叠成一列的MN维列向量,即把矩阵向量化,如下图所示: 如:第i个图像矩阵为 则xi为 训练阶段 第二步:计算平均脸 计算训练图片的平均脸: 训练阶段 第三步:计算差值脸 计算每一张人脸与平均脸的差值 训练阶段 第四步:构建协方差矩阵 训练阶段 第五步:求协方差矩阵的特征值和特征向量,构造特征脸空间 若协方差矩阵的维数为MN*MN,当其维数较大,计算量比较大,所以采用奇异值分解(SingularValue Decomposition ,SVD)定理,通过求解 的特征值和特征向量来获得 的特征值和特征向量。 训练阶段 求出C的特征值 及其正交归一化特征向量 根据特征值的贡献率选取前p个最大特征向量及其对应的特征向量 贡献率是指选取的特征值的和与占所有特征值的和比,即: 训练阶段 一般取 即使训练样本在前p个特征向量集上的投影有99%的能量 求出原协方差矩阵的特征向量 则“特征脸”空间为: 训练阶段 第六步 将每一幅人脸与平均脸的差值脸矢量投影到“特征脸”空间,即 训练阶段 第一步:将待识别的人脸图像 与平均脸的差值脸投影到特征空间,得到其特征向量表示: 识别阶段 第二步:定义阈值 第三步:采用欧式距离来计算 与每个人脸的距离 系统优缺点分析 系统存在的问题: 1. 抗干扰能力较差。环境光照,遮挡物,人的表情和位置都对识别结果造成较强的干扰。 2. 训练的时间较长,执行效率不够高。只能对小样本的图像进行识别,如果图像库太大,则运行效率会比较低。 系统的优点: 1. 不需要对图像进行过多的预处理,PCA本身就能实现降噪的功能; 2. 能有效地识别人脸,且过程相对简单,主要是图像数据的处理和 矩阵的运算; 3. 由于是通过低维子空间表示的,可以对图像的数据进行一定地压 缩,从而减少了计算量,提高运行速度; 开发者可以对源代码进行修改,将自己设计的新类添加到库中,只要设计符合规范,自己的代码也可以被别人广泛使用。 * * 开发者可以对源代码进行修改,将自己设计的新类添加到库中,只要设计符合规范,自己的代码也可以被别人广泛使用。 * *
文档评论(0)