# 人脸检测和识别项目 **Repository Path**: li4112/Face_Detection_Recognition_project ## Basic Information - **Project Name**: 人脸检测和识别项目 - **Description**: CSDN项目 通过mtcnn和facenet搭建的一个可以用来识别人脸的小项目 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-04-25 - **Last Updated**: 2021-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **# 人脸检测和识别项目** #### 介绍 CSDN项目 通过mtcnn和facenet搭建的一个可以用来识别人脸的小项目 #### 软件架构 python3.6 tensorflow1.14 MTCNN facenet ![输入图片说明](https://images.gitee.com/uploads/images/2020/0222/210141_6d4dcbb8_5108713.png "屏幕截图.png") align:这个文件夹是从facenet中拷贝的,主要是MTCNN人脸检测的相关文件 facenet.py:这个Python文件也是从facenet中拷贝的 dataset:这个文件夹主要存放数据,如人脸数据库 utils:这个文件是用于文件读写,图像相关操作的函数方法等 models:存放facenet预训练模型 #### 使用说明 (1)制作人脸数据图库: 把相关的人像收集放在dataset/images文件夹下: 这里是列表文本注意制作人脸数据图库时,所使用的照片必须是单人照片!! 这里是列表文本若需要新增图库,只需在dataset/images下,新建一个文件夹,如,新增“XXX的文件夹,然后把XXX的单人照片放在里面即可,图片名称可以是任意 (2)生成embedding数据库 有了人脸数据图库,就可以使用create_dataset.py生成embedding数据库(人脸特征)。 人脸识别过程 (1)加载人脸数据库 把上面制作的,已知的人脸数据库加载进来。 (2)从输入的检测图中检测人脸位置,并提取特征。 (3)利用欧式距离计算特征之间的距离 模型测评 为了对faceNed性能进行测评,用测评文件:evaluation_test.py,该文件会绘制测试文件的ROC曲线,并给出最优阈值,以及FPR, TPR, AUC等参数。 项目心得: 这个项目相对来说比较的基础,而且所使用的网络也是早些年的研究结果,最终的检测效果还是有很大的提高空间,我们可以用ssd+insigtface的方式进行替换。 在学习这个项目的过程中,有很多的收货,首先是一个自主的学习能力,通过阅读相关的文献以及网络上开源的一些讲解,从中学习到了很多关于人脸识别的知识。其次在课程的结尾,通过完成这样一个项目,也算是正是的入门了,把整个可能的知识都有一定的融合在里面。最后对于自己来说,这些大量的代码和模型本身的api的阅读也让自己的编程能力有了进一步的提升。 项目中遇到的问题: 首先是在环境的搭建方面,anaconda确实是非常适合于深度学习的,由于不同版本的tensorfolw上有很多接口的区别,所以在编写时一定要特别的注意。 在搭建gpu的tensorflow时,cdnn和cuda一定要是对应的版本。 其次在学习网络训练的过程中,batchsize一定不能太大,一旦过大电脑会跑不动。 在tinymind上传数据的过程中总是遇到上传失败的问题,不知道是不是自己网络的原因。 代码还是在window平台做的,有时间可以在linux下再试一下。 最主要的问题还是在下载一些模型的时候,需要用很长的时间去学习接口。 演示视频 链接:https://pan.baidu.com/s/1lIMkFjN8wT4JaioCNAyyJg 提取码:kvbk