在深度学习盛行的大趋势下,还在开发传统的人脸识别方法,显得有些无奈;但是在服务器问题解决之前,我觉得还是有必要了解并实现一下的。
实现如题的人脸识别主要分为五部:
1、CLM截取人脸关键点:用于进行人脸标定;同时也用于测试论文《Blessing of Dimensionality: High-dimensional Feature and Its Efficient Compression for Face Verification》。
2、Multi-LBP:具体主要参考论文《Multi-scale local binary pattern histograms for face recognition》,实现的时候记得区分多尺度LBP和多分辨率LBP;我这里用的是多尺度LBP,多分辨率的没有测试,效果应该差不多。
3、PCA的训练:首先跟人眼位置截取人脸区域,收集人脸数据;然后opencv自带的PCA进行训练;保存特征均值和特征向量。
4、LDA训练:测试为收集18个人,每个人20张图像,共360张图像;用PCA降维后直接送入LDA进行分类学习;LDA来自Opencv。
5、余弦距离进行相似度判断。
测试结果:
1、用LBP高维数据进行测试,可以区分,但是同一人的相似度比非同一人的相似度高出范围在0-0.3之间。
2、用PCA降维后结果和LBP差不多
3、用LDA映射后,部分数据效果比较理想,对于证件验证也比较不错,但是会出现错误。(可能学习的样本太少,类数太少)
4、《Blessing of Dimensionality: High-dimensional Feature and Its Efficient Compression for Face Verification》的效果比MLBP原始特征得到的比对结果好点,不过证件比对这块差不多。
总结:该方法速度很快,效果有待提高,后续会加大样本,同时改进验证策略,看效果是否会提高。