本发明涉及人脸识别领域,具体涉及一种人脸检测方法及装置、计算机可读存储介质、设备。
背景技术:
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术,随着人机交互技术的应用日益广泛,在人机交互领域中,人脸识别技术具有非常重要的意义。人脸检测旨在定位并识别图像中的人脸,是人脸识别系统中一个重要环节,在基于内容的检索、数字视频处理、视频检测等方面有着重要的应用价值,对于大部分的人脸应用,都首选需要对人脸进行精确的检测。
目前,在面对真实世界的复杂场景时,人脸检测方法一方面需要有高精度以应对人脸外观的复杂变化,另一方面需要有高效率以应对人脸在尺度和位置上的巨大搜索空间。通过对现有人脸检测技术的分析,发现当前的基于深度学习的人脸检测方法能够满足高精度的要求,但是为了实现高精度这一要求,计算代价巨大,cpu检测速度较慢,效率低下,所以目前的人脸检测技术在高精度和高效率两方面不能两全。
因此,如何解决基于深度学习的人脸检测方法在保持高精度的前提下实现cpu实时检测速度的问题,是人脸识别领域中存在的巨大挑战。
技术实现要素:
为了解决现有技术中的上述问题,即为了解决人脸检测方法在保持高精度的前提下不能实现cpu实时检测速度的问题,本发明提出了一种人脸检测方法及装置、计算机可读存储介质、设备。
在第一方面,本发明中人脸检测方法包括:
利用预设的人脸检测模型,获取待检测图像的检测结果框;
对所获取的检测结果框,获取满足预设筛选条件的最终检测结果框;
其中:
所述人脸检测模型为依据深度卷积神经网络构建的检测模型,具体步骤包括:
构建级联的第一级卷积子网络和第二级卷积子网络;
在所述第二级卷积子网络中关联锚点框,并优化不同尺度的锚点框在待检测图像上的铺设间隔;
依据预设的训练图像,对该深度卷积神经网络进行网络训练,得到满足预设的收敛条件的人脸检测模型。
进一步地,本发明提供的一个优选技术方案为:
所述第一级卷积子网络包括依次连接的第一卷积层、第一池化层、第二卷积层和第二池化层;其中,所述第一卷积层、第一池化层、第二卷积层和第二池化层的卷积间隔分别为4、2、2和2;所述第一卷积层、第一池化层、第二卷积层和第二池化层的卷积核分别为7×7×24、3×3×48、5×5×64、3×3×128;所述第一级卷积子网络的第一卷积层和第二卷积层的激活函数为crelu激活函数;
所述第二级卷积子网络包括依次连接的第一inception模块、第二inception模块、第三inception模块、第三卷积层、第四卷积层、第五卷积层和第六卷积层;其中,所述第一inception模块与所述第一级卷积子网络的第二池化层连接,所述第三inception模块、第四卷积层和第六卷积层分别关联锚点框。
进一步地,本发明提供的一个优选技术方案为:
“优化不同尺度的锚点框在待检测图像上的铺设间隔”的步骤具体包括:
按照下式所示的方法调整不同尺度的锚点框在待检测图像上的铺设间隔ainterval:
ainterval=ascale/adensity
其中,所述ascale为锚点框的边长,所述adensity为预设的铺设密度。
进一步地,本发明提供的一个优选技术方案为:
“依据预设的训练图像,对该深度卷积神经网络进行网络训练”的步骤具体包括:
对所述预设的训练图像进行数据增广处理,得到训练样本;
对锚点框与所述训练样本中的人脸标注框进行匹配,并依据匹配结果将锚点框划分为正样本和负样本;所述正样本为与人脸标注框匹配的锚点框,所述负样本为与人脸标注框未匹配的锚点框;
采用困难负样本挖掘方法选取预设的第一数量的负样本;
依据所述正样本与所选取的负样本计算损失函数值,并依据损失函数值更新所述深度卷积神经网络;对更新后的深度卷积神经网络重新进行网络训练,直至其满足预设的收敛条件;
其中:
所述对锚点框与训练样本中的人脸标注框进行匹配,包括:
计算各锚点框与各人脸标注框的交除并重叠比;
选取与各人脸标注框的交除并重叠比最大的锚点框,并将所选取的各锚点框与各对应的人脸标注框进行匹配;
判断去除所选取的锚点框之后,剩余的各锚点框与各人脸标注框的交除并重叠比是否大于预设的第一阈值:若大于则进行匹配;
获取锚点框匹配数量小于预设的第二数量的人脸标注框,并选取与所述人脸标注框的交除并重叠比大于预设的第二阈值的所有锚点框;所述预设的第一阈值大于预设的第二阈值;
按照所选取的所有锚点框的交除并重叠比由大到小的顺序,选取预设的第三数量的锚点框与对应的人脸标注框进行匹配;所述预设的第三数量的取值为锚点框匹配数量大于或等于预设的第二数量的人脸标注框的锚点框平均匹配数量。
在第二方面,本发明中人脸检测装置包括:
检测结果框获取模块,配置为利用预设的人脸检测模型,获取待检测图像的第一组检测结果框;
检测结果框筛选模块,配置为对所获取的第一组检测结果框,获取满足预设筛选条件的最终检测结果框;
所述装置还包括人脸检测模型构建模块;所述人脸检测模型构建模块,配置为依据深度卷积神经网络构建的检测模型,具体包括:
卷积网络构建单元,配置为构建级联的第一级卷积子网络和第二级卷积子网络;
锚点框关联单元,配置为在所述第二级卷积子网络中关联锚点框,并优化不同尺度的锚点框在待检测图像上的铺设间隔;
网络训练单元,配置为依据预设的训练图像,对该深度卷积神经网络进行网络训练,得到满足预设的收敛条件的人脸检测模型。
进一步地,本发明提供的一个优选技术方案为:
所述第一级卷积子网络包括依次连接的第一卷积层、第一池化层、第二卷积层和第二池化层;其中,所述第一卷积层、第一池化层、第二卷积层和第二池化层的卷积间隔分别为4、2、2和2;所述第一卷积层、第一池化层、第二卷积层和第二池化层的卷积核分别为7×7×24、3×3×48、5×5×64、3×3×128;所述第一级卷积子网络的第一卷积层和第二卷积层的激活函数为crelu激活函数;
所述第二级卷积子网络包括依次连接的第一inception模块、第二inception模块、第三inception模块、第三卷积层、第四卷积层、第五卷积层和第六卷积层;其中,所述第一inception模块与所述第一级卷积子网络的第二池化层连接,所述第三inception模块、第四卷积层和第六卷积层分别关联锚点框。
进一步地,本发明提供的一个优选技术方案为:
所述锚点框关联单元包括优化子单元;所述优化子单元,配置为按照下式所示的方法调整不同尺度的锚点框在待检测图像上的铺设间隔ainterval:
ainterval=ascale/adensity
其中,所述ascale为锚点框的边长,所述adensity为预设的铺设密度。
进一步地,本发明提供的一个优选技术方案为:
所述网络训练单元包括:
训练图像处理子单元,配置为对所述预设的训练图像进行数据增广处理,得到训练样本;
正负样本划分子单元,配置为对锚点框与所述训练样本中的人脸标注框进行匹配,并依据匹配结果将锚点框划分为正样本和负样本;其中,所述正样本为与人脸标注框匹配的锚点框,所述负样本为与人脸标注框未匹配的锚点框;
负样本筛选子单元,配置为采用困难负样本挖掘方法选取预设的第一数量的负样本;
网络更新子单元,配置为依据所述正样本与所选取的负样本计算损失函数值,并依据损失函数值更新所述深度卷积神经网络;对更新后的深度卷积神经网络重新进行网络训练,直至其满足预设的收敛条件;
其中:
所述正负样本划分子单元包括匹配子单元;所述匹配子单元包括:
交除并重叠比计算子单元,配置为计算各锚点框与各人脸标注框的交除并重叠比;
第一匹配子单元,配置为选取与各人脸标注框的交除并重叠比最大的锚点框,并将所选取的各锚点框与各对应的人脸标注框进行匹配;
第二匹配子单元,配置为判断去除所选取的锚点框之后,剩余的各锚点框与各人脸标注框的交除并重叠比是否大于预设的第一阈值:若大于则进行匹配;
第三匹配子单元,配置为获取锚点框匹配数量小于预设的第二数量的人脸标注框,并选取与所述人脸标注框的交除并重叠比大于预设的第二阈值的所有锚点框;按照所选取的所有锚点框的交除并重叠比由大到小的顺序,选取预设的第三数量的锚点框与对应的人脸标注框进行匹配;所述预设的第一阈值大于预设的第二阈值;
所述预设的第三数量的取值为锚点框匹配数量大于或等于预设的第二数量的人脸标注框的锚点框平均匹配数量。
在第三方面,本发明中计算机可读存储介质中存储有计算机程序,所述程序适用于由处理器加载并执行以实现上述技术方案所述的人脸检测方法中的各步骤。
在第四方面,本发明中计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案所述的人脸检测方法中的各步骤。
与最接近的现有技术相比,上述技术方案至少具有以下有益效果:
1、本发明中人脸检测方法,利用预设的人脸检测模型获取待检测图像的检测结果框,对所获取的检测结果框获取满足预设筛选条件的最终检测结果框。其中,人脸检测模型包括级联的第一级卷积子网络和第二级卷积子网络,该方法可以在第二级卷积子网络中关联锚点框后优化不同尺度的锚点框在待检测图像上的铺设间隔,使不同尺度的锚点框具有相同的铺设密度,提高小尺度人脸检测的鲁棒性和准确性,进而可以在保持高精度的前提下实现cpu实时的检测速度。
2、本发明中人脸检测装置,包括检测结果框获取模块、检测结果框筛选模块和人脸检测模型构建模块,基于上述结构可以提高人脸检测装置对小尺度人脸检测的鲁棒性和准确性,进而可以在保持高精度的前提下实现cpu实时的检测速度。
3、本发明中存储介质可以存储有计算机程序,该程序可以适用于由处理器加载并执行以实现上述人脸检测方法中的各步骤。
4、本发明中处理装置包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行程序时可以实现上述人脸检测方法中的各步骤。
附图说明
图1是本发明实施例的人脸检测方法的主要步骤流程图;
图2是本发明实施例中人脸检测模型的结构示意图;
图3是图2所示的crelu模型示意图;
图4是图2所示的inception模型示意图;
图5是本发明实施例中锚点框铺设密度示意图;
图6是本发明实施例中对图5所示的锚点框进行2倍密集化的示意图;
图7是本发明实施例中对图5所示的锚点框进行3倍密集化的示意图;
图8是本发明实施例中对图5所示的锚点框进行4倍密集化的示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
下面结合附图,对本发明提供的一种人脸检测方法进行说明。
图1示例性示出了本实施例中一种人脸检测方法的实施流程,如图所示,本实施例中人脸检测方法可以包括下述内容:
步骤s101:利用预设的人脸检测模型,获取待检测图像的检测结果框。
本实施例中人脸检测模型为依据深度卷积神经网络构建的检测模型,具体地,可以按照下述步骤构建人脸检测模型:
1、构建级联的第一级卷积子网络和第二级卷积子网络。
本实施例中第一级卷积子网络包括依次连接的第一卷积层、第一池化层、第二卷积层和第二池化层。在本实施例的一个优选技术方案中第一卷积层、第一池化层、第二卷积层和第二池化层的卷积间隔分别为4、2、2和2,该第一级卷积子网络对输入图像的整体下采样倍率为4×2×2×2=32,即输入图像经过第一级卷积子网络后,空间尺寸会迅速地缩小32倍,从而减少后续层的操作所需要的时间开销。进一步地,本实施例中第一卷积层、第一池化层、第二卷积层和第二池化层的卷积核分别为7×7×24、3×3×48、5×5×64、3×3×128,这些卷积核都较薄较大,较薄的卷积核可以减少时间的开销,同时较大的卷积核可以缓和卷积间隔带来的信息损失。进一步地,本实施例中第一级卷积子网络的第一卷积层和第二卷积层的激活函数为crelu激活函数,基于crelu激活函数可以减少卷积输出的通道。假如卷积需要输出n个通道特征,crelu激活函数只使用n/2个卷积核进行卷积,这n/2个卷积输出与其数值取反后的n/2个卷积输出进行串联得到n个卷积输出,最后经过relu激活函数得到需要输出的n个通道特征。crelu激活函数用在卷积神经网络的低层,能够在保持精度基本不变的情况下,通过减少通道数显著地提升速度。
本实施例中第二级卷积子网络包括依次连接的第一inception模块、第二inception模块、第三inception模块、第三卷积层、第四卷积层、第五卷积层和第六卷积层。其中,第一inception模块与第一级卷积子网络的第二池化层连接。
参阅图2,图2示例性示出了本实施例中人脸检测模型的结构。如图2所示,本实施例中第一级卷积子网络包括第一卷积层conv1、第二卷积层conv2、第一池化层pool1和第二池化层pool2。第一卷积层conv1和第二卷积层conv2的激活函数为crelu激活函数。第二级卷积子网络包括第一inception模块inception1、第二inception模块inception2、第三inception模块inception3、第三卷积层conv3_1、第四卷积层conv3_2、第五卷积层conv4_1和第六卷积层conv4_2。第一卷积层conv1与输入连接,第三inception模块inception3、第四卷积层conv3_2和第六卷积层conv4_2分别与多任务损失函数层连接。其中,多任务损失函数层包括softmaxloss和smoothl1loss。
继续参阅图3,图3示例性示出了图2所示人脸检测模型中crelu激活函数的主要步骤实施流程。如图3所示,本实施例中crelu激活函数的实施步骤包括:通过batchnorm对输入信息进行归一化操作;对经归一化操作后的输入信息取反,并与未取反的输入信息串联;通过scale层对串联后的输入信息进行缩放;采用relu对缩放后的输入信息进行处理。本实施例中,crelu激活函数通过对输入信息取反,并将取反后的输入信息与未取反的输入信息串联,可以用减半的卷积核近似未减半的卷积输出。
继续参阅图4,图4示例性示出了图2所示人脸检测模型中inception模块结构。如图4所示,本实施例中inception模块包括四个不同的卷积分支和一个串联层,输入信息分别经四个卷积分支输出后经该串联层串联起来。其中,第一卷积分支包括一个卷积核为1×1×32的卷积层,第二卷积分支包括一个卷积核为1×1×32的卷积层和一个池化层;第三卷积分支包括一个卷积核为1×1×32的卷积层和一个卷积核为3×3×32的卷积层,第四卷积分支包括一个卷积核为1×1×32的卷积层和两个卷积核为3×3×32的卷积层。本实施例中通过不同的卷积分支对输入信息进行卷积,并将各卷积分支卷积后的输入信息串联起来,不仅可以增加卷积网络的宽度,还可以增加卷积网络对尺度的适应性。
在本实施例的一个优选技术方案中第一卷积层conv1和第二卷积层conv2的crelu激活函数分别使用24、64个卷积核,可以输出48、128个通道特征。
2、在第二级卷积子网络中关联锚点框,并优化不同尺度的锚点框在待检测图像上的铺设间隔。
具体地,本实施例中可以在第二级卷积子网络第三inception模块、第四卷积层和第六卷积层分别关联锚点框。继续参阅图2,在本实施例的一个优选实施方案中可以在第三inception模块inception3、第四卷积层conv3_2和第六卷积层conv4_2关联锚点框,具体如表1所示:
表1
如表1所示,本实施例中第二级卷积子网络可以利用三个inception模块丰富第三inception模块inception3、第四卷积层conv3_2和第六卷积层conv4_2的感受野,从而能够让第二级卷积子网络利用在尺度上更丰富的特征信息,对锚点框进行分类和回归,提高对不同尺度的人脸检测结果的准确性。
进一步地,本实施例中可以按照下述步骤优化不同尺度的锚点框在待检测图像上的铺设间隔,具体为:
本实施例中可以按照下式(1)所示的方法调整不同尺度的锚点框在待检测图像上的铺设间隔ainterval:
ainterval=ascale/adensity(1)
公式(1)中各参数含义为:
ascale为锚点框的边长,adensity为预设的铺设密度。
本实施例中通过上述锚点框优化方法,可以使不同尺度的锚点框具有相同的铺设密度,进而提高小尺度人脸检测的鲁棒性。具体地,本实施例中为了把某种尺度的锚点框密集化n倍,该操作以间隔ainterval/n,均匀地围绕着一个感受野的中心,铺设n2个这种尺度的锚点框,而不是只在感受野中心铺设1个进行预测,其中n为大于1的整数。参阅附图5-8:图5示例性示出了本实施例中锚点框铺设密度,锚点框个数anumber=1;图6示例性示出了对图5所示的锚点框进行2倍密集化后的锚点框铺设密度,锚点框个数anumber=4;图7示例性示出了对图5所示的锚点框进行3倍密集化后的锚点框铺设密度,锚点框个数anumber=9;图8示例性示出了对图5所示的锚点框进行4倍密集化后的锚点框铺设密度,锚点框个数anumber=16;。本发明中,在所铺设的锚点框中,大小为32×32、64×64的锚点框的铺设密度很低,为了使上述两种尺度的锚点框跟其他大小的锚点框有相同的铺设密度,通过锚点框密集化操作,分别把32×32和64×64的锚点框密集化4倍和2倍。
3、依据预设的训练图像,对该深度卷积神经网络进行网络训练,得到满足预设的收敛条件的人脸检测模型。
具体地,本实施例中可以按照下述步骤对深度卷积神经网络进行网络训练:
(1)将预设的训练图像输入至人脸检测模型,并对预设的训练图像进行数据增广处理,得到训练样本。本实施例中对训练图像进行数据增广处理,可以包括颜色抖动操作、随机裁剪操作、水平翻转操作和尺度变换操作:
首先,对训练图像进行颜色抖动操作,具体为:分别以0.5的概率,随机地调整训练图像的亮度、对比度和饱和度等参数。
其次,对经过颜色抖动操作后的训练图像进行随机裁剪操作,具体为:随机裁剪5张正方形的子图像。其中,1个子图像是该训练图像中最大的正方形子图像,其余4个子图像的边长为训练图像短边的0.3~1.0倍。随机选取5张子图像中的1个子图像作为最终的训练样本。
再次,对选取的训练样本进行尺度变换操作,具体为:将该训练样本缩放为1024×1024的图像。
再次,对经尺度变换操作后的训练样本进行水平翻转操作,具体为:以0.5的概率随机进行水平翻转操作。
最后,对经水平翻转操作后的训练样本中人脸标注框进行筛选,具体为:判断人脸标注框的中心是否在该训练样本中:若是则保留,否则去掉,并筛掉长或宽小于20个像素的人脸标注框。
本实施例中依次对训练图像进行颜色抖动操作、随机裁剪操作、水平翻转操作和尺度变换操作,可以在不改变图像类别的情况下,增加数据量,能提高模型的泛化能力。
(2)对锚点框与训练样本中的人脸标注框进行匹配,并依据匹配结果将锚点框划分为正样本和负样本。本实施例中正样本为与人脸标注框匹配的锚点框,负样本为与人脸标注框未匹配的锚点框。
具体地,本实施例中可以按照下述步骤对锚点框与训练样本中的人脸标注框进行匹配:
首先,计算各锚点框与各人脸标注框的交除并重叠比,该交除并重叠比指的是锚点框与人脸标注框的交叠率,可以理解为锚点框与人脸标注框的交集、及锚点框与人脸标注框的并集的比值。
其次,选取与各人脸标注框的交除并重叠比最大的锚点框,并将所选取的各锚点框与各对应的人脸标注框进行匹配。即对于每个人脸标注框,选出与其交除并重叠比最大的一个锚点框进行匹配。
再次,判断去除所选取的锚点框之后,剩余的各锚点框与各人脸标注框的交除并重叠比是否大于预设的第一阈值:若大于则进行匹配。即判断剩余的锚点框与人脸标注框的交除并重叠比是否大于预设的第一阈值,如果大于则将对于的锚点框匹配到人脸标注框。
再一次,获取锚点框匹配数量小于预设的第二数量的人脸标注框,并选取与人脸标注框的交除并重叠比大于预设的第二阈值的所有锚点框。本实施例中锚点框匹配数量小于预设的第二数量的人脸标注框指的是没有匹配到足够锚点框的人脸标注框,且预设的第一阈值大于预设的第二阈值。
最后,按照所选取的所有锚点框的交除并重叠比由大到小的顺序,选取预设的第三数量的锚点框与对应的人脸标注框进行匹配。本实施例中预设的第三数量的取值为锚点框匹配数量大于或等于预设的第二数量的人脸标注框的锚点框平均匹配数量。本实施例中锚点框平均匹配数量也可以理解为匹配到足够锚点框的所有人脸标注框所匹配的锚点框数量的平均值。
本实施例提供的一个优选实施方案中第一阈值为0.35,第二阈值为0.1,下面对该优选实施方案进行具体说明。
首先,计算各锚点框与各人脸标注框的交除并重叠比。
其次,选取与各人脸标注框的交除并重叠比最大的锚点框,并将所选取的各锚点框与各对应的人脸标注框进行匹配。
再次,判断去除所选取的锚点框之后,剩余的各锚点框与各人脸标注框的交除并重叠比是否大于0.35:若大于则进行匹配。本实施例中匹配到足够锚点框的所有人脸标注框所匹配的锚点框数量的平均值为np。
再一次,获取锚点框匹配数量小于预设的第二数量的人脸标注框,并选取与人脸标注框的交除并重叠比大于0.1的所有锚点框。本实施例中交除并重叠比大于0.1的所有锚点框如下式(2)所示:
[a1,a2,a3...ai...an](2)
公式(2)中各参数含义为:
ai表示锚点框的位置和大小。
最后,按照所选取的所有锚点框的交除并重叠比由大到小的顺序,选取预设的第三数量的锚点框与对应的人脸标注框进行匹配。
本实施例中对公式(2)所示的锚点框进行交除并重叠比降序排列可以得到:
[a1,a2,a3...aj...an](3)
公式(3)中各参数含义为:
aj表示交除并重叠比降序排列后第j个锚点框的位置和大小。
(3)采用困难负样本挖掘方法选取预设的第一数量的负样本。具体地,本实施例中可以按照下述步骤选取负样本:
计算所有负样本分类预测所带来的误差值,并按照误差值由大到小的顺序选取nneg个负样本,使得负样本与正样本具有下述关系:
nneg=7npos(4)
公式(4)中各参数含义为:
npos为正样本的数量。
(4)依据正样本与所选取的负样本计算损失函数值,并依据损失函数值更新深度卷积神经网络。本实施例中可以采用随机梯度下降法,反向传播误差,对深度卷积神经网络更新,从而完成一次网络训练。
本实施例中损失函数如下式(5)所示:
公式(5)中各参数含义为:
i是锚点框的标号。pi为第i个锚点框被预测为人脸的概率。
具体地,ti和
公式(6)和(7)中各参数含义为:
(x,y)为预测的人脸边界框的中心坐标,w和h分别为预测的人脸边界框的宽和长。x、xa和x*分别表示预测的人脸边界框、锚点框和人脸标注框。
具体地,分类损失lcls如下式(8)所示:
进一步地,本实施例中采用鲁棒回归损失函数(smoothl1),可以得到如下式(9)所示的回归损失函数:
其中:
由公式(5)可知,两项损失函数分别依据ncls和nreg归一化,并由加权系数λcls和λreg加权,其中ncls和nreg为:
同时,加权系数λcls和λreg分别设为8和2,使得分类损失lcls与回归损失lreg具有相同水平的权重值。
(5)对更新后的深度卷积神经网络重新进行网络训练,直至其满足预设的收敛条件。本实施例中可以通过重复执行步骤(1)~(4),得到满足预设的收敛条件的网络模型,即人脸检测模型。
继续参阅图1,如图1所示,本实施例中人脸检测方法还包括步骤s102:对所获取的检测结果框,获取满足预设筛选条件的最终检测结果框。
本实施例中预设的筛选条件包括第一筛选条件和第二筛选条件。其中,第一筛选条件为检测结果框的置信度大于预设的第一置信度阈值。第二筛选条件为检测结果框的数量大于预设的第四数量。
具体地,本实施例中可以按照下述步骤获取满足预设的筛选条件的检测结果框:
1、获取多个检测结果框中满足第一筛选条件的第一检测结果框,并按照第一检测结果框的置信度由高到低的顺序,选取预设的第五数量的第一检测结果框。本实施例中在人脸检测模型输出的大量检测结果框的情况下,通过设置置信度阈值删除大部分的检测结果框。
2、采用非极大值抑制算法去除所选取的第一检测结果框中重复的检测结果框后,得到第二检测结果框。
3、按照第二检测结果框的置信度由高到低的顺序,选取预设的第四数量的第二检测结果框。其中,预设的第五数量大于预设的第四数量。
4、选取第二检测结果框中置信度大于预设的第二置信度阈值的检测结果框作为最佳人脸检测框。其中,预设的第二置信度阈值大于预设的第一置信度阈值。
本实施例提供的一个优选实施方案中第五数量na=400,第四数量nb=200,第一置信度阈值为0.05,第二置信度阈值为0.8,下面对该优选实施方案进行具体说明。
1、选取人脸检测模型输出的检测结果框中置信度大于0.05的检测结果框。
2、将步骤1选取的检测结果框按照置信度降序排列,选取前400个检测结果框。
3、采用非极大值抑制算法去除步骤2中选取的400个检测结果框中重复的检测结果框。
4、将步骤3得到的检测结果框按照置信度降序排列,选取前200个检测结果框。
5、选取步骤4中得到的200个检测结果框中置信度大于0.8的检测结果框,并将所选取的检测结果框作为最佳人脸检测框。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
基于与方法实施例相同的技术构思,本发明实施例还提供了一种人脸检测装置。下面对该人脸检测装置进行具体说明。
本实施例中人脸检测装置可以包括检测结果框获取模块、检测结果框筛选模块和人脸检测模型构建模块。其中,检测结果框获取模块可以配置为利用预设的人脸检测模型,获取待检测图像的第一组检测结果框。检测结果框筛选模块可以配置为对所获取的第一组检测结果框,获取满足预设筛选条件的最终检测结果框。人脸检测模型构建模块可以配置为依据深度卷积神经网络构建的检测模型。
具体地,本实施例中人脸检测模型构建模块可以包括卷积网络构建单元、锚点框关联单元和网络训练单元。其中,卷积网络构建单元可以配置为构建级联的第一级卷积子网络和第二级卷积子网络。锚点框关联单元可以配置为在第二级卷积子网络中关联锚点框,并优化不同尺度的锚点框在待检测图像上的铺设间隔。网络训练单元可以配置为依据预设的训练图像,对该深度卷积神经网络进行网络训练,得到满足预设的收敛条件的人脸检测模型。
进一步地,本实施例中第一级卷积子网络包括依次连接的第一卷积层、第一池化层、第二卷积层和第二池化层。其中,第一卷积层、第一池化层、第二卷积层和第二池化层的卷积间隔分别为4、2、2和2;所述第一卷积层、第一池化层、第二卷积层和第二池化层的卷积核分别为7×7×24、3×3×48、5×5×64、3×3×128。第一级卷积子网络的第一卷积层和第二卷积层的激活函数为crelu激活函数。
同时,第二级卷积子网络包括依次连接的第一inception模块、第二inception模块、第三inception模块、第三卷积层、第四卷积层、第五卷积层和第六卷积层。其中,第一inception模块与第一级卷积子网络的第二池化层连接,第三inception模块、第四卷积层和第六卷积层分别关联锚点框。
进一步地,本实施例中锚点框关联单元可以包括优化子单元,该优化子单元可以配置为按照公式(1)所示的方法调整不同尺度的锚点框在待检测图像上的铺设间隔。
进一步地,本实施例中网络训练单元可以包括训练图像处理子单元、正负样本划分子单元、负样本筛选子单元和网络更新子单元。其中,训练图像处理子单元可以配置为对预设的训练图像进行数据增广处理,得到训练样本。正负样本划分子单元可以配置为对锚点框与训练样本中的人脸标注框进行匹配,并依据匹配结果将锚点框划分为正样本和负样本;正样本为与人脸标注框匹配的锚点框,负样本为与人脸标注框未匹配的锚点框。负样本筛选子单元可以配置为采用困难负样本挖掘方法选取预设的第一数量的负样本。网络更新子单元可以配置为依据正样本与所选取的负样本计算损失函数值,并依据损失函数值更新深度卷积神经网络;对更新后的深度卷积神经网络重新进行网络训练,直至其满足预设的收敛条件。
具体地,本实施例中正负样本划分子单元可以包括匹配子单元,该述匹配子单元包括交除并重叠比计算子单元、第一匹配子单元、第二匹配子单元和第三匹配子单元。其中,交除并重叠比计算子单元可以配置为计算各锚点框与各人脸标注框的交除并重叠比。第一匹配子单元可以配置为选取与各人脸标注框的交除并重叠比最大的锚点框,并将所选取的各锚点框与各对应的人脸标注框进行匹配。第二匹配子单元可以配置为判断去除所选取的锚点框之后,剩余的各锚点框与各人脸标注框的交除并重叠比是否大于预设的第一阈值:若大于则进行匹配;预设的第一阈值大于预设的第二阈值。第三匹配子单元可以配置为获取锚点框匹配数量小于预设的第二数量的人脸标注框,并选取与人脸标注框的交除并重叠比大于预设的第二阈值的所有锚点框;按照所选取的所有锚点框的交除并重叠比由大到小的顺序,选取预设的第三数量的锚点框与对应的人脸标注框进行匹配。本实施例中预设的第三数量的取值为锚点框匹配数量大于或等于预设的第二数量的人脸标注框的锚点框平均匹配数量。
上述人脸检测装置实施例可以用于执行上述人脸检测方法实施例,其技术原理、所解决的技术问题及产生的技术效果相似,所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的人脸检测的具体工作过程及有关说明,可以参考前述人脸检测方法实施例中的对应过程,在此不再赘述。
本领域技术人员可以理解,上述人脸检测装置还包括一些其他公知结构,例如处理器、控制器、存储器等,其中,存储器包括但不限于随机存储器、闪存、只读存储器、可编程只读存储器、易失性存储器、非易失性存储器、串行存储器、并行存储器或寄存器等,处理器包括但不限于cpld/fpga、dsp、arm处理器、mips处理器等。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的服务器、客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,pc程序和pc程序产品)。这样的实现本发明的程序可以存储在pc可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的pc来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
基于与方法实施例相同的技术构思,本发明实施例还提供了一种计算机可读存储介质。下面对该计算机可读存储介质进行具体说明。
本实施例中计算机可读存储介质中存储有计算机程序,该计算机程序可以适用于由处理器加载并执行以实现上述人脸检测方法实施例中的各步骤。
基于与方法实施例相同的技术构思,本发明实施例还提供了一种计算机设备。下面对该计算机设备进行具体说明。
本实施例中计算机设备可以包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。其中,处理器可以在执行计算机程序时实现上述人脸检测方法实施例中的各步骤。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。