人脸识别算法学习eigenfaces理论分析

1.eigenfaces 算法原理
       本科毕业设计我做过遗落物检测,老实说对于从没有接触过图像处理的我着实很懵逼,但是知识是一步一步学习的,言归正传,讲讲现在开始学习的基于opencv的第一个人脸识别算法,如果有理解错误的地方,欢迎大佬们指出。egienfaces的基本原理是空间的变换,以图像像素点为原始维度单位(如320*240的图,其维度为76800*1),试图找到一种变换将其进行降维处理,以达到在目标空间里,每种人脸能得到最好的区分。

2.eigenfaces 算法流程

     输入:包含M张人脸图像的集合S。每张图片用I1,I2,I3,…IM表示。假设每张图片大小为40*60,那么该图片的维度为2400维。将每张图片的行像素排为一列用Tk。


表示有N*N维

组合后为N维,因为是一行为一个向量单位,所以是N行。

  1. 计算平均脸,计算公式如下:   

            

  2.计算每张图片与平均脸的差值向量,用Φ表示

 

     3.计算协方差矩阵C,计算对应的特征值和特征向量,这一步为整个算法的关键步骤,涉及很多数学知识,有兴趣的可以看一下http://blog.csdn.net/xiaojidan2011/article/details/11595869该博客的文章,讲的很详细,由于公式很难编辑,我简单的编辑一下希望能看懂。矩阵A表示差值Φ向量的集合矩阵,表示M张图片的每个像素与均值的差值矩阵,用数学表示式表示为 ,它是一个N*M维的矩阵,而他的转置AT 则是M*N维的矩阵。

 

AAT的乘积斜对角线为方差,其余为协方差,相乘以后一个N*N维的矩阵,假如一张图片维数为20*20,那么N*N为160000,计算量太大。数据冗余,因为每个像素的的值可能存在相关性。这里就提及到使用PCA降维方法进行降维。

PCA方法的原理:PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

而计算AAT的特征值采用的方法是转而计算ATA的特征值,计算的方法就借用别人的吧,希望看的懂,手写的太难看了。ei表示特征向量,λ表示特征值。C表示原数据集S,C’表示ATA。

   4.对特征值进行递减排序,特征向量和它顺序一致. K个主成分也就是K个最大的特征值对应的特征向量。特征向量x的k个主成分表示为:

当新来一张图片时,将其投影到特征空间,即特征向量组成的矩阵WT,数学表达式为

PCA基的重构为:T = WY +φ,相当于在低维的空间进行图像的重构

   5.人脸识别,通过欧式距离判定

Opencv自带的程序实现测试的结果,功能分为三部分:第一,训练人脸模型;第二,画出特征脸;第三,得到平均脸,能初步的描述算法分类的准确性。

特征脸:

下面两张是重构脸与平均脸

具体实现下次再说吧。

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/beautyly/p/7220039.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值