# retinaface-facenet
## 相关项目
- 前端模块 [meeting-face](https://github.com/saiGou-14H/meeting-face)
- 后端模块 [FaceSystem](https://github.com/saiGou-14H/FaceSystem)
## 项目简介
系统采用静默活体检测,样本数据集采用开源的活体检测数据集CASIA-FASD,人脸检测采用Wider Face数据集进行训练,包含32,203张图片,总共标注393,703个人脸数据。在模型预训练阶段,采用mobilefacenet网络与ArcFace损失函数相结合的方式在数据集CISIA-WebFace(包含上万个人共计约44万张图像)上进行初训练120代,后采用OpenCV图像处理技术对数据集进行清洗再训练30代。人脸识别采用CISIA-WebFace数据集进行训练,包含上10575个人共计约452960张图像。最终模型在LFW数据集上进行测试得到了99.8%的准确率。前后端通过WebSocket协议通信进行数据实时交互,实现了线上线下参会人员管理和人脸识别会议签到。
**数据集**
- 人脸检测数据集 [Wider Face](http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/WiderFace_Results.html)
- 人脸识别数据集 [CISIA-WebFace](https://pan.baidu.com/s/1SV-4eS74i7oGlpZ1C-ozIw?pwd=8888)
**人脸算法**
- 检测算法 [retinaface](https://github.com/serengil/retinaface)
- 识别算法 [facenet](https://github.com/davidsandberg/facenet)
## 项目实现
人脸图片可通过URL链接或者base64图片编码格式进行传输,将解析出来的人脸图片传进人脸检测模型进行人脸检测,再进人脸对齐截取,之后吧截取后的人脸传入facenet网络进行预测,得到人脸的128位编码再与face_encodings_default.npy中的人脸进行比较并且从中获取人脸用户信息,返回人脸距离最小并且大于识别阈值的人脸用户名字与用户ID。
人脸识别端采用Python编写,使用Flask封装成人脸识别对应功能接口,对请求进行数据处理,然后返回给Java后端。
## 基于OpenCV图像预处理技术
基于深度学习的人脸识别方法很大程度上克服了传统方法对光照以及面部表情敏感的问题,但现实应用场景中由于光线影响造成的面部图像过暗或者面部光照分布不均很大程度上影响了人脸识别的准确率,因此在摄像头采集的人脸图像送入人脸检测网络前需要对图像进行预处理,这样对后续的人脸检测以及识别有很大的帮助。
图像直方图常用来描述图像中的亮度分布情况,其中横坐标表示单通道中的像素值,纵坐标表示图像中对应像素值的个数,直方图均衡化的目的是通过调节图像直方图的均衡分布来增强图像的对比度。 现实图像采集场景中,由于光照的影响,经常会发生直方图不均匀造成的面部区域过亮或过暗的情况,对后期的特征提取以及特征比对造成影响。一般情况直方图针对的是单通道灰度图像,由于本系统通过摄像头网络采集到的图片为RGB三通道图像,因此图像预处理中将对三个通道分别进行直方图均衡化。首先对采集图像的平均亮度进行统计,与设定的阈值进行对比,对未达到阈值的图像进行直方图均衡化处理,最后将处理后的图像送入人脸检测网络。 直方图表示数字图像中每一个像素值出现频率的统计关系,直方图均衡化实质上是对图像像素进行的非线性拉伸,重新分配每个单元的像素值,使的一定灰度范围内每个像素值的数目大致相等。下面展示了图像直方图均衡化前后的对比,可以明显看出,处理后的面部图像特征更加的清晰。
### 原始图片
![原始图片1](https://github.com/saiGou-14H/save-image/blob/main/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E4%BC%9A%E8%AE%AE%E7%AD%BE%E5%88%B0%E7%B3%BB%E7%BB%9F/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%A8%A1%E5%9D%97/%E5%8E%9F%E5%A7%8B%E6%9A%97%E5%9B%BE.png)
![原始图片2](https://github.com/saiGou-14H/save-image/blob/main/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E4%BC%9A%E8%AE%AE%E7%AD%BE%E5%88%B0%E7%B3%BB%E7%BB%9F/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%A8%A1%E5%9D%97/%E5%8E%9F%E5%A7%8B%E5%9B%BE%E7%89%87%E8%BF%87%E6%9B%9D.png)
### 直方图均衡化
![直方图均衡化后1](https://github.com/saiGou-14H/save-image/blob/main/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E4%BC%9A%E8%AE%AE%E7%AD%BE%E5%88%B0%E7%B3%BB%E7%BB%9F/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%A8%A1%E5%9D%97/%E5%8E%9F%E5%A7%8B%E6%9A%97%E5%9B%BE%E7%9B%B4%E6%96%B9%E5%9B%BE%E5%9D%87%E8%A1%A1%E5%8C%96%E5%90%8E.png)
![直方图均衡化后2](https://github.com/saiGou-14H/save-image/blob/main/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E4%BC%9A%E8%AE%AE%E7%AD%BE%E5%88%B0%E7%B3%BB%E7%BB%9F/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%A8%A1%E5%9D%97/%E5%8E%9F%E5%A7%8B%E5%9B%BE%E7%89%87%E8%BF%87%E6%9B%9D%E7%9B%B4%E6%96%B9%E5%9B%BE%E5%9D%87%E8%A1%A1%E5%8C%96%E5%A4%84%E7%90%86%E5%90%8E.png)
## 动态更新人脸库
每个用户的人脸库容量为十张图片,后台对识别成功并且确认为当前人脸的个人已有人脸信息进行动态更新,当库满时再次更新时后端会剃除达标率最低的一张人脸。
识别时:
![识别时](https://github.com/saiGou-14H/save-image/blob/main/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E4%BC%9A%E8%AE%AE%E7%AD%BE%E5%88%B0%E7%B3%BB%E7%BB%9F/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%A8%A1%E5%9D%97/%E4%BA%BA%E8%84%B8%E5%BA%93%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B01.png)
识别后:
![识别后](https://github.com/saiGou-14H/save-image/blob/main/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E4%BC%9A%E8%AE%AE%E7%AD%BE%E5%88%B0%E7%B3%BB%E7%BB%9F/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%A8%A1%E5%9D%97/%E4%BA%BA%E8%84%B8%E5%BA%93%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B02.png)
以上例子中识别成功后在该用户人脸库达标率达到80%(大于设置阈值70%),剔除人脸库中与闸机识别成功人脸欧氏距离最大的一个该用户人脸信息,添加闸机识别时的人脸,对该用户人脸库进行动态更新。
通过设置指定阈值动态更新人脸库操作,让用户的人脸信息可靠地动态更新,进而提升人脸识别的准确性。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于Python+Flask(retinaface人脸检测+facenet人脸识别)源码+部署文档+全部数据资料 高分项目基于Python+Flask(retinaface人脸检测+facenet人脸识别)源码+部署文档+全部数据资料 高分项目 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Python+Flask(retinaface人脸检测+facenet人脸识别)源码+部署文档+全部数据资料 高分项目.zip (88个子文件)
retinaface-facenet-main
__init__.py 0B
dockerfile 215B
app
__init__.py 0B
face_data
face_encodings_default.npy 280B
app.py 368B
api
__init__.py 0B
Model.py 2KB
Face.py 1KB
__pycache__
Face.cpython-39.pyc 1KB
Model.cpython-39.pyc 2KB
__init__.cpython-39.pyc 141B
Model.cpython-37.pyc 2KB
Face.cpython-37.pyc 1KB
__init__.cpython-37.pyc 141B
utils
utils.py 5KB
__init__.py 0B
__pycache__
__init__.cpython-37.pyc 143B
utils.cpython-37.pyc 4KB
__pycache__
__init__.cpython-39.pyc 137B
app.cpython-37.pyc 644B
__init__.cpython-37.pyc 137B
app.cpython-39.pyc 652B
myface
__init__.py 0B
tools
utils.py 14KB
__init__.py 0B
anchors.py 2KB
__pycache__
__init__.cpython-37.pyc 150B
utils.cpython-37.pyc 10KB
config.cpython-37.pyc 424B
anchors.cpython-37.pyc 2KB
config.py 302B
face_video.py 3KB
predict_arcface.py 2KB
predict.py 650B
retinaface.py 16KB
nets
__init__.py 0B
retinaface.py 5KB
mobilenet025.py 3KB
mobilefacenet.py 3KB
__pycache__
retinaface.cpython-37.pyc 4KB
mobilefacenet.cpython-37.pyc 3KB
mobilenet025.cpython-37.pyc 2KB
__init__.cpython-37.pyc 149B
arcface.cpython-37.pyc 2KB
arcface.py 2KB
model_data
best.h5 4.47MB
507.h5 9.56MB
my-best.h5 2.1MB
silent.h5 3.53MB
best-weight.h5 9.56MB
200.h5 9.56MB
my-best-weight.h5 2.02MB
face_test.py 2KB
__pycache__
retinaface.cpython-37.pyc 10KB
__init__.cpython-39.pyc 144B
__init__.cpython-37.pyc 144B
arcface.cpython-37.pyc 3KB
retinaface.cpython-39.pyc 8KB
arcface.py 3KB
encoding.py 225B
read_model.py 347B
config
__init__.py 0B
secure.py 0B
setting.py 0B
__pycache__
__init__.cpython-39.pyc 144B
setting.cpython-37.pyc 143B
__init__.cpython-37.pyc 144B
secure.cpython-39.pyc 142B
secure.cpython-37.pyc 142B
setting.cpython-39.pyc 143B
readme.md 6KB
.idea
.name 9B
MyfaceApp.iml 623B
vcs.xml 167B
misc.xml 193B
inspectionProfiles
Project_Default.xml 2KB
profiles_settings.xml 174B
modules.xml 270B
.gitignore 182B
requirements.txt 199B
gunicorn.conf.py 209B
__pycache__
MyfaceApp.cpython-39.pyc 316B
__init__.cpython-39.pyc 133B
__init__.cpython-37.pyc 133B
MyfaceApp.cpython-37.pyc 326B
MyfaceApp.py 170B
Flask系统部署文档.md 3KB
171265889347208773632.zip 416B
共 88 条
- 1
资源评论
不走小道
- 粉丝: 3237
- 资源: 5112
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功