最近一直想做一个人脸识别登陆的demo,正在在网上看到了一个facenet的例子,使用python实现,但是来非常简单,仅仅是封装了tensorflow的过程,在这个基础之上,我进行了html的前台封装,方便大家引入到自己的项目中。
FaceNet:
FaceNet的思路是将人脸图像编码成128维的向量,然后用这128维向量来代表一个人。这就类似于我们的身份证号码,每一个人都有唯一的一个号码。这样,在做人脸验证的时候,我们只要将人脸编码到128维向量,然后和已有的向量做对比,两个向量足够接近,就可以说明这是同一个人。所以人脸识别的问题就转化为如何将人脸图片编码到128维的向量。这里就是使用了深度学习技术。通过卷积神经网络,提取人脸图片的特征,然后通过大量的数据进行训练,最终得到128维的向量。
如果大家对这个部分已经有所了解,可以直接去git上clone我的代码运行,并附有详细的安装启动过程。
https://github.com/xvshu/face_login
主要思路:
利用facenet实现检测图片中的人脸,将识别到的人脸向量存入数据库,此外利用post提交一个新图片(也可以提交一个图片地址,参考face_recognition_api.py文件中get_url_imgae函数自行修改),返回数据库中相似的人脸的信息
算法主要分为2个步骤
1.提取图片中的人脸 ,并保存到临时目录中
2.将人脸图片转换为128维的向量 &#x