项目描述:
本项目的主要目标是基于NCNN和Opencv库,实现MTCNN人脸检测和对齐,得到人脸之后,再调用预训练的MobileFaceNet模型进行人脸识别,并用Opencv实现项目可视化和人机交互功能。通过调用摄像头,用户可以自行拍照并保存照片,之后软件会自动对图片进行人脸检测和对齐处理,并返回前后两张照片的相似度,实现人脸识别。使用ncnn的原因是为了提升在移动设备的运行效率。
项目框架:
Header file: mtcnn.h Cpp file: main.cpp, mtcnn.cpp
编程语言与IDE
C++, VC2015, OpenCV, ncnn
实现细节:
MTCNN,Multi-task convolutional neural network(多任务卷积神经网络),将人脸区域检测与人脸关键点检测放在了一起,它的主题框架类似于cascade。总体可分为P-Net、R-Net、和O-Net三层网络结构。这三个级联的网络分别是快速生成候选窗口的P-Net、进行高精度候选窗口过滤选择的R-Net和生成最终边界框与人脸关键点的O-Net。和很多处理图像问题的卷积神经网络模型,该模型也用到了图像金字塔、边框回归、非最大值抑制等技术。