一种端到端的人脸检测和识别方法
文献发布时间:2023-06-19 11:26:00
技术领域
本发明涉及计算机视觉领域,特别是基于深度学习的人脸检测技术和人脸识别技术。
背景技术
自从21世纪以来,人脸检测和人脸识别技术就一直是计算机视觉领域的一个热点研究问题,在安防、民生、交通等领域应用广泛。在一个完整的人脸识别系统中往往包含了两个任务:人脸检测任务和人脸识别任务。当前主流的人脸识别系统设计方案大多是“先检测后识别”,即图像进入系统后首先会由人脸检测网络进行人脸检测,然后检测网络输出的人脸局部图像由人脸识别网络进行身份判定。虽然当前的人脸检测网络和人脸识别网络都已经取得了非常高的检测和识别准确率,但是这两者普遍具有参数量大、计算量大等缺点,这往往无法满足经常需要部署到移动端的人脸识别系统的要求。同时,对于一些简单的移动端应用场景而言,人脸识别系统的准确率要求不是很高,但是识别速度要求非常高。因此,需要进一步研究一种参数量少、计算量小、识别效率高的人脸识别系统,解决当下存在的人脸识别系统移动端部署困难的问题。
当前主流的人脸检测网络是MTCNN,它被广泛应用于各种人脸检测任务中,其输出也经常作为各种人脸识别算法的输入。作为一种级联的网络结构,该模型主要基于三个深度神经网络,采用候选框加分类器的思想,进行快速高效的人脸检测。这三个级联的网络分别是快速生成候选窗口的P-Net、进行高精度候选窗口过滤选择的R-Net和生成最终边界框与人脸关键点的O-Net。和很多处理图像问题的卷积神经网络模型类似,该模型也用到了图像金字塔、边框回归、非最大值抑制等技术。图像经过MTCNN后可以输出人脸准确位置和人脸关键点准确位置,将这些仅包含人脸准确位置的图像块输入人脸识别网络中就可以对检测到的人脸进行身份判定。由于MTCNN准确检测到了人脸的位置,去除了人脸周围的无效区域对人脸识别的干扰,这使得人脸识别的准确率大大提升。因此,常规的“先检测后识别”方法具有较高的识别准确率,但是在一个人脸识别系统中需要训练两个深度神经网络,这使得内存占用率变大,推理速度变慢。
FCOS目标检测架构是一种基于中心点的无锚框的目标检测架构,它具有训练简单、可扩展性高、检测准确率高等优点。FCOS目标检测架构在去除锚框的同时为每一个回归框设置了一个质量估计-Center-ness,该质量估计用于表示回归框的质量好坏。Center-ness的引入降低了去除锚框带来的影响,使得FCOS目标检测架构在减少了超参数数量的同时没有降低过多的检测准确率,但同时Center-ness在训练过程中也存在着部分正样本无法召回的缺点。
发明内容
本发明要解决的技术问题是常规对人脸“先检测后识别”的问题,本发明设计了一种端到端的人脸检测和识别方法,该方法具有计算量小、参数量少、推理速度快、识别准确率高等特点。
本发明的一种端到端的人脸检测和识别方法,包括如下步骤:
步骤1,改进FCOS目标检测架构;
FCOS目标检测架构是一种基于中心点的无锚框的目标检测架构,本发明采用改进的FCOS目标检测架构提取图像中的人脸特征和人脸周围特征,提取到的人脸周围特征在后续流程中可以用于回归人脸检测任务所需要得到的人脸位置,提取到的人脸特征在后续流程中可以用于表征检测到的人脸。
改进的FCOS目标检测架构包括输入、backbone、neck和head四个部分,head部分包括回归支路、分类支路和Center-ness支路,Center-ness分支与回归分支共享一组卷积组提取到的特征。
原始FCOS目标检测架构中的Center-ness分支与分类分支共享一组特征,然而Center-ness本质上用于表示回归框的质量好坏,是一个回归任务,回归任务与分类任务共享特征不合理。本发明中Center-ness分支与分类分支分离,与检测框回归分支共享特征
步骤2,对改进的FCOS目标检测架构在训练数据集上进行训练,直到网络收敛。
人脸检测任务和人脸识别任务联合进行训练,人脸检测任务和人脸识别任务共享特征使得研究人员只需要训练一个深度神经网络就可以完成上述两个任务。
采用CASIA-FaceV5人脸数据集对本发明进行训练,并且在训练时关注损失函数的变化和不同训练轮数时训练集和验证集上的准确率,在网络刚达到收敛时停止训练,防止欠拟合和过拟合。
步骤3,将训练后收敛的改进的FCOS目标检测架构在测试数据集上进行测试。
步骤4,使用训练后收敛的改进FCOS目标检测架构对人脸进行检测和识别。
进一步的,步骤1中改进的FCOS目标检测架构中的Center-ness支路还可以是IOU支路;将原始FCOS目标检测架构中的用于监督回归框质量的Center-ness标签改为IOU标签。使用Center-ness标签代表回归框的质量好坏存在着正样本无法召回的情况,本发明使用IOU代替Center-ness标签。
进一步的,步骤1中改进的FCOS目标检测架构中head部分还包括特征向量编码支路,用于输出每一个目标的向量表征。
输出端除了常规的目标检测输出外,还需要输出每一个目标的向量表征。FCOS目标检测架构的输出端利用提取到的图像特征进行各种特定的任务,常规的目标检测输出可以用于人脸检测任务,为了完成人脸识别任务,为每一个检测到的目标输出一个向量表征。
有益效果:本发明提出了一种端到端的人脸检测和识别方法,基于FCOS目标检测架构和特征提取卷积网络共享两个方面提出了一种可以统一人脸检测和人脸识别两个任务的新方法。该方法适用于当前以深度神经网络为基础的人脸检测和人脸识别任务,尤其是涉及到上述两个任务联合的完整人脸识别系统。
在公开数据集上的实验表明,本发明具有计算量小、参数量小、人脸识别准确率高等特点,因此本发明对要求推理速度快、内存占用率低的移动端部署任务友好。
附图说明
图1是FCOS目标检测架构示意图。
图2是回归特征共享示意图。
图3是IOU和Center-ness标签差异示意图。
图4是COCO数据集上IOU和Center-ness标签分布示意图。
图5是联合训练示意图。
图6是本发明整体架构示意图。
图7是本发明和常规方法推理速度和识别准确率示意图。
图8是CASIA-FaceV5测试数据集上的部分实验结果。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步详细描述:
本发明提出了一种端到端的人脸检测和识别方法,旨在将人脸检测和人脸识别两个任务耦合到一个深度神经网络,从而减小一个完整的人脸识别系统的参数量和计算量并提高系统的推理速度,以此来满足移动端部署的要求。
本发明的具体实施方式如下:
图1给出了FCOS目标检测架构的原始结构。可以发现,原始的FCOS目标检测架构包含有输入、backbone、neck、head四个部分,其中head即输出端又包含有回归支路、分类支路、Center-ness支路。FCOS目标检测架构是一种基于中心点的无锚框的目标检测架构,本发明采用改进后的FCOS目标检测架构提取图像中的人脸特征和人脸周围特征,提取到的人脸周围特征在后续流程中可以用于回归人脸检测任务所需要得到的人脸位置,提取到的人脸特征在后续流程中可以用于表征检测到的人脸。
步骤1,改进FCOS目标检测架构。
步骤1.1,将原始FCOS目标检测架构中的Center-ness分支与回归分支共享一组卷积组提取到的特征。原始FCOS目标检测架构中的Center-ness分支与分类分支共享一组特征,然而Center-ness本质上用于表示回归框的质量好坏,是一个回归任务,回归任务与分类任务共享特征不合理,其具体表现为:(1)分类任务需要特征具有平移不变性、尺度不变性、旋转不变性等特性,然而回归任务对于位置十分敏感,细微的平移、旋转都会影响到所需要的回归量。(2)分类任务对物体的局部特征敏感,回归任务对物体的边缘信息敏感。(3)由于全连接层丧失了卷积的空间相关性,因此适用于分类任务而不适用于回归任务。基于上述几点,图2给出了Center-ness分支与回归分支共享特征的示意图,Center-ness分支与分类分支分离,与检测框回归分支共享特征。
步骤1.2:将原始FCOS目标检测架构中的用于监督回归框质量的Center-ness支路改为IOU支路,从而使用得Center-ness标签改为IOU标签。一个物体的Center-ness被定义为:
上式中l
步骤1.3,输出端除了常规的目标检测输出外,还需要输出每一个目标的向量表征。FCOS目标检测架构的输出端利用提取到的图像特征进行各种特定的任务,常规的目标检测输出可以用于人脸检测任务,为了完成人脸识别任务,为每一个检测到的目标输出一个向量表征。图5给出了联合训练的示意图,可以发现在本发明中,IOU分支和回归分支共享特征,原Center-ness分支已被IOU分支取代,在损失函数部分,只有正样本会计算分类层的损失,可以表示为:
上式中L
步骤2,将本发明在训练数据集上进行训练,直到网络收敛。为了验证本发明的人脸识别准确率和人脸识别效率,使用CASIA-FaceV5人脸数据集进行训练。在训练时需要关注损失函数的变化和不同训练轮数时训练集和验证集上的准确率,在网络刚达到收敛时停止训练,防止欠拟合和过拟合。
人脸检测任务和人脸识别任务联合训练。人脸检测任务和人脸识别任务共享特征使得研究人员只需要训练一个深度神经网络就可以完成上述两个任务。图6给出了本发明的整体架构,由输入、backbone、neck、head四个部分组成。
步骤3:将收敛的网络在测试数据集上进行测试。为了验证本发明的人脸识别准确率和人脸识别效率,使用训练好的本发明在CASIA-FaceV5人脸数据集上进行测试,测试流程需要符合该人脸数据集的标准测试协议。
步骤4,根据特定的指标,分析比较本发明的识别准确率和识别效率。为了验证步骤1.1的有效性,在以不同的特征提取网络为backbone的FCOS目标检测架构中加入步骤1.1的操作,分析比较FCOS目标检测架构的检测准确率,表1给出了该实验结果,其中FCOS-I表示在原始FCOS目标检测架构中加入步骤1.1所述操作。可以发现步骤1.1可以为原始的FCOS目标检测架构带来约0.2%左右的AP提升,这说明了步骤1.1是有效的。为了验证步骤1.2的有效性,在以不同的特征提取网络为backbone的FCOS目标检测架构中加入步骤1.2的操作,分析比较FCOS目标检测架构的检测准确率,表2给出了该实验结果,其中FCOS-II表示在原始FCOS目标检测架构中加入步骤1.2所述操作。可以发现步骤1.2可以为原始的FCOS目标检测架构带来约0.3%左右的AP提升,这说明了步骤1.2是有效的。更进一步,表3给出了同时使用步骤1.2和步骤1.3操作的实验结果,其中FCOS-X表示在原始FCOS目标检测架构中同时加入步骤1.1和步骤1.2所述操作。可以发现,步骤1.1和步骤1.2联合可以为原始的FCOS目标检测架构带来约1%左右的AP提升,这说明了本发明中对FCOS目标检测架构的改进是有效的。
表1 FCOS目标检测架构采用步骤1.1后在COCO上的AP(%)
表2 FCOS目标检测架构采用步骤1.2后在COCO上的AP(%)
表3 FCOS目标检测架构同时采用步骤1.1和步骤1.2后在COCO上的AP(%)
为了验证本发明的人脸识别准确率,使用不同的特征提取网络作为本发明的backbone,计算训练得到的本发明在CASIA-FaceV5人脸数据集上的人脸识别准确率,表4给出了该实验结果。可以发现本发明在CASIA-FaceV5人脸数据集上有着较高的人脸识别准确率,使用DenseNet-162作为backbone的本发明可以达到99.4%的人脸识别准确率。为了验证本发明的人脸识别效率,比较使用常规的“先检测后识别”方法和本发明在不同的人脸识别准确率下的推理速度差异,图7给出了该实验结果。可以发现本发明仅用了66.7%左右的推理时间就达到了与常规方法近似的识别准确率,这说明了本发明的人脸识别效率较高。图8展示了本发明在CASIA-FaceV5数据集上的部分实验结果,“True”表示预测为同一个身份,“false”表示预测为不同的身份。
步骤5,使用训练后收敛的改进FCOS目标检测架构对人脸进行检测和识别。
表4本发明在不同backbone下在CASIA-FaceV5上的人脸识别准确率(%)
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。
- 一种端到端人脸检测和识别方法
- 一种端到端人脸检测和识别方法