网站首页 > 技术教程 正文
前文
书接上文,在之前的python3之人脸识别教程中,简单说明了如何通过开源的face_recognition库进行人脸识别。但是该程序不具备扩展性,每次运行都要重新载入图片,并且新增known图片也不方便。
为了解决这个问题,这篇文章会在上篇文章的基础上,构建一个提供既能人脸识别又能动态扩展的在线网站。
思路
为了解决前面提出的问题,需要解决以下2个具体的问题。
- 提供一个web服务,这里选择flask。如何构建简单的flask服务器
- 提供一个存储face_encoding的存储服务,这里简单点直接选择sqlite3。
Python代码
facerec_web.py中启动了一个flask的web服务器。
在这个服务器中提供了3个服务。
第一个upload_page方法,是提供一个主页面。
第二个upload_image方法,是上传一张图片,并返回图片里面的人是谁。
第三个upload_new_image方法,是上传一张图片,并告诉服务器这个人是谁。
DB.py中维护了一个sqlite3的数据库,并对外提供insert和find操作。
用来保存face_encoding和其对应的name。
这个地方需要注意的是face_recognition库中返回的face_encoding是numpy库中的ndarray类型。所以我们在存入数据库的时候需要特殊处理一下bytes(face_encoding)将其转化成bytes类型,同时在取出来的时候要np.ndarray(shape=(128,), dtype=float, buffer=row[1])将其转回ndarray类型。
同时我们也要修改一下上篇文章中的facerec.py文件。引入DB模块,在其初始化的时候,self.known_faces, self.known_names = self.db.find()
从数据库中载入已经存在的人脸信息,并且在load_face方法中加入self.db.insert(known_name,face_encoding)将新的信息存入数控库。
引入必要的库
代码写完了,但是运行之前别忘了添加必要的库。
pip install flask
pip install sqlite3
pip install numpy
启动Web服务器
运行命令:
python facerec_web.py
访问服务器
浏览器打开连接:http://localhost:5001/
上面的部分是猜,可以选择一张人脸图片上传,上传之后会返回这个人是谁。
比如我上传一张奥巴马的图片:
这时返回:
因为我们现在的数据库还是空的,所以返回了unknown_person。
那么我们先上传一张obama的图片,并填写照片里的人的名字叫obama。
这时的返回时:
那么我们在上传之前的第一张照片unknown-obama。
这时的返回就变成了:
我们的在线人脸识别服务就这样提供出去了。
并且我们可以通过upload_new_image方法动态的去扩展该程序能识别的人脸。
猜你喜欢
- 2024-10-14 Blippar新增面部识别功能“halos”
- 2024-10-14 人脸识别“签到”即可“巡河” 人脸识别签到小程序
- 2024-10-14 Qt编写的项目作品24-人脸识别综合应用(在线+离线+嵌入式)
- 2024-10-14 告诉你如何不到一秒完成离线人脸识别,还有防欺骗功能
- 2024-10-14 在线考试中启用人脸识别功能,考试防作弊的又一利器
- 2024-10-14 看病也“刷脸”啦!华西第二医院引入人脸识别技术
- 2024-10-14 考试云怎样创建一场支持人脸识别核验身份的在线考试?
- 2024-10-14 再模糊也看得清!德国研发全新面部识别算法
- 2024-10-14 在线人像大规模检索API使用说明 人像检测平台
- 2024-10-14 开发者为Meta智能眼镜添加AI面部识别功能,可实时识别陌生人
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)