人脸检测方法、装置、计算机可读存储介质及设备与流程

文档序号:22737886发布日期:2020-10-31 09:18阅读:118来源:国知局
人脸检测方法、装置、计算机可读存储介质及设备与流程

本发明涉及人脸识别领域,特别是指一种人脸检测方法、装置、计算机可读存储介质及设备。



背景技术:

卷积神经网络(convolutionalneuralnetworks,cnn),也简称为网络,是一类模式识别方法。该方法旨在使用卷积的方法对图像等数据进行表征量化,进而完成分类或是回归任务。该方法目前在图像分类、语音识别等方向表现出了优异的性能。卷积神经网络在模式识别领域获得了较大的进步,尤其在图像人脸识别领域,识别效果可以远超人眼的辨别效果。由于cnn的可以自适应的获得图像的特征并且可以获得较好的分类效果,所以基于cnn的人脸检测也取得了较大的突破。

根据人脸候选窗口获取方法的不同,基于cnn的人脸检测方法大体上可以分为二阶段人脸检测方法和一阶段人脸检测方法两种。

一阶段人脸检测方法不需要提取人脸候选窗口(也称为proposal),是一种将人脸图像输入到网络中,根据网络的特殊结构获得最终的人脸位置以及人脸置信度。基于cnn的一阶段人脸检测方法由于不需要获取proposal,所以相较二阶段人脸检测方法具有较快的检测速度。但是,一阶段人脸检测没有获取proposal,为了获得较高的正确检测率和较低的错误检测率,往往会使用复杂的、较深的网络结构,检测速度慢,无法达到实时检测的目的;并且人脸搜索空间更广,导致训练困难,对数据的要求也比较高。

二阶段人脸检测方法首先需要获取人脸候选窗口,接着使用cnn对候选窗口提取特征并进行分类以及回归。获得proposal的方法有基于传统的方法,如selectivesearch等,也有使用cnn去获取proposal。该方法由于是对候选窗口进行进一步的分类,所以检测结果相对于一阶段方法来说比较准确。但是,二阶段人脸检测方法检测速度受限于proposal的数量及分类网络的大小,为了获得较好的检测效果,候选窗口的数量往往较多,分类网络较深,检测速度也就较慢;并且候选窗口之间会有重叠部分导致大量的重复计算,进而减慢检测的速度;无法达到实时检测的目的。



技术实现要素:

为解决上述技术问题,本发明提供一种人脸检测方法、装置、计算机可读存储介质及设备,本发明提高了检测速度,实时性好,并且适应于不同尺度的人脸检测,提高了检测精度。

本发明提供技术方案如下:

第一方面,本发明提供一种人脸检测方法,所述方法包括:

获取待识别人脸图像并进行第一预处理操作,得到第一大小的输入图像;

将所述输入图像输入到训练后的卷积神经网络,得到人脸框;其中:

所述训练后的卷积神经网络依次包括第一卷积模块、第二卷积模块、第一inception模块、第二inception模块、第三卷积层、第四卷积层、第五卷积层和第六卷积层;所述第一卷积模块包括第一卷积层、第一激活层和第一池化层,所述第二卷积模块包括第二卷积层、第二激活层和第二池化层;

所述输入图像输入到训练后的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图;以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框;使用二分类损失函数确定目标框的类别是否是人脸,使用回归损失函数对类别是人脸的目标框进行位置回归,得到人脸框;

对所述人脸框进行nms操作,得到最终的人脸检测框。

进一步的,训练前的卷积神经网络的第一卷积模块和第二卷积模块均包括bn操作,所述卷积神经网络通过如下方法训练得到:

对数据集的图像进行第二预处理操作,得到由第二大小的训练样本组成的训练集,所述第二大小大于所述第一大小;

将训练样本输入到训练前的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图;

以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框;

使用二分类损失函数确定目标框的类别是否是人脸,使用回归损失函数对类别是人脸的目标框进行位置回归,得到人脸框;

使用误差反向传播算法更新卷积神经网络;

去掉第一卷积模块和第二卷积模块中的bn操作,并使用训练集对卷积神经网络进行微调。

进一步的,所述第一预处理操作包括:

将待识别人脸图像进行灰度化处理;

对灰度化后的图像进行设定倍数的下采样操作,得到第一大小的输入图像;

所述第二预处理操作包括:

将数据集的图像采用差值的方法归一化为第二大小;

若数据集的图像上标注的人脸区域小于设定大小,则将该人脸区域用黑色覆盖,并将该图像的标签设置为非人脸;

将归一化后的图像进行数据扩充,所述数据扩充包括随机图像对比度变化、随机亮度变化、随机裁剪和/或随机图像翻折;

将数据扩充后的图像进行灰度化处理,得到第二大小的训练样本。

进一步的,所述第一卷积层使用5*5的卷积核进行32通道的步长为4的卷积操作,所述第二卷积层使用3*3的卷积核进行64通道的步长为2的卷积操作,所述第一池化层和第二池化层均进行3*3的步长为2的池化操作,所述第三卷积层使用1*1的卷积核进行128通道的步长为1的卷积操作,所述第四卷积层使用3*3的卷积核进行256通道的步长为2的卷积操作,所述第五卷积层使用1*1的卷积核进行128通道的步长为1的卷积操作,所述第六卷积层使用3*3的卷积核进行256通道的步长为2的卷积操作。

进一步的,所述待识别人脸图像的大小为640*480,所述设定倍数的下采样操作为2倍下采样,所述第一大小为320*240,所述第二大小为1024*1024;在第二inception模块输出的特征图的每个单元位置以32、64、128的三个尺寸和1:1的长宽比得到三个目标框,在第四卷积层输出的特征图的每个单元位置以256的尺寸和和1:1的长宽比得到一个目标框,在第六卷积层输出的特征图的每个单元位置以512的尺寸和和1:1的长宽比得到一个目标框。

第二方面,本发明提供一种人脸检测装置,所述装置包括:

第一预处理模块,用于获取待识别人脸图像并进行第一预处理操作,得到第一大小的输入图像;

检测模块,用于将所述输入图像输入到训练后的卷积神经网络,得到人脸框;其中:

所述训练后的卷积神经网络依次包括第一卷积模块、第二卷积模块、第一inception模块、第二inception模块、第三卷积层、第四卷积层、第五卷积层和第六卷积层;所述第一卷积模块包括第一卷积层、第一激活层和第一池化层,所述第二卷积模块包括第二卷积层、第二激活层和第二池化层;

所述输入图像输入到训练后的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图;以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框;使用二分类损失函数确定目标框的类别是否是人脸,使用回归损失函数对类别是人脸的目标框进行位置回归,得到人脸框;

nms操作模块,用于对所述人脸框进行nms操作,得到最终的人脸检测框。

进一步的,训练前的卷积神经网络的第一卷积模块和第二卷积模块均包括bn操作,所述卷积神经网络通过如下模块训练得到:

第二预处理模块,用于对数据集的图像进行第二预处理操作,得到由第二大小的训练样本组成的训练集,所述第二大小大于所述第一大小;

特征图输出模块,用于将训练样本输入到训练前的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图;

目标框获取模块,用于以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框;

人脸框获取模块,用于使用二分类损失函数确定目标框的类别是否是人脸,使用回归损失函数对类别是人脸的目标框进行位置回归,得到人脸框;

反向传播模块,用于使用误差反向传播算法更新卷积神经网络;

微调模块,用于去掉第一卷积模块和第二卷积模块中的bn操作,并使用训练集对卷积神经网络进行微调。

进一步的,所述第一预处理模块包括:

第一灰度化单元,用于将待识别人脸图像进行灰度化处理;

下采样单元,用于对灰度化后的图像进行设定倍数的下采样操作,得到第一大小的输入图像;

所述第二预处理模块包括:

归一化单元,用于将数据集的图像采用差值的方法归一化为第二大小;

筛选单元,用于若数据集的图像上标注的人脸区域小于设定大小,则将该人脸区域用黑色覆盖,并将该图像的标签设置为非人脸;

数据扩充单元,用于将归一化后的图像进行数据扩充,所述数据扩充包括随机图像对比度变化、随机亮度变化、随机裁剪和/或随机图像翻折;

第二灰度化单元,用于将数据扩充后的图像进行灰度化处理,得到第二大小的训练样本。

进一步的,所述第一卷积层使用5*5的卷积核进行32通道的步长为4的卷积操作,所述第二卷积层使用3*3的卷积核进行64通道的步长为2的卷积操作,所述第一池化层和第二池化层均进行3*3的步长为2的池化操作,所述第三卷积层使用1*1的卷积核进行128通道的步长为1的卷积操作,所述第四卷积层使用3*3的卷积核进行256通道的步长为2的卷积操作,所述第五卷积层使用1*1的卷积核进行128通道的步长为1的卷积操作,所述第六卷积层使用3*3的卷积核进行256通道的步长为2的卷积操作。

进一步的,所述待识别人脸图像的大小为640*480,所述设定倍数的下采样操作为2倍下采样,所述第一大小为320*240,所述第二大小为1024*1024;在第二inception模块输出的特征图的每个单元位置以32、64、128的三个尺寸和1:1的长宽比得到三个目标框,在第四卷积层输出的特征图的每个单元位置以256的尺寸和和1:1的长宽比得到一个目标框,在第六卷积层输出的特征图的每个单元位置以512的尺寸和和1:1的长宽比得到一个目标框。

第三方面,本发明提供一种用于人脸检测的计算机可读存储介质,包括用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现第一方面所述的人脸检测方法的步骤。

第四方面,本发明提供一种用于人脸检测的设备,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现第一方面所述的人脸检测方法的步骤。

本发明具有以下有益效果:

本发明使用结构简单,网络深度较浅,宽度较小的卷积神经网络进行一阶段人脸检测,与现有技术的一阶段人脸检测方法和二阶段人脸检测方法相比,本发明提高了检测速度。本发明在卷积神经网络的第二inception模块、第四卷积层和第六卷积层获取了多尺度的特征图,并以不同尺寸和长宽比得到目标框,能够很好的检测到不同尺度的人脸,提高了检测精度。

综上所述,本发明的人脸检测方法提高了检测速度,实时性好,并且适应于不同尺度的人脸检测,提高了检测精度。

附图说明

图1为本发明的人脸检测方法流程图;

图2为本发明的卷积神经网络训练后的结构图;

图3为本发明的卷积神经网络训练前的结构图;

图4为本发明的训练和检测过程的整体示意图;

图5为第一inception模块和第二inception模块的示意图;

图6为本发明的人脸检测装置示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

本发明实施提供了一种人脸检测方法,如图1所示,该方法包括:

步骤s100:获取待识别人脸图像并进行第一预处理操作,得到第一大小的输入图像。

步骤s200:将输入图像输入到训练后的卷积神经网络,得到人脸框;其中:

如图2所示,训练后的卷积神经网络依次包括第一卷积模块、第二卷积模块、第一inception模块inception1、第二inception模块inception2、第三卷积层conv3、第四卷积层conv4、第五卷积层conv5和第六卷积层conv6;第一卷积模块包括第一卷积层conv1、第一激活层relu和第一池化层pool1,第二卷积模块包括第二卷积层conv2、第二激活层relu和第二池化层pool2。

本发明将第一预处理后的人脸图像输入到一个卷积神经网络即可得到人脸框,不需要额外的人脸候选窗口提取步骤,因此本发明为一阶段人脸检测方法。该一阶段人脸检测方法相较于二阶段人脸检测方法速度快。并且本发明的卷积神经网络结构简单,网络深度较浅,宽度较小,是轻量级神经网络,与现有技术的一阶段人脸检测方法相比,该轻量级卷积神经网络加快了检测速度。

输入图像输入到训练后的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图。以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框;所有特征图的所有单元位置得到了一系列的目标框。

图像经过网络的卷积等运算后,会得到一个维度较小的特征图,特征图上的每一个单元(cell)与原图的某一个区域是一一对应的,并且越深层的特征图,其cell对应原图的感受野也就越大,所以较深层特征图可用于检测较大的人脸,较浅层的特征图可以用于检测较小的人脸。

本发明在第二inception模块、第四卷积层和第六卷积层获取了多尺度的特征图,并以不同尺寸和长宽比得到目标框,能够很好的检测到不同尺度的人脸,提高了检测精度。

得到的目标框并不全是人脸框,因此本发明使用二分类损失函数进行类别预测,以确定目标框的类别是否是人脸,二分类损失函数优选使用softmax损失函数。

确定了目标框的类别是人脸后,本发明使用回归损失函数对类别是人脸的目标框进行位置回归,获得位置更加精确的目标框,即为人脸框。回归损失函数优选为l2损失函数。

步骤s300:对人脸框进行nms操作,得到最终的人脸检测框。

非极大值抑制(non-maximumsuppression,nms)本质是搜索局部极大值,抑制非极大值元素。前述得到的人脸框有多个,其存在重叠交叉的情况,本发明使用nms操作,合并重叠区域较大的人脸框,消除多余(交叉重复)的人脸框,得到最终的人脸检测框,即为最佳人脸检测位置。

本发明使用结构简单,网络深度较浅,宽度较小的卷积神经网络进行一阶段人脸检测,与现有技术的一阶段人脸检测方法和二阶段人脸检测方法相比,本发明提高了检测速度。本发明在卷积神经网络的第二inception模块、第四卷积层和第六卷积层获取了多尺度的特征图,并以不同尺寸和长宽比得到目标框,能够很好的检测到不同尺度的人脸,提高了检测精度。

综上所述,本发明的人脸检测方法提高了检测速度,实时性好,并且适应于不同尺度的人脸检测,提高了检测精度。

本发明中,如图3所示,训练前的卷积神经网络的第一卷积模块和第二卷积模块均还包括bn操作,卷积神经网络通过如下方法训练得到:

步骤s100’:对数据集的图像进行第二预处理操作,得到由第二大小的训练样本组成的训练集,第二大小大于第一大小。

本发明使用较大的图像对卷积神经网络进行训练,保证了卷积神经网络的检测准确性,并且在训练完毕后使用较小的图像进行人脸检测,提高了检测速度。

本发明的检测耗时只与输入的图像大小有关,而与图像中的人脸个数无关,本发明使用较小的图像进行人脸检测,并且检测中采用一阶段人脸检测方法,使用轻量级的网络进行操作,所以可以达到实时人脸检测的效果。

步骤s200’:将训练样本输入到训练前的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图。

步骤s300’:以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框。

步骤s400’:使用二分类损失函数确定目标框的类别是否是人脸,使用回归损失函数对类别是人脸的目标框进行位置回归,得到人脸框。

训练过程中步骤s200’~步骤s400’的处理过程与检测过程中步骤s200的处理过程相同。

步骤s500’:使用误差反向传播算法更新卷积神经网络。根据得到的人脸框与训练样本上标注的人脸区域进行误差计算,并根据误差反向传播算法更新卷积神经网络各层的参数,完成第一阶段的训练过程。

步骤s600’:去掉第一卷积模块和第二卷积模块中的bn操作,并使用训练集对卷积神经网络进行微调。

为了达到更快的人脸检测效果以及网络更好的收敛效果,本发明在完成第一阶段的训练过程后,将其中的bn操作去掉,使用第一阶段训练好的模型进行网络初始化,在训练集上进行微调操作,从而获得更快的人脸检测模型。

训练完毕后的卷积神经网络即可用于人脸检测,训练和测试(也就是人脸检测)的完整过程如图4所示。

前述的第一预处理操作优选包括:

步骤s110:将待识别人脸图像进行灰度化处理。

步骤s210:对灰度化后的图像进行设定倍数的下采样操作,得到第一大小的输入图像。

本发明通过一定倍数的下采样操作对图像向小尺度进行缩放,本发明采用对图像进行放缩的策略以及前述去除bn微调训练的方法,一定程度上加快的人脸检测的速度。

前述的第二预处理操作优选包括:

步骤s110’:将数据集的图像采用差值的方法归一化为第二大小。

本发明的数据集选用开源数据集,数据集中的人脸尺度差异很可能比较大,例如widerface数据集,该数据集存在人脸尺度很小的人脸,针对于尺度较小的人脸如果将其进行下采样归一化,会出现人脸消失的情况。所以,合理的图像归一化尺度及其重要。本发明中统一的将训练图像采用差值的方法归一化到第二大小,并且第二大小大于第一大小,即第二大小较大,采用差值的方法归一化为较大的图像不会出现人脸消失的情况。第二大小优选为1024*1024。

步骤s120’:若数据集的图像上标注的人脸区域小于设定大小,则将该人脸区域用黑色覆盖,并将该图像的标签设置为非人脸。

数据集的图像如果包括人脸,那么该图像的标签即为人脸,且在图像上标注出了人脸区域。在训练的过程中,若标注的人脸区域(以人脸的长和宽表示)小于设定大小时,例如人脸的长或宽小于20时,会导致网络的收敛缓慢或出现不收敛的问题,所以在训练的过程中,本发明将长或宽小于20的人脸区域使用黑色覆盖,并将该图像的标签设置为非人脸。

步骤s130’:将归一化后的图像进行数据扩充,数据扩充包括随机图像对比度变化、随机亮度变化、随机裁剪和/或随机图像翻折。本发明进行数据扩充能够更好的训练网络。

步骤s140’:将数据扩充后的图像进行灰度化处理,得到第二大小的训练样本。

本发明中,为了适应不同模式图像的人脸检测任务,进行归一化和数据扩充后,需要将图像转化成灰度图像,用于网络的训练。这样做的好处主要有两个方面:一是可以很好的解决偏色图像(偏色图像指的是解码视频流的过程中,rgb值得发生变化的图,但是图像的形状不变,只是颜色发生变化)的人脸检测任务,二是可以减少网络的计算量,加快检测速度。同理,第一预处理操作中的灰度化也具有相同的效果。本发明使用灰度图进行训练和检测,可以很好的解决偏色图像的人脸检测问题,加快检测速度。

本发明给出卷积神经网络的一个具体实施方式,如图2、3所示,其参数如下:

第一卷积层conv1使用5*5的卷积核进行32通道的步长为4的卷积操作(5*5*32-s4),第二卷积层conv2使用3*3的卷积核进行64通道的步长为2的卷积操作(3*3*64-s2),第一池化层pool1和第二池化层pool2均进行3*3的步长为2的池化操作(3*3-s2),第三卷积层conv3使用1*1的卷积核进行128通道的步长为1的卷积操作(1*1*128-s1),第四卷积层conv4使用3*3的卷积核进行256通道的步长为2的卷积操作(3*3*256-s2),第五卷积层conv5使用1*1的卷积核进行128通道的步长为1的卷积操作(1*1*128-s1),第六卷积层conv6使用3*3的卷积核进行256通道的步长为2的卷积操作(3*3*256-s2)。

本发明的第一inception模块和第二inception模块一个优选的实施方式如下,如图5所示:

输入inception1或inception2的数据分别经过第一操作、第二操作、第三操作和第四操作后,将第一操作、第二操作、第三操作和第四操作的结果通过concat进行连接。其中:

第一操作包括第一卷积操作。优选的,第一卷积操作为使用1*1的卷积核进行32通道的卷积操作conv(1*1*32)。

第二操作包括依次的第一池化操作和第二卷积操作。优选的,第一池化操作为3*3的池化操作pool(3*3),第二卷积操作为使用1*1的卷积核进行32通道的卷积操作conv(1*1*32)。

第三操作包括依次的第三卷积操作和第四卷积操作。优选的,第三卷积操作使用1*1的卷积核进行24通道的卷积操作conv(1*1*24),第四卷积操作为使用3*3的卷积核进行32通道的卷积操作conv(3*3*32)。

第四操作包括依次的第五卷积操作、第六卷积操作和第七卷积操作。优选的,第五卷积操作使用1*1的卷积核进行24通道的卷积操作conv(1*1*24),第六卷积操作为使用3*3的卷积核进行32通道的卷积操作conv(3*3*32),第七卷积操作为使用3*3的卷积核进行32通道的卷积操作conv(3*3*32)。

这里给出一个本发明中的图片大小的具体示例:待识别人脸图像的大小为640*480,设定倍数的下采样操作为2倍下采样,第一大小为320*240,第二大小为1024*1024。

本发明中,进行人脸检测时,优选获取的待识别人脸图像是大小为640*480的vga图像,首先将该人脸图像转化成灰度图像,然后对图像大小进行2倍下采样,放缩至320*240。然后将320*240的灰度图像输入到训练好的卷积神经网络中,在第二inception模块输出的特征图的每个单元位置以32、64、128的三个尺寸和1:1的长宽比得到三个目标框,在第四卷积层输出的特征图的每个单元位置以256的尺寸和和1:1的长宽比得到一个目标框,在第六卷积层输出的特征图的每个单元位置以512的尺寸和和1:1的长宽比得到一个目标框。

然后通过softmax损失函数对目标框进行人脸分类,通过l2损失函数进行人脸框的回归计算。最后对上述操作检测到的人脸框进行nms操作,合并重叠区域较大的窗口,得到最终的人脸检测框。

本发明提出的人脸检测方法,在公开测试数据集fddb上,当误检数为100时,人脸检测率为93.7%,并且检测速度只与输入图像的尺度有关,与人脸的个数无关。在vga图像上,最小检测人脸为60*60时,cpu下单线程单帧图像检测速度约为17ms(58.8fps)。

在人脸检测中,实时性通常以1秒内能够处理图像的数量来说明算法是否可以达到实时的效果,通常在cpu机器上运算速度在20fps(帧/秒)以上认为达到实时性要求。

可见,本发明的检测准确率高,速度快,可以达到实时的效果。

前述的神经网络各个层的具体参数,待识别人脸图像、输入图像、训练样本的大小,以及获取目标框时的尺寸和比例等数值仅仅用于举例说明,并不用于限定本发明。

实施例2:

本发明实施例提供了一种人脸检测装置,如图6所示,该装置包括:

第一预处理模块10,用于获取待识别人脸图像并进行第一预处理操作,得到第一大小的输入图像。

检测模块20,用于将输入图像输入到训练后的卷积神经网络,得到人脸框;其中:

训练后的卷积神经网络依次包括第一卷积模块、第二卷积模块、第一inception模块、第二inception模块、第三卷积层、第四卷积层、第五卷积层和第六卷积层;第一卷积模块包括第一卷积层、第一激活层和第一池化层,第二卷积模块包括第二卷积层、第二激活层和第二池化层。

输入图像输入到训练后的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图;以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框;使用二分类损失函数确定目标框的类别是否是人脸,使用回归损失函数对类别是人脸的目标框进行位置回归,得到人脸框。

nms操作模块30,用于对人脸框进行nms操作,得到最终的人脸检测框。

本发明使用结构简单,网络深度较浅,宽度较小的卷积神经网络进行一阶段人脸检测,与现有技术的一阶段人脸检测方法和二阶段人脸检测方法相比,本发明提高了检测速度。本发明在卷积神经网络的第二inception模块、第四卷积层和第六卷积层获取了多尺度的特征图,并以不同尺寸和长宽比得到目标框,能够很好的检测到不同尺度的人脸,提高了检测精度。

综上所述,本发明的人脸检测装置提高了检测速度,实时性好,并且适应于不同尺度的人脸检测,提高了检测精度。

本发明中,如图3所示训练前的卷积神经网络的第一卷积模块和第二卷积模块均还包括bn操作,卷积神经网络通过如下模块训练得到:

第二预处理模块,用于对数据集的图像进行第二预处理操作,得到由第二大小的训练样本组成的训练集,第二大小大于第一大小。

特征图输出模块,用于将训练样本输入到训练前的卷积神经网络,在第二inception模块、第四卷积层和第六卷积层各输出一个特征图。

目标框获取模块,用于以设定的长宽比和多个尺寸在每张特征图的每个单元位置得到若干目标框。

人脸框获取模块,用于使用二分类损失函数确定目标框的类别是否是人脸,使用回归损失函数对类别是人脸的目标框进行位置回归,得到人脸框。

反向传播模块,用于使用误差反向传播算法更新卷积神经网络,完成第一阶段的训练过程。

微调模块,用于去掉第一卷积模块和第二卷积模块中的bn操作,并使用训练集对卷积神经网络进行微调。

本发明在完成第一阶段的训练过程后,将其中的bn操作去掉,使用第一阶段训练好的模型进行网络初始化,在训练集上进行微调操作,从而获得更快的人脸检测模型。

前述的第一预处理模块优选包括:

第一灰度化单元,用于将待识别人脸图像进行灰度化处理。

下采样单元,用于对灰度化后的图像进行设定倍数的下采样操作,得到第一大小的输入图像。

前述的第二预处理模块优选包括:

归一化单元,用于将数据集的图像采用差值的方法归一化为第二大小。

筛选单元,用于若数据集的图像上标注的人脸区域小于设定大小,则将该人脸区域用黑色覆盖,并将该图像的标签设置为非人脸。

数据扩充单元,用于将归一化后的图像进行数据扩充,数据扩充包括随机图像对比度变化、随机亮度变化、随机裁剪和/或随机图像翻折。

第二灰度化单元,用于将数据扩充后的图像进行灰度化处理,得到第二大小的训练样本。

本发明采用对图像进行放缩的策略以及前述去除bn微调训练的方法,一定程度上加快的人脸检测的速度。并且本发明使用灰度图进行训练和检测,可以很好的解决偏色图像的人脸检测问题,加快检测速度。

本发明给出卷积神经网络的一个具体实施方式,如图2、3所示,其参数如下:

第一卷积层conv1使用5*5的卷积核进行32通道的步长为4的卷积操作(5*5*32-s4),第二卷积层conv2使用3*3的卷积核进行64通道的步长为2的卷积操作(3*3*64-s2),第一池化层pool1和第二池化层pool2均进行3*3的步长为2的池化操作(3*3-s2),第三卷积层conv3使用1*1的卷积核进行128通道的步长为1的卷积操作(1*1*128-s1),第四卷积层conv4使用3*3的卷积核进行256通道的步长为2的卷积操作(3*3*256-s2),第五卷积层conv5使用1*1的卷积核进行128通道的步长为1的卷积操作(1*1*128-s1),第六卷积层conv6使用3*3的卷积核进行256通道的步长为2的卷积操作(3*3*256-s2)。

本发明的第一inception模块和第二inception模块一个优选的实施方式如下,如图5所示:

输入inception1或inception2的数据分别经过第一操作、第二操作、第三操作和第四操作后,将第一操作、第二操作、第三操作和第四操作的结果通过concat进行连接。其中:

第一操作包括第一卷积操作。优选的,第一卷积操作为使用1*1的卷积核进行32通道的卷积操作conv(1*1*32)。

第二操作包括依次的第一池化操作和第二卷积操作。优选的,第一池化操作为3*3的池化操作pool(3*3),第二卷积操作为使用1*1的卷积核进行32通道的卷积操作conv(1*1*32)。

第三操作包括依次的第三卷积操作和第四卷积操作。优选的,第三卷积操作使用1*1的卷积核进行24通道的卷积操作conv(1*1*24),第四卷积操作为使用3*3的卷积核进行32通道的卷积操作conv(3*3*32)。

第四操作包括依次的第五卷积操作、第六卷积操作和第七卷积操作。优选的,第五卷积操作使用1*1的卷积核进行24通道的卷积操作conv(1*1*24),第六卷积操作为使用3*3的卷积核进行32通道的卷积操作conv(3*3*32),第七卷积操作为使用3*3的卷积核进行32通道的卷积操作conv(3*3*32)。

这里给出一个本发明中的图片大小的具体示例:待识别人脸图像的大小为640*480,设定倍数的下采样操作为2倍下采样,第一大小为320*240,第二大小为1024*1024。

本发明中,进行人脸检测时,优选获取的待识别人脸图像是大小为640*480的vga图像,首先将该人脸图像转化成灰度图像,然后对图像大小进行2倍下采样,放缩至320*240。然后将320*240的灰度图像输入到训练好的卷积神经网络中,在第二inception模块输出的特征图的每个单元位置以32、64、128的三个尺寸和1:1的长宽比得到三个目标框,在第四卷积层输出的特征图的每个单元位置以256的尺寸和和1:1的长宽比得到一个目标框,在第六卷积层输出的特征图的每个单元位置以512的尺寸和和1:1的长宽比得到一个目标框。

然后通过softmax损失函数对目标框进行人脸分类,通过l2损失函数进行人脸框的回归计算。最后对上述操作检测到的人脸框进行nms操作,合并重叠区域较大的窗口,得到最终的人脸检测框。

本发明提出的人脸检测装置,在公开测试数据集fddb上,当误检数为100时,人脸检测率为93.7%,并且检测速度只与输入图像的尺度有关,与人脸的个数无关。在vga图像上,最小检测人脸为60*60时,cpu下单线程单帧图像检测速度约为17ms(58.8fps)。

在人脸检测中,实时性通常以1秒内能够处理图像的数量来说明算法是否可以达到实时的效果,通常在cpu机器上运算速度在20fps(帧/秒)以上认为达到实时性要求。

可见,本发明的检测准确率高,速度快,可以达到实时的效果。

前述的神经网络各个层的具体参数,待识别人脸图像、输入图像、训练样本的大小,以及获取目标框时的尺寸和比例等数值仅仅用于举例说明,并不用于限定本发明。

本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

实施例3:

本说明书提供的上述实施例所述的方法可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例1所描述方案的效果。因此,本发明还提供用于人脸检测的计算机可读存储介质,包括用于存储处理器可执行指令的存储器,指令被处理器执行时实现包括实施例1的人脸检测方法的步骤。

本发明使用结构简单,网络深度较浅,宽度较小的卷积神经网络进行一阶段人脸检测,与现有技术的一阶段人脸检测方法和二阶段人脸检测方法相比,本发明提高了检测速度。本发明在卷积神经网络的第二inception模块、第四卷积层和第六卷积层获取了多尺度的特征图,并以不同尺寸和长宽比得到目标框,能够很好的检测到不同尺度的人脸,提高了检测精度。

综上所述,本发明提高了检测速度,实时性好,并且适应于不同尺度的人脸检测,提高了检测精度。

所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。

上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。

实施例4:

本发明还提供一种用于人脸检测的设备,所述的设备可以为单独的计算机,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的实际操作装置等。所述用于人脸检测的设备可以包括至少一个处理器以及存储计算机可执行指令的存储器,处理器执行所述指令时实现上述任意一个或者多个实施例1中所述人脸检测方法的步骤。

本发明使用结构简单,网络深度较浅,宽度较小的卷积神经网络进行一阶段人脸检测,与现有技术的一阶段人脸检测方法和二阶段人脸检测方法相比,本发明提高了检测速度。本发明在卷积神经网络的第二inception模块、第四卷积层和第六卷积层获取了多尺度的特征图,并以不同尺寸和长宽比得到目标框,能够很好的检测到不同尺度的人脸,提高了检测精度。

综上所述,本发明提高了检测速度,实时性好,并且适应于不同尺度的人脸检测,提高了检测精度。

上述所述的设备根据方法或者装置实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。

需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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