MTCNN+facenet实现人脸识别

本文详细介绍了如何使用MTCNN进行人脸检测,并结合Facenet实现人脸识别。首先建立人脸数据图库,然后搭建MTCNN网络进行人脸特征提取,将人脸数据转换为特征库,最后通过Facenet进行人脸识别。提供的GitHub链接包含了完整项目代码。
摘要由CSDN通过智能技术生成

小学期的实训题目是实验室进出人员身份识别和记录学习时间,那么基本功能是实现人脸识别。人脸识别其实又分为两部分,人脸检测和人脸识别,在本次博客中,人脸检测使用MTCNN模型,然后利用facenet进行人脸识别。

Github链接:https://github.com/ALittleLeo/FaceRcognization/tree/master

觉得有用的话请打个星!

目录

系统实现流程

项目目录结构

建立人脸数据图库

MTCNN,Multi-task convolutional neural network(多任务卷积神经网络)

利用MTCNN网络把人脸数据图库转换为人脸特征库(embedding库)

facenet进行人脸识别


系统实现流程

1、建立人脸数据图库

2、搭建MTCNN网络

3、利用MTCNN网络把人脸数据图库转换为人脸特征库(embedding库)

4、使用MTCNN网络提取待检测的人脸图片的特征

5、使用facenet比较待识别的人脸和人脸库特征,绘制图片,得到最终结果

项目目录结构

打开FaceNet Github地址: https://github.com/davidsandberg/facenet,把我们需要的文件拷贝到自己独立的工程中,(1)align文件夹,(2)facenet.py文件

目录说明:

  • align文件夹中包含三个mtcnn要用到的模型文件,以及搭建mtcnn网络的文件 detect_face.py,这里面的东西在facenet的项目中的都可以找到
  • dataset文件夹中主要存放数据,包括images(人脸数据图库),emb(人脸特征库),test_images(测试图片)
  • models文件夹中存放facenet预训练模型(链接: https://pan.baidu.com/s/1l16K7EktS6EO4a4pVNXvsQ 提取码: rvtv )
  • utils是工具类文件夹,用于文件读写,图片相关操作。
  • predict.py是进行人脸识别的入口
  • create_dataset.py用于将人脸数据图库转换为人脸特征库

 

建立人脸数据图库

人脸图片放在dataset/images文件夹下,每个子目录放同一个人的照片,以子目录名作为人名,上图所示胡歌和周杰伦

 

 

MTCNN,Multi-task convolutional neural network(多任务卷积神经网络)

正如上图所示,该MTCNN由3个网络结构组成(P-Net,R-Net,O-Net)。

           Proposal Network (P-Net):该网络结构主要获得了人脸区域的候选窗口和边界框的回归向量。并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制(NMS)来合并高度重叠的候选框。

Refine Network (R-Net):该网络结构还是通过边界框回归和NMS来去掉那些false-positive区域。

只是由于该网络结构和P-Net网络结构有差异,多了一个全连接层,所以会取得更好的抑制false-positive的作用。

Output Network (O-Net):该层比R-Net层又多了一层卷基层,所以处理的结果会更加精细。作用和R-Net层作用一样。但是该层对人脸区域进行了更多的监督,同时还会输出5个地标(landmark)。

(详细介绍等后面再写

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值