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实现检测图片中的人脸,将识别到的人脸向量存入数据库

相关内容

热门资讯

美国一货运列车脱轨 一节装载熔...   据央视记者消息,当地时间12月30日清晨,一列隶属于美国铁路运输公司CSX的货运列车在美国肯塔基...
战败八十年,日本仍未算清历史账...   日本不应把高市首相引发的对立当作投机资本,而应借此契机正视历史,认真思考自身在地区安全中所肩负的...
中国经济样本观察·“镇”了不起...   新华社福州12月29日电(记者周义)“天生雾,雾生露,露生耳。”银耳,作为“菌中之冠”,因其晶莹...
国家教育大数据中心上线 打破“...   央视网消息:教育部12月30日举行新闻发布会,发布会上相关负责人介绍,作为国家级教育“数据枢纽”...
高质量发展潮经济|新业态激发消...   今年的中央经济工作会议提出“深入实施提振消费专项行动”。临近岁末,上海的消费市场提前升温,各大商...
“两新”政策优化,为扩内需注入...   备受期待的2026年“国补”来了。  中央经济工作会议明确定调,“坚持内需主导,建设强大国内市场...
钟华论:山一程,水一程,逐梦向...   当新年的曙光照耀大地,我们又迎来新的出发。  回望2025年,在以习近平同志为核心的党中央坚强领...
理响中国・烽火丹心丨这一年,我...   八十年时光流转  烽火渐远  但革命先辈留给我们的记忆历久弥新  今年是中国人民抗日战争暨世界反...
“全球好感度”提升,中国发展的...   世界如何看待中国?  “中国体验”中有答案。俄罗斯博主凯特穿着旗袍,在上海老街拍照时,听到一段她...
年终特稿|2025,以中国方案...   新华社北京12月30日电(记者叶书宏 谢彬彬 朱婉君)2025年即将翻过最后一页,这是百年变局加...