一种适合工业级应用的基于深度学习的实时人脸检测与识别算法的C++实现

在此之前我写过一篇文章比较了最近一年内的基于深度学习的人脸检测算法的精度和速度,在稀疏人脸场景里,libfacedetect是最佳选择。于是我就用C++编写了一套人脸检测与识别的程序,在这套程序中,人脸检测模块使用的是libfacedetect,这个模块了还包含了人脸对齐的功能,人脸特征向量提取模块使用的是arcface,此外我还提供了人脸关键点检测模块PFLD,它能输出98个人脸关键点。程序设计采用了面向对象的思想,把每个模块都用一个类包装起来。整个程序的运行只依赖opencv库,使用dnn模块做深度学习前向推理,不再依赖任何第三方深度学习框架。从而在硬件平台上部署时,彻底摆脱对深度学习框架的依赖。

在主函数里提供了4个功能,分别是:

(1).输入一幅图片,做人脸检测。

(2).输入一个文件件,批量提取人脸特征向量,然后把人脸特征向量保存为bin文件。

(3).读取人脸特征向量的bin文件,输入一幅图片,检测人脸并提取特征向量,然后计算特征向量的距离,做人脸识别。

(4).输入一幅图片,检测人脸,然后检测人脸98个关键点。

目前我已经在win10-cpu,VS2019 + opencv4.4.0这个环境里成功运行程序了,我把代码发布在github上了,地址是:

https://github.com/hpc203/libface-detect-recognition

你可能感兴趣的:(深度学习,计算机视觉,深度学习)