-
浅谈
Openv
中人
脸识别类
FaceRecognizer
opencv2.4
版本中封装了可用于人脸识别的类
FaceRecognize
r
,
其对应代码在动态链接库
open
cv_
中
(
我用的是
< br>opencv2.4.9
版本
)
,这个动态链接库在
opencv
安装目录
下可以找到,要想使用
FaceRecognizer
,首
先要保证上述动态链接库正确配置。在此关于
opencv
的配
置问题多说几句,
就是建议大家尽量使用
VS2010
及以上版本来配置
opencv
,
因
为在最新的
opencv2.4.9
版本中已经添加了对
vs2010
及以上版本的自动
支持,无需再用
CMaker
进
行
p>
编
译
了
,
配
置
简
单
可
靠
。
我
< br>之
前
用
的
是
VS2008
版
本
,
在
自
己
编
译
opencv_
这个库时总提
示编译出错,如果你也遇到了这个问题,建议你换装
vs2010
版本吧,至于具体如何配置网上有很多教程,这里不再赘述。
FaceRecognizer
这个类目前包
含三种人脸识<
/p>
别方法:
基于
PCA
变
换的人脸
识别
(EigenFa
ceRecognizer)
、基于
Fisher
变换的人脸识别
(FisherFaceRecognizer)
、基于局部二值模
式的人脸识别
(LBPHFac
eRecognizer)
。
对于像我这样的人脸识别初学者,
对人脸识别理论了解
得不是很透彻,但并不影响对函数的使用,
下面就
EigenFaceRecognizer
来详细的谈一
下
opencv
人脸识别的实现。
<
/p>
首先简单说一下
PCA
变换原理。在人脸
识别过程中,一般把图片看成是向量进行处理,
高等数学中我们接触的一般都是二维或三
维向量,
向量的维数是根据组成向量的变量个数来
定的,例如<
/p>
X
?
?
a
,b
?
?
就是一个二
维向量,因为其有
a
,
b
两个参量。而在将一幅图像抽象
为一个向量的过程中,
我们把图像的每个像素定为一维,
对于一幅
92
?
112
的普通图像来说,
最后抽象为一个
92
?
112
?
10304
维的高维向量,
< br>如此庞大的维数对于后续图像计算式来说
相当困难,因此有必要在尽可能不丢失重
要信息的前提下降低图像维数,
PCA
就是降低图像
维数的一种方法。
图像在经过
PCA
变换之后,
可以保留任意数量的对图像特征贡献较大的维
数分量,
也就是你可以选择降维到
30
维或者
90
维或者其他,
当然最后
保留的维数越多,
图
像丢失的信息越少,
但计算越复杂。
至于具体
PCA
变换
的原理,网上有很多好的博客,
也有
很多专业论文来论证,有兴
趣的可以查阅。
下面来谈一谈具体如何使用这个人脸识别类。
首先需要一个人脸库,
因为你想让计算机
识别人脸,
首先得让计算机知道不同的人长什么样不同的脸。
网上有很多现成的人脸数据库,
我在做实验时选用了
ORL
p>
数据库。
数据库中包含
40
个人的人脸图像,
每人十张,
共
400
张,
有
bmp
和
png
两种格式,大小均为
92
?
112
。数据库中有光照变化<
/p>
(
中心光照、左侧光照、
右侧光照
)
、表情变化
(
开心
、正常、悲伤、瞌睡、惊讶、眨眼
)
、眼镜
(
戴眼镜或者没戴
)
,且
包含男性图片和女性图片,
比较适合做人脸识别的仿真实验。
唯一的不足就是照片中全部为
外国人,
如果你想开
发出一套人脸识别系统在国内用,
建议还是费点功夫自己建一个合适的
< br>人脸数据库吧。
人脸库确定之后需要进行训练,即让计算机
“学习”这些人脸样本。
p>
这时面临的一个
问题就是如何把训练样本读进内存中。
opencv
手册中明确说明
EigenFaceR
ecognizer
的训练
函数的入口参数是一个图像容器,
容器中包含所有训练图像。
那么如何创建一个这样的容器
并把训练样本全部放进去呢?方法有很多,
我在实验中采用
CSV
文件读取方法。首先创建
一个包含所有文件路径名的
CSV
文件,也就是一个文
本文件。假设
ORL
数据库存放地址为:
“
E:ORL
”
;在
DOS
窗口下输入命令:
E:ORL>dir
/b/s *.bmp >
,执行成功后发现在
ORL
文件夹下出现一个文本文件
,里面内容如下<
/p>
(
分号后面的标签是人为添加的
)
:
E:;1
E:;1
E:;1
E:;1
E:;1
E:;1
E:;1
E:;1
E:;1
E:;1
E:;10
E:;10
E:;10
E:;10
E:;10
E:;10
E:;10
E:;10
E:;10
E:;10
CSV
文件创建成功后,
可以在程序中读取文件了,网上有一段比较好的
CSV
读取代码
,
如下所示:
-
-
-
-
-
-
-
-
-
上一篇:【优质】英语学术词汇表
下一篇:静止背景下的多目标追踪(附matlab程序)