# Face_Recognition
使用Opencv和Dlib实现基于视频的人脸识别
# 文件夹介绍
1、Resources\pictures
此文件夹下存放人脸保存结果
2、Resources\video
此文件夹下存放带标注视频保存结果
3、Resources\faceS
此文件夹下存放各个人物的图片,用于人脸库的建立
4、Resources\featureDB
此文件下为各个人物的128D描述符的数据存储文件
5、Resources\featureMean\feature_all.csv
此文件为人脸特征库文件
6、Resources\shape_predictor_68_face_landmarks.dat
人脸关键点标记模型文件
7、Resources\dlib_face_recognition_resnet_model_v1.dat
面部识别模型文件
8、face_recognition.mp4
待检测的视频
9、face_recognition.py
人脸识别代码文件
10、detection.py
人脸检测代码文件
11、face_recognition.py
建立本地人脸库代码文件
# 介绍
## 思路介绍
无论是基于视频或者调用摄像头来完成人脸识别,其实是一样,通过使用opencv,来捕获视频或者摄像头传来的图像,每隔若干帧取一帧做人脸识别,调用Dlib中的人脸检测器来检测人脸,并通过Dlib的人脸关键点预测器来获得人脸的关键点,接下来使用Dlib的面部识别模型将获得的68个关键点转换成128D面部描述符,我们通过计算人脸的128D面部描述符与本地人脸库(需要自己建立人脸库)中的人脸128D面部描述符的欧氏距离,来判断是否为同一人,当距离小于特定阈值时,认定识别成功,打上标签。
![Image text](https://github.com/coderXuXiang/Face_Recognition/blob/master/%E6%80%9D%E7%BB%B4%E8%BF%87%E7%A8%8B%E5%9B%BE/%E8%BF%87%E7%A8%8B%E5%9B%BE.png)
## 运行环境介绍
操作系统版本:Windows10
运行环境:python3.6+opencv4.1.2+dlib19.8.1
软件:PyCharm
(注:这里下载dlib包最好下载.whl文件,不需要安装cmake以及boost这些麻烦的东西。因为dilib包的没有python3.7版的whl文件,所以建议使用python3.6)
**附上opencv和dlib包链接**:https://pan.baidu.com/s/1Z33r7SoD5Z0faH96wr7Ecw
提取码:a8gl
## 模型介绍
这里的人脸识别使用了Dlib已训练成功的两个模型--人脸关键点预测器和面部识别模型。使用时需要加载模型,文件分别为shape_predictor_68_face_landmarks.dat和dlib_face_recognition_resnet_model_v1.dat
**模型文件下载地址** http://dlib.net/files/
### 人脸关键点预测器
Dlib中标记68个特征点采用的是ERT算法,是一种基于回归树的人脸对齐算法,这种方法通过建立一个级联的残差回归树来使人脸形状从当前形状一步一步回归到真实形状。每一个GBDT的每一个叶子节点上都存储着一个残差回归量,当输入落到一个节点上时,就将残差加到改输入上,起到回归的目的,最终将所有残差叠加在一起,就完成了人脸对齐的目的。
**用法:**
```python
predictor_path = resources_path + "shape_predictor_68_face_landmarks.dat"
#加载人脸关键点预测器
predictor= dlib.shape_predictor(predictor_path)
#获取面部关键点,gary为灰度化的图片
shape = predictor(gray,value)
```
### 人脸识别模型
Dlib中使用的人脸识别模型是基于深度残差网络,深度残差网络通过残差块来构建,它有效的解决了梯度消失以及梯度爆炸问题。当网络深度很大时,普通网络的误差会增加,而深度残差网络却有较小的误差。这里的人脸识别通过训练深度残差网络将人脸的68个特征关键点转换成128D面部描述符,用于人脸的识别。
```python
model_path = resources_path + "dlib_face_recognition_resnet_model_v1.dat"
#生成面部识别器
facerec = dlib.face_recognition_model_v1(model_path)
# 提取特征-图像中的68个关键点转换为128D面部描述符,其中同一人的图片被映射到彼此附近,并且不同人的图片被远离地映射。
face_descriptor = facerec.compute_face_descriptor(frame, shape)
```
# 效果展示
![Image text](https://github.com/coderXuXiang/Face_Recognition/blob/master/%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA%E5%9B%BE/%E5%9B%BE%E7%89%872.png)
![Image text](https://github.com/coderXuXiang/Face_Recognition/blob/master/%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA%E5%9B%BE/%E5%9B%BE%E7%89%871.png)
![Image text](https://github.com/coderXuXiang/Face_Recognition/blob/master/%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA%E5%9B%BE/%E5%9B%BE%E7%89%873.png)
# 识别过程
1、本地人脸库建立
![Image text](https://github.com/coderXuXiang/Face_Recognition/blob/master/%E6%80%9D%E7%BB%B4%E8%BF%87%E7%A8%8B%E5%9B%BE/%E4%BA%BA%E8%84%B8%E5%BA%93%E5%BB%BA%E7%AB%8B%E5%9B%BE.png)
2 、视频处理
通过opencv提供的VideoCapture()函数对视频进行加载,并计算视频的fps,以方便人脸标记之后的视频的输出。
3、加载模型
将已经训练好的模型加载进来,将人脸关键点标记模型和面部识别模型加载进来,以便后续使用。
4、人脸检测
对视频进行读取,每隔6帧,取一帧进行人脸检测,先将取得的照片进行灰度处理,然后进行人脸检测,并绘画人脸标记框进行展示,然后通过加载的人脸关键点标记模型识别图像中的人脸关键点,并且标记。
5、人脸识别
将获取的人脸关键点转换成128D人脸描述符,将其与人脸库中的128D面部描述符进行欧氏距离计算,当距离值小于某个阈值时,认为人物匹配,识别成功,打上标签。当无一小于该阈值,打上Unknown标签
![Image text](https://github.com/coderXuXiang/Face_Recognition/blob/master/%E6%80%9D%E7%BB%B4%E8%BF%87%E7%A8%8B%E5%9B%BE/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%9B%BE.png)
6、 保存人脸标记视频
将整个处理过程进行输出,将人脸标记过程保存下来。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言处理和计算机视觉的实战项目源码,助您从理论走向实践,如果您已有一定基础,您可以基于这些源码进行修改和扩展,实现更多功能。 【期待与您同行】 我们真诚地邀请您下载并使用这些资源,与我们一起在人工智能的海洋中航行。同时,我们也期待与您的沟通交流,共同学习,共同进步。让我们在这个充满挑战和机遇的领域中共同探索未来!
资源推荐
资源详情
资源评论
收起资源包目录
人工智能项目资料-使用Opencv和Dlib实现基于视频的人脸识别.zip (118个子文件)
result1.avi 1.51MB
feature_all.csv 15KB
ross.csv 13KB
rachel.csv 13KB
phoebe.csv 13KB
Joey.csv 13KB
chandler.csv 13KB
monica.csv 13KB
shape_predictor_68_face_landmarks.dat 95.08MB
dlib_face_recognition_resnet_model_v1.dat 21.43MB
phoebe4.jpg 243KB
61.jpg 180KB
43.jpg 155KB
44.jpg 147KB
19.jpg 147KB
59.jpg 145KB
48.jpg 143KB
5.jpg 137KB
6.jpg 137KB
47.jpg 136KB
23.jpg 136KB
22.jpg 133KB
40.jpg 133KB
28.jpg 132KB
29.jpg 132KB
39.jpg 130KB
27.jpg 130KB
26.jpg 130KB
65.jpg 129KB
55.jpg 127KB
4.jpg 126KB
3.jpg 126KB
2.jpg 126KB
1.jpg 126KB
64.jpg 126KB
42.jpg 125KB
66.jpg 124KB
41.jpg 121KB
13.jpg 121KB
14.jpg 121KB
15.jpg 121KB
34.jpg 119KB
36.jpg 114KB
35.jpg 114KB
54.jpg 114KB
49.jpg 107KB
62.jpg 106KB
63.jpg 106KB
8.jpg 106KB
7.jpg 106KB
50.jpg 105KB
51.jpg 105KB
10.jpg 104KB
9.jpg 104KB
57.jpg 104KB
58.jpg 104KB
12.jpg 104KB
11.jpg 104KB
56.jpg 102KB
38.jpg 102KB
46.jpg 101KB
53.jpg 99KB
60.jpg 99KB
52.jpg 99KB
45.jpg 99KB
33.jpg 98KB
30.jpg 96KB
32.jpg 95KB
31.jpg 95KB
20.jpg 90KB
37.jpg 88KB
21.jpg 88KB
24.jpg 87KB
16.jpg 85KB
25.jpg 85KB
18.jpg 71KB
monica1.jpg 64KB
17.jpg 60KB
rachl3.jpg 58KB
ross4.jpg 48KB
ross1.jpg 38KB
rachl2.jpg 36KB
rachl4.jpg 35KB
phoebe1.jpg 28KB
ross3.jpg 25KB
chandler3.jpg 25KB
rachel.jpg 24KB
joey4.jpg 23KB
joey2.jpg 22KB
ross.jpg 22KB
rachel1.jpg 22KB
chandler1.jpg 22KB
phoebe2.jpg 21KB
phoebe.jpg 21KB
joey3.jpg 21KB
monica2.jpg 19KB
phoebe3.jpg 18KB
monica4.jpg 18KB
monica.jpg 18KB
chandler4.jpg 17KB
共 118 条
- 1
- 2
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功