人脸识别系统(人脸识别、前后端交互、Python项目)
基于Flask、Face_Recognition的人脸识别系统
项目介绍
基于flask、face_recognition的人脸识别系统。
本项目采用Face_Recognition库内置的ResNet-34预训练模型,其已对LFW公开数据集进行预训练而得到的模型。利用ResNet-34预训练模型,可使用少量已知人脸库图片进行快速加载训练,从而实现对摄像头视频流中每帧人脸或上传单张人脸图片准确比对识别。
项目采用前后端分离的技术框架,基于 Flask 轻量级 Web 框架搭建后端服务,结合 HTML/CSS/JavaScript 实现前端用户界面。
人脸识别原理
- ①基于方向梯度直方图(HOG)算法进行人脸检测;
- ②通过卷积神经网络(CNN)提取人脸特征生成128维特征向量;
- ③最后,计算特征向量与已知人脸库中特征向量的欧氏距离与控制阈值进行比对识别。
在检测阶段,HOG算法能够准确地从图像中定位出人脸区域;在特征提取阶段,CNN能够学习到人脸的高层次特征;在比对识别阶段,通过计算欧氏距离并与阈值比较,实现人脸的准确识别。
主要功能
- 功能1:实时识别
调用摄像头实时识别画面人脸并标注(可以显示中文汉字)
- 功能2:图片识别
上传本地图片与已知人脸库比对,输出相似度最高的姓名。
- 功能3:已知人脸库展示
显示已知人脸库中所有照片。
- 功能4:登录注册
使用 Flask 的 session 来管理用户登录状态。在导航栏中根据登录状态显示不同的内容。
环境说明
参考以下环境(已跑通),可按顺序安装库的版本:
Windows10及以上(操作系统)
python 3.9.12
numpy==1.22.4
pillow==9.0.1
flask==3.0.3
cmake==3.31.2
dlib==19.22.1
face-recognition==1.2.3
opencv-python==4.4.0.46
目录说明
- fonts(文件夹):
存放中文字体
-
static(文件夹):存放静态资源
-
background_img(文件夹):
用于:存放网页背景图
-
known_faces_database(文件夹)
用于:存放已知人脸照片(人头库)
-
uploads(文件夹):
用于:存放上传的图片识别
-
templates(文件夹):
用于:存放静态HTML网页
-
start.py:
功能说明:加载已有人脸数据库图片的编码
-
-
start.py
① 项目启动入口,右键运行该脚本,启动flask后端服务,浏览器访问:127.0.0.1:5000即可打开该系统。
② 项目的核心功能代码在此处实现(人脸实时识别、单张图片上传识别、已知人脸库预览、登陆注册、路由访问等)
视频演示(效果图)
基于Flask、Face_Recognition的人脸识别系统