《利用OpenCV实现基于PCA算法的人脸识别.ppt》由会员分享,可在线阅读,更多相关《利用OpenCV实现基于PCA算法的人脸识别.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、利用OpenCV实现基于PCA算法的人脸识别1.OpenCV基本介绍2.人脸识别概要3.PCA原理介绍4.用PCA算法人脸识别的优缺点OpenCV(Open Source Computer Vision Library)是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效由一系列 C 函数和少量 C+类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 对非商业应用和商业应用都是免费的,源代码公开,具备强大的图像和矩阵运算能力,具有丰富的函数处理函数,
2、减少开发者的工作量,有效提高开发效率和程序运行的可靠性。应用:人机互动、物体识别、图象分割、人脸识别、动作识别、运动跟踪、机器人OpenCV基本介绍人脸识别人脸识别人脸识别人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。人脸识别基本介绍PCA方法由于其在降维和特征提取方面的有效性,在人脸识别领域得到了广泛的应用。PCA方法的基本原理是:利用K-L变换抽取人脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,
3、通过与各个人脸图像比较进行识别。主要包括两个阶段:训练阶段+识别阶段PCA算法基本介绍训练阶段第一步:假设训练集有10个样本,由灰度图组成,每个样本大小为M*N(ORL人脸库:分辨率92*112=10304)写出训练样本矩阵:其中向量xi为由第i个图像的每一列向量堆叠成一列的MN维列向量,即把矩阵向量化,如下图所示:如:第i个图像矩阵为 则xi为训练阶段 第二步:计算平均脸 计算训练图片的平均脸:训练阶段 第三步:计算差值脸 计算每一张人脸与平均脸的差值训练阶段第四步:构建协方差矩阵训练阶段第五步:求协方差矩阵的特征值和特征向量,构造特征脸空间 若协方差矩阵的维数为MN*MN,当其维数较大,计
4、算量比较大,所以采用奇异值分解(SingularValue Decomposition,SVD)定理,通过求解 的特征值和特征向量来获得 的特征值和特征向量。训练阶段求出C的特征值 及其正交归一化特征向量根据特征值的贡献率选取前p个最大特征向量及其对应的特征向量贡献率是指选取的特征值的和与占所有特征值的和比,即:训练阶段一般取 即使训练样本在前p个特征向量集上的投影有99%的能量求出原协方差矩阵的特征向量则“特征脸”空间为:训练阶段第六步 将每一幅人脸与平均脸的差值脸矢量投影到“特征脸”空间,即训练阶段第一步:将待识别的人脸图像 与平均脸的差值脸投影到特征空间,得到其特征向量表示:识别阶段第二步:定义阈值第三步:采用欧式距离来计算 与每个人脸的距离系系统优缺点分析缺点分析系统存在的问题:1.抗干扰能力较差。环境光照,遮挡物,人的表情和位置都对识别结果造成较强的干扰。2.训练的时间较长,执行效率不够高。只能对小样本的图像进行识别,如果图像库太大,则运行效率会比较低。系统的优点:1.不需要对图像进行过多的预处理,PCA本身就能实现降噪的功能;2.能有效地识别人脸,且过程相对简单,主要是图像数据的处理和 矩阵的运算;3.由于是通过低维子空间表示的,可以对图像的数据进行一定地压 缩,从而减少了计算量,提高运行速度;Thank you!