【计算机视觉】特征脸EigenFace与PCA

标签(空格分隔): 【图像处理】

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/


说明:本文主要想弄清楚将人脸识别推向真正可用的第一种方法:特征脸方法。


【这里采用的是1维的PCA方法,将图像转变为行向量或者列向量,虽然破坏了几何结构,但是处理比较直观方便】

第一步是构建样本集合

获取包含有M张人脸图像的集合S,每张人脸图片的大小scaling到统一的尺寸,如下面图片集合:



每个图片都转变为N维的向量,然后一行一行的吧放起来,从而构成了样本矩阵X,这一点就与我前段所写的协方差矩阵以及matlab PCA函数princomp函数的输入的样本矩阵格式一样了。

第二步进行均值和协方差矩阵

将图像矩阵每一列都加起来取平均,得到一个平均图像,公式和结果如下图所示:



第三步计算差值矩阵或者样本矩阵零均值化

每行也就是每张图象都减去样本均值。

第四步计算协方差矩阵及其特征值、特征向量





实际上这些步骤都是PCA最传统的步骤,一步一步来的。但是对于图像数据来说,如果每个pixel都当作是一个维度特征的话,那么这个协方差矩阵实在太大了那么如果当我们的训练样本数量小于图像维数的时候,起作用的特征向量只有M个,而不是对应的图像维数个,其余都是零,所以求解特征向量的时候我们只需要求解一个。





这些特征向量还原成像素排列,得到如下所示的特征脸:



图中有二十五个特征脸,数量和训练样本一样只是巧合,一般只只需要7个特征脸就可以。

人脸识别

考虑一张新的人脸,scaling到相同的尺寸,然后进行特征转换,对应的公式为:



其中k=1,2,…,M表示对应的特征脸uk,也就是PCA中的第k个特征映射矢量,通过这M个特征脸,可以将新的人脸转变为在特征脸的坐标系的坐标表示:



实际上所有的脸,不管是新来的,还是样本集中的,都会被映射到该特征脸构成的矢量空间中的坐标表示,也可以说是在每个特征脸的权重,这个权重是提炼出来的某个人脸的在特征脸坐标系下的表示,如果要进行人脸识别的话:



其中Ω表示要判别的输入的人脸,而Ωk表示训练集中某个人脸,求取距离,一个一个判断,如果距离小于某个阈值,则认为成功匹配。否则认为没有找到匹配的对象,认为是新的人脸或者不是人脸两种情况。根据训练集的不同,阈值设定并不不是固定的。


2015-11-27 学习笔记 张朋艺

【计算机视觉】特征脸EigenFace与PCA的更多相关文章

  1. 特征脸(Eigenface)理论基础-PCA(主成分分析法)

    在之前的博客  人脸识别经典算法一:特征脸方法(Eigenface)  里面介绍了特征脸方法的原理,但是并没有对它用到的理论基础PCA做介绍,现在做补充.请将这两篇博文结合起来阅读.以下内容大部分参考 ...

  2. 人脸识别经典算法一:特征脸方法(Eigenface)

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

  3. 【笔记】特征脸(PCA在人脸识别领域的应用)

    人脸识别与特征脸(简单介绍) 什么是特征脸 特征脸(Eigenface)是指用于机器视觉领域中的人脸识别问题的一组特征向量,该方法被认为是第一种有效的人脸识别方法. PCA的具体实现思想见 [笔记]主 ...

  4. 特征脸是怎么提取的之主成分分析法PCA

    机器学习笔记 多项式回归这一篇中,我们讲到了如何构造新的特征,相当于对样本数据进行升维. 那么相应的,我们肯定有数据的降维.那么现在思考两个问题 为什么需要降维 为什么可以降维 第一个问题很好理解,假 ...

  5. 机器学习:PCA(人脸识别中的应用——特征脸)

    一.思维理解 X:原始数据集: Wk:原始数据集 X 的前 K 个主成分: Xk:n 维的原始数据降维到 k 维后的数据集: 将原始数据集降维,就是将数据集中的每一个样本降维:X(i) . WkT = ...

  6. PCA算法提取人脸识别特征脸(降噪)

    PCA算法可以使得高维数据(mxn)降到低维,而在整个降维的过程中会丢失一定的信息,也会因此而实现降噪除噪的效果,另外,它通过降维可以计算出原本数据集的主成分分量Wk矩阵(kxn),如果将其作为数据样 ...

  7. Eigenface与PCA人脸识别算法实验

    简单的特征脸识别实验 实现特征脸的过程其实就是主成分分析(Principal Component Analysis,PCA)的一个过程.关于PCA的原理问题,它是一种数学降维的方法.是为了简化问题.在 ...

  8. 机器学习: 特征脸算法 EigenFaces

    人脸识别是机器学习和机器视觉领域非常重要的一个研究方向,而特征脸算法是人脸识别里非常经典的一个算法,EigenFaces 是基于PCA (principal component analysis) 即 ...

  9. 【从零学习openCV】IOS7人脸识别实战

    前言 接着上篇<IOS7下的人脸检測>,我们顺藤摸瓜的学习怎样在IOS7下用openCV的进行人脸识别,实际上非常easy,因为人脸检測部分已经完毕,剩下的无非调用openCV的方法对採集 ...

随机推荐

  1. 浅析pagehelper分页原理(转)

    之前项目一直使用的是普元框架,最近公司项目搭建了新框架,主要是由公司的大佬搭建的,以springboot为基础.为了多学习点东西,我也模仿他搭了一套自己的框架,但是在完成分页功能的时候,确遇到了问题. ...

  2. 2、组件注册-@Configuration&@Bean给容器中注册组件

    2.组件注册-@Configuration&@Bean给容器中注册组件 2.1 创建maven项目 spring-annotation pom.xml文件添加 spring-context 依 ...

  3. focus([[data],fn]) 当元素获得焦点时,触发 focus 事件。

    focus([[data],fn]) 概述 当元素获得焦点时,触发 focus 事件.直线电机选型 可以通过鼠标点击或者键盘上的TAB导航触发.这将触发所有绑定的focus函数,注意,某些对象不支持f ...

  4. 彻底解决eslint与webstorm针对vue的script标签缩进处理方式冲突问题

    彻底解决eslint与webstorm针对vue的script标签缩进处理方式冲突问题 2018年12月08日 21:58:26 Kevin395 阅读数 1753   背景不多介绍了,直接上代码. ...

  5. linux下core dump--转载

    原文链接:https://www.cnblogs.com/Anker/p/6079580.html   1.前言 一直在从事linux下后台开发,经常与core文件打交道.还记得刚开始从事linux下 ...

  6. Cogs 58. 延绵的山峰(st表)

    延绵的山峰 ★★☆ 输入文件:climb.in 输出文件:climb.out 简单对比 时间限制:1 s 内存限制:512 MB 问题描述 有一座延绵不断.跌宕起伏的山,最低处海拔为0,最高处海拔不超 ...

  7. Win内核原理与实现学习笔记3-windows系统结构

    1.概述 1.1windows采用了双模式(dual mode)结构来保护操作系统本身,以避免被应用程序的错误而波及.操作系统核心运行在内核模式(kernel mode)下,应用程序的代码运行在用户模 ...

  8. Jenkins在H5编译加密过程中一个报错

    ################################ 背景:开发环境在编译H5的时候出现了以下报错,记录下 ################################ D:\Jenk ...

  9. pwn学习日记Day20 《程序员的自我修养》读书笔记

    可执行文件的装载与进程 覆盖装入和页映射是两种典型的动态装载方法 进程建立的三步 1.创建一个独立的虚拟地址空间 2.读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系. 3.将CPU的指令寄存 ...

  10. 使用sequelize-auto 生成mysql 表的实体时主键没有 autoIncrement: true 属性

    使用sequelize-auto 生成mysql 表时主键没有 autoIncrement: true 属性,这会导致插入数据时报错.看git上面是已经解决了的,解决方法是修改查询语句模板.我用的是0 ...