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