人脸识别原理与模型
基于深度学习的人脸识别基本上分为两步完成,第一步是人脸检测与对齐;第二步是人脸特征提取与比对;在第一步中人脸检测与landmark检测,实现人脸对齐,对齐又分为2D/3D对齐;第二步中提取人脸特征数据,从128维到024维都有可能,获取特征之后识别分为两种模型,一种是1:1称为验证,另外一种1:N称为鉴别。整个流程图示如下:
OpenCV4.5.4发布中包含了一个新的人脸识别算法支持,算法来自北邮邓伟洪教授团队贡献,SFace模型大小为37MB,属于轻量级的人脸识别模型,输出特征维度是128维。该模型采用一种新损失功能,如下所示:
SFace的损失函数通过在超球面流形上增加类内和类间约束以增大类间距离而减小类内距离,从而提升模型稳定性与泛化性能,实现更高精度的人脸识别。模型下载之后可以查看输入,图示如下:
要求输入的人脸大小为112x112,输出是128维人脸特征向量。
人脸识别函数支持与演示
OpenCV4.5.4中有个新的类FaceRecognizerSF,它有几个特别有用的方法分别实现了人脸对齐、特征提取、人脸特征匹配(支持余弦相似与L2距离),这些函数分别如下:
小编最终把人脸检测跟识别都放到了一个类中,封装成了一个人脸检测与识别的通用类,支持人脸注册、检测、识别、FPS显示功能。其中识别的方法如下:
代码演示部分是我基于QT5+OpenCV4.5.4完成的,主要功能包括人脸注册、人脸比对、支持1:N与1:1两种模型、支持显示设置、支持图象与视频实时识别。从注册到识别演示如下:
选择视频,开始识别(可以看到识别结果跟注册的一致):
其实本人自己也注册,测试了一波,运行图示如下:
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.bhha.com.cn/news/11393.html