ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于MTCNN和MobileFaceNet的人脸识别

2021-02-01 17:01:23  阅读:286  来源: 互联网

标签:人脸识别 卷积 MTCNN 神经网络 人脸 Net MobileFaceNet


项目描述:

本项目的主要目标是基于NCNN和Opencv库,实现MTCNN人脸检测和对齐,得到人脸之后,再调用预训练的MobileFaceNet模型进行人脸识别,并用Opencv实现项目可视化和人机交互功能。通过调用摄像头,用户可以自行拍照并保存照片,之后软件会自动对图片进行人脸检测和对齐处理,并返回前后两张照片的相似度,实现人脸识别。使用ncnn的原因是为了提升在移动设备的运行效率。
Figure 1. 程序操作流程

Figure 1. 程序操作流程

项目框架:

Header file: mtcnn.h Cpp file: main.cpp, mtcnn.cpp
程序框架

Figure 2. 程序框架

编程语言与IDE

C++, VC2015, OpenCV, ncnn

实现细节:

MTCNN,Multi-task convolutional neural network(多任务卷积神经网络),将人脸区域检测与人脸关键点检测放在了一起,它的主题框架类似于cascade。总体可分为P-Net、R-Net、和O-Net三层网络结构。这三个级联的网络分别是快速生成候选窗口的P-Net、进行高精度候选窗口过滤选择的R-Net和生成最终边界框与人脸关键点的O-Net。和很多处理图像问题的卷积神经网络模型,该模型也用到了图像金字塔、边框回归、非最大值抑制等技术。

1. 构建图像金字塔

首先将图像进行不同尺度的变换,构建图像金字塔,以适应不同大小的人脸的进行检测。

2. P-Net

全称为Proposal Network,其基本的构造是一个全卷积网络。对上一步构建完成的图像金字塔,通过一个FCN进行初步特征提取与标定边框,并进行Bounding-Box Regression调整窗口与NMS进行大部分窗口的过滤。

3. R-Net

全称为Refine Network,其基本的构造是一个卷积神经网络,相对于第一层的P-Net来说,增加了一个全连接层,因此对于输入数据的筛选会更加严格。在图片经过P-Net后,会留下许多预测窗口,将所有的预测窗口送入R-Net,这个网络会滤除大量效果比较差的候选框,最后对选定的候选框进行Bounding-Box Regression和NMS进一步优化预测结果。

4. O-Net

全称为Output Network,基本结构是一个较为复杂的卷积神经网络,相对于R-Net来说多了一个卷积层。O-Net的效果与R-Net的区别在于这一层结构会通过更多的监督来识别面部的区域,而且会对人的面部特征点进行回归,最终输出五个人脸面部特征点。

学习收获:

• 人脸识别的整个流程:检测、对齐、识别、输出
• ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架,无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,能够将深度学习算法轻松移植到手机端高效执行
• 使用SSE指令集,直接操作寄存器,加快程序的运行速度
• 熟悉OpenCV库的使用
• 了解MTCNN算法

参考资料

https://blog.csdn.net/qq_36782182/article/details/83624357 传送门

代码

代码在我主页上传的资源自取~

标签:人脸识别,卷积,MTCNN,神经网络,人脸,Net,MobileFaceNet
来源: https://blog.csdn.net/hust_zhengT/article/details/113523642

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有