首页> 中国专利> 一种基于多任务学习的实时人脸检测及头部姿态估计方法

一种基于多任务学习的实时人脸检测及头部姿态估计方法

摘要

本发明涉及一种基于多任务学习的实时人脸检测及头部姿态估计方法,用于解决头部姿态估计模型在同时估计多人头部姿态时的低效性,以及存在大量冗余计算的问题。具体包括特征提取网络以及四个支路组成,特征提取网络用于提取输入图片的4个不同层级的语义信息,每个层级的语义信息送入到对应支路当中。每个支路用于对不同层级的语义信息进行人脸检测及头部姿态估计,四条支路输出结果即为最终的人脸检测及对应的头部位姿估计结果。同时设计了多任务损失函数来评判模型的收敛,包含人脸检测的损失及头部姿态估计损失两部分。本发明在估计多人头部姿态时,效率有了巨大的提升。

著录项

  • 公开/公告号CN112766186A

    专利类型发明专利

  • 公开/公告日2021-05-07

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN202110093339.0

  • 申请日2021-01-22

  • 分类号G06K9/00(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人张慧

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-06-19 10:54:12

说明书

技术领域

本发明涉及图像处理和深度学习领域,尤其是面向人脸检测及头部姿态估计任务。

背景技术

人脸检测及其属性分析一直以来都是计算机视觉领域一个关键性的挑战。许多前辈提出了许多优秀的方法来解决这些任务。以下将从人脸检测、头部姿态评估及多任务学习这三个方面来回顾一下以往的方法。

人脸检测:

人脸检测是找出图像中人脸的位置,是目标检测任务的一个细化的分支。早期的人脸检测算法使用了通过模板匹配的方法,采用一个人脸模板与待检测图像的各个位置进行对比,确定此处是否有人脸,如Rowley提出的。Viola和jones提出了使用简单的haar-like特征和级联的adaboost分类器构造检测器,检测速度相较之前的方法有很大的提升并且保持了良好的精度。相当多的研究表明,即使使用更高级的特征和分类器,这种检测器在现实应用中也会显著降低人脸的视觉变化。相较于DMP模型表现出了良好的性能,对扭曲,性别多姿态等人脸都有很好的检测效果,但其最大的问题是速度太慢很难应用于工程当中。

之后随着卷积神经网络在分类问题上取得了成功,很快被用于人脸检测的问题当中,在精度上大幅度超越了之前的框架。当前的人脸检测模型大多由目标检测模型演变而来,可以分为one-stage和two-stage两种。Two-stage采用“proposal and refinement”,拥有高精度的特点,但其模型速度相对较慢。One-stage采用密集采样人脸位置和尺度,会导致训练过程中正负样本的不平衡。为了解决这个问题,sampling and re-weighting被广泛的使用。通过跟two-stage方法的比较,one-stage表现出了优秀的性能,但相对的准确率会比two-stage方法稍微差一点。

Faster R-cnn提出了anchor,然后被广泛的应用于了one-stage和two-stage目标检测网络中。近年来基于anchor-based目标检测取得了巨大的进展,证明了其有效性。但anchor需要进行大量的采样,使本来人脸检测任务正负样本不平衡的的现象加剧。最近几年,随着anchor-free目标检测网络的发展,其性能也越来越接近并超过anchor-based网络。而且其因为不用对特征进行大量稠密的采样,所以其具有运算高效性的天然优势。

头部姿态评估:

头部姿态评估一直使计算机视觉中一个被广泛研究的问题,而且方法也存在多种差异性,在一些文献当中,他们通过一些姿态模板来匹配真实的人脸来获取头部姿态。探测器阵列曾经也是一个流行的方法,训练多个探测器来检测不同的头部姿势。这些方法都耗费巨大的计算资源。

随着人脸关键点检测的成功,人脸关键点被用来评估头部姿态变得流行。给定一组2d的人脸关键点来计算得到3d的头部姿态角如POSIT。而基于关键点的头部姿态评估方法需要检测到人脸的关键点,而人脸关键点是密集的,在一些低分辨率图像当中或者针对小人脸,往往连一些专家也无法标定出人脸的关键点。

也有人考虑采用深度的信息来评估人脸的姿态,如Fanelli提出,但这需要额外的设备开销。随着深度学习的发展,一些端到端的模型逐渐被研究。Hopenet等采用深度学习的方法将头部姿态的回归任务转为了分类任务,来直接获得头部姿态,使模型更具鲁棒性。

虽然头部姿态估计模型被广泛研究,但它们需要同其它模型来结合使用,在同时估计多人的头部姿态时,会显的格外的低效,存在大量的冗余计算。

多任务模型:

多任务学习是将多个单一的任务结合到一个模型当中。而一些人脸属性分析所提的特征与人脸检测非常的相似。近年来一些工作证明了多任务学习可以获得更好的性能。他们使用了cnns同时检测人脸、人脸关键点等。Hyperface同时检测图像中的人脸、人脸关键点、头部姿态及性别。但它的效率很低,很难应用于工业当中。Mtcnn使用图像金字塔和级联的cnn来预测人脸框的位置和人脸关键点的位置。最近的一些方法采用特征金字塔的方法来检测不同尺度的人脸。SSD等为关键点检测添加了额外的回归头。

Retinaface、SSH等加入了语义模型增加了模型的感受视野,同时retinaface证明了这种多任务学习提供了额外的自监督来提高了模型的能力,随后Maskface针对关键点检测提出了采用RoiAilgn来优化了关键点检测的精度,同时也提高了人脸检测模型的精度。虽然多任务学习模型被广泛研究,但针对人脸检测及头部姿态估计的多任务学习模型却很少。

发明内容

为解决头部姿态估计模型在同时估计多人头部姿态时的低效性,以及存在大量冗余计算的问题,本发明公开了一种基于多任务学习的人脸检测及头部姿态估计的方法,在检测到人脸的同时估计得到头部姿态。本发明的两个主要的创新时:1)提出了一种端到端的多任务学习模型,可以在检测到人脸的同时得到头部姿态角,通过共享特征图减少头部姿态评估的整体计算时间,在计算一帧图像中多人的头部姿态时速度得到了巨大的提升。2)在多任务学习采用先分类后回归的思想来计算头部姿态角,提高模型的鲁棒性。

本发明是一个anchor-free one-stage的多任务学习模型,通过一个RGB图像直接得到人脸框的位置及头部姿态,该模型是一种基于Centernet的anchor-free目标检测模型(模型的框图如图1所示),在目标检测任务中具有良好的精度和性能。Centernet直接检测对象的中心,并在这一点上回归框的大小。因为centernet是高斯分布的,它对小目标很友好。许多以anchor为基础的模型建立了不同的结构对于不同大小的人脸。高层的特征用来检测大人脸,浅层的特征用来检测小人脸。基于这个原理,本发明建立了特征金字塔。对于不同尺度的特征金字塔,分配不同尺度的人脸进行监督训练。传统的FPNs包括自下而上、自上而下和横向连接,是一种有效的空间整合结构。但它的连接是线性的、简单的,不能很好地融合层间的语义信息。所以本发明使用了DLA34作为了特征提取主干网络,它拥有与FPNs类似的结构。与FPNs不同的是,浅层与深层的特征融合设计更加复杂。层之间融合了更多的语义信息。通过对不同层次设计不同的面尺寸,有效地提高了模型的能力。

为了增加模型的感知视野,本发明在DLA-34不同步长输出后接语义模型。在语义模型之前,添加了一个1*1的卷积层,将特征图统一到256个通道。结合Retinaface设计了语义模型。如图2所示。本发明将语义模型的输入通道设置为256,然后将其输入到两个分支。得到128、64和64通道的3个特征图,最后将3个特征图拼接成256个通道作为语义模型的输出。在语义模型之后,得到了共享的特征图。然后设计了不同通道的1*1卷积层和3*3的卷积层来匹配不同任务,如通道1的人脸分类。

多任务损失函数:

对于不同尺度下的人脸检测的监督训练,本发明设计了如下的多任务损失函数:

L=L

L

对于每个人脸框,计算其中心点的坐标作为要检测的点。(x

α和β是focal loss的超参数,N是图像关键点的个数。

本发明并没有直接将步长与热图的坐标相乘得到原始图像的坐标,这显然是不够精确的。在将图像坐标转换为热图坐标的过程中,必然会有一定的损耗。通过最小化以下损失来计算这一损耗:

P是真实的坐标值。

Lsize进一步如下公式定义,其中

对于头部姿态估计,损失函数如下所定义:

其中H是交叉熵损失,MSE是平方误差损失函数。y是真正的标签,y预测值。

有益效果

解决了头部姿态估计模型依赖其它网络模型造成的低效性及冗余计算,在估计多人头部姿态时,效率有了巨大的提升。

附图说明

图1整体网络结构框架图

图2语义模型结构图

图3任务卷积层结构图

图4人脸检测PR曲线图

图5头部姿态估计偏差对比

图6在ALFW数据集上不同模型推理时间对比

图7不同模型不同人数下推理时间对比

图8不同模型在真实视频监控中每秒所处理的帧数

图9人脸检测及头部姿态估计效果图

具体实施方式

本实施例中采用图像摄取装置(包括标准光源、摄像器材等)实现对环境图像的采集,并将图像传输至计算机,在计算机中按基于多任务学习的人脸检测及头部姿态估计的方法对图像中的人脸进行检测,并在检测到人脸的同时得到其头部姿态的欧拉角。该方法利用图像处理及深度学习相关理论实现人脸检测及头部姿态估计两个任务。

1、模型的构建:

本发明由特征提取网络DLA-34、4个1*1卷积、4个语义模型及四个任务卷积层构成,特征提取网络用于提取图片的语义信息,将特征提取网络不同层级的提取的语义信息之后连接1*1的卷积,1*1的卷积连接语义模型,语义模型的输出为任务卷积头的输入。不同层级提取的语义信息采用的是DLA-34特征提取网络在上采样融合过程当中输出特征图尺寸为输入尺寸1/32,16/1,1/8,1/4的特征图。语义模型采用的是Retinaface中所设计的语义模型,其输入通道设置为256,然后将其输入到分支1及分支2中,其中分支1由一个3*3的卷积构成,输出通道为128。分支2首先经由一个输出通道为64的3*3卷积后输入两个小分支,分支2-1,2-2中。分支2-1由一个输出通道为64的3*3卷积构成。分支2-2首先经过一个输出通道为64的3*3卷积,在经过一个输出通道为64的3*3卷积。最后将分支1,分支2-1,分支2-2的输出拼接成256通道的特征图为语义模型的输出。在语义模型之后,得到了共享的特征图。任务卷积头由人脸分类卷积头、人脸框大小卷积头、人脸位置偏差卷积头、头部偏航角卷积头、头部俯仰角卷积头和头部翻滚角卷积头构成。每个卷积头由两个全卷积层依次连接构成,第一层卷积核的大小为1*1,第二层卷积核的大小为3*3,步长均为1。头部偏航角卷积头、头部俯仰角卷积头、头部翻滚角卷积头均输出大小为m*n*66的三维矩阵,用β为[1,2,3,…,66]的66维向量所构成的三维变换矩阵

2、模型的损失函数设计

多任务损失函数具体由如下公式定义:

L=L

L

其中L

其中α和β是超参数,

L

其中P是训练数据集中人脸中心点真实的坐标值,

L

其中

L

其中H是交叉熵损失,MSE是平方误差损失函数。y是训练数据集中头部姿态角的标签值,y为头部姿态卷积头输出的预测值。α为超参数。

3、模型的训练

数据处理:在训练过程中,图像将随机选择0.6到1.3之间的比例因子来调整大小。然后以50%的概率随机翻转图像并扭曲颜色。然后裁剪图像的随机区域到一个512*512分辨率的图像。如果裁剪后的图像不包含人脸的任何边界框,则对图像进行重新裁剪,使其包含至少一个人脸的边界框。这使我们能够在培训批次中包含更多的阳性样本。在ALFW数据集中,从偏航、俯仰和翻滚角度出发的大于99度和小于-99度的样本被排除。

训练细节:使用SGD优化器训练模型,其动量为0.9,权值衰减为0.0001。在AFLW数据集中,批处理大小为16。DLA-34是在ImageNet数据集上预先训练的。我们的初始学习率设置为0.001。在第10epoch时,设置学习率为0.01,在30epoch后,我们采用步长衰减策略。当损失没有减少时,将学习率乘以0.1,将最小学习率设置为0.00001,学习率下降到0.00001时不在减少。

4、结果测试

通过测试集对该方法进行系统测试,通过附图4,5,6,7,8可以看出本发明在损失了少量精度的前提下大幅度提升了人脸检测及头部姿态估计的推理速度。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号