PCA(主成分分析):从压缩图像到手写数字识别实验

PCA(主成分分析):从压缩图像到手写数字识别实验,第1张

在看数字图像处理的压缩章节,突然看到PCA可以用来压缩图像,于是学乎。本文主要大致简单说下整个实验的过程和一些关键的点,详细和更好的解说在我给出的资料里面有。

压缩的一种方法论就是先将一张,一个信号的数据量进行某种分解,这种分解必须是有某种“compact”(紧凑)的特性,也就是说大部分的信息存在于少量的系数中,而像不是原始数据中的那样子简单均匀的分布。如果分解得好,压缩的时候只保留少量的数据量就可以保留几乎一张或者一个信号。这里是有损压缩,但是这种分解还原的方法也可以进行无损压缩。怎么做得到呢?如果我们不扔掉大部分不重要的系数,我们好像没有办法减少数据量啊?我们分解后系数比较小的那些我们可以用比较少的位数对其进行编码,这样子就可以较少数据量啦,而且这个过程没有损失掉即使很少的信息。我知道的分解有,傅里叶变换,小波变换,SVD分解(同本文的PCA,只不过是不同角度的)。

下一张用PCA进行分解压缩的,PCA首先分解为很多个系数乘以矩阵的形式,这些系数有大有小,我们用一小部分比较大的那些系数进行还原图像,可以看到取到了其中的30个系数得出图像已经非常好了,取到前50个系数的时候,几乎是看不出来有什么分别,这时数据压缩比是646%。

PCA叫做主成分分析,对这个名称最直观的感受我们可以来看下一个例子。两个绿色的点是两个向量的端点,原点是向量的起点,这两个向量几乎在同一条直线上,如果采用直角坐标系来表示这两组向量需要4个系数,这两个向量进行主成分分析之后得到一个新的单位正交基,如下图中的直角坐标系所示,如果用这个单位正交基来表示这两个向量。这两个新的单位正交基就是PCA中的主成分,从图中我们可以知道我们每个向量只要用一个基就可以很好地接近原始的向量。这就达到了降维的效果。

现实中我们采集数据存在很大的冗余度,如果不进行降维,计算的量是非常大的。比如一幅3232人脸或者手写数字的图像,我们展开成11024维的向量后通过比对这些向量的接近程度来识别人脸或者手写数字(k近邻算法,参考《机器学习实战指南》第二章)。但是比对这1024维的数据计算量太大了,一个简单的降维方法是,你可以抽取只取图像偶数行数和偶数列数来构建一个新的低维向量,但是这样子降低的维数是比较少的,再继续进行几次这样子的 *** 作,但在保证识别效果前提下,降低的维数是十分有限的。在后面的实验中,你可以看到我们只需取其中的50维,甚至20多维就可以得到很好的效果。反之在下面的这张1024个,我利用迭代取偶数行列的方式最后得到其中50个像素,你能通过计算机识别出是哪个数字吗这种降维方式显然失去了很信息量。但是我们取出PCA分解出来的50多维数据确是各个数字的最“主”的主成分,信息量被很好地集中在这50维的数据里面。
于是我们就用这种方法来进行计算,首先是用PCA对训练数据求出主成分,保留其中一部分的主成分,降低了维数。在识别手写数字的时候,我们将上图中的手写数字0的当作向量 a 分解到0~9各自的取出的那部分主成分,然后再分别还原到原始的图像,还原回来的图像向量因为丢失了部分的维数,大多数情况下会跟原始的向量 a 有一些差别err,但这种差异如果分解在手写数字0的s训练出来的主成分理论上是最小的,因此我们可以从此识别出是数字0。

对比k近邻算法1024维近乎绝望的计算复杂度,这里我们只用了50多维进行计算,大大提高了计算效率。

两种算法的速度对比,接近10倍的差值,错误率确是相近的。
降低PCA计算的维度到大概20多,看计算速度是否有提升,错误率是否也上升,错误率没有进一步提升,然并卵。

再进行降维,降到个位数以内,奇迹出现了,错误率上升了一倍,但是计算的复杂度也下降了。

接着我们来看看算错的那些是奇葩还是算法不好?

这个测试库里面说是0,而算法测出来是4
最后放上一些可能有用的链接:

PAC普林斯顿讲义
本文相关线性代数很清晰的一个ppt
基于PCA的人脸识别步骤

主成分分析(PCA)原理详解

你不是都已经说清楚流程了 不知道你需要啥帮助的。

yale数据不知道存的是什么特征, pca降维到2维的话,这样的特征空间描述度足以区分不同人脸吗,我没用过,只是单纯的疑问

Fisher分类器没用过,印象中好像和pca,lda也是有一定关系的,好像也是一种映射降维,好像是很简单的一种分类器,这样的分类器的话,效果好吗。(如果以你的2维特征空间来说好像没啥问题。)

如果是二维人脸识别的话,可以考虑先子图分割,然后创建子图权重系数矩,然后子图矩阵取高特征值,或者对矩阵用dct取大特征,用特征值和权重矩生成特征空间。然后用模糊神经网络对数据进行训练 得到识别系统 。    或者也可以用bp+遗传算法, 上学时候用的orl数据库 好像识别率能到90多点。

提起测试人脸相似度,大家都知道,有人问怎么对比两张的相似度,另外,还有人想问人脸相似度对app都有哪些?你知道这是怎么回事?其实有没有可以看出两张里面两个人相似度的软件?下面就一起来看看怎么对比两张的相似度,希望能够帮助到大家!

测试人脸相似度

1、测试人脸相似度:怎么对比两张的相似度

1、首先打开微信,选择底部“发现”。如图所示。

2、然后在点击进入“小程序”。如图所示。

3、然后输入“腾讯AI体验中心”搜索,点击进入。

4、选择“人脸对比”。如图所示。

5、上传两张上去,点击“人脸比对”。

6、两个人的相似度就出来了。完成效果图。

2、测试人脸相似度:人脸相似度对app都有哪些?

1、微信

打开微信,选择底部“发现”,点击进入“小程序”,在搜索栏输入“腾旭AI体验中心”,进入小程序。选择“人脸对比”,上传后点击“人脸对比”即可。两张照片 在脸比对。

2、本地化人脸相似度比对软件免费照片夫妻相测试。

本地化人脸相似度比对软件是一款比较两张面孔相似度的软件,在电脑本地选择两张人头像照片,选好照片以后即可自动显示两张照片的相似程度,不需要连网 *** 作,软件亲测,比较结果还是挺准的,有需要的朋友不妨试试!

3、人脸识别对比软件

本地化人脸识别对比软件,本地选择两张需要对比相似度的人脸即可看到相似度,不需要网络,完全可以脱机使用!比对2张人脸图像相似度的技术技术主要分为两部分:部为前端人脸检测技术,主要支持在前端通过眨眼、张嘴、摇头、点头等组合动作,确保 *** 作的为真实人脸。

第二部为比对2张人脸图像相似度的技术,该环节通过在检测技术环节取得整张人脸图像后,再通过扫描识别,取到头像后,将现场人脸与上的人脸进行比对识别,判断是否为同一张人脸。

3、测试人脸相似度:有没有可以看出两张里面两个人相似度的软件?

目前只有在线检测,有个EyeKey人脸识别在线体验,EyeKey生物识别云网站。点击“技术体验”进入体验。

4、测试人脸相似度:人脸识别是怎么实现的?

人脸识别技术是指利用分析比较的计算机技术识别人脸。人脸识别是一项热门的计算机技术研究领域,其中包括人脸追踪侦测,自动调整影像放大,夜间侦测,自动调整曝光强度等技术。

有没有可以看出两张里面两个人相似度的软件?

5、测试人脸相似度:脸寻app能测两张脸的相似度吗?

脸寻app能够测两张脸的相似度呀,它不仅能够测两张人脸的相似度,还能够秒级确认用户是否属于同一个人。父子相似度照片测试软件。

6、谁能提供给我一个利用PCA主成分分析来对比两张人脸相似度的opencv程序代码??

CSDN上有,自己搜一下

以上就是与怎么对比两张的相似度相关内容,是关于怎么对比两张的相似度的分享。看完测试人脸相似度后,希望这对大家有所帮助!

%更多给我邮件 我的空间有邮件地址
function pca (path, trainList, subDim)
%
% PROTOTYPE
% function pca (path, trainList, subDim)
%
% USAGE EXAMPLE(S)
% pca ('C:/FERET_Normalised/', trainList500Imgs, 200);
%
% GENERAL DESCRIPTION
% Implements the standard Turk-Pentland Eigenfaces method As a final
% result, this function saves pcaProj matrix to the disk with all images
% projected onto the subDim-dimensional subspace found by PCA
%
% REFERENCES
% M Turk, A Pentland, Eigenfaces for Recognition, Journal of Cognitive
% Neurosicence, Vol 3, No 1, 1991, pp 71-86
%
% MA Turk, AP Pentland, Face Recognition Using Eigenfaces, Proceedings
% of the IEEE Conference on Computer Vision and Pattern Recognition,
% 3-6 June 1991, Maui, Hawaii, USA, pp 586-591
%
%
% INPUTS:
% path - full path to the normalised images from FERET database
% trainList - list of images to be used for training names should be
% without extension and pgm will be added automatically
% subDim - Numer of dimensions to be retained (the desired subspace
% dimensionality) if this argument is ommited, maximum
% non-zero dimensions will be retained, ie (number of training images) - 1
%
% OUTPUTS:
% Function will generate and save to the disk the following outputs:
% DATA - matrix where each column is one image reshaped into a vector
% - this matrix size is (number of pixels) x (number of images), uint8
% imSpace - same as DATA but only images in the training set
% psi - mean face (of training images)
% zeroMeanSpace - mean face subtracted from each row in imSpace
% pcaEigVals - eigenvalues
% w - lower dimensional PCA subspace
% pcaProj - all images projected onto a subDim-dimensional space
%
% NOTES / COMMENTS
% The following files must either be in the same path as this function
% or somewhere in Matlab's path:
% 1 listAllmat - containing the list of all 3816 FERET images
%
% Each dimension of the resulting subspace is normalised to unit length
%
% Developed using Matlab 7
%
%
% REVISION HISTORY
% -
%
% RELATED FUNCTIONS (SEE ALSO)
% createDistMat, feret
%
% ABOUT
% Created: 03 Sep 2005
% Last Update: -
% Revision: 10
%
% AUTHOR: Kresimir Delac
% mailto: kdelac@ieeeorg
% URL: >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10313694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存