Score
0
Watch 75 Star 190 Fork 64

爿臣戈王耑 / facenet_face_recognitionPython

Join us
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
利用facenet实现检测图片中的人脸,将识别到的人脸向量存入数据库,此外利用post提交一个新图片 返回数据库中相似的人脸的信息 spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

facenet_face_regonistant

利用facenet实现检测图片中的人脸,将识别到的人脸向量存入数据库,此外利用post提交一个新图片(也可以提交一个图片地址,参考face_recognition_api.py文件中get_url_imgae函数自行修改),返回数据库中相似的人脸的信息 算法主要分为2个步骤
1.提取图片中的人脸 ,并保存到临时目录中
2.将人脸图片转换为128维的向量 ,便于后续求人脸相似度

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

安装准备

安装python包

按照requirements.txt中的包全部安装即可(其中mysql-connector-python 我采用的yum install 安装的) 如下 tensorflow==1.2 scipy scikit-learn opencv-python h5py matplotlib Pillow requests psutil mysql-connector-python Werkzeug Flask Flask-HTTPAuth

提前建立数据库

建表语句再database.sql (需要提前建立数据库,名字自己定义,本项目数据库名为face_data) 数据库配置在face_mysql.py文件中 (第12行 配置数据库用户名、密码、地址、数据库地址 本案例配置如下

db = mysql.connector.connect(user='root', password='123456', host='127.0.0.1', database='face_data')

模型准备

本项目是根据facenet中提取关键的代码,将其进行封装使用 所以需要提交下载facenect提供的模型 模型地址 需要可访问谷歌

该模型现在保存在百度网盘中 密码:avbl 下载下来后按照models\facenet\20170512-110547 这个目录结构存放即可 百度网盘链接 : 链接:http://pan.baidu.com/s/1i4YhAdB 密码:avbl

如何使用?

首先在服务器上 执行

python   face_recognition_api.py  

访问地址是XXXXXX:8088 这个可以配置 (文件face_recognition_api.py 最后代码中有注释)

模拟post请求,如图所示

本项目演示案例是利用谷歌浏览器插件“Postman”进行模拟的post请求 模拟post请求,如图所示 图中依次是插入、查询时的场景

插入示意图

查询示意图1

查询示意图1

处理文件下的图片提取人脸图片问题

处理一个文件夹下的所有图片,将人脸信息提取出来并保存到单独的文件夹下 执行

python   face_recognition_savepic.py  

修改文件参数
1.images_path:要处理的图片文件夹路径
2.modelpath: 模型存放路径
3.out_path : 将每个图片中每个人脸转换为128维向量保存到json文件中

识别图像中的人脸并保存图片案例

例如下图是将test.jpg 和test2.jpg识别人脸 在test.jpg 识别到一个人脸 保存为test_0.jpg 在test2.jpg 识别到2个人脸 保存为test2_0.jpg test2_1.jpg

原图 test.jpg

原图

识别结果 test_0.jpg

识别人脸图

原图 test2.jpg

原图

识别结果 test2_0.jpg test2_0.jpg

识别人脸图1 识别人脸图2

Comments ( 29 )

Sign in for post a comment

Python
1
https://gitee.com/PanChenGeWang/facenet_face_regonistant.git
git@gitee.com:PanChenGeWang/facenet_face_regonistant.git
PanChenGeWang
facenet_face_regonistant
facenet_face_recognition
master

Help Search

182353 aa51c838 1899542 205747 347fc4a1 1899542