人脸识别系统设计 -- 基于J2判据和FLDA的多分类器的人脸识别系统设计论文报告(三)(文末附matlab)

目录

4 数据提取算法

4.1 数据提取目的

4.2 数据提取算法

5 交叉验证 

5.1 交叉验证原理 

A.交叉验证 

B.交叉验证的用途 

C.K-folds cross validation 

5.2 k折交叉验证结果分析 

6 程序演示界面 

总结 


4 数据提取算法

4.1 数据提取目的

        由于数据来源是参数矩阵和对应的文字特征说明,故需要数据提取将数据处理成想要的数据矩阵,可借用MATLAB, python或者Excel处理数据,方便后续处理。本节通过说明程序中的如何实现faceR,faceS,faceDR,faceDS数据的提取与整理。

4.2 数据提取算法

A.转文本变成列向量

        将faceDR全部复制转成txt文件,通过调用MATLAB中的textread函数生成列向量datafaceDR(22547 x 1)。  

B.查找hat对应的位置

        遍历datafaceDR有hat的行号,调用strfind函数。  

C.通过比较得出有hat的编号

        接着有hat的行号向上寻找30行内数字(除了人脸编号,其他都是文本),并通过比较选出最大的数字,也就是hat真正编号。其中30行只是预留,可以按照自己识别的特征数进行调整。

D.剔除hat和无效编号,得出无hat的编号

        有缺失数据(如1228, 1808, 4056, 4135, 4136, and 5004),建议将有缺失数据的人脸记录不予考虑。  

E.编号重新整理

        将1223编号整理成参数矩阵的行号,便于参数矩阵的整理。  

F.将hat和无hat的参数放进两个不同的数据

        将不同类的参数放进两个矩阵,并且生成一个矩阵(有hat放前面和无hat放后面),便于后续的特征提取和分类器分类。测试集也是执行以上相同操作。

5 交叉验证 

5.1 交叉验证原理 

A.交叉验证 

        交叉验证(Cross-Validation)可能是数据科学家在进行统计分析时最重要的技术之一,因为在实际中经常需要验证一个ML模型的稳定性--模型在新数据集上的泛化能力。它需要确保由数据集得到的ML模型已经获得数据集大部分正确的信息,并且不能包含太多噪声,换句话说,它的偏差和方差是较小的。本文将要介绍交叉验证的相关概念。

        交叉验证是一种模型的验证技术用于评估一个统计分析模型在独立数据集上的概括能力。主要用于在使用ML模型进行预测时,准确衡量一个模型在实际数据集上的效果。具体来说就是将整个数据集划分为若干部分,一部分用以训练模型、一部分用以测试最终模型的优劣、一部分验证模型结构和超参数。

        交叉验证的目标是确定一个原数据集的子集,去限制ML模型在训练阶段的一些问题,比如模型的过拟合、欠拟合等,同时提供了一种判断标准去衡量模型在独立数据集上的泛化能力。值得注意的是,数据集和测试集必须是独立同分布,不然反而会得到很槽糕的模型。

B.交叉验证的用途 

         交叉验证可以有效评估模型的质量。

         交叉验证可以有效选择在数据集上表现最好的模型。

         交叉验证可以有效避免过拟合和欠拟合。

⚫ 欠拟合(Underfitting)

        是指模型不能获取数据集的主要信息,在训练集及测试集上的表示都十分糟糕。

⚫ 过拟合(Overfitting)

        是指模型不仅获取了数据集的信息还提取了噪声数据的信息是的模型在训练集有非常好的表现但在测试集上的表现及其糟糕。 所以可以得出一个较为草率的结论:一个最佳的ML模型在训练集和测试集上都有较好的表现。 

C.K-folds cross validation 

        当没有足够的数据用于训练模型时,划分数据的一部分进行验证会导致得到模型欠拟合,减少训练集,会使模型丧失部分数据集中重要的特征或趋势,这会增加偏差导致的误差。因此,我们需要一种方法来提供样本集训练模型并且留一部分数据集用于验证模型,k折交叉验证(K-Fold)因此被提出。

        k折交叉验证在进行k次交叉验证之后,使用k次平均识别率作为整个模型的得分。每个数据在验证集中出现一次,并且在训练中出现k-1次。这将显著减少欠拟合,因为使用了数据集中的大多数的数据进行训练,同时也降低了过拟合的可能,因为也使用了大多数的数据进行模型的验证。

        当我们需要对一些小的数据集进行统计分析时,K-Fold是一个好的选择,在进行k次交叉验证时能获得足够多的模型的质量差异和不同的最佳参数。一般来说,经过长期的经验积累,我们选择或,以产生既不受过高偏差也不受过高偏差影响的测试误差估计。 

5.2 k折交叉验证结果分析 

        接下来是将faceR样本分别分为K=5,K=10进行交叉验证,由于帽子和眼镜的特征可能分布不均,故用性别作为交叉验证的识别对象。由于J2判据和FLDA的特征提取有些思路相似,故下面采用J2判据对各个分类器进行交叉验证。 

         由于交叉验证是一种模型的验证技术用于评估一个统计分析模型在独立数据集上的概括能力。主要用于在使用ML模型进行预测时,准确衡量一个模型在实际数据集上的效果。从上面的k折交叉验证结果看,能适合随机性越大的模型越好,故随机森林和决策树结果是最好的。

        那排除能适合随机性越大的分类器来看,其SVM和KNN的标准差相对较小,而且其平均准确率都属于几个分类器平均以上。故交叉验证的结果可知,随机森林和决策树的交叉验证结果是最好的,但如果分类器不设随机性时,属SVM和KNN。再结合前面运行时间来看,KNN分类器应属于与J2判据特征提取结合得最好的分类器,而且其适应能力更广泛。

6 程序演示界面 

        为了程序更容易操作运行,在完成上面的人脸识别的基础上,做了个小界面。界面如下所示

        其交叉验证中K=10,其中眼镜在交叉验证的时候会报错。这是因为faceR的数据分成10组测试时,由于在1878-2500中间,只有1878, 1940, 2286 ,2292,2456是有眼镜的;在第五组时,即2023-2223作为测试集进行交叉验证,但有上述可知,I=5第五组的测试集中都是全没戴眼镜,即作为空矩阵,故程序报错。这其实是跟样本分布有关,可以适当将样本进行调整再进行测试或者K改为5,保证每个交叉验证样本中有眼镜和没眼镜的数据。

总结 

        本文实现了对关于帽子的人脸识别系统设计基本要求,用有监督学习机制设计并实现模式识别方法,用于进行人脸面部特征识别。其特征选取算法为基于欧氏距离J2判据,分类器为SVM。用MATLAB作为编程实现人脸识别,最终识别率为96.34%。

        另外对传统SVM加入核函数进行了改进,不仅保持识别准确度高和稳定,而且其运行时间比传统的SVM快了近50倍。故后续SVM分类器的对比都是基于加入核函数后的SVM分类器作为对比。

        另外,还完成了对其他特征:戴眼镜(是、否),性别(男性、女性)做分类,采用了基于欧氏距离J2判据和FLDA的两种特征提取算法作对比,并利用分类器(包括SVM,随机森林,贝叶斯,集成方法,决策树,KNN,逻辑回归,最小距离分类器)进行人脸识别。最后用交叉验证的方法对分类器进行评估分析,得出随机森林,决策树,KNN是较为良好的分类。综合性能来说,KNN是属于最优的分类器。

        其中,在做性别的分类时出现识别率偏低情况。分析得知做性别的二分类对特征提取和分类器的要求要比戴帽子和眼镜的高很多,故其性别识别率会偏低一些。

参考文献 

[1] 赵丽红. 人脸检测和识别算法的研究与实现[D].东北大学,2006.

[2] 田海军. 基于支持向量机的人脸识别技术研究与实现[D].国防科学技术大学,2009.

[3] 杨国亮,李欢.改进的基于特征脸和欧氏距离的人脸识别方法[J].软件导刊,2010,9(03):168-170.

[4] 赵旻. 基于KL算法的人脸识别理论的研究及系统实现[D].四川大学,2004.

[5] 山世光. 人脸识别中若干关键问题的研究[D].中国科学院研究生院(计算技术研究所),2004.

[6] 杨健,杨静宇,叶晖.Fisher线性鉴别分析的理论研究及其应用[J].自动化学报,2003(04):481-493.

[7] 张燕昆,杜平,刘重庆.基于主元分析与支持向量机的人脸识别方法[J].上海交通大学学报,2002(06):884-886.

[8] 杨淑平. 人脸特征提取与识别算法研究[D].中南大学,2013.

[9] 张建明,杨忠,李巍.改进KNN-SVM的性别识别[J].计算机工程与应用,2009,45(04):177-179+224.

[10] 高文强. 基于贝叶斯网络的人脸表情识别算法研究[D].陕西科技大学,2019.

[11] 易军. 人脸识别中的特征提取与度量学习算法研究[D].北京邮电大学,2015.

[12] 唐京海,张有为.基于FLD特征提取的SVM人脸表情识别方法[J].计算机工程与应用,2006(11):10-12.

[13] 袁正海. 人脸识别系统及关键技术研究[D].南京邮电大学,2013.

[14] Noh Yung-Kyun and Zhang Byoung-Tak and Lee Daniel D. Generative Local Metric Learning for Nearest Neighbor Classification.[J]. IEEE transactions on pattern analysis and machine intelligence, 2018, 40(1) : 106-118.

[15] Shen Chunhua et al. Efficient dual approach to distance metric learning.[J]. IEEE transactions on neural networks and learning systems, 2014, 25(2) : 394-406.

[16] 李栋. 基于局部纹理特征融合的面部表情识别方法研究[D].吉林大学,2014. 

上一章:人脸识别系统设计 -- 基于J2判据和FLDA的多分类器的人脸识别系统设计论文报告(二)_对不起,我还只是小孩的博客-CSDN博客

matlab(所有组合包括KL,仅供学习参考):

链接:百度网盘 请输入提取码 
提取码:6666

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值