利用OpenCV实现基于PCA算法的人脸识别

合集下载

关于Opencv实现人脸检测的阐述

关于Opencv实现人脸检测的阐述

关于Opencv实现人脸检测的阐述最近用Opencv开发一个人脸检测的小程序,结构并不复杂,但对于Opencv初学者来说还是具有一定的引导意义。

接下来对于程序开发中出现的一些问题进行简单讨论。

一、图像采集。

图像既可以从摄像头设备中读取,也可以从磁盘中加载,两者方法大同小异。

以摄像头为例,Opencv对于摄像头的操作同matlab中一样,是通过一个简单的API 函数实现的,具体如下:CvCapture* m_pCapture;m_pCapture = cvCreateCameraCapture(0);IplImage* m_pFrameImage;m_pFrameImage = cvQueryFrame(m_pCapture);首先是创建一个视频流结构体指针m_pCapture,之后调用cvCreateCameraCapture(0)函数将结构体与相应视频输入设备关联,若只有一个视频输入设备(如笔记本摄像头),建议参数给0,若有多个视频设备则应给对应的ID号。

关联完成后,调用cvQueryFrame(m_pCapture);得到m_pCapture结构体中视频流的下一帧图像,存储在图像指针对应的区域,至此,完成摄像头图像采集。

从磁盘中读取图像过程相对复杂一点,需要用到MFC中关于文件及文件夹读取的知识。

具体讲用两条途径,一是定位指定文件夹,继而读取文件夹下的所有图像文件;二是直接定位文件,继而读取相应文件。

读取文件夹的具体代码如下:BROWSEINFO bi;//用来存储用户选中的目录信息TCHAR name[MAX_PATH];//存储路径name[0]='d';ZeroMemory(&bi,sizeof(BROWSEINFO));//清空目录对应的内存bi.hwndOwner=GetSafeHwnd();//得到窗口句柄bi.pszDisplayName=name;BIF_BROWSEINCLUDEFILES;//这句话是什么意思bi.lpszTitle=_T("Select folder");//对话框标题bi.ulFlags=0x80;//设置对话框形式LPITEMIDLIST idl=SHBrowseForFolder(&bi);//返回所选中文件夹的IDif(idl==NULL)return;SHGetPathFromIDList(idl,str.GetBuffer(MAX_PATH));//将文件信息格式化存储到对应缓冲区中str.ReleaseBuffer();//与GerBuffer配合使用,清空内存m_Path=str;//将路径存储在m_path中if(str.GetAt(str.GetLength()-1)!='\\')m_Path+="\\";UpdateData(FALSE);文件夹读取过程中关键函数为SHBrowseForFolder,这个函数有什么样作用以及具体用法网上都有具体的帖子和博客进行说明,这里不做赘述,最终文件夹路径存储在变量m_Path中。

利用OpenCV实现基于PCA算法的人脸识别

利用OpenCV实现基于PCA算法的人脸识别
• 写出训练样本矩阵:
A x1,x2,...,x10 T
• 其中向量xi为由第i个图像的每一列向量堆叠成一列的MN 维列向量,即把矩阵向量化,如下图所示:
训练阶段

如:第i个图像矩阵为
1 2 3 4 5 6 7 8 9
1

则xi为
4 7
2
5
系统优缺点分析
系统存在的问题: 1. 抗干扰能力较差。环境光照,遮挡物,人的表情和位置都对识别 结果造成较强的干扰。 2. 训练的时间较长,执行效率不够高。只能对小样本的图像进行识 别,如果图像库太大,则运行效率会比较低。
系统的优点: 1. 不需要对图像进行过多的预处理,PCA本身就能实现降噪的功能; 2. 能有效地识别人脸,且过程相对简单,主要是图像数据的处理和
OpenCV 对非商业应用和商业应用都是免费的,源代码公开, 具备强大的图像和矩阵运算能力,具有丰富的函数处理函数, 减少开发者的工作量,有效提高开发效率和程序运行的可靠 性。
应用:人机互动 、物体识别 、图象分割 、人脸识别 、 动作识别、运动跟踪 、机器人
人脸识别基本介绍
人脸识别,是基于人的脸部特征信
8
369Fra bibliotek 训练阶段

第二步:计算平均脸
计算训练图片的平均脸:


1 10
i 10 i 1
xi
训练阶段

第三步:计算差值脸
计算每一张人脸与平均脸的差值
di xi i 1
训练阶段
第四步:构建协方差矩阵
C

1 10
10
d
id
求出原协方差矩阵的特征向量
ui
1

基于OpenCv的图像识别

基于OpenCv的图像识别

基于2DPCA的人脸识别算法研究摘要人脸识别技术是对图像和视频中的人脸进行检测和定位的一门模式识别技术,包含位置、大小、个数和形态等人脸图像的所有信息。

由于近年来计算机技术的飞速发展,为人脸识别技术的广泛应用提供了可能,所以图像处理技术被广泛应用了各种领域。

该技术具有广阔的前景,如今已有大量的研究人员专注于人脸识别技术的开发。

本文的主要工作内容如下:1)介绍了人脸识别技术的基础知识,包括该技术的应用、背景、研究方向以及目前研究该技术的困难,并对人脸识别系统的运行过程以及运行平台作了简单的介绍。

2)预处理工作是在原始0RL人脸库上进行的。

在图像的预处理阶段,经过了图象的颜色处理,图像的几何归一化,图像的均衡化和图象的灰度归一化四个过程。

所有人脸图像通过上述处理后,就可以在一定程度上减小光照、背景等一些外在因素的不利影响。

3)介绍了目前主流的一些人脸检测算法,本文采用并详细叙述了Adaboost人脸检测算法。

Adaboost算法首先需要创建人脸图像的训练样本,再通过对样本的训练,得到的级联分类器就可以对人脸进行检测。

4)本文介绍了基于PCA算法的人脸特征点提取,并在PCA算法的基础上应用了改进型的2DPCA算法,对两者的性能进行了对比,得出后者的准确度和实时性均大于前者,最后将Adaboost人脸检测算法和2DPCA算法结合,不仅能大幅度降低识别时间,而且还相互补充,有效的提高了识别率。

关键词:人脸识别 2DPCA 特征提取人脸检测2DPCA Face Recognition Algorithm Basedon The ResearchAbstract:Face recognition is a technology to detect and locate human face in an image or video streams,Including location, size, shape, number and other information of human face in an image or video streams.Due to the rapid development of computer operation speed makes the image processing technology has been widely applied in many fields in recent years. This paper's work has the following several aspects:1)Explained the background, research scope and method of face recognition,and introduced the theoretical method of face recognition field in general.2)The pretreatments work is based on the original ORL face database. In the image preprocessing stage, there are the color of the image processing, image geometric normalization, image equalization and image gray scale normalization four parts. After united processing, the face image is standard, which can eliminate the adverse effects of some external factors.3)All kinds of face detection algorithm is introduced, and detailed describing the Adaboost algorithm for face detection. Through the Adaboost algorithm to create a training sample,then Training the samples of face image,and obtaining the cascade classifier to detect human face.4)This paper introduces the facial feature points extraction based on PCA ,and 2DPCA is used on the basis of the PCA as a improved algorithm.Performance is compared between the two, it is concluds that the real time and accuracy of the latter is greater than the former.Finally the Adaboost face detection algorithm and 2DPCA are combined, which not only can greatly reduce the recognition time, but also complement each other, effectively improve the recognition rate.Key words:Face recognition 2DPCA Feature extraction Face detection目录第1章前言 (1)1.1 人脸识别的应用和研究背景 (1)1.2 人脸识别技术的研究方向 (2)1.3 研究的现状与存在的困难 (3)1.4 本文大概安排 (4)第2章人脸识别系统及软件平台的配置 (4)2.1 人脸识别系统概况 (4)2.1.1 获取人脸图像信息 (5)2.1.2 检测定位 (5)2.1.3 图像的预处理 (5)2.1.4 特征提取 (6)2.1.5 图像的匹配与识别 (6)2.2 OpenCV (6)2.2.1 OpenCV简介 (6)2.2.2 OpenCV的系统配置 (7)2.3 Matlab与图像处理 (8)第3章图像的检测定位 (8)3.1 引言 (8)3.2 人脸检测的方法 (8)3.3 Adaboost算法 (9)3.3.1 Haar特征 (10)3.3.2 积分图 (10)3.3.4 级联分类器 (11)第4章图像的预处理 (13)4.1 引言 (13)4.2 人脸图像库 (13)4.3 人脸预处理算法 (14)4.3.1 颜色处理 (14)4.3.2几何归一化 (15)4.3.3直方图均衡化 (16)4.3.4灰度归一化 (18)4.4 本章小结 (19)第5章图像的特征提取与识别 (19)5.1 引言 (19)5.2 图像特征提取方法 (20)5.2.1基于几何特征的方法 (20)5.2.2基于统计的方法 (20)5.2.3弹性图匹配(elastic graph matching) (21)5.2.4神经网络方法 (21)5.2.5支持向量机(SVM)方法 (22)5.3 距离分类器的选择 (22)5.4 PCA算法的人脸识别 (24)5.5 二维主成分分析(2DPCA) (25)5.5.1 2DPCA人脸识别算法 (25)5.5.2 特征提取 (27)5.5.3 分类方法 (27)5.5.4 基于2DPCA的图像重构 (28)5.6 实验分析 (28)第6章总结与展望 (33)6.1 本文总结 (33)6.2 未来工作展望 (33)致谢 (34)参考文献: (35)第1章前言1.1 人脸识别的应用和研究背景随着社会科学技术的发展进步,特别是最近几年计算机的软硬件技术高速发展,以及人们越来越将视野集中到快速高效的智能身份识别,使生物识别技术在科学研究中取得了重大的进步和发展。

基于PCA算法的人脸识别登录系统设计

基于PCA算法的人脸识别登录系统设计

基于PCA算法的人脸识别登录系统设计张 诚 杨 阳(四川建筑职业技术学院,四川 德阳 618000)摘 要:人脸识别是生物识别方法中应用最广泛的技术之一,主要应用于军警公安、金融、网络安全、物业管理以及国家重要部门。

笔者设计的基于PCA算法的人脸识别登录系统,功能模块包括读入人脸图像建立人脸图像库、人脸图像预处理、人脸图像识别和输出结果。

本设计采用MATLAB进行基于人脸识别的登录系统程序设计与仿真,实验结果表明笔者设计的人脸识别登录系统的识别正确率可达到90%。

关键词:人脸识别;PCA算法;图像预处理;MATLAB;登录系统中图分类号:TP391.41 文献标识码:A 文章编号:1003-9767(2017)11-125-04Design of Face Recognition Login System based on PCA AlgorithmZhang Cheng, Yang Yang(Sichuan College of Architectural Technology, Deyang Sichuan 618000, China) Abstract: Face recognition is one of the most widely used biological identification technology. It is mainly applied in the military police, financial, network security, property management and important state department. This face recognition login system based on PCA algorithm has four function modules, which are reading facial image to establish facial image library, facial image preprocessing, facial image recognition and outputting result. This design uses MATLAB to program and simulate. The results show that this face identification login system can reach 90% correct recognition rate.Key words: face recognition; PCA algorithm; image preprocessing; MATLAB; login system1 前言传统的登录系统是通过“ID+密码”的方式来进行身份认证,将非法用户拒之门外,从而保障计算机信息的安全性。

数字图像报告_基于PCA算法的人脸识别

数字图像报告_基于PCA算法的人脸识别

数字图像处理作业姓名:XXXXXXX专业:信息与通信工程学号:201XXXXXXXXXX∑===ψ20012001i i i x 作业1:基于PCA 算法的人脸识别1. PCA 算法原理主成分分析(Principal Component Analysis, 简称PCA)是一种常用的基于变量协方差矩阵对信息进行处理、压缩和抽提的有效方法。

PCA 方法由于其在降维和特征提取方面的有效性,在人脸识别领域得到了广泛的应用。

利用K-L 变换抽取人脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与各个人脸图像比较进行识别。

利用特征脸法进行人脸识别的过程由训练阶段和识别阶段两个阶段组成 其具体步骤如下:第一步:训练集有400个样本,由灰度图组成,每个样本大小为M*N 写出训练样本矩阵:(1) 其中向量xi 为由第i 个图像的每一列向量堆叠成一列的MN 维列向量,即把矩阵向量化, 如:第i 个图像矩阵为则xi 为第二步:计算平均脸计算训练图片的平均脸()Tx x x x 20021,...,,=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987654321⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡963852741(2)第三步:计算差值脸计算每一张人脸与平均脸的差值(3)第四步:构建协方差矩阵(4)(5)第五步:求协方差矩阵的特征值和特征向量,构造特征脸空间协方差矩阵的维数为MN*MN ,考虑其维数较大,计算量比较大,所以采用奇异值分解(SingularValue Decomposition ,SVD)定理,通过求解 的特征值和特征向量来获得 的特征值和特征向量。

求出 的特征值 及其正交归一化特征向量 根据特征值的贡献率选取前p 个最大特征向量及其对应的特征向量贡献率是指选取的特征值的和与占所有特征值的和比,即:一般取 即使训练样本在前p 个特征向量集上的投影有99%的能量求出原协方差矩阵的特征向量则“特征脸”空间为:第六步 将每一幅人脸与平均脸的差值脸矢量投影到“特征脸”空间,即2001,2,...,=,ψ-=i x d i i T i T i i AA d d C 200120012001==∑=()20021,...,d d d A ,=A A T T AA A A T iλi νa i i i p i i i ≥=∑∑====20011λλϕ%99=a ),...,2,1(1p i Av u i i i ==λ()p u u u w ,,...,21=(6) (7)(8)识别阶段则包括以下几个步骤: 第一步:将待识别的人脸图像 与平均脸的差值脸投影到特征空间,得到其特征向量表示:(10)第二步:定义阈值(11)第三步:采用欧式距离来计算 与每个人脸的距离(12)为了区分人脸和非人脸,还需要计算原始图像 与由特征脸空间重建的图像 之间的距离 (13)其中:(14)根据以下规则对人脸进行分类:1)若,则输入图像不是人脸图像; 2)若,且 , 则输入图像包含未知人脸; 3)若 ,且 , 则输入图像为库中第k 个人的人脸。

python使用opencv进行人脸识别

python使用opencv进行人脸识别

python使用opencv进行人脸识别欢迎来到小码哥的博客博客搬家啦/RvFZs2cpython使用opencv进行人脸识别环境ubuntu 12.04 LTSpython 2.7.3opencv 2.3.1-7安装依赖sudo apt-get install libopencv-*sudo apt-get install python-opencvsudo apt-get install python-numpy示例代码#!/usr/bin/env python#coding=utf-8import osfrom PIL import Image, ImageDrawimport cvdef detect_object(image):'''检测图片,获取人脸在图片中的坐标'''grayscale = cv.CreateImage((image.width, image.height), 8, 1)cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)cascade =cv.Load("/usr/share/opencv/haarcascades/haarcascade_frontalfa ce_alt_tree.xml")rect = cv.HaarDetectObjects(grayscale, cascade,cv.CreateMemStorage(), 1.1, 2,cv.CV_HAAR_DO_CANNY_PRUNING, (20,20))result = []for r in rect:result.append((r[0][0], r[0][1], r[0][0]+r[0][2],r[0][1]+r[0][3]))return resultdef process(infile):'''在原图上框出头像并且截取每个头像到单独文件夹''' image = cv.LoadImage(infile);if image:faces = detect_object(image)im = Image.open(infile)path = os.path.abspath(infile)save_path = os.path.splitext(path)[0]+"_face"try:os.mkdir(save_path)except:passif faces:draw = ImageDraw.Draw(im)count = 0for f in faces:count += 1draw.rectangle(f, outline=(255, 0, 0))a = im.crop(f)file_name =os.path.join(save_path,str(count)+".jpg")# print file_namea.save(file_name)drow_save_path = os.path.join(save_path,"out.jpg")im.save(drow_save_path, "JPEG", quality=80) else:print "Error: cannot detect faces on %s" % infileif __name__ == "__main__":process("./opencv_in.jpg")转换效果原图:转换后使用感受对于大部分图像来说,只要是头像是正面的,没有被阻挡,识别基本没问题,准确性还是很高的。

基于主成分分析(PCA)的人脸识别技术

基于主成分分析(PCA)的人脸识别技术

基于主成分分析(PCA)的⼈脸识别技术本科期间做的⼀个课程设计,觉得⽐较好玩,现将之记录下来,实验所⽤。

1、实验⽬的(1)学习主成分分析(PCA)的基础知识;(2)了解PCA在⼈脸识别与重建⽅⾯的应⽤;(3)认识数据降维操作在数据处理中的重要作⽤;(4)学习使⽤MATLAB软件实现PCA算法,进⾏⼈脸识别,加深其在数字图像处理中解决该类问题的应⽤流程。

2、实验简介(背景及理论分析)近年来,由于恐怖分⼦的破坏活动发⽣越发频繁,包括⼈脸识别在内的⽣物特征识别再度成为⼈们关注的热点,各国均纷纷增加了对该领域研究的投⼊。

同其他⽣物特征识别技术,如指纹识别、语⾳识别、虹膜识别、DNA识别等相⽐,⼈脸识别具有被动、友好、⽅便的特点。

该技术在公众场合监控、门禁系统、基于⽬击线索的⼈脸重构、嫌疑犯照⽚的识别匹配等领域均有⼴泛应⽤。

⼈脸识别技术是基于⼈的脸部特征,对输⼊的⼈脸图像或者视频流,⾸先判断其是否存在⼈脸。

如果存在⼈脸,则进⼀步的给出每个脸的位置、⼤⼩和各个主要⾯部器官的位置信息。

其次并依据这些信息,进⼀步提取每个⼈脸中所蕴涵的⾝份特征,并将其与已知的⼈脸进⾏对⽐,从⽽识别每个⼈脸的⾝份。

⼴义的⼈脸识别实际包括构建⼈脸识别系统的⼀系列相关技术,包括⼈脸图像采集、⼈脸定位、⼈脸识别预处理、⾝份确认以及⾝份查找等;⽽狭义的⼈脸识别特指通过⼈脸进⾏⾝份确认或者⾝份查找的技术或系统。

我们在处理有关数字图像处理⽅⾯的问题时,⽐如经常⽤到的图像查询问题:在⼀个⼏万或者⼏百万甚⾄更⼤的数据库中查询⼀幅相近的图像。

其中主成分分析(PCA)是⼀种⽤于数据降维的⽅法,其⽬标是将⾼维数据投影到较低维空间。

PCA形成了K-L变换的基础,主要⽤于数据的紧凑表⽰。

在数据挖掘的应⽤中,它主要应⽤于简化⼤维数的数据集合,减少特征空间维数,可以⽤较⼩的存储代价和计算复杂度获得较⾼的准确性。

PCA法降维分类原理如下图所⽰:如上图所⽰,其中五⾓星表⽰⼀类集合,⼩圆圈表⽰另⼀类集合。

基于PCA的人脸识别研究

基于PCA的人脸识别研究

基于PCA的人脸识别研究基于PCA的人脸识别研究摘要:人脸识别是一项非常重要的生物特征识别技术,它在安防领域、信息安全和社交媒体等方面有着广泛的应用。

在人脸识别中,特征提取是一个关键环节,而PCA(主成分分析)是一种常用的特征提取方法。

本文旨在研究和探讨基于PCA的人脸识别方法,并通过实验验证其性能和有效性。

中文关键词:人脸识别、PCA、特征提取、特征脸、嵌入式系统1. 引言近年来,随着计算机科学和图像处理技术的迅猛发展,人脸识别技术受到了广泛的关注。

人脸作为每个个体独特的生物特征,可以通过计算机视觉算法进行提取和识别,从而实现人脸识别的自动化和快速化。

人脸识别技术在安防领域、社交媒体、信息安全等方面都具有重要的应用前景。

2. 相关工作在人脸识别领域,特征提取是一个关键的步骤。

特征提取的目标是将原始图像数据转换为具有辨别性的特征向量。

主成分分析(PCA)是一种经典的特征提取方法,它通过线性变换将高维人脸图像数据转换为低维的特征空间。

其基本思想是找到原始数据中最重要的方向,从而实现维度的降低。

这些重要方向称为主成分,它们是原始数据方差最大的方向。

3. 基于PCA的人脸识别方法3.1 数据预处理在使用PCA进行人脸识别之前,需要对原始图像数据进行预处理。

预处理的目标是将图像数据转换为特征向量,以便进行后续的特征提取和识别。

常见的预处理步骤包括图像归一化、灰度化和人脸对齐。

其中,图像归一化可以将不同大小和角度的人脸图像转换为相同大小和角度,从而提高后续处理的准确性。

3.2 特征提取PCA的核心思想是通过线性变换将高维数据投影到低维空间,从而实现维度的降低。

在人脸识别中,PCA将人脸图像的像素表示转换为特征脸。

特征脸是一组代表人脸独特特征的向量,它们是原始数据中方差最大的方向。

通过计算协方差矩阵和特征向量,可以得到特征脸。

3.3 人脸识别在得到特征脸后,可以通过计算待识别人脸与已存储特征脸之间的相似度进行人脸识别。

本科毕业论文-—基于opencv的图像识别

本科毕业论文-—基于opencv的图像识别

基于2DPCA的人脸识别算法研究摘要人脸识别技术是对图像和视频中的人脸进行检测和定位的一门模式识别技术,包含位置、大小、个数和形态等人脸图像的所有信息。

由于近年来计算机技术的飞速发展,为人脸识别技术的广泛应用提供了可能,所以图像处理技术被广泛应用了各种领域。

该技术具有广阔的前景,如今已有大量的研究人员专注于人脸识别技术的开发。

本文的主要工作内容如下:1)介绍了人脸识别技术的基础知识,包括该技术的应用、背景、研究方向以及目前研究该技术的困难,并对人脸识别系统的运行过程以及运行平台作了简单的介绍。

2)预处理工作是在原始0RL人脸库上进行的。

在图像的预处理阶段,经过了图象的颜色处理,图像的几何归一化,图像的均衡化和图象的灰度归一化四个过程。

所有人脸图像通过上述处理后,就可以在一定程度上减小光照、背景等一些外在因素的不利影响。

3)介绍了目前主流的一些人脸检测算法,本文采用并详细叙述了Adaboost人脸检测算法。

Adaboost算法首先需要创建人脸图像的训练样本,再通过对样本的训练,得到的级联分类器就可以对人脸进行检测。

4)本文介绍了基于PCA算法的人脸特征点提取,并在PCA算法的基础上应用了改进型的2DPCA算法,对两者的性能进行了对比,得出后者的准确度和实时性均大于前者,最后将Adaboost人脸检测算法和2DPCA算法结合,不仅能大幅度降低识别时间,而且还相互补充,有效的提高了识别率。

关键词:人脸识别 2DPCA 特征提取人脸检测2DPCA Face Recognition Algorithm Basedon The ResearchAbstract:Face recognition is a technology to detect and locate human face in an image or video streams,Including location, size, shape, number and other information of human face in an image or video streams.Due to the rapid development of computer operation speed makes the image processing technology has been widely applied in many fields in recent years. This paper's work has the following several aspects:1)Explained the background, research scope and method of face recognition,and introduced the theoretical method of face recognition field in general.2)The pretreatments work is based on the original ORL face database. In the image preprocessing stage, there are the color of the image processing, image geometric normalization, image equalization and image gray scale normalization four parts. After united processing, the face image is standard, which can eliminate the adverse effects of some external factors.3)All kinds of face detection algorithm is introduced, and detailed describing the Adaboost algorithm for face detection. Through the Adaboost algorithm to create a training sample,then Training the samples of face image,and obtaining the cascade classifier to detect human face.4)This paper introduces the facial feature points extraction based on PCA ,and 2DPCA is used on the basis of the PCA as a improved algorithm.Performance is compared between the two, it is concluds that the real time and accuracy of the latter is greater than the former.Finally the Adaboost face detection algorithm and 2DPCA are combined, which not only can greatly reduce the recognition time, but also complement each other, effectively improve the recognition rate.Key words:Face recognition 2DPCA Feature extraction Face detection目录第1章前言 (1)1.1 人脸识别的应用和研究背景 (1)1.2 人脸识别技术的研究方向 (2)1.3 研究的现状与存在的困难 (3)1.4 本文大概安排 (4)第2章人脸识别系统及软件平台的配置 (4)2.1 人脸识别系统概况 (4)2.1.1 获取人脸图像信息 (5)2.1.2 检测定位 (5)2.1.3 图像的预处理 (5)2.1.4 特征提取 (6)2.1.5 图像的匹配与识别 (6)2.2 OpenCV (6)2.2.1 OpenCV简介 (6)2.2.2 OpenCV的系统配置 (7)2.3 Matlab与图像处理 (8)第3章图像的检测定位 (8)3.1 引言 (8)3.2 人脸检测的方法 (8)3.3 Adaboost算法 (9)3.3.1 Haar特征 (10)3.3.2 积分图 (10)3.3.4 级联分类器 (11)第4章图像的预处理 (13)4.1 引言 (13)4.2 人脸图像库 (13)4.3 人脸预处理算法 (14)4.3.1 颜色处理 (14)4.3.2几何归一化 (15)4.3.3直方图均衡化 (16)4.3.4灰度归一化 (18)4.4 本章小结 (19)第5章图像的特征提取与识别 (19)5.1 引言 (19)5.2 图像特征提取方法 (20)5.2.1基于几何特征的方法 (20)5.2.2基于统计的方法 (20)5.2.3弹性图匹配(elastic graph matching) (21)5.2.4神经网络方法 (21)5.2.5支持向量机(SVM)方法 (22)5.3 距离分类器的选择 (22)5.4 PCA算法的人脸识别 (24)5.5 二维主成分分析(2DPCA) (25)5.5.1 2DPCA人脸识别算法 (25)5.5.2 特征提取 (27)5.5.3 分类方法 (27)5.5.4 基于2DPCA的图像重构 (28)5.6 实验分析 (28)第6章总结与展望 (33)6.1 本文总结 (33)6.2 未来工作展望 (33)致谢 (34)参考文献: (35)第1章前言1.1 人脸识别的应用和研究背景随着社会科学技术的发展进步,特别是最近几年计算机的软硬件技术高速发展,以及人们越来越将视野集中到快速高效的智能身份识别,使生物识别技术在科学研究中取得了重大的进步和发展。

基于pca算法的eigenfaces人脸识别算法大学论文

基于pca算法的eigenfaces人脸识别算法大学论文

河北农业大学现代科技学院毕业论文(设计)题目:基于PCA算法的Eigenfaces人脸识别算法摘要人脸识别技术就是利用计算机分析人脸图像,提取有效的识别信息来辨认身份或者判别待定状态的一门技术。

它涉及模式识别、图像处理、计算机视觉等诸多学科的知识,是当前研究的热点之一。

然而影响计算机人脸识别的因素非常之多,主要是人脸表情丰富,人脸随年龄增长而变化,人脸所成图像受光照、成像角度及成像距离等影响,极大地影响了人脸识别走向实用化。

基于PCA算法的人脸识别过程大致分为训练、测试、识别这三个阶段完成,在训练阶段,通过寻找协方差矩阵的特征向量,求出样本在该特征向量上的投影系数;在测试阶段,通过将测试样本投影到特征向量上,得到测试样本在该特征向量上的投影系数。

最后,采用最小欧氏距离,找到了与测试样本最相近的训练样本图像。

关键词Eigenfaces、PCA算法、人脸识别算法、matlab、SVD。

AbstractFace recognition technology is the use of computer analysis of facial images to extract valid identification information to identify or determine the identity of a technology Pending state. It involves knowledge of pattern recognition, image processing, computer vision, and many other disciplines, is one of the hotspots of current research. However, factors affecting the computer face recognition very much, mainly rich facial expression, face changes with age, face a picture of the affected light, imaging and imaging distance, angle, greatly influenced the Face to practical use.PCA algorithm based recognition process is roughly divided into training and testing, the identification of these three stages, in the training phase, to find the eigenvectors of the covariance matrix is obtained on the sample feature vector projection coefficient; in the test phase by the test feature vector is projected onto the sample to obtain a test sample on the projection of the feature vector of coefficients.Finally, the minimum Euclidean distance, the test sample to find the closest sample images.Keywords Eigenfaces PCA Algorithm、Face Recognition Algorithm、matlab、SVD.目录1 绪论---------------------------------------------------------------------- 11.1计算机人脸识别技术及应用--------------------------------------------- 11.2常用的人脸识别方法简介----------------------------------------------- 11.3本论文内容安排------------------------------------------------------- 12 PCA ----------------------------------------------------------------------- 32.1 PCA简介------------------------------------------------------------- 32.2 PCA的实质----------------------------------------------------------- 32.3 PCA理论基础--------------------------------------------------------- 32.3.1投影----------------------------------------------------------- 32.3.2最小平方误差理论----------------------------------------------- 42.3.3 PCA几何解释--------------------------------------------------- 82.4 PCA降维计算--------------------------------------------------------- 83 PCA在人脸识别中的应用--------------------------------------------------- 113.1 人脸识别技术简介--------------------------------------------------- 113.2 图片归一化--------------------------------------------------------- 113.3 基于PCA的人脸识别------------------------------------------------- 113.3.1 人脸数据特征提取---------------------------------------------- 113.3.2计算均值------------------------------------------------------ 123.3.3计算协方差矩阵C ----------------------------------------------- 123.3.4求出协方差C的特征值和特征向量-------------------------------- 123.4奇异值分解定理------------------------------------------------------ 123.5 基于PCA的人脸识别的训练------------------------------------------- 133.5.1 训练集的主成分计算-------------------------------------------- 133.5.2 训练集图片重建------------------------------------------------ 133.6 识别--------------------------------------------------------------- 144 实验--------------------------------------------------------------------- 154.1 实验环境----------------------------------------------------------- 154.2 PCA人脸识别实验过程------------------------------------------------ 154.2.1 训练阶段------------------------------------------------------ 154.2.2 测试阶段------------------------------------------------------ 224.2.3 采用欧氏最小距离识别------------------------------------------ 234.3实验结果------------------------------------------------------------ 245 总结--------------------------------------------------------------------- 265.1.1内容总结:---------------------------------------------------- 265.1.2工作总结:---------------------------------------------------- 26 6致谢--------------------------------------------------------------------- 27 参考文献------------------------------------------------------------------- 281 绪论1.1计算机人脸识别技术及应用计算机人脸识别技术就是利用计算机分析人脸图像,进而从中提取出有效的识别信息,用来“辨认”身份的一门技术,它涉及图像处理、模式识别、计算机视觉、神经网络、生理学、心理学等诸多学科领域的知识。

基于PCA算法的人脸识别系统

基于PCA算法的人脸识别系统

目录摘要 (III)Abstrac t. (II)引言 (1)第一章绪论 (2)1.1人脸识别的背景与发展现状 (2)1.2人脸识别的应用与优势 (2)第二章人脸图像的处理 (4)2.1图象的人脸定位 (4)2.2图象的预处理 (4)2.2人脸样本库图象的训练 (4)第三章基于PCA算法的人脸识别 (5)3.1 PCA的基本思想 (5)3.2 PCA算法基本数学原理 (5)3.3 人脸识别中PCA算法的具体步骤 (6)3.4 PCA算法在人脸识别中的应用 (7)3.4 PCA人脸识别优缺点分析 (8)第四章人脸识别系统的实现及实验结果分析 (8)4.1人脸识别系统的设计 (8)4.2系统功能介绍 (9)4.2.1主菜单界面 (9)4.2.2训练图像 (9)4.2.3载入照片 (10)4.2.4人脸识别的功能与说明 (10)4.3功能实现及主要函数说明 (10)4.3.1保存图像和训练图像 (11)4.3.2人脸识别的过程 (11)4.5实验结果 (12)4.6影响人脸识别的因素 (12)4.6.1光照变化 (13)4.6.2人脸形态变化 (13)结论 (15)致谢 (16)参考文献 (17)附录 (18)基于PCA算法的人脸识别系统设计摘要:近年来,人脸识别在国内有着蓬勃的发展趋势,在很多领域都有应用。

例如:家的防盗门,单位的考勤,公安系统,刑事鉴定,面对面支付,人脸解锁等。

它有一个很大的发展前景,因此成为一个具有人工智能的范畴的研究热点识别方法。

本次毕业论文主要应用了基于PCA算法的人脸识别。

主要包括人脸图片定位的预处理、人脸的输入、PCA算法对特征脸提取、人脸识别等四大模块。

本文通过MATLAB的仿真实现了基于一个PCA算法的人脸识别系统,通过对人脸的降维让一个复杂的图象用几个简单的数字表示出来,然后与人脸数据库里的图象相比较,找出最小的欧氏距离,最终输出识别图象。

首先,本文提出了人脸识别近几年的发展趋势,以及现状与背景,并且分析了人脸识别与其他识别方法的对比,以及人脸识别的优点跟人脸识别中的难点。

基于PCA的人脸识别方法设计与实现

基于PCA的人脸识别方法设计与实现

基于PCA的人脸识别方法设计与实现作者:陈潇来源:《数字技术与应用》2019年第10期摘要:人脸识别技术是快速身份是识别技术中极其重要的一种识别方法,本文研究了结合Fisher准则和主成分分析PCA算法的人脸识别方法,采用基于奇异值分解的特征提取算法,通过计算协方差矩阵的特征值以及特征向量,使用欧式距离判断输入图像与训练图像之间的类似度的方法进行人脸判别分类,识别出匹配图像。

关键词:人脸识别;PCA算法;Fisher准则中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2019)10-0156-020 引言随着科学技术的进步,有效可高的身份识别技术越来越受到人们的重视。

生物特征相对于其他识别技术具有稳定、唯一的特点,因此在身份识别领域受到青睐。

人脸识别技术相对指纹识别等其他识别技术稳定性强,识别速度快,适用场合广泛,在不同场合中实现了各种各样的智能化应用。

结合Fisher准则和主成分分析PCA算法的人脸识别方法,降低了处理图像的维度,能够在保留原始图像大部分信息的前提下提取图像中的主要元素,减少了数据处理难度。

1 理论基础1.1 人脸识别系统常见的人脸识别流程如图1所示,主要分为以下步骤。

1.1.1 获取人脸图像首先通过各种采集设备获得人脸图像信息,转化成计算机可以处理的数据。

1.1.2 预处理由于受各种因素的影响,输入的图像质量不统一,不能够直接将图像用于后续的人脸识别过程,很大程度上影响了识别的性能。

预处理工作能够尽可能消除在尺寸大小、姿态、明暗程度、面部遮挡物等方面对识别性能的影响。

1.1.3 特征提取每副人脸图像中都有区别于其他图像的特征。

人脸的特征主要分为:物理、结构和数学特征三种。

人们常通过物理和结构特征去识别和记忆对象,因为这两种特征易于被察觉和感知。

计算机在对数学特征的处理上具有优势,所以我们利用计算机的特点在人脸识别过程中完成如计算协方差矩阵、统计样本平均值等工作。

基于PCA的人脸识别技术的研究

基于PCA的人脸识别技术的研究

基于PCA的人脸识别技术的研究一、本文概述人脸识别技术,作为生物识别技术的一种,近年来在、计算机视觉等领域中得到了广泛的关注和研究。

随着科技的发展,人脸识别技术在公共安全、身份验证、人机交互等多个领域展现出了巨大的应用潜力。

然而,人脸识别技术在实际应用中仍面临着许多挑战,如光照变化、表情变化、遮挡等问题,这些都可能对识别结果产生不利影响。

为了解决这些问题,研究者们不断探索新的算法和技术。

主成分分析(PCA)作为一种经典的降维算法,能够有效地提取数据中的主要特征,降低数据的维度,提高计算的效率。

因此,将PCA应用于人脸识别技术中,可以有效地提取人脸图像的主要特征,提高识别的准确性和鲁棒性。

本文将对基于PCA的人脸识别技术进行深入的研究和探讨。

本文首先介绍了人脸识别技术的研究背景和意义,阐述了PCA算法的基本原理及其在人脸识别中的应用。

然后,详细描述了基于PCA的人脸识别系统的构建过程,包括人脸图像的预处理、特征提取、特征匹配等关键步骤。

接着,通过对比实验和结果分析,验证了基于PCA的人脸识别技术的有效性和优越性。

本文还讨论了当前研究中存在的问题和未来的研究方向,为相关领域的研究者提供参考和借鉴。

通过本文的研究,我们期望能够为基于PCA的人脸识别技术的发展和应用提供有益的参考和指导,推动人脸识别技术在各个领域的广泛应用和发展。

二、主成分分析(PCA)理论概述主成分分析(Principal Component Analysis,PCA)是一种在多个变量中找出主要影响因素的统计方法,广泛应用于数据降维、特征提取和模式识别等领域。

PCA通过正交变换将原始数据转换为新的坐标系,使得数据的第一大方差对应新坐标系的第一坐标轴(即主成分),第二大方差对应第二坐标轴,以此类推。

通过这种方式,PCA能够在保留数据主要特征的降低数据的维度,提高计算效率。

PCA的基本步骤如下:对原始数据进行标准化处理,以消除量纲和数量级对数据的影响;然后,计算标准化后数据的协方差矩阵;接着,求解协方差矩阵的特征值和特征向量,将特征值按从大到小的顺序排列,并选择前k个较大的特征值对应的特征向量作为新的坐标系;将原始数据投影到新的坐标系上,得到降维后的数据。

毕业设计(论文)-基于PCA的人脸识别的研究与实现

毕业设计(论文)-基于PCA的人脸识别的研究与实现

毕业设计(论文)-基于PCA的人脸识别的研究与实现提要人脸识别技术是基于生物特征的识别方式~与指纹识别等传统的识别方式相比~具有实时、准确和非侵扰等特性。

因此人脸识别技术在诸多领域都有广泛的应用。

人脸识别技术中的人脸特征提取及模式识别是近年来基于生物特征研究的热点之一。

本文以人脸识别的关键步骤为主要内容~系统地研究了人脸识别技术~对各环节所需的算法作了介绍和研究。

在预处理环节中~对图像进行大小归一化及灰度归一化等处理。

在特征提取环节~介绍几种特征提取的方法并对其进行对比~深入研究基于主成分分析,PCA,的特征子空间方法提取本征脸,Eigenface,。

在分类器识别环节~对非线性Parzen分类器中核函数的参数估计算法和欧氏距离分类器法进行比较~重点讨论采用欧氏距离分类器的识别法。

关键字预处理,PCA,欧氏距离分类器,人脸识别IFace Recognition Based on PCAResearch and Implementation060608117 Lin Xiaoming Tutor:Chen Yu LecturerAbstractFace recognition technology is based on biometric identification methods such as fingerprint recognition and identification of the traditional methods, with real-time, accurate and non-intrusive. Face Recognition Technology Face feature extraction and pattern recognitionin recent years based on the biological characteristics of one of the hot spots. In this paper, a key step in face recognition as its main content, a systematic study of the face recognition technology~required on the partof the algorithm was introduced and research. In the preprocessing stage~In the pretreatment session, the image size normalization and gray normalized such proceedings. In the feature extraction part, introduces several feature extraction methods and contrast,extracting Eigenface Based on principal component analysis(PCA) of the subspace was studied. Identify areas in the classifier, Parzen classifier in the nonlinear kernel function parameter estimation algorithm and Euclidean distance classifier method of comparison, focused on the use of Euclidean distance classifierIIrecognition method.Keywords Preprocessing ; PCA ; Euclidean distance classifier ; Face recognitionIII目录第一章绪论........................................... - 1 -1.1 研究的背景与意义 .............................. - 1 -1.2 人脸识别的国内外研究现状 ...................... - 2 -1.2.1 人脸识别在国外研究现状 .................. - 2 -1.2.2 人脸识别在国内研究现状 .................. - 5 -1.3 课程研究的内容 ................................ - 6 - 第二章人脸图像的预处理 .............................. - 8 - 第三章人脸的特征提取 ............................... - 11 -3.1 ICA及其人脸表征 .............................. - 12 -3.1.1 ICA的基本思想 ........................... - 12 -3.1.2 人脸的独立分量表征 ...................... - 12 -3.2 LDA 算法及其人脸表征 ......................... - 13 -3.2.1 LDA 算法 ................................ - 13 -3.2.2 LDA表征人脸 ............................. - 14 -3.3 PCA特征提取方法 .............................. - 15 -3.3.1 K-L变换的基本原理 ....................... - 15 -3.3.2 PCA基本原理 ............................. - 17 -3.3.3 基于PCA的人脸特征提取 .................. - 18 - 第四章人脸特征的分类与识别 ......................... - 20 -4.1 基于核的非线性Parzen分类器 .................. - 20 -IV4.2 欧式距离分类器 ............................... - 22 - 第五章基于PCA和欧氏距离分类器的程序设计及调试 ..... - 24 -5.1 Matlab简介 ................................... - 24 -5.2 程序仿真及调试结果 ........................... - 25 - 第六章结论......................................... - 30 - 致谢 ................................................. - 32 - 参考文献 ............................................. - 32 - 附录 ................................................. - 33 - V基于PCA的人脸识别的研究与实现060608117 林晓明指导老师: 陈宇讲师第一章绪论1.1 研究的背景与意义随着计算机及网络技术的高速发展~将身份数字化、隐性化~并准确鉴定身份、保证信息安全显示出前所未有的重要性~成为许多信息系统要首先考虑的问题。

基于PCA算法的人脸识别

基于PCA算法的人脸识别


引言
近些年来,人腧识别作为一门既有理论价值又
转化为一维的图像向量,才能进行PCA分析,而在 这种转化后,造成图像向量的维数一般较高,使整 个特征抽取过程所耗费的汁算量相当可观。 为了克服传统PCA的不足,研究者们提出了二 维PCA(2DPCA)方法。与PCA不同,2DPCA是基于2 维图像矩阵而不是1维向量,因而特征提取的时候 图像不必预先转化成一个向量。直接使用原始图像
卟古;(铲矽(铲万)
准则化为: J(X户X。G,X 最大化上式的X称作最优投影轴【5】。最优投影
所有的非零值【矗,A,…,乃一。】从小到大排列,得剑
对应的正交特征向量u=【‰,%,…,材,-l】则为特征
145
轴是G。最大特征值对应的特征向最。通常一个最优
投影轴是不够的,因此选对应特征值最大的取前d
第30卷
144
2基于PCA人脸识别方法
2.1
PCA方法 PCA方法是由Turk和Pentlad提出来的,它的基
础就是Karh帅en.L0eVe变换(简称KL变换),是一种 常用的正交变换。完整的PCA人脸变换包括以下几
第6期增刊
段玉波等:基于PCA算法的人脸谚{别
个步骤:

空问。考虑到计算时间的因素,可以适当的去掉+一 读入人脸库 些信息量少的特征向量。将每一幅人脸图样奉
构,识别时问.i51刖牢卟方面做了研究,实验证
明,2DPcA封闭像的重构能力比PcA算法要好,阿 2是从对ORL进行宴骑的结粜中抽取的0RL训练图 像,和经PcA重构,2DPcA垂构的罔像.
m十2DPc^是基于2维圈像矩陴而不是I绯向 赶,特征提取的时候罔像不必预先转化成个向 量。凼此训算协打差矩阵比较容易,町以扳大地提 高特征提取速度口“。本实验证明了2DPcA方法的 吐体识别率要高于PcA方法(如表”,同时2DPcA

Python基于Opencv来快速实现人脸识别过程详解(完整版)

Python基于Opencv来快速实现人脸识别过程详解(完整版)

Python基于Opencv来快速实现⼈脸识别过程详解(完整版)前⾔随着⼈⼯智能的⽇益⽕热,计算机视觉领域发展迅速,尤其在⼈脸识别或物体检测⽅向更为⼴泛,今天就为⼤家带来最基础的⼈脸识别基础,从⼀个个函数开始⾛进这个奥妙的世界。

⾸先看⼀下本实验需要的数据集,为了简便我们只进⾏两个⼈的识别,选取了beyond乐队的主唱黄家驹和贝斯⼿黄家强,这哥俩长得有⼏分神似,这也是对⼈脸识别的⼀个考验:两个⽂件夹,⼀个为训练数据集,⼀个为测试数据集,训练数据集中有两个⽂件夹0和1,之前看⼀些资料有说这⾥要遵循“slabel”命名规则,但后⾯处理起来⽐较⿇烦,因为⽬前opencv接受的⼈脸识别标签为整数,那我们就直接⽤整数命名吧:为了⽅便,我们每个⼈⽤20张照⽚来训练,0代表黄家驹,1代表黄家强:开始啦:1.检测⼈脸这应该是最基本的,给我们⼀张图⽚,我们要先检测出⼈脸的区域,然后才能进⾏操作,opencv已经内置了很多分类检测器,我们这次⽤haar:def detect_face(img):#将测试图像转换为灰度图像,因为opencv⼈脸检测器需要灰度图像gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#加载OpenCV⼈脸检测分类器Haarface_cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')#检测多尺度图像,返回值是⼀张脸部区域信息的列表(x,y,宽,⾼)faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5)# 如果未检测到⾯部,则返回原始图像if (len(faces) == 0):return None, None#⽬前假设只有⼀张脸,xy为左上⾓坐标,wh为矩形的宽⾼(x, y, w, h) = faces[0]#返回图像的正⾯部分return gray[y:y + w, x:x + h], faces[0]2.有了数据集和检测⼈脸的功能后,我们就可以进⾏预训练了最后返回所有训练图⽚的⼈脸检测信息和标签:# 该函数将读取所有的训练图像,从每个图像检测⼈脸并将返回两个相同⼤⼩的列表,分别为脸部信息和标签def prepare_training_data(data_folder_path):# 获取数据⽂件夹中的⽬录(每个主题的⼀个⽬录)dirs = os.listdir(data_folder_path)# 两个列表分别保存所有的脸部和标签faces = []labels = []# 浏览每个⽬录并访问其中的图像for dir_name in dirs:# dir_name(str类型)即标签label = int(dir_name)# 建⽴包含当前主题主题图像的⽬录路径subject_dir_path = data_folder_path + "/" + dir_name# 获取给定主题⽬录内的图像名称subject_images_names = os.listdir(subject_dir_path)# 浏览每张图⽚并检测脸部,然后将脸部信息添加到脸部列表faces[]for image_name in subject_images_names:# 建⽴图像路径image_path = subject_dir_path + "/" + image_name# 读取图像image = cv2.imread(image_path)# 显⽰图像0.1scv2.imshow("Training on image...", image)cv2.waitKey(100)# 检测脸部face, rect = detect_face(image)# 我们忽略未检测到的脸部if face is not None:#将脸添加到脸部列表并添加相应的标签faces.append(face)labels.append(label)cv2.waitKey(1)cv2.destroyAllWindows()#最终返回值为⼈脸和标签列表return faces, labels3.有了脸部信息和对应标签后,我们就可以使⽤opencv⾃带的识别器来进⾏训练了:#调⽤prepare_training_data()函数faces, labels = prepare_training_data("training_data")#创建LBPH识别器并开始训练,当然也可以选择Eigen或者Fisher识别器face_recognizer = cv2.face.LBPHFaceRecognizer_create()face_recognizer.train(faces, np.array(labels))4.训练完毕后就可以进⾏预测了在这之前我们可以设定⼀下预测的格式,包括⽤矩形框框出⼈脸并标出其名字,当然最后别忘了建⽴标签与真实姓名直接的映射表:#根据给定的(x,y)坐标和宽度⾼度在图像上绘制矩形def draw_rectangle(img, rect):(x, y, w, h) = rectcv2.rectangle(img, (x, y), (x + w, y + h), (128, 128, 0), 2)# 根据给定的(x,y)坐标标识出⼈名def draw_text(img, text, x, y):cv2.putText(img, text, (x, y), cv2.FONT_HERSHEY_COMPLEX, 1, (128, 128, 0), 2)#建⽴标签与⼈名的映射列表(标签只能为整数)subjects = ["jiaju", "jiaqiang"]5.现在就可以定义我们的预测函数了:# 此函数识别传递的图像中的⼈物并在检测到的脸部周围绘制⼀个矩形及其名称def predict(test_img):#⽣成图像的副本,这样就能保留原始图像img = test_img.copy()#检测⼈脸face, rect = detect_face(img)#预测⼈脸label = face_recognizer.predict(face)# 获取由⼈脸识别器返回的相应标签的名称label_text = subjects[label[0]]# 在检测到的脸部周围画⼀个矩形draw_rectangle(img, rect)# 标出预测的名字draw_text(img, label_text, rect[0], rect[1] - 5)#返回预测的图像return img6.最后使⽤我们test_data中的图⽚进⾏预测并显⽰最终效果:#加载测试图像test_img1 = cv2.imread("test_data/test1.jpg")test_img2 = cv2.imread("test_data/test2.jpg")#执⾏预测predicted_img1 = predict(test_img1)predicted_img2 = predict(test_img2)#显⽰两个图像cv2.imshow(subjects[0], predicted_img1)cv2.imshow(subjects[1], predicted_img2)cv2.waitKey(0)cv2.destroyAllWindows()来看看识别的结果:这就是⼈脸识别最基本的流程,后续还会进⼀步的研究,下⼀篇我们将讨论本次实验的⼀些细节和注意事项,算是对本篇的⼀次挖掘和总结吧。

PCA算法及其在人脸识别中的应用

PCA算法及其在人脸识别中的应用

行分类识别 。本文采用欧氏距离进行分类 ,计算测试
人脸的投影特征与各类平均人脸投影特征的欧氏距
离 , 将测试人脸样本判为与类平均人脸的投影特征
欧氏距离最小的类所对应的类别 [ 14 ] 。其判据为 :

Ytest - m
=
[
Y1 test -
m
,
Y2 test -
m
,
…,
YL test -
m
]
( 17 )
我们以归一化后的标准图像作为训练样本集 ,以
该样本集的总体散布矩阵为产生矩阵 ,即 :
6
=1 M
6
M-1 i=0
( xi
-
u)
( xi
-
u) T
(1)
其中 : xi 为第 i个训练样本的图像向量 , u为训 练样本集的平均向量 , M 为训练样本的总数 。为了 求 N2 ×N2 维矩阵 6 的特征值和正交归一的特征向 量 ,直接计算非常困难 [ 4 ] ,为此引出下列定理 。
本集合用 X = { X1 , X2 , …, XL }表示 。所有训练样本 的平均脸定义为
m
=
1 N
N
6
i=
1
xi
,
i = 1, 2, …, N
(7)
因此 , 对训练样本进行规范化为
vi = xi - m , i = 1, 2, …, N
(8)
此时 , 协方差矩阵定义为
Q = [ v1 , v2 , …, vN ]T [ v1 , v2 , …, vN ] , Q ∈RN ×N
( 11 )
设 V = [ v1 , v2 , …, vN ]
其中 xi 为任何一训练样本 , xi ∈Rn ,投影到特征
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OpenCV 对非商业应用和商业应用都是免费的,源代码公开, 具备强大的图像和矩阵运算能力,具有丰富的函数处理函数, 减少开发者的工作量,有效提高开发效率和程序运行的可靠 性。 应用:人机互动 、物体识别 、图象分割 、人脸识别 、 动作识别、运动跟踪 、机器人
人脸识别基本介绍
人脸图像采集及检测
人脸识别,是基于人的脸部特征信 息进行身份识别的一种生物识别技 术。用摄像机或摄像头采集含有人 脸的图像或视频流,并自动在图像 中检测和跟踪人脸,进而对检测到 的人脸进行脸部的一系列相关技术, 通常也叫做人像识别、面部识别。
• 第五步:求协方差矩阵的特征值和特征向量,构 造特征脸空间 若协方差矩阵的维数为MN*MN,当其维数较大, 计算量比较大,所以采用奇异值分解 (SingularValue Decomposition ,SVD)定理,通 T T A A AA 过求解 的特征值和特征向量来获得 的特 征值和特征向量。
w
T
• 第二步:定义阈值
1 max i j , i, j 1,2,...,200 2 i, j


• 第三步:采用欧式距离来计算 与每个 人脸的距离
i i
2
2
i 1,2,...,200
系统优缺点分析
系统存在的问题: 1. 抗干扰能力较差。环境光照,遮挡物,人的表情和位置都对识别 结果造成较强的干扰。 2. 训练的时间较长,执行效率不够高。只能对小样本的图像进行识 别,如果图像库太大,则运行效率会比较低。 系统的优点: 1. 不需要对图像进行过多的预处理,PCA本身就能实现降噪的功能; 2. 能有效地识别人脸,且过程相对简单,主要是图像数据的处理和 矩阵的运算; 3. 由于是通过低维子空间表示的,可以对图像的数据进行一定地压 缩,从而减少了计算量,提高运行速度;
利用OpenCV实现基于 PCA算法的人脸识别
1. 2. 3. 4.
OpenCV基本介绍 人脸识别概要 PCA原理介绍 用PCA算法人脸识别的优缺点
OpenCV 基本介绍
OpenCV(Open Source Computer Vision Library)是一个 基于(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows和Mac OS操作系统上。它轻量级而且高效— —由一系列 C 函数和少量 C++ 类构成,同时提供了Python、 Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉 方面的很多通用算法。
i 10
1
xi i
训练阶段
• 第三步:计算差值脸
计算每一张人脸与平均脸的差值
di xi i 1
训练阶段
第四步:构建协方差矩阵
1 C 10
d id i i
1
10
T
1 BB T 10
B d1 d 2 ,...,d10
训练阶段
人 脸 识 别
人脸图像预处理
人脸图像特征提取
匹配与识别
PCA 算法基本介绍
• PCA方法由于其在降维和特征提取方面的有效性 ,在人脸识别领域得到了广泛的应用。 • PCA方法的基本原理是:利用K-L变换抽取人脸的 主要成分,构成特征脸空间,识别时将测试图像 投影到此空间,得到一组投影系数,通过与各个 人脸图像比较进行识别。 • 主要包括两个阶段:训练阶段+识别阶段
训练阶段
• 第一步:假设训练集有10个样本,由灰度图组成,每个样 本大小为M*N(ORL人脸库:分辨率92*112=10304)
• 写出训练样本矩阵:
A x1 ,x 2 ,..., x 10
T
• 其中向量xi为由第i个图像的每一列向量堆叠成一列的MN 维列向量,即把矩阵向量化,如下图所示:
训练阶段
• 如:第i个图像矩阵为
1 2 3 4 5 6 7 8 9
1 4 7 2 5 8 3 6 9

则xi为
训练阶段
• 第二步:计算平均脸 计算训练图片的平均脸:
1 10
训练阶段
• 求出C的特征值 i及其正交归一化特征向量 • 根据特征值的贡献率选取前p个最大特征向 量及其对应的特征向量 i • 贡献率是指选取的特征值的和与占所有特征 值的和比,即:


i 1 i 200 i 1

i p
i

a
i
训练阶段
一般取 a 99 % 即使训练样本在前p个特 征向量集上的投影有99%的能量 求出原协,2,..., p)
则“特征脸”空间为:
w u1 , u2 ,... ,u p
训练阶段
• 第六步 • 将每一幅人脸与平均脸的差值脸矢 量投影到“特征脸”空间,即
i w di i 1,2,...,200
T
识别阶段
• 第一步:将待识别的人脸图像 与平均脸的差值 脸投影到特征空间,得到其特征向量表示:
相关文档
最新文档