特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的。特征脸用到的理论基础PCA在之前的文章中已经讲过了。直接上特征脸方法的步骤:

步骤一:获取包含M张人脸图像的集合S。在我们的例子里有25张人脸图像(虽然是25个不同人的人脸的图像,但是看着怎么不像呢,难道我有脸盲症么),如下图所示哦。每张图像可以转换成一个N维的向量(是的,没错,一个像素一个像素的排成一行就好了,至于是横着还是竖着获取原图像的像素,随你自己,只要前后统一就可以),然后把这M个向量放到一个集合S里,如下式所示。

步骤二:在获取到人脸向量集合S后,计算得到平均图像Ψ ,至于怎么计算平均图像,公式在下面。就是把集合S里面的向量遍历一遍进行累加,然后取平均值。得到的这个Ψ其实还挺有意思的,Ψ其实也是一个N维向量,如果再把它还原回图像的形式的话,可以得到如下的“平均脸”,是的没错,还他妈的挺帅啊。那如果你想看一下某计算机学院男生平均下来都长得什么样子,用上面的方法就可以了。

步骤三:计算每张图像和平均图像的差值Φ ,就是用S集合里的每个元素减去步骤二中的平均值。

步骤四:找到M个正交的单位向量un,这些单位向量其实是用来描述Φ (步骤三中的差值)分布的。un里面的第k(k=1,2,3...M)个向量uk 是通过下式计算的,

当这个λk(原文里取了个名字叫特征值)取最小的值时,uk 基本就确定了。补充一下,刚才也说了,这M个向量是相互正交而且是单位长度的,所以啦,uk 还要满足下式:

上面的等式使得uk 为单位正交向量。计算上面的uk 其实就是计算如下协方差矩阵的特征向量:

其中

对于一个NxN(比如100x100)维的图像来说,上述直接计算其特征向量计算量实在是太大了(协方差矩阵可以达到10000x10000),所以有了如下的简单计算。

步骤四另解:如果训练图像的数量小于图像的维数比如(MAAT,我们可以设该矩阵为L,那么L的第m行n列的元素可以表示为:

一旦我们找到了L矩阵的M个特征向量vl,那么协方差矩阵的特征向量ul就可以表示为:

这些特征向量如果还原成像素排列的话,其实还蛮像人脸的,所以称之为特征脸(如下图)。图里有二十五个特征脸,数量上和训练图像相等只是巧合。有论文表明一般的应用40个特征脸已经足够了。论文Eigenface for recognition里只用了7个特征脸来表明实验。

步骤五:识别人脸。OK,终于到这步了,别绕晕啦,上面几步是为了对人脸进行降维找到表征人脸的合适向量的。首先考虑一张新的人脸,我们可以用特征脸对其进行标示:

其中k=1,2...M,对于第k个特征脸uk,上式可以计算其对应的权重,M个权重可以构成一个向量:

perfect,这就是求得的特征脸对人脸的表示了!

那如何对人脸进行识别呢,看下式:

其中Ω代表要判别的人脸,Ωk代表训练集内的某个人脸,两者都是通过特征脸的权重来表示的。式子是对两者求欧式距离,当距离小于阈值时说明要判别的脸和训练集内的第k个脸是同一个人的。当遍历所有训练集都大于阈值时,根据距离值的大小又可分为是新的人脸或者不是人脸的两种情况。根据训练集的不同,阈值设定并不是固定的。

参考资料:

1、Eigenface for Recognition:http://www.cs.ucsb.edu/~mturk/Papers/jcn.pdf

2、特征脸维基百科:http://zh.wikipedia.org/wiki/%E7%89%B9%E5%BE%81%E8%84%B8

3、Eigenface_tutorial:http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm

声明:本文系网络转载,版权归原作者所有。如涉及版权,请联系删除!

python人脸识别特征脸法_人脸识别经典算法:特征脸方法(Eigenface)相关推荐

  1. python人脸识别特征脸法_人脸识别经典算法一 特征脸方法(Eigenface)

    这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新.特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的.特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eig ...

  2. python人脸识别框很小_人脸识别:从传统方法到深度学习

    人脸识别:从传统方法到深度学习 这开始于上世纪七十年代,人脸识别成为了计算机视觉领域和生物识别领域最具有研究型的话题之一.传统方法依赖于手工制作模型特征,通过深度神经网络训练大量的数据集的方法也在最近 ...

  3. python识别人脸的年龄和性别_人脸识别是如何判断性别和年龄的?

    你能看出郭德纲和林志颖是同龄人吗?都是47岁,反正我看不出来. 虽说肉眼看不出来,很多人脸识别算法却可以识别出来. 在探讨人脸识别算法如何判断性别和年龄之前,需要先厘清人脸识别的原理. 我们人类记忆和 ...

  4. c#和java部署pytorch同事识别两个图片_人脸识别漏洞频出?这里有个开源静默活体检测算法,超低运算量、工业级可用...

    小视科技团队开源的基于 RGB 图像的活体检测模型,是专门面向工业落地场景,兼容各种复杂场景下的模型.该自研的剪枝轻量级模型,运算量为 0.081G,在麒麟 990 5G 芯片上仅需 9ms.同时基于 ...

  5. java常规普氏分析法_人脸对齐:Procrustes analysis 普氏分析

    概述 在人脸相关应用中,获得的人脸图像常常形状各异,这时就需要对人脸形状进行归一化处理.人脸对齐就是将两个不同的形状进行归一化的过程,将一个形状尽可能地贴近另一个形状. 值得注意的是,在英语文献中,F ...

  6. 人脸和身份证不匹配_人脸识别身份信息不匹配是什么意思

    展开全部 你那边一定是用身份证进行面部识别,显示的信息是信息不匹配吧,可能是由于以下因32313133353236313431303231363533e4b893e5b19e3133336131663 ...

  7. 人脸识别翼闸使用规范_人脸识别翼闸安装步骤

    原标题:人脸识别翼闸安装步骤 人脸识别翼闸安装主要有人脸识别安装和闸机安装两部分,安装人脸识别翼闸闸机前建议先仔细阅读产品安装说明: 人脸识别翼闸 第一步:先在闸机上安装好人脸识别,安装方法如下: 1 ...

  8. python车牌识别系统抬杆_车牌识别系统识别到道闸不抬杆是什么问题?

    原标题:车牌识别系统识别到道闸不抬杆是什么问题? 在日常日生活中,我们在进入商场或许居住区的时候,总是因为一些原因,车牌不能自动识别成功进入.有些时分为什么他人能进入,自己就进不了,有时分是挺疑问的. ...

  9. 特征图注意力_从数据结构到算法:图网络方法初探

    作者 | 朱梓豪 来源 | 机器之心 原文 | 从数据结构到算法:图网络方法初探 如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地.其实早在很多年前,图神经网络就以图嵌入. ...

最新文章

  1. 8、设计模式-结构型模式-适配器模式
  2. juniper M320路由器基本配置
  3. shiro框架_Shiro安全框架(下)
  4. 矩形脉冲信号的频域分析_矩形周期脉冲信号MATLAB实现
  5. django13:Session与Cookie操作
  6. 14、ORACLE下的基本SQL操作
  7. 【开源项目】QT播放PCM音频实例详细
  8. JavaScript设计模式 Item 2 -- 接口的实现
  9. python编写add函数求和_为什么python不利用__iadd__来实现求和和链接运算符?
  10. [转]Oracle字符串拼接的方法
  11. python+opencv 问题解决方案,OpenCV Error: Unspecified error (The function is not implemented. Rebuild the
  12. STM32(十一)- 串行FLASH文件系统FatFs
  13. 杰克·韦尔奇的101条经典语录
  14. gopher对mysql的利用_[题目]记一次利用gopher的内网mysql盲注
  15. linux安装razer鼠标驱动
  16. 对话系统简介与OPPO小布助手的工程实践
  17. 【压力测试 2】JMeter压力测试之Internal server error 500 问题解决思路
  18. mybatis mysql 关于调用存储过程获取查询结果
  19. 安卓开发新手入门教程!Android学习路线指南,复习指南
  20. 2016淘宝首页改版 细说淘宝首页设计变化史

热门文章

  1. 系统时间与当前时间不符
  2. 基于单片机的消毒柜控制仿真设计(#0030)
  3. 太阳能电池基本特性实验报告_上海交通大学物理实验报告(大二上)硅光电池特性的研究.docx...
  4. Introduction to Windows 8: The Definitive Guide for Developer
  5. Mycat数据库中间件-入门
  6. 三四线城市如何把年轻人逼回北上广?
  7. 儿童电动牙刷使用感受
  8. pandas学习之练习题解读
  9. Omni Recover——适用的IOS数据的恢复方案
  10. (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016