SeetaFace2.0:中科视拓开源跨平台C++商业人脸识别库
SeetaFace2.0:中科视拓开源跨平台C++商业人脸识别库
SeetaFace2.0 的人脸识别库,来自中科院计算所的中科视拓团队商业开源,它完全使用 C++编写,支持 Windows、Linux 和 ARM 平台,且不依赖第三方库。人脸识别库中开源的三个模块都取得了很好的性能和很高的运算效率。
SeetaFace2.0
SeetaFace2.0 是一个完整的人脸识别项目,其中包括了人脸检测模块 FaceDetector、面部关键点定位模块 FaceLandmarker 以及人脸特征提取与比对模块 FaceRecognizer。还将陆续开源人脸跟踪、闭眼检测等辅助模块。
该项目使用C++完成,不依赖任何第三方库,而且支持X86平台和ARM平台,适配能力好,可部署到各类平台上,由开发者进一步拓展开发成新应用。
根据已有资料,以开源的三个模块性能都非常好,都使用了深度学习架构,下面是各个模块在给定硬件设备上的运行速度信息。
人脸检测
人脸检测使用的模型是 Cascate CNN。如图所示,该模型将人脸识别的图像分为三个阶段,每个阶段进行一次识别,并通过级联的方式将每一阶段的图像特征和上一阶段学习到的特征级联后进行 softmax。
Cascate CNN 的架构。分别使用了 12x12、24x24 和 48x48 的网络,对人脸图像进行三阶段的识别。
面部关键点定位
这一模块使用的是 FEC-CNN。如图所示,这也是将人脸图像经过多个 CNN 网络处理,每经过一个网络便获得一个表征,并和上一阶段的输入相乘。在经过了 T 个网络后输出最终的图像关键点。
人脸特征提取和对比
这一模块使用了 ResNet50 的模型架构。如图所示,这一网络将多个残差学习块串联在一起,利用模型的深度学习图像的深层表征。
模型效果
根据所测试的结果分析,现在开源的三个模块性能与之前的1.0版本相比性能有明显提升