基于多任务深度学习的人脸及人脸遮挡物检测方法与流程

文档序号:11231223阅读:3531来源:国知局
基于多任务深度学习的人脸及人脸遮挡物检测方法与流程

本发明涉及人脸遮挡检测领域,具体地,涉及一种基于多任务深度学习的人脸及人脸遮挡物检测方法。



背景技术:

多任务学习是一种归纳迁移机制,基本目标是提高泛化性能。多任务学习通过相关任务训练信号中的领域特定信息来提高泛化能力,利用共享表示采用并行训练的方法学习多个任务。

图1展示了4个独立的神经网络,每个网络是一个针对同样输入的仅有一个输出的函数。误差后向传播被应用于这些网络来单独训练每个网络,由于这些网络相互之间没有任何连接,因此其中一个网络学习到的特征并不能帮助另一个网络的学习,可称之为单任务学习(stl,singletasklearning)。

图2展示了一个输入与图1中的四个网络一致的单一网络,但该网络有四个输出,每个输出对应图1中的一个任务。这些输出可以连接他们共享的一个隐含层的所有神经元,也可以如图2顶部所示,在共享的一个隐含层后形成独立的子网络,训练与其他任务不共享的参数,即多任务学习(mtl,multitasklearning),在多任务学习网络中,后向传播并行地作用于4个输出。由于4个输出共享底部的隐含层,这些隐含层中用于某个任务的特征表示也可以被其他任务利用,促使多个任务共同学习。多个任务并行训练并共享不同任务已学到的特征表示,是多任务学习的核心思想。

多任务学习,充分利用隐含在多个相关任务训练信号中的特定领域信息。在后向传播过程中,多任务学习允许共享隐层中专用于某个任务的特征被其他任务使用;多任务学习将可以学习到可适用于几个不同任务的特征,这样的特征在单任务学习网络中往往不容易学到。

归纳迁移的目标是利用额外的信息来源来提高当前任务的学习性能,包括提高泛化准确率、学习速度和学习的模型的可理解性。提供更强的归纳偏向是迁移提高泛化能力的一种方法,可以在固定的训练集上产生更好的泛化能力,或者减少达到同等性能水平所需要的训练样本数量。归纳偏向会导致一个归纳学习器更偏好一些假设,多任务学习正是利用隐含在相关任务训练信号中的信息作为一个归纳偏向来提高泛化能力。

与本发明相关的现有技术一

现有技术方案一:

人脸的形状、颜色等信息往往比较固定,因此可采用对图像和视频提取手工特征的方式进行遮挡的判别。首相将帧差图和边缘图相或并进行距离变换得到运动边缘图;通过峰值判定有足够运动信息之后,使用水平和垂直投影得到头顶纵坐标,左耳和右耳的横坐标来辅助定位人头位置。通过训练的头肩轮廓模型,在当前视频段进行搜索匹配找到目标形状,使用椭圆拟合定位出人脸的位置。在定位出人脸位置的基础上,使用基于肤色检测和基于的方法,分眼睛区域和嘴部区域分别判定遮挡情况,最终综合判定是否遮挡。

现有技术方案一缺点:

利用手工特征的方法往往需要采用运动边缘检测,这就需要连续的视频数据,对数据格式要求比较高。并且,手工提取的特征对具体场景和问题的依赖性很高,从而导致泛化性能和鲁棒性较差。

与本发明相关的现有技术二

现有技术方案二:

采用深度神经网络进行人脸检测和对人脸关键点是否被遮挡进行判断。构建深度神经网络,网络输出为人脸边框和人脸关键部位,如双眼、鼻子、嘴巴等,采用遮挡人脸的图像数据集对网络进行训练,直至收敛。

现有技术方案二缺点:

此类方法只对人脸关键部位是否被遮挡进行判断,而不能具体地判断遮挡物的种类、遮挡的范围,从而导致应用场景较少。



技术实现要素:

本发明提供了一种基于多任务深度学习的人脸及人脸遮挡物检测方法,解决了目前人脸遮挡检测中只能判别是否遮挡,而无法检测常见遮挡物的种类和遮挡区域,以及算法实时性能差的问题,并且能够检测遮挡物的位置,能进一步在遮挡物替换、ar等场景中应用的技术效果。

人脸遮挡物:本发明中特指帽子、眼镜、口罩。

f-net(facedetectionnetwork):人脸检测子网络。

o-net(occlusiondetectionnetwork):人脸遮挡物检测子网络。

c-net(calibratingnetwork):边框修正子网络。

nms:非极大值抑制。

bbox(boundingbox):物体的矩形边框。

fc(fullyconnected)层:全连接层。

iou(intersection-over-union):两区域交与并的商值,一种判断区域重合度的尺度标准。

loss:神经网络训练中根据需要定义的损失函数。

为解决上述技术问题,本申请提供了基于多任务深度学习的人脸及人脸遮挡物检测方法,所述方法包括:

步骤1:建立多任务人脸细节检测网络,多任务人脸细节检测网络由三个级联的子网络组成,分别为:f-net,o-net和c-net;f-net用于检测出人脸的大致位置,为后两级网络提供人脸位置的候选区域;o-net用于基于f-net的检测结果进一步判别候选区域可信程度并对人脸bbox进行修正,并用于检测人脸图像中否存在遮挡物以及遮挡物的位置;c-net用于进一步对f-net、o-net的检测结果进行校正;

步骤2:基于建立的多任务人脸细节检测网络,对图片中人脸细节进行检测,获得人脸是否有遮挡物检测结果和遮挡物的类型和位置检测结果。

其中,不同的子网络分配不同的任务以及不同的子网络任务偏向性也不同,具体表现为:

(1)f-net主要任务为产生人脸检测候选区域,o-net主要任务为修正人脸bbox和判断是否存在遮挡物,c-net主要任务为进一步校正bbox回归结果。

(2)任务偏向的不同在于,o-net和c-net的损失函数中采用了不同的α、β和γ值,从而引导网络在训练过程中朝着不同的目标收敛,使得每个网络有不同的任务偏向,即o-net偏向于人脸和遮挡物的判别,c-net更偏向于遮挡物bbox坐标的修正。

进一步的,所述方法还包括:

根据人脸候选窗口与真实的人脸标定框之间的iou标定候选窗口中的正负样本;

基于获得的样本对多任务人脸细节检测网络进行训练。

进一步的,所述基于建立的多任务人脸细节检测网络,对图片中人脸细节进行检测,具体包括:

将原始图像统一缩放到500×500像素大小,得到初步调整后统一大小的图像(目的是避免过大的图像对网络的计算造成压力,同时大小统一的图像方便网络进行处理),将初步调整后的图像按照4个不同的比例进行缩小,分别为:第一比例、第二比例、第三比例、第四比例,其中:第一比例<第二比例<第三比例<第四比例;f=0.1,0.2,0.3的图像用于提取候选区域,由于此部分图像分辨率较低,可提升产生候选区域过程的速度;在多个缩放比率的图像上滑窗以产生候选区域的方式可以保证原图中不同大小的人脸都可以被检测到,具体的,可检测人脸最小为像素,最大为像素。

在第一比例、第二比例、第三比例缩放后的图片上滑窗以产生候选区域,将这些候选区域截取后输入f-net,获得人脸候选框;

将人脸候选框对应到第四比例缩放后的图片上,输入o-net,获得人脸遮挡物检测结果和人脸检测区域的修正;

将o-net输出结果标记在与初步调整后图像相同大小的图片上对应区域,然后将标记后的图片作为c-net输入,经过c-net计算得到最终的人脸检测结果和遮挡物检测结果。

进一步的,利用两类任务对多任务人脸细节检测网络进行训练:分类任务和bbox回归任务;

分类任务具体为:

对于每个样本xi,采用交叉熵损失函数:

其中,pi表示样本xi是否存在某物体的概率,表示真实类别标签,cls={face,hat,glasses,mask}。

bbox回归任务具体为:

对于每个由多任务人脸细节检测网络产生的bbox预测结果,根据真实类别标签计算l2损失;

每个类别的定位损失为:

其中,为真实标定数据groundtruth,为网络输出bbox结果;

网络最终目标为:

min(la+lb)

在f-net中:

表示当网络判别此窗口中有人脸时才计算bbox回归损失,而时不反馈梯度;

在o-net和c-net中:

在o-net中,采用α=1,β=0.5,γ=0.5;在c-net中采用α=1,β=0.5,γ=2。

进一步的,一方面对于每个真实的人脸标定框,与该人脸标定框的iou最大的人脸候选窗口标定为正样本;另一方面对于每个真实的人脸标定框,将与该人脸标定框之间的iou大于0.4阈值的人脸候选窗口标定为正样本;除上述两组候选框之外的其余人脸候选框均标定为负样本。

进一步的,f-net为全卷积网络,由三层卷积层组成,其中第一层卷积层后加入一个池化层;o-net底部为三层卷积层,在前两层分别加入池化层,顶部接入fc层;c-net结构与o-net相同。

进一步的,基于建立的多任务人脸细节检测网络,对图片中人脸细节进行检测,具体包括:

第一步:将输入图像porigin缩放得到图像pscaled,按照f={0.1,0.2,0.3,0.5}的比例缩小,与pscaled(f=1)共同构成图像金字塔;f=0.1,0.2,0.3的图像用于提取候选区域,由于此部分图像分辨率较低,可提升产生候选区域过程的速度;在多个缩放比率的图像上滑窗以产生候选区域的方式可以保证原图中不同大小的人脸都可以被检测到,具体的,可检测人脸最小为像素,最大为像素。

第二步:对于f1=0.1,f2=0.2和f3=0.3对应的图像,使用窗口在图像上滑动;在f1对应的图像滑窗时步长为1;设置f2和f3对应的图像上滑窗时步长为2;将这些窗口图像依次送入f-net,基于窗口做预测和回归,判断窗口中是否存在人脸并预测人脸相对于窗口的位置,从而得到人脸候选区域集合c1;

第三步:将f-net中所得候选区域对应到f4=0.5的图片中的相应位置,之后进行nms处理,得到候选区域集合c2;

第四步:根据c2的坐标,在f4的图片中进行截取;将截取图像缩放后送入o-net,经过卷积层和全连接层后分别输出人脸/帽子/眼镜/口罩的预测结果和bbox坐标位置,设所得到的初步预测结果为集合c3;

第五步:根据第四步预测的人脸边框结果对c3进行nms处理,得到人脸边框集合c4,对c4中的人脸框在f4对应的图像中截取出相对应位置的图像,缩放后送入c-net,经过卷积层和全连接层后分别输出人脸/帽子/眼镜/口罩的预测结果和bbox坐标位置,再次对人脸框进行nms处理,得出最后预测结果;

第六步:根据第五步所得到的人脸/帽子/眼镜/口罩的边框位置,计算出人脸被遮挡的部位和比例。

其中,本申请中的多任务具体体现为:

(1)f-net主要任务为产生可能存在人脸区域的候选框(任务1),在低分辨率图像上快速滑动并初步判断是否存在人脸,识别出可能存在人脸的大概区域位置,为后两级网络提供人脸和遮挡物检测的依据。

(2)在o-net和c-net中不仅检测人脸(任务2),还判断遮挡物类型(任务3)和遮挡物位置(任务4)。

(3)f-net的训练过程中,loss由人脸判别(是否有人脸存在)损失和人脸bbox回归损失构成。在o-net和c-net的loss函数中,loss由多类物体判别(是否存在人脸、帽子、眼镜、口罩)损失和物体bbox回归损失构成,并且设定了人脸检测和遮挡物检测的损失。

本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:

相对于手工特征的方法,不需要人工对图像特征进行提取和运算,能够保证模型的鲁棒性,并且不需要连续的视频图像用作运动边缘检测。相比人脸关键点遮挡检测,本发明能够对遮挡物的种类和遮挡范围进行判断,可提供更多的有效信息。检测对多尺度图像和多级网络的运用,在保证检测精度的同时能够加快模型的运行速度,提高算法的实时性。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定;

图1是本申请中单任务学习网络示意图;

图2是本申请中多任务学习网络示意图;

图3是本申请中人脸细节检测算法流程示意图。

具体实施方式

本发明提供了一种基于多任务深度学习的人脸及人脸遮挡物检测方法,解决了目前人脸遮挡检测中只能判别是否遮挡,而无法检测常见遮挡物的种类和遮挡区域,以及算法实时性能差的问题,并且能够检测遮挡物的位置,能进一步在遮挡物替换、ar等场景中应用的技术效果。

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

多任务人脸细节检测网络有三个级联的子网络组成,分别为f-net,o-net和c-net。f-net主要负责检测出人脸的大致位置,为后两级网络提供人脸位置的候选区域。o-net进一步判别候选区域可信程度并对人脸bbox进行修正;同时,o-net还检测是人脸图像中否存在遮挡物(帽子/眼镜/口罩)以及遮挡物的位置。c-net进一步对前两级网络的检测结果进行校正。

f-net为全卷积网络,由三层卷积层组成,其中第一层卷积层后加入一个池化层。卷积层的卷积核和大小均为3×3,卷积核数量分别为10,10,6。输入图像大小为14×14,输出为人脸分类结果(是人脸/不是人脸)和bbox位置(相对于输入图像)。采用全卷积网络能够有效减少网络参数的数量,提高运行速度。

o-net底部为三层卷积核大小为3×3的卷积层,在前两层分别加入池化层,顶部接入fc层,输入图像大小为75×75,输出为四类物体(人脸/帽子/眼镜/口罩)预测结果和bbox坐标位置。

c-net结构同o-net相似,只是输入大小变为150×150。

采用多级子网络对图像进行处理,在低分辨率图像进行人脸图像的初筛,在较高分辨率图像上进行进一步修正,可在保证精度的情况下提高网络运行速度,满足实时性的要求。

多任务人脸细节检测方法框架:

1.将输入图像porigin缩放到500×500像素大小得到图像pscaled,避免过大的图像对网络的计算造成压力,同时大小统一的图像方便网络进行处理。然后按照f={0.1,0.2,0.3,0.5}的比例缩小,与pscaled(f=1)共同构成图像金字塔。

2.对于f1=0.1,f2=0.2和f3=0.3对应的图像,使用14×14的窗口在图像上滑动。在f1对应的图像滑窗时步长为1;为了提高运行速度,设置f2和f3对应的图像上滑窗时步长为2。因此可认为网络能处理的人脸最小为大约50×50像素,最大为大约为140×140像素。并将这些滑动产生的窗口图像依次送入f-net,基于窗口做预测和回归,判断窗口中是否存在人脸并预测人脸相对于窗口的位置,从而得到人脸候选区域集合c1。以滑窗的方式进行候选区域的提取,可以不必引入额外的候选区域产生算法或者网络,降低网络的复杂度,避免繁琐的训练过程,并减少网络对存储空间的消耗。

3.将f-net中所得候选区域对应到f4=0.5的图片中的相应位置,之后进行nms,得到候选区域集合c2。对进行nms可去除掉高度重合的窗口,避免后续的网络进行过多的重复计算。

4.根据c2的坐标,在f4的图片中进行截取。由于o-net的顶部加入了fc层,所以网络需要大小固定的输入图像。因此将截取图像缩放到100×100像素大小,送入o-net,经过卷积层和全连接层后分别输出人脸/帽子/眼镜/口罩的预测结果和bbox坐标位置。

5.根据上一步预测的人脸边框结果进行nms,对剩下的人脸框在f4(即原图)中对应的图像进行截取,再缩放至150×150大小,送入c-net,接下来同第4步类似。根据上一步所得到的人脸/帽子/眼镜/口罩的边框位置,计算出人脸被遮挡的部位和比例。

人脸细节检测算法流程:f=0.1,0.2,0.3的图片用于滑窗产生候选区域,并将滑窗结果输入f-net,获得人脸候选框,将这些候选边框对应到f=0.5的图片上,输入o-net,从而得到人脸遮挡物检测结果和人脸检测区域的修正;最后将o-net输出结果(包括人脸检测结果和遮挡物体检测结果)在f=1.0的图片上对应区域作为c-net输入,经过c-net计算得到最终的人脸检测结果和遮挡物检测结果。

正负样本匹配策略:

需要根据人脸候选窗口与groundtruth(真实的人脸标定框)之间的iou标定候选窗口中的正负样本。采用两种策略选定正样本:

1)对于每个真实的人脸标定框,和它的iou最大的人脸候选窗口标定为正样本;

2)对于每个真实的人脸标定框,将与它之间的iou大于0.4阈值的人脸候选窗口标定为正样本。

其余人脸候选框均标定为负样本。

训练目标:

利用两类任务对网络进行训练:1)分类2)bbox回归

1)分类:对于每个样本xi,采用交叉熵损失函数:

其中,pi表示样本xi是否存在某物体的概率,表示真实类别标签,cls={face,hat,glasses,mask}。

例如,某个样本xi被标定为正样本,即它与某个真实人脸标定框的iou超过阈值0.4或是所有候选窗口中最大;而此真实人脸标定框中人脸有眼镜,没有帽子和口罩,那么人脸真实标签眼镜真实标签帽子和口罩真实标签均为0。若xi为负样本,则

2)bbox回归:

对于每个由网络产生的bbox预测结果,根据真实类别标签计算l2损失。

每个类别的定位损失为

其中为真实标定数据groundtruth,为网络输出bbox结果。

网络最终目标为

min(la+lb)

在f-net中

为lb设置了0.5的权值而la,目的在于强调网络判别人脸的能力。表示当网络判别此窗口中有人脸时才计算bbox回归损失,而时不反馈梯度。

在o-net和c-net中

在o-net中,采用α=1,β=0.5,γ=0.5;在c-net中采用α=1,β=0.5,γ=2。在o-net和c-net的loss函数中设置不同的权值,可从而引导网络在训练过程中朝着不同的目标收敛,使训练之后的网络分工较为明确,功能有不同的层次。即o-net偏向于人脸和遮挡物的判别,c-net更偏向于遮挡物bbox坐标的修正。

上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:

相对于手工特征的方法,不需要人工对图像特征进行提取和运算,能够保证模型的鲁棒性,并且不需要连续的视频图像用作运动边缘检测。相比人脸关键点遮挡检测,本发明能够对遮挡物的种类和遮挡范围进行判断,可提供更多的有效信息。检测对多尺度图像和多级网络的运用,在保证检测精度的同时能够加快模型的运行速度,提高算法的实时性。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1