之前用facenet做了一个人脸识别的Demo,所以在此记录一下。
但因为我的水平十分有限,疏漏之处请多见谅。
1,这个流程大致是先用mtcnn检测人脸位置,得到一个人脸的bounding box。
2,然后用opencv根据上一个bounding box把人脸裁剪出来,并对齐,因为实际裁剪出来的人脸,大的大,小的小(比如由于远近造成的人脸图片大小不一),但神经网络的输入是要统一大小的,比如96*96的图片,或者160*160的图片,所以所有人脸得对齐到统一图片大小上。如下图所示:
3,对齐之后把图片输入进facenet模型,会得到这个人脸的一个128位特征向量。
4,最后用训练好的SVM分类器对这个特征向量进行分类,得到这个人脸是谁的结果。
最后效果如下图:
代码地址:
https://github.com/Skyendless/FaceRecognitiongithub.com