1.本技术涉及机器学习技术领域,尤其涉及一种基于神经网络的人脸检测方法和装置。
背景技术:2.人脸识别技术广泛地应用在金融、安防、智慧交通、民生服务等领域,不仅可以使身份认证变得更加准确便捷,还可以实现对重点人员的识别与跟踪。
3.目前,基于神经网络的人脸检测模型大都应用在服务器端,但随着近年来移动互联网的兴起和硬件性能的提升,移动端成为日益重要的算法部署平台。然而,基于神经网络的人脸检测模型在移动端的部署存在模型占存储空间大、推理延迟时间长两大痛点,极大地制约了人脸检测模型在移动端的部署和应用。
4.因此,目前亟需一种方案,用以在保证人脸检测精度的情况下,减少人脸检测模型在移动端的存储空间和推理延迟时间。
技术实现要素:5.本技术提供一种基于神经网络的人脸检测方法和装置,用以在保证人脸检测精度的情况下,减少人脸检测模型在移动端的存储空间和推理延迟时间。
6.第一方面,本技术实施例提供一种基于神经网络的人脸检测方法,该方法包括:将待识别图像通过第一级联网络的多个处理单元,预测得到所述待识别图像中的n个第一候选窗口;每个第一候选窗口为初步预测具有人脸图像的区域;将所述n个第一候选窗口通过第二级联网络的多个处理单元,预测得到所述待识别图像中的m个第二候选窗口;每个第二候选窗口为修正预测具有人脸图像的区域;将所述m个第二候选窗口通过第三级联网络的多个处理单元,确定所述待识别图像的具有人脸图像的目标窗口和所述目标窗口中的人脸特征点;其中,至少一个处理单元的卷积操作为深度可分离卷积操作。
7.上述技术方案中,在级联型网络中,当输入图像中目标数较少时,网络的运行时延有着明显的优势。并且,使用深度可分离卷积与传统卷积相比,可以在保持人脸检测模型精度的基础上,使人脸检测模型的参数明显减少,进而可以使人脸检测模型在移动端推理时的计算量明显降低。
8.可选的,所述至少一个处理单元包括融合层;所述融合层是对训练后的卷积层和训练后的批标准化层进行融合后得到的。
9.上述技术方案中,批标准化层可加快人脸检测模型在训练时的收敛速度,增强模型的泛化能力,还可以减轻网络的过拟合程度。在人脸检测模型部署到移动端时,将批标准化层融合入卷积层,可以不增加人脸检测模型在移动端推理时的计算量。
10.可选的,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到的。
11.上述技术方案中,在训练人脸检测模型时,通过在网络中增加卷积核的个数以增
加网络的中间层通道数,可以提高网络的特征提取和表达能力。在人脸检测模型部署到移动端部时,冗余的卷积核根据卷积核的权重被剪裁掉,进而可以降低人脸检测模型在移动端推理时的计算量和内存占用。
12.可选的,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到的,包括:依次对所述第一级联网络、所述第二级联网络和所述第三级联网络进行卷积核裁剪,其中,任一级联网络按照如下方式处理:按各卷积核的权重,对权重最小的m个卷积核进行裁剪;对裁剪后的各级联网络进行训练之后继续进行卷积核裁剪,直至满足设定要求;在满足所述设定要求后,对裁剪的卷积核对应的通道进行删除。
13.上述技术方案中,卷积核的权重值越大,代表该卷积核对人脸检测模型整体精度的影响越大,因此,将权重较小的卷积核裁剪掉,可以保证在不降低人脸检测模型精度的同时,减少模型在移动端推理时的计算量。并且,在对卷积核进行裁剪时,使用分次裁剪再训练的迭代策略,每一轮只裁剪一部分卷积核后,重新对网络进行训练,可以使网络的参数分布适应裁剪后的人脸检测模型,并同时恢复模型的检测精度。
14.可选的,在所述处理单元的每个处理层之前包括一个量化节点,所述量化节点用于将fp32类型的输入数据转换为int8/uint8类型的数据;在所述处理单元的每个处理层之后包括一个反量化节点,所述反量化节点用于将int8/uint8类型的输出数据还原成fp32类型的数据。
15.上述技术方案中,通过在网络中插入量化节点的方式,将fp32类型的数据转换为int8/uint8类型的数据,可以实现人脸检测模型部署到移动端后模型的存储压缩和推理加速。
16.可选的,若两个所述处理层之间存在连续的所述反量化节点和所述量化节点,则所述连续的所述反量化节点和所述量化节点被合并为一个再量化节点。
17.上述技术方案中,空间上连续的反量化节点和量化节点,可以合并成一个再量化节点,进而可以缩减因连续量化和反量化带来的额外计算量。
18.可选的,所述至少一个处理单元中的至少一个参数经模型量化处理。
19.上述技术方案中,将fp32类型的参数转换为int8/uint8类型的参数,以实现人脸检测模型的存储压缩。
20.第二方面,本技术实施例提供一种基于神经网络的人脸检测装置,包括:
21.预测模块,用于将待识别图像通过第一级联网络的多个处理单元,预测得到所述待识别图像中的n个第一候选窗口;每个第一候选窗口为初步预测具有人脸图像的区域;
22.所述预测模块,还用于将所述n个第一候选窗口通过第二级联网络的多个处理单元,预测得到所述待识别图像中的m个第二候选窗口;每个第二候选窗口为修正预测具有人脸图像的区域;
23.确定模块,用于将所述m个第二候选窗口通过第三级联网络的多个处理单元,确定所述待识别图像的具有人脸图像的目标窗口和所述目标窗口中的人脸特征点;其中,至少一个处理单元的卷积操作为深度可分离卷积操作。
24.可选的,所述至少一个处理单元包括融合层;所述融合层是对训练后的卷积层和训练后的批标准化层进行融合后得到的。
25.可选的,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到
的。
26.可选的,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到的,包括:依次对所述第一级联网络、所述第二级联网络和所述第三级联网络进行卷积核裁剪,其中,任一级联网络按照如下方式处理:按各卷积核的权重,对权重最小的m个卷积核进行裁剪;对裁剪后的各级联网络进行训练之后继续进行卷积核裁剪,直至满足设定要求;在满足所述设定要求后,对裁剪的卷积核对应的通道进行删除。
27.可选的,在所述处理单元的每个处理层之前包括一个量化节点,所述量化节点用于将fp32类型的输入数据转换为int8/uint8类型的数据;在所述处理单元的每个处理层之后包括一个反量化节点,所述反量化节点用于将int8/uint8类型的输出数据还原成fp32类型的数据。
28.可选的,若两个所述处理层之间存在连续的所述反量化节点和所述量化节点,则所述连续的所述反量化节点和所述量化节点被合并为一个再量化节点。
29.可选的,所述至少一个处理单元中的至少一个参数经模型量化处理。
30.第三方面,本技术实施例还提供一种计算设备,包括:
31.存储器,用于存储程序指令;
32.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面的任一种可能的设计中所述的方法。
33.第四方面,本技术实施例还提供一种计算机可读存储介质,其中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得上述第一方面的任一种可能的设计中所述的方法实现。
附图说明
34.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
35.图1为本技术实施例提供的一种人脸检测模型的示意图;
36.图2为本技术实施例提供的基于神经网络的人脸检测方法的流程示意图;
37.图3为本技术实施例提供的一种裁剪冗余卷积核的方法的流程示意图;
38.图4为本技术实施例提供的一种与量化相关的节点的示意图;
39.图5为本技术实施例提供的一种具体的人脸检测模型的示意图;
40.图6为本技术实施例提供的一种基于神经网络的人脸检测装置的结构示意图;
41.图7为本技术实施例提供的一种计算设备的结构示意图。
具体实施方式
42.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
43.在本技术的实施例中,多个是指两个或两个以上。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
44.图1示例性的示出了本技术实施例所适用的一种人脸检测模型,该人脸检测模型包括第一级联网络110、第二级联网络120和第三级联网络130三个级联网络。
45.每个级联网络中包括多个处理单元,用于对待识别图像进行处理。其中,处理单元可以包括卷积层、融合层、激活函数层和全连接层的至少一种处理层。图中的箭头即表示处理单元对待识别图像的一次处理过程。
46.待检测图像经过金字塔变换后生成多尺度的图像,输入到第一级联网络中,通过第一级联网络的多个处理单元,对待检测图像中的人脸区域进行提取。将第一级联网络输出的候选框输入到第二级联网络中,通过第二级联网络的多个处理单元,对待检测图像中的人脸区域进行提炼。将第二级联网络输出的提炼后的候选框输入到第三级联网络中,通过第二级联网络的多个处理单元,确定待检测图像最终的人脸矩形框和人脸关键点的位置。
47.每个级联网络均输出三个部分,人脸分类(face classification)、预测框回归(bounding box)和关键点回归(facial landmark localization)。
48.其中,人脸分类为矩形框对应图像区域为人脸图像的概率,预测框回归为检测出的人脸矩形框的位置信息,关键点回归为矩形框中人脸的5个关键点位置信息。5个关键点分别为人脸的双眼、鼻尖及两个嘴角的位置。
49.需要说明的是,上述图1所示的人脸检测模型的结构仅是一种示例,本技术实施例对此不做具体限定。
50.图2示例性地示出了本技术实施例提供的一种基于神经网络的人脸检测方法,该方法具体可以由上述人脸检测模型执行。如图2所示,该方法包括以下步骤:
51.步骤201、将待识别图像通过第一级联网络的多个处理单元,预测得到待识别图像中的n个第一候选窗口。
52.上述步骤中,每个第一候选窗口为初步预测具有人脸图像的区域。
53.步骤202、将n个第一候选窗口通过第二级联网络的多个处理单元,预测得到待识别图像中的m个第二候选窗口。
54.上述步骤中,每个第二候选窗口为修正预测具有人脸图像的区域。
55.步骤203、将m个第二候选窗口通过第三级联网络的多个处理单元,确定待识别图像的具有人脸图像的目标窗口和目标窗口中的人脸特征点。
56.上述三个级联网络中,至少一个处理单元的卷积操作为深度可分离卷积(depthwise separable convolution)操作。深度可分离卷积包括深度卷积(depthwise convolution)和逐点卷积(pointwise convolution)。
57.在级联型网络中,当输入图像中目标数较少时,网络的运行时延有着明显的优势。并且,使用深度可分离卷积与传统卷积相比,可以在保持人脸检测模型精度的基础上,使人脸检测模型的参数明显减少,进而可以使人脸检测模型在移动端推理时的计算量明显降低。
58.在一种可能的设计中,上述三个级联网络中至少一个处理单元包括融合层,该融合层是对训练后的卷积层和训练后的批标准化(batch normalization)层进行融合后得到
的。
59.在训练人脸检测模型时,增加batchnorm层可加快网络在训练时的收敛速度,并增强模型的泛化能力,当训练数据过少或网络容量过小时,还可以减轻网络的过拟合程度。但是在人脸检测模型部署到移动端时,batchnorm层需要存储参数并且还占用移动端的计算资源,因此,本技术将batchnorm层和相邻的卷积层进行融合操作,以降低人脸检测模型在移动端推理时的计算量。
60.示例性地,batchnorm层与卷积层进行融合的方法如下:
61.步骤一、计算输入的均值:
[0062][0063]
步骤二、计算输入的方差:
[0064][0065]
步骤三、生成新的卷积层权重:
[0066][0067]
步骤四、生成新的卷积层偏执:
[0068][0069]
步骤五、重新进行卷积计算:
[0070]y←
ω
′
·
x+b
′
[0071]
其中,输入x={x_1,x_2,
…
,x_n}表示原卷积层的输入;ω表示原卷积层的权重;b表示原卷积层的偏置;γ表示原batchnorm层的缩放参数;β表示原batchnorm层的平移参数。
[0072]
在一种可能的设计中,在训练人脸检测模型时,可以通过在网络中通过增加卷积核的个数,进而增加网络中的中间层的通道数,以提高网络的特征提取和表达能力。进一步地,当卷积操作为深度可分离卷积时,可以通过增加逐点卷积中卷积核的个数来增加网络的中间层通道数。
[0073]
在一种可能的设计中,在人脸检测模型训练完成后,将卷积层中的卷积核按各卷积核的权重进行裁剪,再将裁剪后的人脸检测模型部署到移动端。具体的,可以使用迭代裁剪的方式依次对第一级联网络、第二级联网络和第三级联网络进行卷积核裁剪,其中,任一级联网络按照如下方式处理:按各卷积核的权重,对权重最小的m个卷积核进行裁剪;对裁剪后的各级联网络进行训练之后继续进行卷积核裁剪,直至满足设定要求。在满足所述设定要求后,对裁剪的卷积核对应的通道进行删除。
[0074]
图3示例性地示出了本技术实施例提供的一种裁剪冗余卷积核的具体方法,如图3所示,该方法包括以下步骤:
[0075]
步骤301、设定裁剪比例和迭代次数。
[0076]
步骤302、计算每个卷积核的权重。
[0077]
其中,可以将每个卷积核中参数的绝对值的累加值作为每个卷积核的权重。具体的,卷积核的权重的计算方式如公式一所示。
[0078][0079]
其中,wn与sn分别表示当网络中第n个卷积核矩阵及其权重;w
i,j,k
表示卷积核矩阵中的元素;i,j,k分别表示卷积核的三个通道。
[0080]
步骤303、对网络中所有卷积核的权重进行排列。
[0081]
步骤304、标记权重最小的m个卷积核和与权重最小的m个卷积核相关的通道。
[0082]
步骤305、重新训练裁剪后的级联网络。
[0083]
步骤306、判断被标记的卷积核的比例是否达到预设比例。
[0084]
若被标记的卷积核的比例没有达到预设比例,则执行步骤302,进行下一轮裁剪;若所述被标记的卷积核的比例达到预设比例,则执行步骤307。
[0085]
步骤307、删除所有被标记的卷积核和通道。
[0086]
卷积核的权重值越大,表示该卷积核对网络整体精度的影响越大。对此,裁剪掉一部分对网络整体精度影响较小的卷积核,可以在保证人脸检测模型的检测精度的情况下,降低人脸检测模型在移动端推理过程中的计算量和内存占用。通常人脸检测模型经过一轮减枝后,精度会出现一定程度的下降。可以使用训练集对每个级联网络重新训练,使网络的参数分布适应裁剪后的结构,同时恢复人脸检测模型的精度。在预先设定网络的裁剪比例后,并不一步到位地裁剪到指定比例,而是采取分次裁剪再训练的迭代策略,每次迭代仅裁剪部分网络结构并进行重新训练,可以降低人脸检测模型重新训练时模型精度恢复的难度。
[0087]
在一种可能的设计中,处理单元的每个处理层之前包括一个量化节点,该量化节点用于将32位浮点(fp32)类型的输入数据转换为8位定点(int8/uint8)类型的数据,具体的,可以采用非对称分通道量化再训练的方式,实现fp32类型的数据向int8/uint8类型的数据的转换。
[0088]
在处理单元的每个处理层之后包括一个反量化节点,反量化节点用于将int8/uint8类型的输出数据还原成fp32类型的数据。
[0089]
进一步地,若两个处理层之间存在连续的反量化节点和量化节点,则连续的反量化节点和量化节点可以被合并为一个再量化节点,进而可以缩减因连续量化和反量化带来的额外计算量。
[0090]
图4示例性地示出了在每个级联网络中插入的上述三种与量化相关的节点。从图中可以看出,在每个处理层之前设置有一个量化节点401,用于将输入的p32类型的数据先转换为int8/uint8类型的数据后,再输入到各处理层中进行处理。在每个处理层之后设置有一个反量化节点402,用于将输出的int8/uint8类型的数据再转换回p32类型的数据。对于两个处理层之间,空间上连续的反量化节点402和量化节点401被合并为一个再量化节点403。
[0091]
上述技术方案中,将fp32类型的数据转换为int8/uint8类型的数据,可以进一步压缩人脸检测模型,实现人脸检测模型部署到移动端后模型的存储压缩和推理加速。
[0092]
在一种可能的设计中,至少一个处理单元中的至少一个参数经模型量化处理。其中,模型量化处理包括权重值量化和激活值量化。权重值量化即对模型存储的包括权重与偏置值在内的参数进行量化,该操作仅需在人脸检测模型部署到移动端进行序列化存储时进行一次,而无需在模型推理时进行。激活值量化即对网络中每一层输出的激活值进行动态量化,由于神经网络中每一层输出激活值的数据分布范围差异巨大,因此,激活值量化的主要方式是将人脸检测模型在预先选定的验证集上运行一个epoch后,根据模型每一层输出激活值的浮点数范围确定量化参数,被确定的量化参数在人脸检测模型进行推理时将不再变动。
[0093]
在一种可能的设计中,可以在训练人脸检测模型时,保留网络中的人脸关键点检测分支,以提高网络的人脸检测性能。在人脸检测模型部署到移动端时,裁剪掉网络中的人脸关键点检测分支,以进一步降低网络的计算量。
[0094]
在一种可能的设计中,人脸检测模型的损失函数可以如公式二所示。
[0095]
l=α*fl
classification
+β*l
box
+l
landmark
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式二
[0096]
其中,fl
classification
表示人脸分类损失,其权重α=2;l
box
表示预测框的回归损失,其权重β=1.5;l
landmark
表示人脸关键点的回归损失。
[0097]
(a)人脸分类损失
[0098]
人脸人类损失函数采用焦点损失函数(focal loss),并且采用全部样本数据计算损失,实现训练时样本的平衡。人脸分类的损失函数如公式三所示。
[0099][0100]
其中,y∈{0,1},表示样本ground-truth标签;表示网络对样本的预测值;α=0.25,表示正负样本的平衡因子;γ=2,表示简单样本和困难样本的平衡因子。
[0101]
(b)预测框的回归损失
[0102]
预测框的回归损失函数使用欧氏损失函数如公式四所示。
[0103][0104]
其中,y
box
表示样本的ground-truth坐标;表示网络对样本预测的坐标偏移量;且y
box
与均以四元组(x,y,h,w)表示,其中x,y,h,w分别表示检测框的左上角的横纵坐标,以及检测框的高度和宽度。
[0105]
(c)人脸关键点的回归损失
[0106]
本文中关键点的预测使用欧式损失函数如公式五所示。
[0107][0108]
其中,y
landmark
与分别表示ground-truth坐标与网络的预测坐标;人脸关键点包括左右眼、鼻子、左右嘴角的坐标,故y
landmark
,
[0109]
本技术在进行人脸检测模型的训练时,采用tensorflow-1.10深度学习框架。采用wider face、celeba、lfw、fddb训练集,优化器sgd:momentum=0.9;weight_decay=0.0005;learning rate=0.01。此外,还使用翻转、裁剪、变换亮度和对比度进行数据增强。
[0110]
为了更好地理解本技术实施例,下面以一个具体的示例介绍本技术提供的技术方案。图5示例性地示出了本技术实施例提供的一种具体的人脸检测模型,该人脸检测模型包
括三个级联网络。
[0111]
待检测图像经过金字塔变换后,被转换为尺寸为12
×
12
×
3的图像。将尺寸为12
×
12
×
3的待检测图像作为第一级联网络的输入,经过第一次深度可分离卷积操作后,生成16个尺寸为5
×
5的图像。经过第二次深度可分离卷积操作后,生成24个尺寸为3
×
3的图像。过第三次深度可分离卷积操作后,生成16个尺寸为1
×
1的图像。最后,通过2个1
×1×
16的卷积核,生成2个1
×
1的特征图用于分类;通过4个1
×1×
16的卷积核,生成4个1
×
1的特征图用于预测框回归;10个1
×1×
16的卷积核,生成10个1
×
1的特征图用于关键点回归。
[0112]
第一级联网络输出的预测框经过金字塔变换后,被转换为尺寸为24
×
24
×
3的待检测图像。将尺寸为24
×
24
×
3的待检测图像作为第二级联网络的输入,经过第一次深度可分离卷积操作后,生成48个尺寸为11
×
11的图像。经过第二次深度可分离卷积操作后,生成64个尺寸为4
×
4的图像。过第三次深度可分离卷积操作后,生成64个尺寸为3
×
3的图像。最后,通过2个1
×1×
16的卷积核,生成2个1
×
1的特征图用于分类;通过4个1
×1×
16的卷积核,生成4个1
×
1的特征图用于预测框回归;10个1
×1×
16的卷积核,生成10个1
×
1的特征图用于关键点回归。
[0113]
第二级联网络输出的预测框经过金字塔变换后,被转换为尺寸为48
×
48
×
3的待检测图像。将尺寸为48
×
48
×
3的待检测图像作为第三级联网络的输入,经过第一次深度可分离卷积操作后,生成48个尺寸为23
×
23的图像。经过第二次深度可分离卷积操作后,生成96个尺寸为10
×
10的图像。过第三次深度可分离卷积操作后,生成96个尺寸为4
×
4的图像。经过第四次深度可分离卷积操作后,生成128个尺寸为3
×
3的图像。最后,通过2个1
×1×
16的卷积核,生成2个1
×
1的特征图用于分类;通过4个1
×1×
16的卷积核,生成4个1
×
1的特征图用于预测框回归;10个1
×1×
16的卷积核,生成10个1
×
1的特征图用于关键点回归。输出最终的人脸分类、预测框回归和关键点回归。
[0114]
本技术提供一种基于神经网络的人脸检测方法,通过使用深度可分离卷积代替传统卷积,将批标准化层融合入卷积层,对冗余的卷积核进行裁剪以及在网络中插入量化节点等手段,可以在保持人脸检测模型精度的基础上,使人脸检测模型的参数明显减少,进而实现在保证人脸检测精度的情况下,减少人脸检测模型在移动端的存储空间和推理延迟时间。
[0115]
基于相同的技术构思,图6示例性地示出了本技术实施例提供的一种基于神经网络的人脸检测装置,该装置可以使移动端设备。如图6所示,该人脸检测装置600包括:
[0116]
预测模块601,用于将待识别图像通过第一级联网络的多个处理单元,预测得到所述待识别图像中的n个第一候选窗口;每个第一候选窗口为初步预测具有人脸图像的区域;
[0117]
所述预测模块601,还用于将所述n个第一候选窗口通过第二级联网络的多个处理单元,预测得到所述待识别图像中的m个第二候选窗口;每个第二候选窗口为修正预测具有人脸图像的区域;
[0118]
确定模块602,用于将所述m个第二候选窗口通过第三级联网络的多个处理单元,确定所述待识别图像的具有人脸图像的目标窗口和所述目标窗口中的人脸特征点;其中,至少一个处理单元的卷积操作为深度可分离卷积操作。
[0119]
可选的,所述至少一个处理单元包括融合层;所述融合层是对训练后的卷积层和训练后的批标准化层进行融合后得到的。
[0120]
可选的,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到的。
[0121]
可选的,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到的,包括:依次对所述第一级联网络、所述第二级联网络和所述第三级联网络进行卷积核裁剪,其中,任一级联网络按照如下方式处理:按各卷积核的权重,对权重最小的m个卷积核进行裁剪;对裁剪后的各级联网络进行训练之后继续进行卷积核裁剪,直至满足设定要求;在满足所述设定要求后,对裁剪的卷积核对应的通道进行删除。
[0122]
可选的,在所述处理单元的每个处理层之前包括一个量化节点,所述量化节点用于将fp32类型的输入数据转换为int8/uint8类型的数据;在所述处理单元的每个处理层之后包括一个反量化节点,所述反量化节点用于将int8/uint8类型的输出数据还原成fp32类型的数据。
[0123]
可选的,若两个所述处理层之间存在连续的所述反量化节点和所述量化节点,则所述连续的所述反量化节点和所述量化节点被合并为一个再量化节点。
[0124]
可选的,所述至少一个处理单元中的至少一个参数经模型量化处理。基于相同的技术构思,本技术实施例提供了一种计算设备,如图7所示,包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本技术实施例中不限定处理器701与存储器702之间的具体连接介质,图7中处理器701和存储器702之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
[0125]
在本技术实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行上述基于神经网络的人脸检测方法。
[0126]
其中,处理器701是计算设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,从而进行资源设置。可选地,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0127]
处理器701可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0128]
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带
电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0129]
基于相同的技术构思,本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行程序,计算机可执行程序用于使计算机执行上述任一方式所列的基于神经网络的人脸检测方法。
[0130]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0131]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0132]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0133]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0134]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0135]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:1.一种基于神经网络的人脸检测方法,其特征在于,所述方法包括:将待识别图像通过第一级联网络的多个处理单元,预测得到所述待识别图像中的n个第一候选窗口;每个第一候选窗口为初步预测具有人脸图像的区域;将所述n个第一候选窗口通过第二级联网络的多个处理单元,预测得到所述待识别图像中的m个第二候选窗口;每个第二候选窗口为修正预测具有人脸图像的区域;将所述m个第二候选窗口通过第三级联网络的多个处理单元,确定所述待识别图像的具有人脸图像的目标窗口和所述目标窗口中的人脸特征点;其中,至少一个处理单元的卷积操作为深度可分离卷积操作。2.根据权利要求1所述的方法,其特征在于,所述至少一个处理单元包括融合层;所述融合层是对训练后的卷积层和训练后的批标准化层进行融合后得到的。3.根据权利要求2所述的方法,其特征在于,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到的。4.根据权利要求3所述的方法,其特征在于,所述训练后的卷积层中的卷积核是按各卷积核的权重进行裁剪后得到的,包括:依次对所述第一级联网络、所述第二级联网络和所述第三级联网络进行卷积核裁剪,其中,任一级联网络按照如下方式处理:按各卷积核的权重,对权重最小的m个卷积核进行裁剪;对裁剪后的各级联网络进行训练之后继续进行卷积核裁剪,直至满足设定要求;在满足所述设定要求后,对裁剪的卷积核对应的通道进行删除。5.根据权利要求1所述的方法,其特征在于,在所述处理单元的每个处理层之前包括一个量化节点,所述量化节点用于将fp32类型的输入数据转换为int8/uint8类型的数据;在所述处理单元的每个处理层之后包括一个反量化节点,所述反量化节点用于将int8/uint8类型的输出数据还原成fp32类型的数据。6.根据权利要求5所述的方法,其特征在于,若两个所述处理层之间存在连续的所述反量化节点和所述量化节点,则所述连续的所述反量化节点和所述量化节点被合并为一个再量化节点。7.根据权利要求1至6任意一项所述的方法,其特征在于,所述至少一个处理单元中的至少一个参数经模型量化处理。8.一种基于神经网络的人脸检测装置,其特征在于,包括:预测模块,用于将待识别图像通过第一级联网络的多个处理单元,预测得到所述待识别图像中的n个第一候选窗口;每个第一候选窗口为初步预测具有人脸图像的区域;所述预测模块,还用于将所述n个第一候选窗口通过第二级联网络的多个处理单元,预测得到所述待识别图像中的m个第二候选窗口;每个第二候选窗口为修正预测具有人脸图像的区域;所述预测模块,还用于将所述m个第二候选窗口通过第三级联网络的多个处理单元,确定所述待识别图像的具有人脸图像的目标窗口和所述目标窗口中的人脸特征点;其中,至少一个处理单元的卷积操作为深度可分离卷积操作。9.一种计算设备,其特征在于,包括:存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1至7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得如权利要求1至7中任一项所述的方法实现。
技术总结一种基于神经网络的人脸检测方法和装置。该方法包括:将待识别图像通过第一级联网络的多个处理单元,预测得到所述待识别图像中的N个第一候选窗口;每个第一候选窗口为初步预测具有人脸图像的区域;将所述N个第一候选窗口通过第二级联网络的多个处理单元,预测得到所述待识别图像中的M个第二候选窗口;每个第二候选窗口为修正预测具有人脸图像的区域;将所述M个第二候选窗口通过第三级联网络的多个处理单元,确定所述待识别图像的具有人脸图像的目标窗口和所述目标窗口中的人脸特征点;其中,至少一个处理单元的卷积操作为深度可分离卷积操作。卷积操作。卷积操作。
技术研发人员:刘辛 刘辉 张瑞 刘振亚 韩飞 于光远
受保护的技术使用者:天翼云科技有限公司
技术研发日:2022.07.13
技术公布日:2022/11/1