2 leonfg1983 leonfg1983 于 2016.04.27 23:08 提问

OpenCV PCA人脸识别时欧氏距离的问题

我用PCA+SVM方式对ORL人脸库进行人脸识别,使用Opencv的PCA库进行降维及特征提取,提取后的特征用于SVM训练,如果每人用两个图进行学习,最终测试样本的识别率能到85%+。
但是我如果用测试样本的特征向量和训练样本的特征向量进行欧式距离(NORM_L2)的计算,计算结果十分没有规律,不管是不是同一个人的特征,距离从一千多到四千多的都有。这种情况十分不合理呀,opencv还有个基于PCA样本距离的特征脸识别库不就是用L2距离进行比较来进行识别的吗?鉴于此我又实验了一下使用opencv的特征脸识别库EigenFaceRecognizer进行人脸识别,同样的样本划分,但是不自己写特征提取代码,直接输入原始图片,因为特提取的工作是特征脸库自己做的,识别率也能到80%+。
总结起来问题就是,我用PCA提取的特征进行SVM人脸识别,效果还可以,但是直接用测试样本的特征值和训练样本的特征值进行距离比较,却并不能得出同一人的样本距离会比较近,不同人的会比较远的结果,和特征脸识别的工作原理不符。不知是哪里有问题,求解!

2个回答

devmiao
devmiao   Ds   Rxr 2016.04.27 23:54
CSDNXIAON
CSDNXIAON   2016.04.27 23:12

OpenCV的PCA人脸识别
OpenCV的PCA人脸识别
opencv学习-pca人脸识别
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
PCA 和欧氏距离方法设计的人脸识别matlab程序
pca方法提取的特征值,用欧式距离进行的分类器设计,进行人脸识别。
LBP+直方图与PCA+的欧式距离的人脸识别
LBP+直方图与PCA+的欧式距离的人脸识别,帮助了解人脸识别
基于PCA简单的人脸识别opencv实现-图像处理学习笔记
思路简述PCA即主成分分析。计算主成分的目的是将高维数据投影到较低维空间。给定 n 个变量的 m 个观察值,形成一个 n ′ m 的数据矩阵, n 通常比较大。 按自己的理解就是,将一个空间的数据投影到一个子空间里,实现降维,并且变换到特定的子空间,会使相似的数据聚合在一起,不同类的数据图像分开的远些(所以就用到变换空间),在这个子空间里实现数据的比较分析更容易些。实现步骤1。读取训练样本将人脸数
opencv学习-pca人脸识别
本文转载自http://www.cnblogs.com/zcftech/archive/2013/04/17/3026902.html 上一节我们已经将图片进行降维处理,这样做的目的就是要在保持对象间差异的同时降低处理数据量。除了PCA外,LDA也是一种比较简单实用的降维方法,大家可以对比两种降维方法;基于PCA降维后的数据,我们接着要做的是用训练数据将测试数据表示出来 接
OpenCV+Qt:基于PCA主成分分析的人脸识别例程
在模式识别领域中,PCA是一种常用的数据集降维手段,在此基础上,保留数据集中对方差贡献最大的特征从而进行模式分类。OpenCV中提供PCA的类,因此可以方便地使用PCA来进行人脸识别研究。在学习了网上的相关实现和代码,在以下开发平台跑通了代码:win8.1+OpenCV2.4.9+Qt5.3.2。
图像匹配(欧式距离)
图像匹配之欧式距离算法   (2016-12-09 14:23:28) 转载▼ 标签:  图像处理   欧式距离算法   python 分类: 图像识别 欧式距离算法               在用差分矩阵均值对强噪声的识别失败了之后,我们决定用欧式距离算法。欧式距离算法的核心是:设图像矩阵有n个元素(n个像
利用Python实现基于PCA算法的人脸识别
前面的文章中提到,利用opencv+python的组合可以方便的提取出图像中的人脸。当然,opencv自带的提取算法还是有很大缺陷的,不过并不妨碍我们的应用。接下来,利用python对已经获许的人脸图片进行训练,从而可以识别出人脸。本文利用的PCA算法,实现起来较为容易,利用了numpy库。程序还只是一个算法实现,界面和交互都还不太友好,以后我会对其进行改进,并把它扩展为一个可应用的程序。
基于PCA的人脸识别系统(JAVA版)(一) OpenCV在JAVA上的环境配置
这里用的JDK 1.8和OpenCV3.2.0版本。后面会重点提到OpenCV的安装配置和OpenCV在JAVA上的配置。 1.OpenCV的安装配置                 (1)下载安装OpenCV     OpenCV用的3.2.0版本。                   下载地址:链接:https://pan.baidu.com/s/1hs3Yfas 密码:jh0y
python下PCA算法与人脸识别
关于这部分主要是想在python下试验一下主成分分析(PCA)算法以及简单的人脸识别。曾经详述过matlab下的PCA以及SVM算法进行人脸识别技术,参考如下:主成分分析法-简单人脸识别(一)主成分分析-简单人脸识别(二)PCA实验人脸库-人脸识别(四)PCA+支持向量机-人脸识别(五)主成分分析(PCA)算法主要是对高维数据进行降维,最大限度的找到数据间的相互关系,在机器学习、数据挖掘上很有用。在
OPENCV实现PCA+SVM
最近在做人脸识别,得到特征向量以后想要再做PCA降维,降维后的结果作为SVM训练的字典。在做PCA降维的过程中遇到一些问题,希望看到的大牛帮忙解决一下,有兴趣的朋友也可以帮忙看看是哪里有问题。        关于PCA降维的理论就不多说了,网上可以找到很多资料。        其中有一篇博客是关于用PCA和SVM做人脸识别的http://blog.csdn.net/augusdi/articl