Python实现检测图片中的人脸,将识别到的人脸向量存入数据库,并实现提交的图片的人脸信息与入库的人脸信息进行比对
创始人
2024-05-08 17:23:36
0

facenet_face_regonistant

完整代码下载地址:Python实现检测图片中的人脸,将识别到的人脸向量存入数据库
利用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请求,如图所示
图中依次是插入、查询时的场景

  • 插入请求地址为http://127.0.0.1:8088/face/insert
  • 查询请求地址为http://127.0.0.1:8088/face/query
    请求参数如图所示 文本字段有uid ugroup 文件字段是imagefile

插入示意图

查询示意图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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A9mbgVFa-1672991897508)(null)]

识别结果 test2_0.jpg test2_0.jpg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nq716Lny-1672991897558)(null)]
识别人脸图2

完整代码下载地址:Python实现检测图片中的人脸,将识别到的人脸向量存入数据库

相关内容

热门资讯

奋进“十五五”|奋力续写“两大...   制图:彭章霞  国泰民安是人民群众最基本、最普遍的愿望。“十五五”规划建议将“坚持统筹发展和安全...
新华社经济随笔:一杯咖啡里的中...   一杯咖啡,能勾勒出怎样的经济图景?  从云南绵延百万余亩的咖啡种植园,到上海梧桐树下香气氤氲的创...
美防长宣布启动“南方之矛”行动... 当地时间11月13日,美国国防部长赫格塞思在社交媒体平台上宣布启动“南方之矛”行动(Southern...
乌首都传出密集爆炸声 基辅市长...   当地时间14日,乌克兰首都基辅市市长克利奇科通报称,基辅市防空系统正在运作,俄军对基辅市发动大规...
南非总统:缺席二十国集团峰会是...   南非总统拉马福萨12日在南非立法首都开普敦表示,美国缺席即将举行的二十国集团约翰内斯堡峰会是“他...
境外间谍伪装“完美男友”接近我...   “他就是我的理想型,我以为爱情照进了我的现实,但没有想到的是……”小宁坐在审讯椅上,手里攥着沾满...
实测25款常用App广告情况:... 红星资本局11月13日消息,近来,有网友吐槽称,多款App内的广告容易跳转至第三方。11月中旬,红星...
中国有约|探访陶寺遗址博物馆:...   11月12日,“中国有约·相约山西”2025年国际媒体采访团走进山西陶寺遗址博物馆。陶寺遗址博物...
全运会观察之一:湾区“同城化”...   连日参与十五运会采访,辗转于大湾区各个城市,每次都是到了高铁站再买票,随买随走。敢这么“干净利索...
舌尖上的广东!十五运会广州主媒...   狮头鹅、蚝仔烙、达濠鱼丸、湿炒粿条……地道汕头美食应有尽有,连厨师都是汕头“空降”而来!11月1...