# 开发基于深度学习的人脸识别【考勤/签到】系统
###### tags:`學習紀錄`
[toc]
---
## Before Meeting
:::success
:::
[refer](https://blog.csdn.net/zhangbijun1230/article/details/81661461)
[refer]()
[refer]()
---
## Recent Paper
---
### 人脸识别
:::success
#### Abstracion
:::
:::info
#### Detail
- 人脸识别介绍
- 人脸识别技术是一项非接触式、用户友好、非配合型的计算机视觉识别技术。随着机器学习、深度学习等技术的发展,人脸识别的应用正日趋完善和成熟。本文将介绍人脸识别技术如何用于考勤/签到系统。
- 本文将主要从以下几个方面阐述:
- 平台环境需求
- 涉及的技术点
- 人脸识别系统流程
- 细节设计
- 平台环境需求
- 操作系统:Windows 64位
- 第三方库:OpenCV,Caffe,boost
- 开发语言:C++
- 数据库:MySQL
- 技术点
- adaboost算法和CNN用于人脸检测与定位;
- 随机森林算法/CNN用于人脸关键点标定;
- 卷积神经网络用于人脸特征提取;
- MFC用于设计系统操作界面;
- MySQL数据库用于管理人物-人脸特征数据库;
- Caffe框架用于上述环节中CNN模型的训练;
- 使用Caffe的C++接口进模型行部署和使用;
- 使用connector C++进行MySQL数据库的连接
- 系统流程
- 考勤系统主要包含两个操作:注册和实时识别记录。
- 实时识别记录是系统自动对来往人群进行人脸识别,并记录通行者的身份。
- 进行注册的流程如下:
- 开始注册?人脸检测特征提取插入数据库yes
- 实时识别的流程如下:
- 开始实时识别?人脸检测特征提取搜索数据库并记录身份yes
- 细节设计
- 人脸检测
- 使用OpenCV的人脸检测器进行人脸的初步检测,使用Caffe训练CNN网络进行人脸的二分类判定,将两部分合在一起完成人脸检测。此环节需注意根据应用场景调整参数,做到性能与召回率的平衡。
- 人脸关键点定位
- 获得面部关键点的目的是进行人脸的对齐和标准化。标准化的人脸输入可以获得更高的人脸识别精度。
- 人脸特征提取
- 人脸特征提取是根据上述标准化的人脸区域图块,提取出数字化的特征。即完成从RGB信息到数值特征的变换。此环节需要尽量使得同一个人物的不同人脸所提取到的特征尽可能相似,而不同人物的人脸所提取的特征尽可能相异。
- 模型的训练
- 人脸识别的CNN网络模型的训练采用CASIA-Webface数据库,具体训练方式参见我的这篇文章。训练模型的流程参考我的github项目。
- 本模型在LFW评测集上达到了接近97%的准确率。具备一定的实用性。
- 模型的部署
- 部署主要考虑Caffe在Windows平台的移植,官方的Caffe对Windows系统并不支持,为了使用Caffe的C++接口,我们需要使用Windows版本的Caffe,微软出了一个版本的Caffe,参考这里。
- MySQL数据库的使用
-
:::
:::warning
#### Conclusion
:::
[refer]()
---
:::success
#### Abstracion
:::
:::info
#### Detail
:::
:::warning
#### Conclusion
:::
[refer]()
---