浅谈openv中人脸识别类facerecognizer

浅谈openv中人脸识别类facerecognizer

ID:9057464

大小:40.00 KB

页数:4页

时间:2018-04-16

浅谈openv中人脸识别类facerecognizer_第1页
浅谈openv中人脸识别类facerecognizer_第2页
浅谈openv中人脸识别类facerecognizer_第3页
浅谈openv中人脸识别类facerecognizer_第4页
资源描述:

《浅谈openv中人脸识别类facerecognizer》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、浅谈Openv中人脸识别类FaceRecognizeropencv2.4版本中封装了可用于人脸识别的类FaceRecognizer,其对应代码在动态链接库opencv_contrib249d.dll中(我用的是opencv2.4.9版本),这个动态链接库在opencv安装目录下可以找到,要想使用FaceRecognizer,首先要保证上述动态链接库正确配置。在此关于opencv的配置问题多说几句,就是建议大家尽量使用VS2010及以上版本来配置opencv,因为在最新的opencv2.4.9版本中已经添加了对vs2010及以上

2、版本的自动支持,无需再用CMaker进行编译了,配置简单可靠。我之前用的是VS2008版本,在自己编译opencv_contrib249d.dll这个库时总提示编译出错,如果你也遇到了这个问题,建议你换装vs2010版本吧,至于具体如何配置网上有很多教程,这里不再赘述。FaceRecognizer这个类目前包含三种人脸识别方法:基于PCA变换的人脸识别(EigenFaceRecognizer)、基于Fisher变换的人脸识别(FisherFaceRecognizer)、基于局部二值模式的人脸识别(LBPHFaceRecogni

3、zer)。对于像我这样的人脸识别初学者,对人脸识别理论了解得不是很透彻,但并不影响对函数的使用,下面就EigenFaceRecognizer来详细的谈一下opencv人脸识别的实现。首先简单说一下PCA变换原理。在人脸识别过程中,一般把图片看成是向量进行处理,高等数学中我们接触的一般都是二维或三维向量,向量的维数是根据组成向量的变量个数来定的,例如就是一个二维向量,因为其有两个参量。而在将一幅图像抽象为一个向量的过程中,我们把图像的每个像素定为一维,对于一幅的普通图像来说,最后抽象为一个维的高维向量,如此庞大的维数对于后续图像

4、计算式来说相当困难,因此有必要在尽可能不丢失重要信息的前提下降低图像维数,PCA就是降低图像维数的一种方法。图像在经过PCA变换之后,可以保留任意数量的对图像特征贡献较大的维数分量,也就是你可以选择降维到30维或者90维或者其他,当然最后保留的维数越多,图像丢失的信息越少,但计算越复杂。至于具体PCA变换的原理,网上有很多好的博客,也有很多专业论文来论证,有兴趣的可以查阅。下面来谈一谈具体如何使用这个人脸识别类。首先需要一个人脸库,因为你想让计算机识别人脸,首先得让计算机知道不同的人长什么样不同的脸。网上有很多现成的人脸数据库

5、,我在做实验时选用了ORL数据库。数据库中包含40个人的人脸图像,每人十张,共400张,有bmp和png两种格式,大小均为。数据库中有光照变化(中心光照、左侧光照、右侧光照)、表情变化(开心、正常、悲伤、瞌睡、惊讶、眨眼)、眼镜(戴眼镜或者没戴),且包含男性图片和女性图片,比较适合做人脸识别的仿真实验。唯一的不足就是照片中全部为外国人,如果你想开发出一套人脸识别系统在国内用,建议还是费点功夫自己建一个合适的人脸数据库吧。人脸库确定之后需要进行训练,即让计算机“学习”这些人脸样本。这时面临的一个问题就是如何把训练样本读进内存中。

6、opencv手册中明确说明EigenFaceRecognizer的训练函数的入口参数是一个图像容器,容器中包含所有训练图像。那么如何创建一个这样的容器并把训练样本全部放进去呢?方法有很多,我在实验中采用CSV文件读取方法。首先创建一个包含所有文件路径名的CSV文件,也就是一个文本文件。假设ORL数据库存放地址为:“E:ORL”;在DOS窗口下输入命令:E:ORL>dir/b/s*.bmp>at.txt,执行成功后发现在ORL文件夹下出现一个文本文件at.txt,里面内容如下(分号后面的标签是人为添加的):E:ORLs1

7、1.bmp;1E:ORLs110.bmp;1E:ORLs12.bmp;1E:ORLs13.bmp;1E:ORLs14.bmp;1E:ORLs15.bmp;1E:ORLs16.bmp;1E:ORLs17.bmp;1E:ORLs18.bmp;1E:ORLs19.bmp;1E:ORLs101.bmp;10E:ORLs1010.bmp;10E:ORLs102.bmp;10E:ORLs103.bmp;10E:ORLs104.bmp;10E:ORLs

8、105.bmp;10E:ORLs106.bmp;10E:ORLs107.bmp;10E:ORLs108.bmp;10E:ORLs109.bmp;10CSV文件创建成功后,可以在程序中读取文件了,网上有一段比较好的CSV读取代码,如下所示:voidre

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。