掌桥专利:专业的专利平台
掌桥专利
首页

一种人脸检测网络的训练方法、装置、设备以及存储介质

文献发布时间:2023-06-19 12:10:19


一种人脸检测网络的训练方法、装置、设备以及存储介质

技术领域

本申请涉及人脸检测,具体而言,涉及一种人脸检测网络的训练方法、装置、设备以及存储介质。

背景技术

现有的视频人脸检测方法主要是基于人脸检测神经网络做的,人脸检测神经网络的处理流程一般为:将人脸图像输入人脸检测神经网络,得到人脸检测神经网络输出的检测结果,该检测结果通常包含有人脸关键点。

现有的视频人脸检测方法存在以下弊端:由于视频中的人物会发生移动,因此,当视频中的人物发生移动的时候,采用现有的人脸检测神经网络对人脸进行检测,极易出现连续帧中的人脸关键点发生抖动,即连续帧中同一人的人脸关键点在该人脸相应部位的真实标记位置附近抖动。

发明内容

基于此,有必要针对上述问题,提出一种能够在一定程度上防止抖动的人脸检测网络的训练方法、装置、设备以及存储介质。

第一方面,提供了一种人脸检测网络的训练方法,包括:

获取第一图像和第二图像,所述第一图像和所述第二图像中均包含有目标人脸;

分别将所述第一图像和所述第二图像输入初步检测网络,得到所述目标人脸在所述第一图像和所述第二图像中的人脸检测结果,所述人脸检测结果中包括多个人脸检测关键点,所述初步检测网络是对原始检测网络进行训练后得到的;

对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点;

根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失;

根据所述网络损失,对所述初步检测网络进行训练,得到目标检测网络。

上述人脸检测网络的训练方法,基于第一图像的人脸检测关键点,对人脸关键点在第二图像中的位置进行了跟踪,得到了第二图像中的人脸追踪关键点,该人脸追踪关键点默认为人脸标注关键点,然后基于第二图像中的人脸追踪关键点和人脸检测关键点生成网络损失对经过训练的原始检测网络(初步检测网络)进行训练,以对第二图像中的人脸检测关键点进行调整,以便调整后的人脸检测关键点不会出现抖动,从而得到目标检测网络,在一定程度上降低了连续帧中的目标人脸的人脸关键点在该目标人脸的真实标记位置附近抖动的概率。

在一个实施例中,所述人脸追踪关键点和所述人脸检测关键点中均包括关键点坐标;所述根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失,包括:对所述目标人脸在所述第二图像中的每个人脸检测关键点,根据关键点坐标,计算所述人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点之间的坐标绝对差值;根据每个所述坐标绝对差值确定所述坐标绝对差值对应的追踪置信度;根据每个所述坐标绝对差值和所述坐标绝对差值对应的追踪置信度计算网络损失。

上述实施例,当第二图像的人脸检测关键点和人脸追踪关键点差异较小的时候,说明关键点的跟踪是有效跟踪,此时,可以通过人脸检测关键点和人脸追踪关键点之间的损失来训练模型,但是,当第二图像的人脸检测关键点和人脸追踪关键点差异特别大的时候,说明关键点的跟踪失效,此时,再通过人脸检测关键点和人脸追踪关键点之间的损失来训练模型可能会降低模型精度,因此,根据人脸检测关键点和人脸追踪关键点之间的差异来确定追踪置信度,通过追踪置信度对损失大小进行调整,从而提高模型训练精度。

在一个实施例中,所述根据每个所述坐标绝对差值和所述坐标绝对差值对应的追踪置信度计算网络损失,包括:若所述坐标绝对差值小于预设差值,则根据关键点坐标,计算所述坐标绝对差值对应的人脸检测关键点和人脸追踪关键点之间的关键点距离,根据所述关键点距离和所述坐标绝对差值对应的追踪置信度的乘积确定所述坐标绝对差值对应的损失;若所述坐标绝对差值大于或等于所述预设差值,则获取差值修正值,根据所述坐标绝对差值、所述差值修正值和所述坐标绝对差值对应的追踪置信度确定所述坐标绝对差值对应的损失;根据每个所述坐标绝对差值对应的损失计算网络损失。

上述实施例,当人脸检测关键点和人脸追踪关键点之间的差异较小或者较大的时候,采用不同的方法来计算网络损失,提高网络损失的计算精度,防止计算得到的网络损失过大导致出现梯度爆炸,进而降低目标检测网络的精度。

在一个实施例中,所述根据每个所述坐标绝对差值确定所述坐标绝对差值对应的追踪置信度,包括:当所述坐标绝对差值大于门限差值时,将所述坐标绝对差值对应的追踪置信度设置为0。

上述实施例,当人脸检测关键点和人脸追踪关键点之间的差异特别大且超过门限差值的时候,关键点的跟踪失效肯定失效了,此时,将不再根据人脸检测关键点和人脸追踪关键点之间的损失来训练初步检测网络,直接将追踪置信度设置为0,以免降低网络精度。

在一个实施例中,所述人脸检测结果中还包括分类检测结果和框检测结果;所述根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失,包括:获取所述目标人脸在所述第二图像中的分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点;根据所述目标人脸在所述第二图像中的分类标注结果和分类检测结果计算分类损失,根据所述目标人脸在所述第二图像中的框标注结果和框检测结果计算检测框损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点对应的人脸标注关键点计算关键点预测损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算关键点追踪损失;根据所述分类损失、所述检测框损失、所述关键点预测损失以及所述关键点追踪损失计算网络损失。

上述实施例,联合多个损失:分类损失、检测框损失、关键点预测损失以及关键点追踪损失,来计算网络损失,从而基于联合损失对初步检测网络进行训练,提高初步检测网络的训练速度以及精度。

在一个实施例中,在所述获取先后采集的第一图像和第二图像之前,还包括:将所述第二图像输入所述初步检测网络,得到所述目标人脸在所述第二图像中的分类标注结果、框标注结果和多个人脸标注关键点。

上述实施例,需要预先生成分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点,以便在计算网络损失时快速获取到分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点,并且,分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点如果采用人工标注的方式将十分耗时费力,所以,直接通过初步检测网络来得到将降低人力成本、降低获取时间。

在一个实施例中,所述对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点,包括:采用Lucas-Kanade算法对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点。

上述实施例,考虑到Lucas-Kanade算法对于噪声有较高的鲁棒性,并且,Lucas-Kanade算法对于亮度恒定、运动缓慢以及空间一致的应用场景具有较好的追踪效果,因此,采用Lucas-Kanade算法对符合上述条件的场景进行关键点追踪,以达到良好的关键点追踪效果。

第二方面,提供了一种人脸检测网络的训练装置,包括:

图像获取模块,用于获取先后采集的第一图像和第二图像,所述第一图像和所述第二图像中均包含有目标人脸;

网络检测模块,用于分别将所述第一图像和所述第二图像输入初步检测网络,得到所述目标人脸在所述第一图像和所述第二图像中的人脸检测结果,所述人脸检测结果中包括多个人脸检测关键点,所述初步检测网络是对原始检测网络进行训练后得到的;

人脸追踪模块,用于对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点;

损失计算模块,用于根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失;

目标训练模块,用于根据所述网络损失,对所述初步检测网络进行训练,得到目标检测网络。

在一个实施例中,所述人脸追踪关键点和所述人脸检测关键点中均包括关键点坐标;所述损失计算模块,具体用于:对所述目标人脸在所述第二图像中的每个人脸检测关键点,根据关键点坐标,计算所述人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点之间的坐标绝对差值;根据每个所述坐标绝对差值确定所述坐标绝对差值对应的追踪置信度;根据每个所述坐标绝对差值和所述坐标绝对差值对应的追踪置信度计算网络损失。

在一个实施例中,所述损失计算模块,具体用于:若所述坐标绝对差值小于预设差值,则根据关键点坐标,计算所述坐标绝对差值对应的人脸检测关键点和人脸追踪关键点之间的关键点距离,根据所述关键点距离和所述坐标绝对差值对应的追踪置信度的乘积确定所述坐标绝对差值对应的损失;若所述坐标绝对差值大于或等于所述预设差值,则获取差值修正值,根据所述坐标绝对差值、所述差值修正值和所述坐标绝对差值对应的追踪置信度确定所述坐标绝对差值对应的损失;根据每个所述坐标绝对差值对应的损失计算网络损失。

在一个实施例中,所述损失计算模块,具体用于:当所述坐标绝对差值大于门限差值时,将所述坐标绝对差值对应的追踪置信度设置为0。

在一个实施例中,所述人脸检测结果中还包括分类检测结果和框检测结果;所述损失计算模块,具体用于:获取所述目标人脸在所述第二图像中的分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点;根据所述目标人脸在所述第二图像中的分类标注结果和分类检测结果计算分类损失,根据所述目标人脸在所述第二图像中的框标注结果和框检测结果计算检测框损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点对应的人脸标注关键点计算关键点预测损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算关键点追踪损失;根据所述分类损失、所述检测框损失、所述关键点预测损失以及所述关键点追踪损失计算网络损失。

在一个实施例中,所述装置,还包括:标注模块,用于将所述第二图像输入所述初步检测网络,得到所述目标人脸在所述第二图像中的分类标注结果、框标注结果和多个人脸标注关键点。

在一个实施例中,所述人脸追踪模块,具体用于:采用Lucas-Kanade算法对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点。

第三方面,提供了一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述人脸检测网络的训练方法的步骤。

第四方面,提供了一种计算机可读存储介质,所述计算机可读取存储介质中存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如上所述人脸检测网络的训练方法的步骤。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例中人脸检测网络的训练方法的实现流程示意图;

图2为本申请实施例提供的目标区域的示意图;

图3为本申请实施例提供的目标检测网络的人脸检测关键点的示意图;

图4为本申请实施例中人脸检测网络的训练装置的组成结构示意图;

图5为本申请实施例中计算机设备的内部结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在一个实施例中,提供了一种人脸检测网络的训练方法,本发明实施例所述的人脸检测网络的训练方法的执行主体为能够实现本发明实施例所述的人脸检测网络的训练方法的设备,该设备可以包括但不限于终端和服务器。其中,终端包括台式终端和移动终端,台式终端包括但不限于台式电脑和车载电脑;移动终端包括但不限于手机、平板、笔记本电脑和智能手表。服务器包括高性能计算机和高性能计算机集群。

如图1所示,本发明实施例所述的人脸检测网络的训练方法,具体包括:

步骤S100,获取先后采集的第一图像和第二图像,所述第一图像和所述第二图像中均包含有目标人脸。

第一图像,为视频序列中当前帧对应的图像;第二图像,为视频序列中帧序比第一图像的帧序大1的图像。例如,第一图像帧序为M,则第二图像的帧序为M+1。

目标人脸,为第一图像和第二图像中均包含的一个人脸。

步骤S200,分别将所述第一图像和所述第二图像输入初步检测网络,得到所述目标人脸在所述第一图像和所述第二图像中的人脸检测结果,所述人脸检测结果中包括多个人脸检测关键点,所述初步检测网络是对原始检测网络进行训练后得到的。

人脸检测结果,为初步检测网络输出的目标人脸的检测结果。示例性的,人脸检测结果包括人脸检测框、人脸分类结果和人脸检测关键点。其中,人脸检测框具体为框坐标,根据该框坐标可以实现检测框的构建,进一步的,根据构建好的检测框对图像中的人脸进行标记;人脸分类结果具体为分类标签,即对检测框标记的内容进行分类,例如,当检测框标记的内容为人脸时,分类标签为1,否则,分类标签为0,例如,检测框标记的内容为动物时,分类标签为0;人脸检测关键点,为对目标人脸的人脸关键点进行检测得到的,人脸检测关键点具体为关键点坐标,根据该人脸检测关键点记载的关键点坐标,在包含目标人脸的图像中,对目标人脸中的人脸关键点进行标记,以将人脸检测关键点通过标记的方式进行显示,其中,人脸关键点,为目标人脸中的一些点,根据这些点可以实现对目标人脸的人脸识别等,例如,目标人脸的人脸关键点为两个眼角的点以及两个嘴角的点,人脸关键点的数量可以不止一个,例如,可以是3个,5个或者1000个,人脸关键点的数量可以根据具体的应用场景来确定。

当初步检测网络的输入是包含人脸的图像时,该初步检测网络的输出是人脸检测结果;当初步检测网络的输入是不包含人脸的图像时,该初步检测网络输出的人脸检测结果为空,即无法检测出人脸检测框对应的框坐标、人脸分类结果对应的分类标签以及人脸检测关键点。

为了得到初步检测网络,需要搭建好原始检测网络,然后对原始检测网络进行训练。示例性的,原始检测网络包括MobileNet主干网络、特征金字塔网络和上下文联结网络,其中,MobileNet主干网络用于提取输入图像的特征,得到特征图;特征金字塔网络和上下文联结网络均是将不同网络层提取到的特征图联结起来,从而形成更大的感受野,从而得到人脸检测结果。搭建好原始检测网络之后,需要对原始检测网络进行训练,示例性的,训练方法为:获取当前训练图像,将当前训练图像输入原始检测网络,得到当前训练图像对应的人脸检测结果,其中,当前训练图像为用于训练原始检测网络的人脸图像;获取当前训练图像对应的人脸标注结果,当前训练图像对应的人脸标注结果为对当前训练图像中的人脸进行标注得到的结果;根据当前训练图像对应的人脸标注结果和人脸检测结果计算训练损失,其中,训练损失为训练原始检测网络的损失;根据该训练损失对原始检测网络进行训练,得到初步检测网络。示例性的,训练原始检测网络的数据集为WiderFace数据集。

初步检测网络是由原始检测网络训练得到的,因此,初步检测网络具有较高的检测精度和检测实时性,但是,现有的检测精度衡量的衡量方法是图像中所有的人脸检测关键点与相应的标注关键点之间的差异,因此,虽然所有的人脸检测关键点与相应的标注关键点之间的差异满足了网络训练的要求,但是对于单个人脸检测关键点来说,其可能与真实的人脸关键点之间存在较大的位置差异,也即出现抖动,故而需要对初步检测网络进行再训练得到目标检测网络,从而提高各个关键点检测的准确率,从而防止抖动现象。

步骤S300,对所述目标人脸在所述第一图像中的人脸检测关键点进行关键点追踪,得到所述目标人脸在所述第二图像中的人脸追踪关键点。

人脸追踪关键点,是通过关键点追踪的方式得到的第二图像中的人脸关键点,具体是通过关键点追踪的方式得到的目标人脸的人脸关键点在第二图像中的坐标位置。示例性的,采用光流法进行关键点追踪,得到人脸追踪关键点。其中,光流法是用于评估两幅图像之间的变形的方法,光流法是要计算得到光流,光流为同一物点在两幅图之间的坐标位置的变化,其中,物点是指真实场景中的点,光流法假设物体的颜色在前后两帧没有巨大而明显的变化,基于这个假设得到约束方程,通过约束方程实现光流的计算。需要说明的是,关键点追踪的方法不限于光流法,还可以使用其他的方法进行关键点追踪,只要该方法能够确定出同一像素点在不同图像中的坐标位置的关系即可。

由于是对目标人脸在第一图像中的人脸检测关键点进行的关键点追踪,那么追踪得到的第二图像中的人脸追踪关键点在目标人脸中的位置和第一图像中的人脸检测关键点在目标人脸中的位置之间将不会产生很大的变化,因此,在对初步检测网络进行训练的时候,可以将第二图像中的人脸追踪关键点看做是人脸标注关键点,从而根据第二图像中的人脸检测关键点和人脸追踪关键点计算网络损失并训练初步检测网络,从而使得训练后得到的目标检测网络能够在一定程度上解决关键点抖动现象。

由于是对目标人脸在第一图像中的人脸检测关键点进行的关键点追踪,并且将追踪得到的第二图像中的人脸追踪关键点看作是人脸标注关键点,因此,需要保证第一图像中的人脸检测关键点在目标人脸中的位置相较于人脸关键点在目标人脸中的位置没有过大的偏移或抖动,也即初步检测网络输出的目标人脸在第一图像中的人脸检测关键点在目标人脸中的位置和人脸关键点在目标人脸中的位置相比没有过大的差异,可以理解的是,如果初步检测网络输出的目标人脸在第一图像中的人脸检测关键点在目标人脸中的位置和人脸关键点在目标人脸中的位置相比有较大的差异,那么通过关键点追踪的方式追踪得到的人脸追踪关键点在目标人脸中的位置也必然和人脸关键点在目标人脸中的位置有较大的差异,如果再将这个有较大差异的人脸追踪关键点作为人脸标注关键点来训练初步检测网络,将会在一定程度上降低初步检测网络的训练精度。

因此,需要对用于训练初步检测网络的第一图像进行一定的筛选,剔除有问题的图像,即剔除人脸检测关键点和人脸关键点在人脸中的位置有较大差异的图像,从而提高初步检测网络的训练精度。提供一种获取第一图像的方法,包括:获取候选图像集,所述候选图像集中包括多张候选图像,每张候选图像中均包含有目标人脸;将所述多张候选图像输入初步检测网络,得到初步检测网络输出的每张候选图像对应的多个人脸检测关键点;分别将每张候选图像对应的多个人脸检测关键点与目标人脸的人脸关键点的位置进行比对,得到每张候选图像的比对结果,比对结果为差异较小结果或差异较大结果;将比对结果为差异较小结果的候选图像作为第一图像。

提供一种根据比对结果判断差异大小的方法:设置目标区域。具体的,根据目标人脸的人脸关键点在目标人脸中的位置构建目标区域,如图2所示的5个椭圆形目标区域,5个椭圆形目标区域是分别基于相应的人脸关键点构建的,当候选图像中一定数量的人脸检测关键点位于目标人脸中相应的目标区域时,将该候选图像的比对结果确定为差异较小结果;当候选图像中少于该一定数量的人脸检测关键点位于目标人脸中相应的目标区域时,将该候选图像的比对结果确定为差异较大结果。从而从多张候选图像中选出用于训练初步检测网络的第一图像。

示例性的,目标区域通过人工标注的方式得到。

在一个实施例中,考虑到Lucas-Kanade算法对于噪声有较高的鲁棒性,并且,Lucas-Kanade算法对于亮度恒定、运动缓慢以及空间一致的应用场景具有较好的追踪效果,因此,采用Lucas-Kanade算法对符合上述条件的场景进行关键点追踪,以达到良好的关键点追踪效果。具体的,步骤300所述对所述目标人脸在所述第一图像中的人脸检测关键点进行关键点追踪,得到所述目标人脸在所述第二图像中的人脸追踪关键点,包括:采用Lucas-Kanade算法对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点。

具体的,将第一图像和第二图像作为Lucas-Kanade算法的输入,得到Lucas-Kanade算法输出的第一图像和第二图像之间的光流;根据第一图像和第二图像之间的光流以及目标人脸在第一图像中的人脸检测关键点(坐标),得到目标人脸在第二图像中的人脸追踪关键点(坐标)。

步骤S400,根据所述目标人脸在所述第二图像中的人脸检测关键点和人脸追踪关键点计算网络损失。

网络损失,为用于训练初步检测网络的损失。由于是将人脸追踪关键点看作是人脸标注关键点,因此,可以基于第二图像中的人脸检测关键点和人脸追踪关键点计算网络损失来对初步检测网络进行训练。

步骤S500,根据所述网络损失,对所述初步检测网络进行训练,得到目标检测网络。

由于已经计算得到了网络损失,此时,将该网络损失进行反向传播,并通过梯度下降算法调整初步检测网络中的网络参数,直至计算得到的网络损失小于预设损失时,得到目标检测网络。此后,使用该目标检测网络对输入的多张帧序连续的人脸图像进行检测,得到的连续帧中的人脸关键点将不再发生巨大抖动。如图3所示,通过本发明实施例的目标检测网络得到的人脸检测关键点(图3中的第二行),可见,人脸检测关键点更好的保持在了目标人脸的人脸关键点的位置处,并没有发生过大的抖动或偏移。

上述人脸检测网络的训练方法,基于第一图像的人脸检测关键点,对人脸关键点在第二图像中的位置进行了跟踪,得到了第二图像中的人脸追踪关键点,该人脸追踪关键点默认为人脸标注关键点,然后基于第二图像中的人脸追踪关键点和人脸检测关键点生成网络损失对经过训练的原始检测网络(初步检测网络)进行训练,以对第二图像中的人脸检测关键点进行调整,以便调整后的人脸检测关键点不会出现抖动,从而得到目标检测网络,在一定程度上降低了连续帧中的目标人脸的人脸关键点在该目标人脸的真实标记位置附近抖动的概率。

在一个实施例中,当第二图像的人脸检测关键点和人脸追踪关键点差异较小的时候,说明关键点的跟踪是有效跟踪,此时,可以通过人脸检测关键点和人脸追踪关键点之间的损失来训练模型,但是,当第二图像的人脸检测关键点和人脸追踪关键点差异特别大的时候,说明关键点的跟踪失效,此时,再通过人脸检测关键点和人脸追踪关键点之间的损失来训练模型可能会降低模型精度,因此,根据人脸检测关键点和人脸追踪关键点之间的差异来确定追踪置信度,通过追踪置信度对损失大小进行调整,从而提高模型训练精度。具体的,所述人脸追踪关键点和所述人脸检测关键点中均包括关键点坐标;步骤400所述根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失,包括:

步骤401,对所述目标人脸在所述第二图像中的每个人脸检测关键点,根据关键点坐标,计算所述人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点之间的坐标绝对差值。

坐标绝对差值,为坐标的差值的绝对值,反映人脸追踪关键点和人脸检测关键点之间的位置差异的大小。例如,人脸关键点的数量为5,第二图像中第i个人脸检测关键点的关键点坐标为(x

步骤402,根据每个所述坐标绝对差值确定所述坐标绝对差值对应的追踪置信度。

追踪置信度,用于反映追踪是否有效,当人脸检测关键点和人脸追踪关键点之间的差异较小的时候,认为追踪有效,追踪置信度可以设置得大一些,相反的,当人脸检测关键点和人脸追踪关键点之间的差异较大的时候,认为追踪逐渐无效,此时,追踪置信度可以设置的小一些。

提供两种确定追踪置信度的方法。

一、获取预设差值;若坐标绝对差值小于预设差值,则将追踪置信度确定为第一置信度;若坐标绝对差值大于或等于预设差值,则将追踪置信度确定为第二置信度,其中,第一置信度大于第二置信度。

示例性的,预设差值为1,第一置信度为1,第二置信度为0.1。

二、获取预设差值;将坐标绝对差值除以预设差值,得到差值比例;获取第一转换系数和第二转换系数,其中,第一转换系数为负数,第二转换系数为正数;根据差值比例、第一转换系数和第二转换系数,得到坐标绝对差值对应的追踪置信度。

为了保证差值比例和追踪置信度呈负相关,即差值比例越小,认为人脸检测关键点和人脸追踪关键点之间的差异越小,将追踪置信度设置大一些,差值比例越大,认为人脸检测关键点和人脸追踪关键点的差异越大,将追踪置信度设置大一些,所以,将第一转换系数设置为负数,将第二转换系数设置为正数。

例如,第一转换系数为-0.8,第二转换系数为1.14,差值比例为0.3,则追踪置信度为0.3×(-0.8)+1.14=0.9;再如,差值比例为0.8,则追踪置信度为0.8×(-0.8)+1.14=0.5;再如,差值比例为1.2,则追踪置信度为1.2×(-0.8)+1.14=0.18。

可见,差值比例越大,追踪置信度越小,甚至小于0,为了防止追踪置信度为负数,当根据差值比例、第一转换系数和第二转换系数计算得到的追踪置信度的值小于或等于第一预设置信度时,将计算得到的追踪置信度设置为第一预设置信度;差值比例越小,追踪置信度越大,甚至大于1,为了防止追踪置信度过大且大于1,当根据差值比例、第一转换系数和第二转换系数计算得到的追踪置信度的值大于或等于第二预设置信度时,将计算得到的追踪置信度设置为第二预设置信度。例如,第一预设置信度为0.1,即当追踪置信度小于或等于0.1时,将追踪置信度设置为0.1;第二预设置信度为1,即当追踪置信度大于或等于1时,将追踪置信度设置为1。

步骤403,根据每个所述坐标绝对差值和所述坐标绝对差值对应的追踪置信度计算网络损失。

示例性的,将坐标绝对差值和该坐标绝对差值对应的追踪置信度相乘得到网络损失。例如,坐标绝对差值为3,该坐标绝对差值对应的追踪置信度为0.9,于是,网络损失为3×0.9=2.7。

在一个实施例中,当人脸检测关键点和人脸追踪关键点之间的差异较小或者较大的时候,采用不同的方法来计算网络损失,提高网络损失的计算精度,防止计算得到的网络损失过大导致出现梯度爆炸,进而降低目标检测网络的精度。具体的,步骤403所述根据每个所述坐标绝对差值和所述坐标绝对差值对应的追踪置信度计算网络损失,包括:

步骤403A,若所述坐标绝对差值小于预设差值,则根据关键点坐标,计算所述坐标绝对差值对应的人脸检测关键点和人脸追踪关键点之间的关键点距离,根据所述关键点距离和所述坐标绝对差值对应的追踪置信度的乘积确定所述坐标绝对差值对应的损失。

例如,人脸关键点数量为5,第二图像中第i个人脸检测关键点(其中,1<=i<=5)的关键点坐标为(x

步骤403B,若所述坐标绝对差值大于或等于所述预设差值,则获取差值修正值,根据所述坐标绝对差值、所述差值修正值和所述坐标绝对差值对应的追踪置信度确定所述坐标绝对差值对应的损失。

例如,坐标绝对差值为|x

步骤403C,根据每个所述坐标绝对差值对应的损失计算网络损失。

将计算得到的各个坐标绝对差值对应的损失相加,得到关键点追踪损失,根据该关键点追踪损失即可得到网络损失。例如,目标人脸有2个人脸关键点,第1个人脸关键点对应坐标绝对差值A,第2个人脸关键点对应坐标绝对差值B,坐标绝对差值A小于预设差值,则基于步骤403A得到第1个关键点追踪子损失,坐标绝对差值B大于或等于预设差值,则基于步骤403B得到第2个关键点追踪子损失,将第1个关键点追踪子损失和第2个关键点追踪子损失相加,得到关键点追踪损失。

网络损失的值越大,越不利于梯度下降,容易出现梯度爆炸,进而降低网络精度,因此,当坐标绝对差值较小的时候,通过计算关键点距离的方式就能够达到减小网络损失的目的,而当坐标绝对差值较大的时候,若再通过关键点距离来计算网络损失必然会导致网络损失变大,因此,根据差值修正值对坐标绝对差值进行修正,从而得到相对较小的网络损失。

在一个实施例中,当人脸检测关键点和人脸追踪关键点之间的差异特别大且超过门限差值的时候,关键点的跟踪失效肯定失效了,例如,某些运动较快的场景,较容易出现光流追踪失效的情况,此时,将不再根据人脸检测关键点和人脸追踪关键点之间的损失来训练初步检测网络,直接将追踪置信度设置为0,以免降低网络精度。具体的,步骤402所述根据每个所述坐标绝对差值确定所述坐标绝对差值对应的追踪置信度,包括:当所述坐标绝对差值大于门限差值时,将所述坐标绝对差值对应的追踪置信度设置为0。

例如,坐标绝对差值为|x

在一个实施例中,提供了一种训练方法,该方法联合多个损失:分类损失、检测框损失、关键点预测损失以及关键点追踪损失,来计算网络损失,从而基于联合损失对初步检测网络进行训练,提高初步检测网络的训练速度以及精度。具体的,所述人脸检测结果中还包括分类检测结果和框检测结果;步骤400所述根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失,包括:

步骤400A,获取所述目标人脸在所述第二图像中的分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点。

分类标注结果,为预先对第二图像中的目标人脸进行分类得到的结果;框标注结果,为预先对第二图像中的目标人脸确定的检测框(检测框坐标);人脸标注关键点,为预先对第二图像中的目标人脸的人脸关键点进行标记得到的人脸标注关键点(关键点坐标)。

步骤400B,根据所述目标人脸在所述第二图像中的分类标注结果和分类检测结果计算分类损失,根据所述目标人脸在所述第二图像中的框标注结果和框检测结果计算检测框损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点对应的人脸标注关键点计算关键点预测损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算关键点追踪损失。

将分类标注结果和分类检测结果相减,得到分类值,取分类值的绝对值作为分类损失;计算框标注结果和框检测结果之间的距离,将框标注结果和框检测结果之间的距离作为框检测损失,框标注结果和框检测结果之间的距离为坐标之间的距离;计算人脸检测关键点和人脸标注关键点之间的距离,将人脸检测关键点和人脸标注关键点之间的距离作为关键点预测损失,人脸检测关键点和人脸标注关键点之间的距离为坐标之间的距离;关键点追踪损失的计算参照步骤步骤401到步骤402,在此不再详述。

步骤400C,根据所述分类损失、所述检测框损失、所述关键点预测损失以及所述关键点追踪损失计算网络损失。

获取第一权重、第二权重、第三权重和第四权重,基于第一权重、第二权重、第三权重和第四权重对分类损失、检测框损失、关键点预测损失以及关键点追踪损失进行加权求和,从而得到网络损失。

需要说明的是,为了得到较高的训练精度,采用多组第一图像和第二图像来对初步检测网络进行训练。具体的,对每组第一图像和第二图像,确定该组中的第二图像对应的分类损失、检测框损失、关键点预测损失以及关键点追踪损失;基于第一权重、第二权重、第三权重和第四权重,对该组中的第二图像对应的分类损失、检测框损失、关键点预测损失以及关键点追踪损失进行加权求和,得到该组中的第二图像对应的组损失;将多个第二图像对应的组损失求和,得到最终的网络损失。

在一个实施例中,需要预先生成分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点,以便在计算网络损失时快速获取到分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点,并且,分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点如果采用人工标注的方式将十分耗时费力,所以,直接通过初步检测网络来得到将降低人力成本、降低获取时间。具体的,在步骤100所述获取先后采集的第一图像和第二图像之前,还包括:

步骤000,将所述第二图像输入所述初步检测网络,得到所述目标人脸在所述第二图像中的分类标注结果、框标注结果和多个人脸标注关键点。

由于初步检测网络是由原始检测网络训练得到的,因此,初步检测网络具有较高的检测精度和检测实时性,所以,可以采用初步检测网络来生成多个标注结果,提高标注效率。

在一个实施例中,如图4所示,提供了一种人脸检测网络的训练装置400,包括:

图像获取模块410,用于获取先后采集的第一图像和第二图像,所述第一图像和所述第二图像中均包含有目标人脸;

网络检测模块420,用于分别将所述第一图像和所述第二图像输入初步检测网络,得到所述目标人脸在所述第一图像和所述第二图像中的人脸检测结果,所述人脸检测结果中包括多个人脸检测关键点,所述初步检测网络是对原始检测网络进行训练后得到的;

人脸追踪模块430,用于对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点;

损失计算模块440,用于根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失;

目标训练模块450,用于根据所述网络损失,对所述初步检测网络进行训练,得到目标检测网络。

上述人脸检测网络的训练装置,基于第一图像的人脸检测关键点,对人脸关键点在第二图像中的位置进行了跟踪,得到了第二图像中的人脸追踪关键点,该人脸追踪关键点默认为人脸标注关键点,然后基于第二图像中的人脸追踪关键点和人脸检测关键点生成网络损失对经过训练的原始检测网络(初步检测网络)进行训练,以对第二图像中的人脸检测关键点进行调整,以便调整后的人脸检测关键点不会出现抖动,从而得到目标检测网络,在一定程度上降低了连续帧中的目标人脸的人脸关键点在该目标人脸的真实标记位置附近抖动的概率。

在一个实施例中,所述人脸追踪关键点和所述人脸检测关键点中均包括关键点坐标;所述损失计算模块440,具体用于:对所述目标人脸在所述第二图像中的每个人脸检测关键点,根据关键点坐标,计算所述人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点之间的坐标绝对差值;根据每个所述坐标绝对差值确定所述坐标绝对差值对应的追踪置信度;根据每个所述坐标绝对差值和所述坐标绝对差值对应的追踪置信度计算网络损失。

在一个实施例中,所述损失计算模块440,具体用于:若所述坐标绝对差值小于预设差值,则根据关键点坐标,计算所述坐标绝对差值对应的人脸检测关键点和人脸追踪关键点之间的关键点距离,根据所述关键点距离和所述坐标绝对差值对应的追踪置信度的乘积确定所述坐标绝对差值对应的损失;若所述坐标绝对差值大于或等于所述预设差值,则获取差值修正值,根据所述坐标绝对差值、所述差值修正值和所述坐标绝对差值对应的追踪置信度确定所述坐标绝对差值对应的损失;根据每个所述坐标绝对差值对应的损失计算网络损失。

在一个实施例中,所述损失计算模块440,具体用于:当所述坐标绝对差值大于门限差值时,将所述坐标绝对差值对应的追踪置信度设置为0。

在一个实施例中,所述人脸检测结果中还包括分类检测结果和框检测结果;所述损失计算模块440,具体用于:获取所述目标人脸在所述第二图像中的分类标注结果、框标注结果和每个人脸检测关键点对应的人脸标注关键点;根据所述目标人脸在所述第二图像中的分类标注结果和分类检测结果计算分类损失,根据所述目标人脸在所述第二图像中的框标注结果和框检测结果计算检测框损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点对应的人脸标注关键点计算关键点预测损失,根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算关键点追踪损失;根据所述分类损失、所述检测框损失、所述关键点预测损失以及所述关键点追踪损失计算网络损失。

在一个实施例中,所述装置400,还包括:标注模块,用于将所述第二图像输入所述初步检测网络,得到所述目标人脸在所述第二图像中的分类标注结果、框标注结果和多个人脸标注关键点。

在一个实施例中,所述人脸追踪模块430,具体用于:采用Lucas-Kanade算法对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点。

在一个实施例中,如图5所示,提供了一种计算机设备,该计算机设备具体可以是终端或服务器。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,存储器包括非易失性存储介质和内存储器,该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现人脸检测网络的训练方法。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行人脸检测网络的训练方法。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本申请提供的人脸检测网络的训练方法可以实现为一种计算机程序的形式,计算机程序可在如图5所示的计算机设备上运行。计算机设备的存储器中可存储组成人脸检测网络的训练装置的各个程序模板。比如,图像获取模块和网络检测模块。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

获取先后采集的第一图像和第二图像,所述第一图像和所述第二图像中均包含有目标人脸;

分别将所述第一图像和所述第二图像输入初步检测网络,得到所述目标人脸在所述第一图像和所述第二图像中的人脸检测结果,所述人脸检测结果中包括多个人脸检测关键点,所述初步检测网络是对原始检测网络进行训练后得到的;

对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点;

根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失;

根据所述网络损失,对所述初步检测网络进行训练,得到目标检测网络。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取先后采集的第一图像和第二图像,所述第一图像和所述第二图像中均包含有目标人脸;

分别将所述第一图像和所述第二图像输入初步检测网络,得到所述目标人脸在所述第一图像和所述第二图像中的人脸检测结果,所述人脸检测结果中包括多个人脸检测关键点,所述初步检测网络是对原始检测网络进行训练后得到的;

对所述目标人脸在所述第一图像中的每个人脸检测关键点进行关键点追踪,得到所述人脸检测关键点在所述第二图像中的人脸追踪关键点;

根据所述目标人脸在所述第二图像中的每个人脸检测关键点和所述人脸检测关键点在所述第二图像中的人脸追踪关键点计算网络损失;

根据所述网络损失,对所述初步检测网络进行训练,得到目标检测网络。

需要说明的是,上述人脸检测网络的训练方法、人脸检测网络的训练装置、计算机设备及计算机可读存储介质属于一个总的发明构思,人脸检测网络的训练方法、人脸检测网络的训练装置、计算机设备及计算机可读存储介质实施例中的内容可相互适用。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种人脸检测网络的训练方法、装置、设备以及存储介质
  • 人脸检测模型的训练方法、装置、电子设备及存储介质
技术分类

06120113194731