人脸识别算法主要包含三个模块
(1)人脸检测(Face Detection):确定人脸在图像中的大小和位置,也就是在图像中预测anchor
(2)人脸对齐(Face Alignment):他的原理是找到人脸的若干个关键点(基准点,如,眼角,鼻尖,嘴角等),然后利用这些关键点通过相似变换(Similarity Transform,旋转,缩放和平移),将人脸尽可能变换到标准人脸。
(3)人脸特征表征(Feature Representation):它接受的是标准化的人脸图像,通过特征建模得到向量化的人脸特征,最后通过分类器得到识别的结果。关键点是得到不同人脸的有区分度的特征,比如:鼻子,嘴巴,眼睛等。
代码中的main函数就相当于是test文件,用于输入数据,输出结果
代码返回的是图像中人脸的特征向量(多少个人脸就返回多少个向量)
实现识别功能的话,先把数据库中的人脸图像跑一遍,得到特征向量
再将待测试的图片跑一遍,得到待测试的特征向量,把这两组特征向量计算余弦距离,距离小的即为相似
网络框架使用resnet,nms部分使用fast rcnn代码