利用OpenCV实现基于PCA算法的人脸识别
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 写出训练样本矩阵:
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
i
Avi (i 1,2,...,p)
则“特征脸”空间为:
w u1,u2 ,...,u p
训练阶段
• 第六步
•
将每一幅人脸与平均脸的差值脸矢
量投影到“特征脸”空间,即
i wT di i 1,2,..., 200
识别阶段
• 第一步:将待识别的人脸图像 与平均脸的差值
矩阵的运算; 3. 由于是通过低维子空间表示的,可以对图像的数据进行一定地压
缩,从而减少了计算量,提高运行速度;
T i
i 1
1 10
BB T
B d1 d 2,...,d10
训练阶段
• 第五步:求协方差矩阵的特征值和特征向量,构 造特征脸空间
若协方差矩阵的维数为MN*MN,当其维数较大, 计算量比较大,所以采用奇异值分解 (SingularValue Decomposition ,SVD)定理,通 过求解 AT A 的特征值和特征向量来获得 AAT 的特 征值和特征向量。
利用OpenCV实现基于 PCA算法的人脸识别
1. OpenCV基本介绍 2. 人脸识别概要 3. PCA原理介绍 4. 用PCA算法人脸识别的优缺点
OpenCV基本介绍
OpenCV(Open Source Computer Vision Library)是一个 基于(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows和Mac OS操作系统上。它轻量级而且高效— —由一系列 C 函数和少量 C++ 类构成,同时提供了Python、 Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉 方面的很多通用算法。
息进行身份识别的一种生物识别技
人
术。用摄像机或摄像头采集含有人
脸
脸的图像或视频流,并自动在图像
识
中检测和跟踪人脸,进而对检测到
别
的人脸进行脸部的一系列相关技术,
通常也叫做人像识别、面部识别。
人脸图像采集及检测 人脸图像预处理
人脸图像特征提取 匹配与识别
PCA算法基本介绍
• PCA方法由于其在降维和特征提取方面的有效性 ,在人脸识别领域得到了广泛的应用。
训练阶段
• 求出C的特征值 i及其正交归一化特征向量
• 根据特征值的贡献率选取前p个最大特征向
量及其对应的特征向量 i
• 贡献率是指选取的特征值的和与占所有特征 值的和比,即:
i p
i
i1 a i 200 i i 1
训练阶段
一般取 a 99% 即使训练样本在前p个特 征向量集上的投影有99%的能量
• PCA方法的基本原理是:利用K-L变换抽取人脸的 主要成分,构成特征脸空间,识别时将测试图像 投影到此空间,得到一组投影系数,通过与各个 人脸图像比较进行识别。
• 主要包括两个阶段:训练阶段+识别阶段
训练阶段
• 第一步:假设训练集有10个样本,由灰度图组成,每个样 本大小为M*N(ORL人脸库:分辨率92*112=10304)
脸投影到特征空间,得到其特征向量表示:
wT
• 第二步:定义阈值
1
max 2 i, j
i
j
,i, j 1,2,...,200
• 第三步:采用欧式距离来计算 与每个
人脸的距离
i 2 i 2 i 1,2,..., 200
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
i
Avi (i 1,2,...,p)
则“特征脸”空间为:
w u1,u2 ,...,u p
训练阶段
• 第六步
•
将每一幅人脸与平均脸的差值脸矢
量投影到“特征脸”空间,即
i wT di i 1,2,..., 200
识别阶段
• 第一步:将待识别的人脸图像 与平均脸的差值
矩阵的运算; 3. 由于是通过低维子空间表示的,可以对图像的数据进行一定地压
缩,从而减少了计算量,提高运行速度;
T i
i 1
1 10
BB T
B d1 d 2,...,d10
训练阶段
• 第五步:求协方差矩阵的特征值和特征向量,构 造特征脸空间
若协方差矩阵的维数为MN*MN,当其维数较大, 计算量比较大,所以采用奇异值分解 (SingularValue Decomposition ,SVD)定理,通 过求解 AT A 的特征值和特征向量来获得 AAT 的特 征值和特征向量。
利用OpenCV实现基于 PCA算法的人脸识别
1. OpenCV基本介绍 2. 人脸识别概要 3. PCA原理介绍 4. 用PCA算法人脸识别的优缺点
OpenCV基本介绍
OpenCV(Open Source Computer Vision Library)是一个 基于(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows和Mac OS操作系统上。它轻量级而且高效— —由一系列 C 函数和少量 C++ 类构成,同时提供了Python、 Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉 方面的很多通用算法。
息进行身份识别的一种生物识别技
人
术。用摄像机或摄像头采集含有人
脸
脸的图像或视频流,并自动在图像
识
中检测和跟踪人脸,进而对检测到
别
的人脸进行脸部的一系列相关技术,
通常也叫做人像识别、面部识别。
人脸图像采集及检测 人脸图像预处理
人脸图像特征提取 匹配与识别
PCA算法基本介绍
• PCA方法由于其在降维和特征提取方面的有效性 ,在人脸识别领域得到了广泛的应用。
训练阶段
• 求出C的特征值 i及其正交归一化特征向量
• 根据特征值的贡献率选取前p个最大特征向
量及其对应的特征向量 i
• 贡献率是指选取的特征值的和与占所有特征 值的和比,即:
i p
i
i1 a i 200 i i 1
训练阶段
一般取 a 99% 即使训练样本在前p个特 征向量集上的投影有99%的能量
• PCA方法的基本原理是:利用K-L变换抽取人脸的 主要成分,构成特征脸空间,识别时将测试图像 投影到此空间,得到一组投影系数,通过与各个 人脸图像比较进行识别。
• 主要包括两个阶段:训练阶段+识别阶段
训练阶段
• 第一步:假设训练集有10个样本,由灰度图组成,每个样 本大小为M*N(ORL人脸库:分辨率92*112=10304)
脸投影到特征空间,得到其特征向量表示:
wT
• 第二步:定义阈值
1
max 2 i, j
i
j
,i, j 1,2,...,200
• 第三步:采用欧式距离来计算 与每个
人脸的距离
i 2 i 2 i 1,2,..., 200