基于MTCNN和MobileFaceNet的人脸识别

该项目使用C++、OpenCV和ncnn库,通过MTCNN进行人脸检测和对齐,接着利用预训练的MobileFaceNet模型进行人脸识别。在检测到人脸后,程序返回相似度并展示结果,支持用户拍照并保存。ncnn的使用提高了移动设备上的运行效率。主要分为P-Net、R-Net和O-Net三个阶段,分别用于候选窗口生成、筛选和最终的面部关键点检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目描述:

本项目的主要目标是基于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。和很多处理图像问题的卷积神经网络模型,该模型也用到了图像金字塔、边框回归、非最大值抑制等技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值