人脸识别--SeetaFace2介绍

       SeetaFace2是中科视拓在2019年发布的开源人脸识别引擎,使用c++编写,支持windowslinux系统,支持armx86平台,功能包含人脸检测、关键点定位、人脸识别,相比于2016开源的SeetaFace在性能上有很大提升,并在2020开源了SeetaFace6,增加了活体检测、质量评估、年龄性别估计、口罩检测。

       本文主要讲解SeetaFace2的人脸识别功能,人脸识别主要包括人脸检测、关键点定位、人脸区域特征提取、特征相似度比对。

1 算法理论

1.1 人脸检测算法  Cascate CNN 架构

      该模型将人脸识别的图像分为三个阶段,每个阶段进行一次识别,并通过级联的方式将每一阶段的图像特征和上一阶段学习到的特征级联后进行softmax。分别使用了 12x12、24x24 和 48x48 的网络,对人脸图像进行三阶段的识别

1.2  面部关键点定位      FEC-CNN 网络架构

      前向卷积神经网络将多个残差学习块串联在一起,利用模型的深度学习图像的深层表征。

1.3  人脸特征提取   ResNet50

2 源码分析

2.1 结构图

 整体框架比较清晰,核心算法处理集中在SeetaNet库

2.2  各模块介绍

2.2.1 人脸检测 FaceDetector
根据肤色等特征定位人脸区域
LoadModelBuffer
分别构建12x12、24x24 和 48x48 三阶段网络模型

detect检测
 

 2.2.2  关键点定位 FaceLandmarker
根据人脸图像获取面部关键点位置
key=Common/EltwiseOP,获取数据

2.2.3  人脸区域特征提取、特征相似度比对 FaceRecognizer
特征提取
根据人脸图像获取人脸特征向量。

相似度比对
对比人脸特征向量
CalcSimilarity     余弦相似度

2.2.4 质量评估 QualityAssessor
检测图像亮度、人脸框大小、头部姿态,图像清晰度

2.2.5 人脸追踪 FaceTracker

实时追踪人脸框

      调用人脸检测计算出人脸框,通过对比前后两帧人脸框的重叠面积比来判断是否跟丢人脸,当跟踪人脸时更新人脸PID。

github地址: seetafaceengine/SeetaFace2github.com

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SeetaFace是一个基于深度学习技术开发的人脸识别库,适用于C++、Python和Java等多种编程语言,它具有高效的人脸检测和关键点定位功能。 在vs2017和Qt环境中使用SeetaFace进行人脸识别的步骤如下: 1. 首先,需要下载并配置好SeetaFace的库文件和模型文件。可以从SeetaFace的官方网站上下载最新版本的库文件和模型文件。 2. 在Qt项目中,将SeetaFace的库文件添加到项目中,并配置好相关的头文件路径和库文件路径。在vs2017中,需要设置链接器的附加依赖项。 3. 在Qt项目中,创建一个窗口界面用于展示人脸识别结果。可以使用Qt提供的控件,如QLabel来显示人脸图像和标识出人脸位置。 4. 编写代码,调用SeetaFace的人脸检测和关键点定位接口,将人脸图像输入到SeetaFace中进行处理。可以使用OpenCV等库来读取和处理图像。 5. 根据SeetaFace返回的人脸信息,可以在界面中显示人脸位置并标识关键点,如眼睛、鼻子和嘴巴等。 6. 根据识别的结果,可以将人脸识别的数据存储或用于其他特定的应用,如人脸比对、人脸验证等。 总的来说,基于SeetaFace人脸识别在vs2017和Qt环境中的使用需要进行适当的配置和调用相关接口,可以通过读取图像数据并处理,然后展示识别结果。这样可以实现基本的人脸检测和关键点定位功能,并且可以根据需要进行二次开发和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值