一种基于SSD框架的人脸检测方法及系统与流程

文档序号:17005931发布日期:2019-03-02 02:01阅读:461来源:国知局
一种基于SSD框架的人脸检测方法及系统与流程

本发明实施例涉及深度学习领域,尤其涉及一种基于ssd框架的人脸检测方法及系统。



背景技术:

近几年来,随着计算机等高新技术的快速发展,基于神经网络的人脸检测技术广泛应用在摄影、监控和门禁等领域,特别是基于ssd训练框架的卷积神经网络具有检测速度快,检测大物体方面准确率高的特点而倍受人们关注。

由于受限于低层特征提取不足,基于ssd框架的卷积神经网络在检测不同尺寸的人脸时的效果较差,特别是小尺寸人脸(小尺寸人脸指的尺寸是在50px*50px以下的人脸)方面性能相对较差,在训练数据有限的情况下,不能很好的挖掘数据的信息加以训练,导致训练不充分,降低了ssd框架的卷积神经网络监测人脸的性能。

因此,现在亟需一种基于ssd框架的人脸检测方法及系统来解决上述问题。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供了一种基于ssd框架的人脸检测方法及系统。

第一方面,本发明实施例提供了一种基于ssd框架的人脸检测方法,包括:

对目标人脸图像标注锚点;

基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本人脸图像训练得到。

第二方面,本发明实施例提供了一种基于ssd框架的人脸检测系统,包括:

锚点标注模块,用于对目标人脸图像标注锚点;

人脸检测模块,用于基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本图像训练得到。

第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。

第四方面,本发明实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

本发明实施例提供的一种基于ssd框架的人脸检测方法及系统,通过设置自适应人脸大小分布的锚点匹配算法,将每张人脸图像中的人脸根据人脸尺寸大小匹配最合适的锚点,从而生成训练人脸区域,使ssd框架卷积神经网络得到充分训练,提高了人脸检测的性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于ssd框架的人脸检测方法的流程示意图;

图2为本发明实施例提供的ssd框架卷积神经网络的训练流程示意图;

图3为本发明实施例提供的基于ssd框架的人脸检测系统的结构示意图;

图4为本发明实施例提供的电子设备结构示意图。

具体实施方式

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

人脸检测是指通过一定的计算机算法对任意一幅给定的图片中检测出其中的人脸区域,并将人脸区域的位置在图片中标注出来的相关技术。ssd框架卷积神经网络在人脸检测中具有检测速度快,检测大物体方面准确率高的特点而倍受人们关注,但受限于低层特征提取不足导致其在检测小尺寸人脸方面性能相对较差,现有技术中常见的基于ssd的人脸检测框架主要问题为:低层特征网络结构相对简单,不能充分挖掘小尺寸人脸特征,造成在小尺寸人脸方面检测性能较差(小尺寸人脸指的尺寸是在50px*50px以下的人脸);训练数据不能很好的匹配锚点,导致训练不充分,不能充分挖掘训练数据,特别是在训练数据有限的情况下,不能很好的挖掘数据的信息加以训练;由于人脸训练样本中小尺寸人脸、中等尺寸人脸以及大尺寸人脸的比重不一定均衡,导致不同尺寸的人脸对损失函数的贡献是不一样的,不利于优化网络参数。

因此,如何有效提高ssd框架卷积神经网络在检测小尺寸人脸方面的性能以及提高整个检测器的召回率和准确率是现在亟需解决的问题。

本发明实施例中描述的样本人脸图像和目标人脸图像泛指包含有人脸或人物身体的图像,图像中的人脸或人物身体即使不完整或者只包含部分,也可作为本发明实施例中的人脸图像。另外,样本人脸图像和目标人脸图像只是对其在ssd框架卷积神经网络中进行训练或应用时所作的区别,两者之间实际性质是一样的,均为人脸图像,本发明实施例不对其作具体限定。

图1为本发明实施例提供的基于ssd框架的人脸检测方法的流程示意图,如图1所示,本发明实施例提供了一种基于ssd框架的人脸检测方法,包括:

步骤101,对目标人脸图像标注锚点;

步骤102,基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本人脸图像训练得到。

在本发明实施例中,首先通过步骤101,对目标人脸图像标注锚点,在ssd框架卷积神经网络中,为了更加有效的提取训练数据中人脸特征,对每一张样本人脸图像标注锚点。步骤202,基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本人脸图像训练得到,在训练过程中,对于特征提取层,ssd框架卷积神经网络会在样本人脸图像中的每一个位置生成一定数目的锚点,用来匹配训练数据中的人脸,只有被锚点匹配到的人脸才能当成正样本(即标定锚点的人脸),而没有人脸匹配的锚点圈定的区域会被标识成负样本(背景),然后正样本和负样本区域会分别提取特征,送入损失函数中进行分类和回归。

因此,锚点匹配的有效性直接影响分类的效果,影响最终的检测性能。例如,如果一个锚点匹配到一个包含背景很多的人脸区域,在分类的时候就会携带较多的冗余噪声,影响分类效果。在理想情况下,如果每一个锚点正好匹配到人脸区域,而不包含背景噪声时,分类效果会达到最优。本发明实施例根据样本人脸图像中分布的人脸尺寸选取相应尺度变换比例,对样本人脸图像进行尺度缩放处理,再将缩放后的样本人脸图像随机抠取正方形区域,并为正方形区域内的人脸匹配相应尺寸的锚点进行标注,得到标注有锚点的样本人脸图像,最后通过随机水平翻转、图片缩放以及去均值等一系列处理,得到用于ssd框架卷积神经网络的训练样本集。

本发明实施例通过设置自适应人脸大小分布的锚点匹配算法,将每张人脸图像中的人脸根据人脸尺寸大小匹配最合适的锚点,从而生成训练人脸区域,使ssd框架卷积神经网络得到充分训练,提高了人脸检测的性能。

在上述实施例的基础上,图2为本发明实施例提供的ssd框架卷积神经网络的训练流程示意图,如图2所示,所述ssd框架卷积神经网络通过以下步骤训练得到:

步骤201,对样本人脸图像进行随机尺度变换,得到第一样本人脸图像;

步骤202,对所述第一样本人脸图像随机抠取正方形区域,若所述正方形区域含有人脸,则匹配相应尺寸的锚点进行标注,得到标注有锚点的样本人脸图像;

步骤203,对所述标注有锚点的样本人脸图像进行随机水平翻转,得到第二样本人脸图像;

步骤204,将所述第二样本人脸图像的尺寸缩放至网络输入尺寸并减去均值,得到第三样本人脸图像,通过所述第三样本人脸图像对所述ssd框架卷积神经网络进行训练。

在本发明实施例中,由于训练数据大多来自拍摄的图片,数据中不同尺度的人脸分布可能不均匀,比如拍摄游行的图片中小尺寸人脸占比相对较大,而在正面照,聚会拍照等大尺寸人脸占比较大。因此需要针对不同尺度的人脸分别做锚点匹配。为了增加数据的多样性,使原图中的小尺寸人脸能够匹配到相对较大的锚点,而大尺寸人脸也能匹配到相对较小的锚点,本专利将原始图片进行随机比例缩放,然后从缩放后的图片中扣取区域匹配锚点,这样放大的小尺寸人脸也能匹配到大锚点,而大尺寸人脸也能匹配到小锚点,从而使不同尺寸的锚点得到了训练,提升了网络的表达能力。

首先对样本人脸图像进行随机尺度变换,具体如下:

s1、分别计算一张样本人脸图像中小于32px和大于256px的尺寸的人脸数目,以及这张样本人脸图像中所有尺寸的人脸总数,分别记为num_small,num_large,num_total;

s2、如果num_small/num_total大于一定的阈值(例如0.8),说明这张样本人脸图像中的小尺寸人脸的占据比重大,则对样本人脸图像作尺寸不变或者放大处理的随机处理;

s3、如果s2的条件不满足,计算num_large/num_total的值,如果大于一定阈值(例如0.8),说明这张图中大尺寸人脸的占据比重大,则对样本人脸图像作尺寸不变或者缩小处理的随机处理;

s4、如果s2和s3中的条件均不满足,说明样本人脸图像中各种尺寸的人脸分布相对均匀,则对样本人脸图像作尺寸不变、放大或缩小的随机处理;

通过上述随机尺度变换步骤得到第一样本人脸图像,然后在第一样本人脸图像中随机抠取正方形区域,将不含人脸的正方形区域舍弃,直到随机抠取的正方形区域内含有人脸,再为含有人脸的正方形区域匹配相应的锚点,作为标注有锚点的样本人脸图像。然后将标注有锚点的样本人脸图像进行随机水平翻转,得到第二样本人脸图像,再将第二样本人脸图像缩放到网络输入尺寸,例如,缩放到输入尺寸640px*640px,其中缩放参数包含inter_linear,inter_cubic,inter_area,inter_nearest,inter_lanczos4,每一种缩放参数随机选取,最后将缩放后的样本人脸图像减去均值,得到用于ssd框架卷积神经网络的训练样本集。

本发明实施例通过设置自适应人脸大小分布的锚点匹配算法,将每张人脸图像中的人脸根据人脸尺寸大小匹配最合适的锚点,从而生成训练人脸区域,使ssd框架卷积神经网络得到充分训练,提高了人脸检测的性能。

在上述实施例的基础上,在所述对样本人脸图像进行随机尺度变换,得到第一样本人脸图像之前,包括:

对所述样本人脸图像进行预处理,所述预处理包括对比度、亮度、加白噪声或色调的处理。

在本发明实施例中,对原始图片进行各种图片处理,包括对比度、亮度、加白噪声或色调的处理,同时将每一种预处理的方法按概率0.5进行随机选取。在整个预处理过程中,主要目的在于消除样本人脸图像中的冗余信息,滤除干扰和噪声,恢复必要的真实信息,从而增加相关信息的可检测性,进而增强特征的提取、图像的分割、匹配以及识别的可靠性,尽可能为后续处理提高数据质量。

在上述实施例的基础上,所述对样本人脸图像进行随机尺度变换,包括:

根据所述样本人脸图像中的人脸尺寸分布情况设置尺度变换比例,以供所述样本人脸图像进行随机尺度变换,所述尺度变换比例为0.5、1或2。

在本发明实施例中,将尺度变换比例设置为为0.5、1或2,分别对应的操作为将样本人脸图像的长宽缩小0.5倍、保持不变、长宽放大两倍,根据样本人脸图像中不同尺寸的人脸分布占比情况,选取相应的尺度变换比例。例如,当样本人脸图像中的小尺寸人脸占据比重较大时,尺度变换比例从1.0,2.0中随机选取,若大尺寸人脸占据比重较大时,尺度变换比例从0.5,1.0中随机选取,若样本人脸图像中的各种尺寸的人脸分布相对均匀时,尺度变换比例从0.5,1.0,2.0中随机选取。

本发明实施例通过设置相应的尺度变换比例,保证了每一张样本人脸图像均能与最合适的锚点进行匹配,提高了ssd框架卷积神经网络的训练效率。

在上述实施例的基础上,所述对所述第一样本人脸图像随机抠取正方形区域,若所述正方形区域含有人脸,则匹配相应尺寸的锚点进行标注,得到标注有锚点的样本人脸图像,包括:

若所述正方形区域含有人脸,且人脸的尺寸与待匹配的锚点的尺寸之比大于等于预设阈值,则匹配相应尺寸的锚点进行标注;

若所述正方形区域含有人脸,且人脸的尺寸与待匹配的锚点的尺寸之比小于所述预设阈值,则舍弃所述正方形区域;

若所述正方形区域不含有人脸,则舍弃所述正方形区域。

在本发明实施例中,首先对第一样本人脸图像随机抠取一块正方形区域,若该正方形区域不含人脸,则将此正方形区域舍弃,然后继续随机抠取第一样本人脸图像,直到抠取的正方形人脸区域中含有人脸,随后计算该正方形区域的宽与网络输入尺寸(默认是640)的比例,再分别与该正方形区域中人脸的最长边相乘,获得在网络输入尺寸下对应的人脸尺寸s,然后选取与这个人脸尺寸s与最接近的锚点尺寸进行锚点标注,例如,锚点尺寸为16,32,64,128,256和512,在选取的同时,必须保证人脸尺寸s小于锚点的尺寸,并且与最接近的锚点尺寸之比大于等于预设阈值,在本发明实施例中,设置预设阈值为0.9,若人脸尺寸s与最接近的锚点尺寸进行锚点标注时,人脸尺寸s与最接近的锚点尺寸之比小于预设阈值,则舍弃该正方形区域。另外,若对第一样本人脸图像进行抠取正方形区域的操作达到一定次数后,例如,在抠取50次后,如果每一次抠取得到的正方形区域都不符合要求,就将第一样本人脸图像继续进行后续处理。需要说明的是,本发明实施例以正方形区域包含一个人脸进行说明,当正方形区域内包含多个人脸时,依次对多个人脸进行上述的步骤进行处理,若该正方形区域内所有的人脸均不符合预设阈值时,则舍弃该正方形区域,具体步骤不再赘述。

本发明实施例通过对样本人脸图像中抠取的正方形区域匹配自适应人脸大小的锚点,保证正方形区域中的人脸能与最合适的锚点进行匹配,从而充分挖掘训练数据,使ssd框架卷积神经网络得到充分训练,提高了人脸检测的性能。

在上述各实施例的基础上,在所述对所述第一样本人脸图像随机抠取正方形区域,若所述正方形区域含有人脸,则匹配相应尺寸的锚点进行标注,得到标注有锚点的样本人脸图像之后,包括:

将所述标注有锚点的样本人脸图像中包含的人脸图像按小尺寸人脸图像、中等尺寸人脸图像和大尺寸人脸图像进行分类;

分别计算人脸图像尺寸分类后的人脸损失值,并根据公式:

loss=l1+l2+l3+l4

计算最终人脸损失值,其中,l1是小尺寸人脸损失值,l2是中等尺寸人脸损失值,l3是大尺寸人脸损失值,l4是所有尺寸人脸损失值;

根据所述最终人脸损失值对所述标注有锚点的样本人脸图像进行优化,以供所述ssd框架卷积神经网络进行训练。

在本发明实施例中,每一个特征提取层分别负责检测一个尺寸的人脸,例如conv3_3负责检测16px的人脸。由于小尺寸人脸在高层的尺寸相对较小不利于检测,因此ssd框架卷积神经网络从低到高层依此检测小尺寸人脸(16px,32px),中等人脸(64px,128px),大尺寸人脸(256px,512px),但是由于在低层中特征图尺寸相对较大,小尺寸人脸又相对较小,因此在计算损失函数的时候,锚点匹配到的正样本数目有限,而负样本所占比重极高,正负比例失衡。为了缓解这个问题,ssd框架中使用ohem算法,只选取3倍正样本数目的负样本计算损失函数,然后计算所有特征提取层的提取的正负样本的损失值。但是,由于正常图片中人脸的尺寸是有一定范围了,常见是小尺寸人脸和中等尺寸人脸居多,这样就导致大尺寸人脸的所占的损失值比例相对较小,而小尺寸人脸和中等尺寸大小的人脸的损失值所占比例较高,这样会导致大尺寸人脸得不到很好的训练,效果相对较差。为了解决不同尺度的人脸在损失函数中所占比例不均衡的问题,本发明实施例将小尺寸人脸、中等尺寸人脸和大尺寸人脸的损失值分别进行计算,然后再进行加和,同时加入所有尺寸人脸的损失值,将这四部分的损失值作为最终损失值对网络进行优化。具体的,在小尺寸人脸类别中,将匹配小尺寸人脸的锚点数据作为正样本,没有匹配到人脸锚点的区域作为负样本,中等尺寸人脸和大尺寸人脸也作同样处理。

本发明实施例对不同尺寸的人脸分别计算人脸损失值,然后再进行加和,同时加入所述尺寸的人脸损失值,将这四部分的人脸损失值作为最终损失值进行对训练样本进行优化,避免了不同尺寸的人脸损失值在损失函数中所占比例不均衡,导致不能均衡优化不同尺寸人脸的问题,提高了人脸检测的召回率和准确度。

在上述各实施例的基础上,进一步地,所述分别计算人脸图像尺寸分类后的人脸损失值,具体包括:

计算所述标注有锚点的样本图像中不同尺寸的人脸损失值,公式为:

其中,lk({pk,i},{tk,i})为第k种尺寸下的所述标注有锚点的样本图像的人脸损失值,i是一个锚点的标号,pk,i是第k种尺寸下的所述标注有锚点的样本图像的人脸损失值中第i个锚点预测为人脸的概率,是标注的标签,其中含有人脸的标签是1,不含人脸标签是0,tk,i是四位预测坐标向量,是四位人脸锚点坐标向量,是softmax损失函数,是smoothl1损失函数,ncls为人脸和背景匹配的锚点个数,nreg为人脸匹配的锚点的个数,λ为匹配两种损失函数的权重,默认值为1;

在获取到所述样本人脸图像中不同尺寸下的人脸损失值之后,计算所述最终人脸损失值,公式为:

其中,λk是人脸尺度分类后的四种人脸损失值对应的权重值,默认值为1。需要说明的是,本发明实施例的分类函数和回归函数,不局限为softmax损失函数和smoothl1损失函数,其他分类函数和回归函数也可运用于本发明实施例。因此,本发明实施例不对损失函数作具体限定。

本发明实施例对不同尺度的人脸分别计算损失值,再将所得的损失值进行加权处理,避免了不同尺度的人脸损失值在损失函数中,由于所占比例不均衡而导致的不能均衡优化不同尺度人脸的问题,提高了ssd卷积神经网络的检测性能。

图3为本发明实施例提供的基于ssd框架的人脸检测系统的结构示意图,如图3所示,本发明实施例提供了一种基于ssd框架的人脸检测系统,包括锚点标注模块301和人脸检测模块302,其中,锚点标注模块301用于对目标人脸图像标注锚点;人脸检测模块302用于基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本图像训练得到。

在本发明实施例中,为了更加有效的提取训练数据中人脸特征,锚点标注模块301对输入到ssd框架卷积神经网络中每一张样本人脸图像标注锚点。当ssd框架卷积神经网络训练完成后,通过锚点标注模块301对目标人脸图像标注锚点,在锚点标注完成后,人脸检测模块302对标注有锚点的目标人脸图像进行检测,从而获取到目标人脸框。ssd框架卷积神经网络在训练过程时,对于特征提取层,ssd框架卷积神经网络会在样本人脸图像中的每一个位置生成一定数目的锚点,用来匹配训练数据中的人脸,只有被锚点匹配到的人脸才能当成正样本(即标定锚点的人脸),而没有人脸匹配的锚点圈定的区域会被标识成负样本(背景),然后正样本和负样本区域会分别提取特征,送入损失函数中进行分类和回归。

因此,锚点匹配的有效性直接影响分类的效果,影响最终的检测性能。在理想情况下,如果每一个锚点正好匹配到人脸区域,而不包含背景噪声时,分类效果会达到最优。本发明实施例根据样本人脸图像中分布的人脸尺寸选取相应尺度变换比例,对样本人脸图像进行尺度缩放处理,再将缩放后的样本人脸图像随机抠取正方形区域,并为正方形区域内的人脸匹配相应尺寸的锚点进行标注,得到标注有锚点的样本人脸图像,最后通过随机水平翻转、图片缩放以及去均值等一系列处理,得到用于ssd框架卷积神经网络的训练样本集。

本发明实施例通过设置自适应人脸大小分布的锚点匹配算法,将每张人脸图像中的人脸根据人脸尺寸大小匹配最合适的锚点,从而生成训练人脸区域,提高了人脸检测的准确率和召回率。

图4为本发明实施例提供的电子设备结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(communicationsinterface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:对目标人脸图像标注锚点;基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本人脸图像训练得到。

此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:对目标人脸图像标注锚点;基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本人脸图像训练得到。

本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述实施例所提供的基于ssd框架的人脸检测方法,例如包括:对目标人脸图像标注锚点;基于训练后的ssd框架卷积神经网络,对标注有锚点的目标人脸图像进行检测,获取到目标人脸框,所述ssd框架卷积神经网络通过标注有锚点的样本人脸图像训练得到。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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