OpenCV系列教程(八)人脸识别
一 人脸识别
1 EigenFace 介绍
EigenFace 在人脸识别历史上应该是具有里程碑式意义的,其被认为是第一种有效的人脸识别 算法。1987 年 Sirovich and Kirby 为了减少人脸图像的表示采用了 PCA(主成分分析)的方法进行降维,1991 年 Matthew Turk 和 Alex Pentland 首次将 PCA 应用于人脸识别,即将原始图像投影到特征空间,得到一系列降维图像,取其主成份表示人脸,因其主成份中就包含人脸的形状,估称EigenFace 为“特征脸”。EigenFace 是一种基于统计特征的方法,将人脸图像视为随机向量,并用统计方法辨别不同人脸特征模式。EigenFace 的基本思想是,从统计的观点,寻找人脸图像分布的基本元素,即人脸图像样本集协方差矩阵的特征向量,以此近似的表征人脸图像。具体过程如下:
下面是从第一幅原始图像,原图和每隔 15 个特征向量进行重建后的效果图,很明显随着引入进来的特征向量越来越多,重建后的效果也越来越接近原图:
EigenFace 的工作流程如下:
2 人脸识别算法对比
前一节主要介绍了 eigenFace,下面再简单介绍两种其它的识别算法:
一、FisherFace
FisherFace 是一种基于 LDA(全称 Linear Discriminant Analysis, 线性判别分析)的人脸识别算法,而 LDA 是 Ronald Fisher 于 1993 年提出来的,而 eigenFace 是基于 PCA 实现的,LDA 和 PCA相同的地方是,都有利用特征值排序找到主成份的过程,但是不同的是 PCA 求的是协方差矩阵的特征值,而 LDA 是求的是一个更为复杂的矩阵的特征值。其中需要注意的是在求均值时,和 PCA 也是有所不同的,LDA 对每个类别样本求均值,而 PCA 是对所有样本数据求均值,来得到平均脸。采用Fisherface 方法对人脸进行识别对光照、人脸姿态的变化更不敏感,有助于提高识别效果,但左右偏转脑袋,尽量不要超过 15°,并对上下偏转比较敏感。
二、LBPH
LBPH 是利用局部二值模式直方图的人脸识别算法,LBP 是典型的二值特征描述子,所以相比前面EigenFace 和 FisherFace,更多的是整数计算,而整数计算的优势是可以通过各种逻辑操作来进行优化,因此效率较高。另外通常光照对图中的物件带来的影响是全局的,也就是说照片中的物体明暗程度,是往同一个方向改变的,可能是全部变亮或全部变暗,因此 LBP 特征对光照具有比较好的鲁棒性。
3 opencv 人脸识别案例分析
一、建议每个样本人物图像至少 8 张,拍摄样本图像时,注意头部尽量不要上下左右摆头。
二、编写样本描述文件 image.txt,主要描述样本图像路径和样本图像对应的标签,格式如下:
三、实现流程
加载样本图像
vectorimages;
vectorlabels;
images.push_back(imread(path, 0));
labels.push_back(num);
训练样本,并给样本打上标签
Ptrmodel = createEigenFaceRecognizer();
model->train(images, labels);
识别比对目标图像,将找到的样本对应标签返回
int label = model->predict(obj_img);
识别结果:
还可以通过上面最后介绍的两种识别算法进行测试,对比识别效果:
Ptrmodel = createFisherFaceRecognizer();
Ptrmodel = createLBPHFaceRecognizer();
猜你喜欢LIKE
相关推荐HOT
更多>>javabean是什么?
在Java中,JavaBean是一种符合特定规范的普通Java类,用于封装数据和提供操作数据的方法。JavaBean是一种重要的设计模式,用于实现面向对象编程...详情>>
2023-06-06 16:27:20java零基础入门到精通怎么学?
Java是一门广泛应用于企业级开发和大型应用程序的编程语言。要从零基础入门到精通Java,需要以下步骤和建议:1.学习基础知识:开始学习Java编程...详情>>
2023-06-05 17:02:00token是什么意思
Token是“令牌”的意思,它通常被用于身份验证和授权。在计算机系统中,当用户通过身份验证后,系统会颁发一个Token给用户,用于标识用户身份和...详情>>
2023-04-20 10:57:41虚函数的作用和实现原理
在父类中声明虚函数:在父类中通过在函数声明前加上 virtual 关键字来声明一个虚函数。需要注意的是,虚函数的使用需要谨慎,因为虚函数的调用...详情>>
2023-04-14 14:20:27