TensorFlow - FaceNet人脸登陆 (Web )小例子


最近一直想做一个人脸识别登陆的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维的向量 ,便于后续求人脸相似度

项目主要分为3个步骤<br/>
1.提交post请求,将uid ugroup pic提交,进行人脸信息保存操作
2.收到请求后将pic进行处理解析为128维向量保存,并跟uid和ugroup保存入库 ,返回数据库插入成功的id
3.提交post请求,将ugroup pic提交人脸查询请求,意思为再ugroup中查看与图片pic相似的人脸
4.收到请求后,处理图片解析图片中所有的人脸,进行按库查询,然后与该图片中所有人脸相似的uid和距离(相似度距离)

实现结果:


注册界面

登陆界面

猜你喜欢

转载自blog.csdn.net/xvshu/article/details/81102203