使用opencv进行人脸识别

本文介绍了使用opencv进行人脸识别的步骤,包括人脸检测、尺寸调整、直方图均衡化和主成分分析(PCA)。在实践中,作者发现opencv2.1相对于opencv2.0在人脸检测上减少了误检。PCA算法采用第一种方法,通过欧氏距离判断人脸差异,并成功应用于合照中的人脸识别。
摘要由CSDN通过智能技术生成

    最近由于大作业需要,使用了opencv进行人脸识别。

    一般来说,识别分为两部,即人脸检测-》人脸识别,opencv提供了一个人脸检测的sample,有一个比较成熟的训练人脸正面训练文件,这是我所知的一个很成熟的人脸识别工具,而且已用于一些前沿3D爱情动作游戏中,这里主要是对其提供的sample作了一定的修改,将人脸保存为图片进行下一步的处理。

    这边所做的处理:检测人脸-》resize为100x100-》直方图均衡-》取其中70x70区域(去掉头发等部分)。这里碰到一个问题:我使用相同代码,在debug下,没有漏检人脸,但是使用opencv2.0会有比较多的误检,而使用opencv2.1跑相同的代码则误检少了很多,和sample目录下的facedetect.exe有相同的效果,这个也没有进行深入研究,同学也碰到了相同的问题。

    接下来的就是提取主成分,如果使用PCA算法的话,主要有两种思路:

    1. 将所有人的人脸交给PCA提取主成分,然后对于每一幅新来的图片,进行主成分分析来降维,通过欧氏距离来判断两张脸的差异度。

    2. 这次是将一个人的同张人脸交给PCA提取主成分,然后对于每一幅新来的图片,同样先主成分分析来降维,然后反向映射回原来的图片,将重构后的图片与原图进行比较,如果差异较小说明是一张脸,差异较大说明是不同的脸。

    我在程序中采用了第1种方法,分析出来的主成分称之为特征脸,每张脸降维后可以进行比较,这里我就手动进行最简单的分类,算出自己的几张脸的中心,然后将其他脸与之比较,大于一个阈值则认为是不同的脸。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值