本发明涉及深度学习,具体涉及一种人脸识别模型压缩方法、人脸识别方法、计算设备及存储介质。
背景技术:
1、深度学习的应用加速了计算机视觉领域的发展,但是随着模型深度的加深,也带来了高额的存储空间、计算资源消耗等问题,很难在普通计算平台上实现。为了解决此类问题,对模型进行压缩可以最大限度的减少模型对计算空间和时间的消耗。
2、量化感知训练、蒸馏训练和非结构化剪枝是常用的几种模型压缩技术。如果先对模型进行量化感知训练,再进行非结构化剪枝,由于非结构化剪枝过程仅更新卷积层的参数,而不会同步更新量化模型中伪量化节点的参数,会导致量化模型的伪量化节点参数引入新的偏差,影响最终量化模型的精度。如果先对模型进行非结构化剪枝,再进行量化感知训练,经过非结构化剪枝后得到的稀疏浮点模型容易加重量化感知训练的不稳定性,影响最终量化模型的精度。
技术实现思路
1、为了提高模型压缩性能,本发明提出一种人脸识别模型压缩方法,以轻量化人脸识别网络mobilefacenet为原始模型,基于bottleneck层的通道重要性指标指导模型的剪枝,可以保证模型结构上下通道数的一致性。并且基于单位向量欧氏距离对剪枝后的模型进行知识蒸馏,可以保持模型的精度要求。
2、根据本发明的第一方面,提供一种人脸识别模型压缩方法,包括:获取训练好的初始人脸识别模型,该初始人脸识别模型为mobilefacenet网络;基于mobilefacenet网络中bottleneck层的通道重要性指标对初始人脸识别模型进行剪枝,得到剪枝后的模型;将初始人脸识别模型作为教师模型,将剪枝后的模型作为学生模型,基于知识蒸馏方法得到目标人脸识别模型。
3、可选地,在上述人脸识别模型压缩方法中,mobilefacenet网络包括多个bottleneck层,bottleneck层包括顺次连接的第一卷积层、第二卷积层和第三卷积层,第一卷积层为1*1升维卷积,第二卷积层为3*3可分离分组卷积,第三卷积层为1*1降维卷积。
4、可选地,在上述人脸识别模型压缩方法中,基于第一卷积层的激活层输出值与对应的梯度之间的乘积选取需要剪枝的通道;将需要剪枝的通道从第一卷积层、第二卷积层和第三卷积层中去除,得到剪枝后的bottleneck层;对每个bottleneck层基于第一卷积层的通道重要性进行剪枝,得到剪枝后的模型。
5、可选地,在上述人脸识别模型压缩方法中,可以对需要剪枝的通道的权重重要性归一化并排序,将不符合预设标准权重的通道剔除;对剔除通道后的模型进行微调;通过最小化剪枝前权重的代价函数与剪枝后权重的代价函数之间的差距,对模型进行迭代剪枝,直到剪枝后的模型精度达到预设阈值。
6、可选地,在上述人脸识别模型压缩方法中,获取训练数据集;将训练数据集分别输入教师模型和学生模型,获取剪枝前后模型的输出向量;计算剪枝前后模型输出向量之间的单位向量欧氏距离损失函数;通过最小化单位向量欧氏距离损失函数进行知识蒸馏,将教师模型中的知识提取到学生模型中,得到目标人脸识别模型。
7、可选地,在上述人脸识别模型压缩方法中,对教师模型输出向量和学生模型输出向量进行归一化处理,得到第一向量和第二向量;计算第一向量和第二向量之间的欧氏距离损失,欧氏距离损失通过下述公式计算:
8、
9、其中,n为训练数据集中的样本数量,ft为第一向量,fs为第二向量,为第i个样本在教师模型中的输出向量,为第i个样本在学生模型中的输出向量。
10、根据本发明的第二方面,提供了一种人脸识别方法,包括:获取待识别人脸图像;将待识别人脸图像输入目标人脸识别模型中进行身份验证,输出得到人脸识别结果,目标人脸识别模型基于如上的人脸识别模型压缩方法获得。
11、根据本发明的第三方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行上述人脸识别模型压缩方法和人脸识别方法的指令。
12、根据本发明的第四方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行上述的人脸识别模型压缩方法和人脸识别方法。
13、根据本发明提供的人脸识别模型压缩方法,通过轻量化人脸识别网络mobilefacenet中bottleneck层的通道的重要性指导模型结构化剪枝,可以保证模型前后通道数一致性,实现模型的快速有效剪枝;基于单位向量欧氏距离对剪枝后的模型进行知识蒸馏,可以保持模型的精度要求。因此本方案能够在保证人脸识别精度的同时提升人脸识别的速度。
14、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种人脸识别模型压缩方法,其特征在于,包括:
2.根据权利要求1所述的人脸识别模型压缩方法,其特征在于,所述mobilefacenet网络包括多个bottleneck层,所述bottleneck层包括顺次连接的第一卷积层、第二卷积层和第三卷积层,所述第一卷积层为1*1升维卷积,所述第二卷积层为3*3可分离分组卷积,所述第三卷积层为1*1降维卷积。
3.根据权利要求2所述的人脸识别模型压缩方法,其特征在于,所述基于所述mobilefacenet网络中bottleneck层的通道重要性指标对所述初始人脸识别模型进行剪枝,得到剪枝后的模型的步骤包括:
4.根据权利要求4所述的人脸识别模型压缩方法,其特征在于,所述对每个bottleneck层基于第一卷积层的通道重要性进行剪枝,得到剪枝后的模型的步骤包括:
5.根据权利要求1所述的人脸识别模型压缩方法,其特征在于,所述将所述初始人脸识别模型作为教师模型,将所述剪枝后的模型作为学生模型,基于知识蒸馏方法得到目标人脸识别模型的步骤包括:
6.根据权利要求5所述的人脸识别模型压缩方法,其特征在于,所述计算剪枝前后模型输出向量之间的单位向量欧氏距离损失函数的步骤包括:
7.一种人脸识别方法,其特征在于,包括:
8.一种计算设备,包括:
9.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-6中任一项所述的人脸识别模型压缩方法和如权利要求7所述的人脸识别方法。