在此之前我写过一篇文章比较了最近一年内的基于深度学习的人脸检测算法的精度和速度,在稀疏人脸场景里,libfacedetect是最佳选择。于是我就用C++编写了一套人脸检测与识别的程序,在这套程序中,人脸检测模块使用的是libfacedetect,这个模块了还包含了人脸对齐的功能,人脸特征向量提取模块使用的是arcface,此外我还提供了人脸关键点检测模块PFLD,它能输出98个人脸关键点。程序设计采用了面向对象的思想,把每个模块都用一个类包装起来。本套程序的运行只依赖opencv库,使用dnn模块做深度学习前向推理,不再依赖任何第三方深度学习框架。从而在硬件平台上部署时,彻底摆脱对深度学习框架的依赖。
在主函数里提供了4个功能,分别是:
(1).输入一幅图片,做人脸检测。
(2).输入一个文件夹,提取批量图片的人脸特征向量,然后把人脸特征向量保存为bin文件。
(3).读取人脸特征向量的bin文件,输入一幅图片,检测人脸并提取特征向量,然后计算特征向量的距离,做人脸识别。
(4).输入一幅图片,检测人脸,然后使用PFLD网络检测人脸98个关键点。
目前我已经在win10-cpu,VS2019 + opencv4.4.0这个环境里成功运行程序了,我把代码发布在github上了,地址是:
GitHub - hpc203/libface-detect-recognition: 一种适合工业级应用的基于深度学习的实时人脸检测与识别算法的C++实现,仅仅只依赖opencv库

作者曾比较基于深度学习的人脸检测算法,在稀疏人脸场景中libfacedetect最佳。作者用C++编写人脸检测与识别程序,采用面向对象思想,依赖opencv库,摆脱对第三方深度学习框架的依赖。主函数提供4个功能,已在特定环境成功运行,代码发布在GitHub。


被折叠的 条评论
为什么被折叠?



