CN113688762B - 基于深度学习的人脸识别方法、装置、设备及介质 - Google Patents

基于深度学习的人脸识别方法、装置、设备及介质 Download PDF

Info

Publication number
CN113688762B
CN113688762B CN202111011071.8A CN202111011071A CN113688762B CN 113688762 B CN113688762 B CN 113688762B CN 202111011071 A CN202111011071 A CN 202111011071A CN 113688762 B CN113688762 B CN 113688762B
Authority
CN
China
Prior art keywords
loss function
layer
output data
face recognition
branch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111011071.8A
Other languages
English (en)
Other versions
CN113688762A (zh
Inventor
喻晨曦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN202111011071.8A priority Critical patent/CN113688762B/zh
Publication of CN113688762A publication Critical patent/CN113688762A/zh
Application granted granted Critical
Publication of CN113688762B publication Critical patent/CN113688762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及人工智能领域,提供一种基于深度学习的人脸识别方法、装置、设备及介质,能够基于深度可分离卷积构建中间层及主干网络结构,基于BatchNorm构建对齐层及分支,基于总损失函数对主干网络结构及分支构成的初始网络进行自知识蒸馏训练,有效缩短了模型在训练过程中的收敛时间,提升了模型网络的参数利用与效能收敛,以主干网络结构开始训练,直至将知识蒸馏到分支中,以较低的成本搜索到相较于原有的主干网络结构损失更小的分支,删除目标分支以外的其他分支及与其他分支连接的中间层,得到人脸识别模型进行人脸识别,进而利用轻量化模型实现更准确的人脸识别。此外,本发明还涉及区块链技术,人脸识别模型可存储于区块链节点中。

Description

基于深度学习的人脸识别方法、装置、设备及介质
技术领域
本发明涉及人工智能技术领域,尤其涉及一种基于深度学习的人脸识别方法、装置、设备及介质。
背景技术
随着人工智能的发展,很多领域都涉及到人脸识别技术的应用,例如,在服务体系升级的场景里,证件冒办反欺诈、人脸活体检测、基于客户历史数据识别高风险客户/用户、大数据反洗黑钱等任务都需要进行人脸识别。
但是,现有技术中常采用的mobilenetv1、mobilenetv2、mobilenetv3及逆残差等结构在精度、速度上都还有待提高,例如:对于mobilenetv1结构,由于在激活函数层特征容易被破坏,导致神经元在训练过程中消失,进而影响模型的训练效果,导致模型预测的精度不高。
发明内容
本发明实施例提供了一种基于深度学习的人脸识别方法、装置、设备及介质,能够利用轻量化模型实现更准确的人脸识别。
第一方面,本发明实施例提供了一种基于深度学习的人脸识别方法,其包括:
基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构;
基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支;
连接所述主干网络结构及所述预设数量的分支,得到初始网络;
构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数;
获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练;
在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络;
在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支;
从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型;
获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果。
根据本发明优选实施例,每个中间层包括第一3*3深度可分离卷积层、第二3*3深度可分离卷积层、1*1压缩卷积层及1*1扩张卷积层,所述方法还包括:
在每个中间层中,将原始数据输入至所述第一3*3深度可分离卷积层,并利用Swish激活函数对所述第一3*3深度可分离卷积层的输出数据进行处理,得到第一输出数据;
将所述第一输出数据输入至所述1*1压缩卷积层,并利用Linear映射函数对所述1*1压缩卷积层的输出数据进行处理,得到第二输出数据;
将所述第二输出数据输入至所述1*1扩张卷积层,并利用所述Swish激活函数对所述1*1扩张卷积层的输出数据进行处理,得到第三输出数据;
将所述第三输出数据输入至所述第二3*3深度可分离卷积层;
计算所述第二3*3深度可分离卷积层的输出数据与所述原始数据的和作为对应的所述中间层的输出数据。
根据本发明优选实施例,所述基于所述预设数量的中间层构建主干网络结构包括:
将所述预设数量的中间层进行首尾相接,得到中间层结构;
在所述中间层结构的输出数据上连接全连接层,得到所述主干网络结构。
根据本发明优选实施例,每个中间层的输出数据连接一个对齐层,每个对齐层的输出数据连接一个全连接层,一个对齐层与一个全连接层组成一个分支;每个对齐层包括第一1*1卷积层、第一BatchNorm层、第一3*3卷积层、第二BatchNorm层、第二1*1卷积层及第三BatchNorm层;在基于BatchNorm构建所述预设数量的对齐层后,所述方法还包括:
在每个对齐层中,将与所述对齐层连接的中间层的输出数据输入至所述第一1*1卷积层,将所述第一1*1卷积层的输出数据输入至所述第一BatchNorm层,并利用线性整流函数对所述第一BatchNorm层的输出数据进行激活处理,得到第四输出数据;
将所述第四输出数据输入至所述第一3*3卷积层,将所述第一3*3卷积层的输出数据输入至所述第二BatchNorm层,并利用线性整流函数对所述第二BatchNorm层的输出数据进行激活处理,得到第五输出数据;
将所述第五输出数据输入至所述第二1*1卷积层,将所述第二1*1卷积层的输出数据输入至所述第三BatchNorm层,得到第六输出数据;
计算所述第四输出数据与所述第六输出数据的和,得到所述对齐层的输出数据。
根据本发明优选实施例,所述构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数包括:
获取所述主干网络结构的输出数据作为目标特征,及获取每个对齐层输出的特征;
计算每个对齐层输出的特征与所述目标特征的差值的平方作为每个对齐层对应的目标数值;
计算每个对齐层对应的目标数值的和作为所述第一损失函数;
采用下述公式计算每个分支的第二损失函数:
其中,Lt表示分支t对应的第二损失函数;按照每个分支与所述主干网络结构的输出数据间的距离由近到远的顺序,t的取值依次为从1开始的整数;p表示用于训练的样本中包括的不同的用户数;k表示用于训练的样本中每个用户对应的样本数;表示在正样本P中,以所述正样本P中的样本/>为基准,距离所述样本/>最远的样本/>与所述样本/>间的距离,a、p为正整数;/>表示在负样本N中,以所述正样本P中的样本/>为基准,距离所述样本/>最近的样本/>与所述样本/>间的距离,n为正整数;δ、l为预先配置的、取值在(0,1)间的常数;其中,所述正样本P中的每个样本属于相同的用户,所述负样本N中的每个样本属于不同的用户;
采用下述公式计算所述第三损失函数:
其中,L表示所述第三损失函数。
根据本发明优选实施例,所述根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数包括:
计算每个第二损失函数的和作为第一数值;
计算所述第一数值与所述第三损失函数的和作为第二数值;
获取第一权重及第二权重,其中,所述第一权重与所述第二权重的和为1;
计算所述第一权重与所述第一损失函数的乘积作为第三数值;
计算所述第二权重与所述第二数值的乘积作为第四数值;
计算所述第三数值与所述第四数值的和作为所述初始网络的总损失函数。
根据本发明优选实施例,在获取所述人脸识别模型的输出数据作为人脸识别结果后,所述方法还包括:
获取上传所述待识别图像的目标用户,及获取所述目标用户的联系方式;
对所述人脸识别结果进行加密处理,得到加密文件;
根据所述目标用户的联系方式将所述加密文件发送至所述目标用户。
第二方面,本发明实施例提供了一种基于深度学习的人脸识别装置,其包括:
构建单元,用于基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构;
所述构建单元,还用于基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支;
连接单元,用于连接所述主干网络结构及所述预设数量的分支,得到初始网络;
所述构建单元,还用于构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数;
训练单元,用于获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练;
所述训练单元,还用于在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络;
确定单元,用于在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支;
删除单元,用于从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型;
识别单元,用于获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于深度学习的人脸识别方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于深度学习的人脸识别方法。
本发明实施例提供了一种基于深度学习的人脸识别方法、装置、设备及介质,能够基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构,基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支,连接所述主干网络结构及所述预设数量的分支,得到初始网络,构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数,获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练,由于构建的损失中兼顾了绝对距离与相对距离的采样挖掘,对每个批数据进行计算,有效缩短了模型在训练过程中的收敛时间,提升了模型网络的参数利用与效能收敛,在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络,以所述主干网络结构开始训练,整个模型的损失先增大后减小,直至将知识蒸馏到分支中,模型的损失开始持续递减,直至收敛,即可获取到所述当前网络,在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支,以较低的成本搜索到相较于原有的主干网络结构损失更小的分支,从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型,获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果,由于深度可分离卷积是一种轻量型单元,且本身具有较高的精确度,因此,由所述深度可分离卷积组成的所述人脸识别模型是一种轻量化模型,能够实现更准确的人脸识别。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于深度学习的人脸识别方法的流程示意图;
图2为本发明实施例提供的基于深度学习的人脸识别装置的示意性框图;
图3为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,为本发明实施例提供的基于深度学习的人脸识别方法的流程示意图。
S10,基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构。
在本实施例中,所述预设数量可以进行自定义配置,如3个。
在本发明的至少一个实施例中,每个中间层包括第一3*3深度可分离卷积层、第二3*3深度可分离卷积层、1*1压缩卷积层及1*1扩张卷积层,所述方法还包括:
在每个中间层中,将原始数据输入至所述第一3*3深度可分离卷积层,并利用Swish激活函数对所述第一3*3深度可分离卷积层的输出数据进行处理,得到第一输出数据;
将所述第一输出数据输入至所述1*1压缩卷积层,并利用Linear映射函数对所述1*1压缩卷积层的输出数据进行处理,得到第二输出数据;
将所述第二输出数据输入至所述1*1扩张卷积层,并利用所述Swish激活函数对所述1*1扩张卷积层的输出数据进行处理,得到第三输出数据;
将所述第三输出数据输入至所述第二3*3深度可分离卷积层;
计算所述第二3*3深度可分离卷积层的输出数据与所述原始数据的和作为对应的所述中间层的输出数据。
具体地,每个中间层的数据的维度及运算算子可以参见下表:
其中,D表示特征矩阵在对应的维度上的数值的数量,m表示通道的数量,t表示通道压缩比率,s表示步长(滑动步数),N表示输出的通道的数量。
在上述实施方式中,构建的每个中间层能够回传更多的信息,相较于传统模型实现了轻量化部署,同时,在配合硬件时兼容性更强,精度及速度也都更高,能够编码更多的空间信息。
在本发明的至少一个实施例中,所述基于所述预设数量的中间层构建主干网络结构包括:
将所述预设数量的中间层进行首尾相接,得到中间层结构;
在所述中间层结构的输出数据上连接全连接层,得到所述主干网络结构。
其中,在将所述预设数量的中间层进行首尾相接时,上一个中间层的输出数据将作为下一个中间层的输入。
在上述实施方式中,构建的所述主干网络结构是人脸识别模型的初步框架。
S11,基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支。
在本实施例中,所述对齐层的数量与所述中间层的数量一致,每个中间层对应一个对齐层。
在本发明的至少一个实施例中,每个中间层的输出数据连接一个对齐层,每个对齐层的输出数据连接一个全连接层,一个对齐层与一个全连接层组成一个分支;每个对齐层包括第一1*1卷积层、第一BatchNorm层、第一3*3卷积层、第二BatchNorm层、第二1*1卷积层及第三BatchNorm层;在基于BatchNorm构建所述预设数量的对齐层后,所述方法还包括:
在每个对齐层中,将与所述对齐层连接的中间层的输出数据输入至所述第一1*1卷积层,将所述第一1*1卷积层的输出数据输入至所述第一BatchNorm层,并利用线性整流函数(Rectified Linear Unit,ReLU)对所述第一BatchNorm层的输出数据进行激活处理,得到第四输出数据;
将所述第四输出数据输入至所述第一3*3卷积层,将所述第一3*3卷积层的输出数据输入至所述第二BatchNorm层,并利用线性整流函数对所述第二BatchNorm层的输出数据进行激活处理,得到第五输出数据;
将所述第五输出数据输入至所述第二1*1卷积层,将所述第二1*1卷积层的输出数据输入至所述第三BatchNorm层,得到第六输出数据;
计算所述第四输出数据与所述第六输出数据的和,得到所述对齐层的输出数据。
在上述实施方式中,基于BatchNorm加速了神经网络训练,同时能够使各个分支输出的特征的尺度与所述主干网络结构输出的特征的尺度相同,进而使各个分支的输出数据与所述主干网络结构的输出数据之间具有可比性。
S12,连接所述主干网络结构及所述预设数量的分支,得到初始网络。
在本实施例中,每个分支包括一个对齐层及一个全连接层,其中,所述对齐层的输出数据作为所述全连接层的输入,所述全连接层的输出数据作为对应的分支的输出数据。
并且,对于每个分支,将所述分支中对齐层的输入确定为对应的中间层的输出数据,即将对应的中间层的输出数据连接于所述对齐层,并作为所述对齐层的输入。
S13,构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数。
在本发明的至少一个实施例中,所述构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数包括:
获取所述主干网络结构的输出数据作为目标特征,及获取每个对齐层输出的特征;
计算每个对齐层输出的特征与所述目标特征的差值的平方作为每个对齐层对应的目标数值;
计算每个对齐层对应的目标数值的和作为所述第一损失函数;
采用下述公式计算每个分支的第二损失函数:
其中,Lt表示分支t对应的第二损失函数;按照每个分支与所述主干网络结构的输出数据间的距离由近到远的顺序,t的取值依次为从1开始的整数;p表示用于训练的样本中包括的不同的用户数;k表示用于训练的样本中每个用户对应的样本数;表示在正样本P中,以所述正样本P中的样本/>为基准,距离所述样本/>最远的样本/>与所述样本/>间的距离,a、p为正整数;/>表示在负样本N中,以所述正样本P中的样本/>为基准,距离所述样本/>最近的样本/>与所述样本/>间的距离,n为正整数;δ、l为预先配置的、取值在(0,1)间的常数;其中,所述正样本P中的每个样本属于相同的用户,所述负样本N中的每个样本属于不同的用户;
采用下述公式计算所述第三损失函数:
其中,L表示所述第三损失函数。
例如:在计算所述第一损失函数时,当在所述主干网络结构中有三个分支,分别为分支1、分支2、分支3时,则所述第一损失函数可以为:
L0=‖Fl-F32+‖Fl-F22+‖Fl-F12
其中,L0表示所述第一损失函数,Fl表示所述目标特征,F1表示所述分支1输出的特征,F2表示述分支2输出的特征,F3表示所述分支3输出的特征。
进一步地,在计算每个分支的第二损失函数时,对于与所述主干网络结构的输出数据间的距离最近的分支,t的取值为1,对于与所述主干网络结构的输出数据间的距离第二近的分支,t的取值为2,以此类推。可以理解的是,距离所述主干网络结构的输出数据越近,lt的取值越大,通过δ*lt的配置,能够使正负样本间始终有距离差,使边际始终有距离,避免影响模型的泛化能力、拟合能力,使类似的样本能够得到有效的区分,结合监督学习有效提升了模型对于数据的鲁棒性及泛化效果。
同时,在训练过程中,使同类样本间的距离越来越小,使不同类样本间的距离越来越大,进而能够更好的区分相似样本。
进一步地,所述根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数包括:
计算每个第二损失函数的和作为第一数值;
计算所述第一数值与所述第三损失函数的和作为第二数值;
获取第一权重及第二权重,其中,所述第一权重与所述第二权重的和为1;
计算所述第一权重与所述第一损失函数的乘积作为第三数值;
计算所述第二权重与所述第二数值的乘积作为第四数值;
计算所述第三数值与所述第四数值的和作为所述初始网络的总损失函数。
承接上面的例子,所述初始网络的总损失函数可以表示为:
Ltotal=α*L0+β(L+L1+L2+L3)
其中,Ltotal表示所述初始网络的总损失函数,α表示所述第一权重,β表示所述第二权重,α+β=1,L1表示所述分支1的第二损失函数,L2表示所述分支2的第二损失函数,L3表示所述分支3的第二损失函数。
S14,获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练。
在本实施例中,所述总损失函数中包括每个分支的蒸馏损失及所述主干网络结构的损失,构建的损失中兼顾了绝对距离与相对距离的采样挖掘,对每个批数据进行计算,有效缩短了模型在训练过程中的收敛时间,提升了模型网络的参数利用与效能收敛。
S15,在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络。
具体地,在训练过程中,以所述主干网络结构开始训练,整个模型的损失先增大后减小,直至将知识蒸馏到分支中,模型的损失开始持续递减,直至收敛,即可获取到所述当前网络。
S16,在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支。
在本实施例中,所述预设阈值可以进行自定义配置,本发明不限制。
需要说明的是,所述目标分支需要同时满足以下条件:
(1)在所有分支中,所述目标分支的第二损失函数与所述第一损失函数的取值的差的绝对值最小;
(2)所述目标分支的第二损失函数与所述第一损失函数的取值的差的绝对值小于或者等于所述预设阈值。
通过上述实施方式,能够通过训练,以较低的成本搜索到相较于原有的主干网络结构损失更小的分支。
S17,从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型。
例如:当在所述主干网络结构中包括中间层1、中间层2、中间层3及全连接层时,在训练过程中,接入了与所述中间层相连的所述分支1,与所述中间层2相连的所述分支2,与所述中间层3相连的所述分支3。通过训练可知,在整个网络达到收敛时,所述分支2为所述目标分支,则删除网络中的所述分支1、所述分支3、所述中间层3及所述全连接层,并将剩余的网络构成的模型确定为所述人脸识别模型。
S18,获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果。
在本实施例中,所述待识别图像可以由相关工作人员上传,如安全防护人员等。
在本发明的至少一个实施例中,在获取所述人脸识别模型的输出数据作为人脸识别结果后,所述方法还包括:
获取上传所述待识别图像的目标用户,及获取所述目标用户的联系方式;
对所述人脸识别结果进行加密处理,得到加密文件;
根据所述目标用户的联系方式将所述加密文件发送至所述目标用户。
其中,所述目标用户的联系方式可以包括,但不限于:手机号码、邮箱地址等。
通过上述实施方式,使相关工作人员能够及时获取到人脸识别结果,以便执行后续任务。
需要说明的是,为了进一步提高数据的安全性,避免数据被恶意篡改,所述人脸识别模型可存储于区块链节点中。
由以上技术方案可以看出,本发明基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构,基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支,连接所述主干网络结构及所述预设数量的分支,得到初始网络,构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数,获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练,有效缩短了模型在训练过程中的收敛时间,提升了模型网络的参数利用与效能收敛,在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络,以所述主干网络结构开始训练,整个模型的损失先增大后减小,直至将知识蒸馏到分支中,模型的损失开始持续递减,直至收敛,即可获取到所述当前网络,在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支,以较低的成本搜索到相较于原有的主干网络结构损失更小的分支,从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型,获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果,进而利用轻量化模型实现更准确的人脸识别。
本发明实施例还提供一种基于深度学习的人脸识别装置,该基于深度学习的人脸识别装置用于执行前述基于深度学习的人脸识别方法的任一实施例。具体地,请参阅图2,图2是本发明实施例提供的基于深度学习的人脸识别装置的示意性框图。
如图2所示,基于深度学习的人脸识别装置100包括:构建单元101、连接单元102、训练单元103、确定单元104、删除单元105、识别单元106。
构建单元101基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构。
在本实施例中,所述预设数量可以进行自定义配置,如3个。
在本发明的至少一个实施例中,每个中间层包括第一3*3深度可分离卷积层、第二3*3深度可分离卷积层、1*1压缩卷积层及1*1扩张卷积层,在每个中间层中,将原始数据输入至所述第一3*3深度可分离卷积层,并利用Swish激活函数对所述第一3*3深度可分离卷积层的输出数据进行处理,得到第一输出数据;
将所述第一输出数据输入至所述1*1压缩卷积层,并利用Linear映射函数对所述1*1压缩卷积层的输出数据进行处理,得到第二输出数据;
将所述第二输出数据输入至所述1*1扩张卷积层,并利用所述Swish激活函数对所述1*1扩张卷积层的输出数据进行处理,得到第三输出数据;
将所述第三输出数据输入至所述第二3*3深度可分离卷积层;
计算所述第二3*3深度可分离卷积层的输出数据与所述原始数据的和作为对应的所述中间层的输出数据。
具体地,每个中间层的数据的维度及运算算子可以参见下表:
其中,D表示特征矩阵在对应的维度上的数值的数量,m表示通道的数量,t表示通道压缩比率,s表示步长(滑动步数),N表示输出的通道的数量。
在上述实施方式中,构建的每个中间层能够回传更多的信息,相较于传统模型实现了轻量化部署,同时,在配合硬件时兼容性更强,精度及速度也都更高,能够编码更多的空间信息。
在本发明的至少一个实施例中,所述构建单元101基于所述预设数量的中间层构建主干网络结构包括:
将所述预设数量的中间层进行首尾相接,得到中间层结构;
在所述中间层结构的输出数据上连接全连接层,得到所述主干网络结构。
其中,在将所述预设数量的中间层进行首尾相接时,上一个中间层的输出数据将作为下一个中间层的输入。
在上述实施方式中,构建的所述主干网络结构是人脸识别模型的初步框架。
所述构建单元101基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支。
在本实施例中,所述对齐层的数量与所述中间层的数量一致,每个中间层对应一个对齐层。
在本发明的至少一个实施例中,每个中间层的输出数据连接一个对齐层,每个对齐层的输出数据连接一个全连接层,一个对齐层与一个全连接层组成一个分支;每个对齐层包括第一1*1卷积层、第一BatchNorm层、第一3*3卷积层、第二BatchNorm层、第二1*1卷积层及第三BatchNorm层;在基于BatchNorm构建所述预设数量的对齐层后,在每个对齐层中,将与所述对齐层连接的中间层的输出数据输入至所述第一1*1卷积层,将所述第一1*1卷积层的输出数据输入至所述第一BatchNorm层,并利用线性整流函数(Rectified LinearUnit,ReLU)对所述第一BatchNorm层的输出数据进行激活处理,得到第四输出数据;
将所述第四输出数据输入至所述第一3*3卷积层,将所述第一3*3卷积层的输出数据输入至所述第二BatchNorm层,并利用线性整流函数对所述第二BatchNorm层的输出数据进行激活处理,得到第五输出数据;
将所述第五输出数据输入至所述第二1*1卷积层,将所述第二1*1卷积层的输出数据输入至所述第三BatchNorm层,得到第六输出数据;
计算所述第四输出数据与所述第六输出数据的和,得到所述对齐层的输出数据。
在上述实施方式中,基于BatchNorm加速了神经网络训练,同时能够使各个分支输出的特征的尺度与所述主干网络结构输出的特征的尺度相同,进而使各个分支的输出数据与所述主干网络结构的输出数据之间具有可比性。
连接单元102连接所述主干网络结构及所述预设数量的分支,得到初始网络。
在本实施例中,每个分支包括一个对齐层及一个全连接层,其中,所述对齐层的输出数据作为所述全连接层的输入,所述全连接层的输出数据作为对应的分支的输出数据。
并且,对于每个分支,将所述分支中对齐层的输入确定为对应的中间层的输出数据,即将对应的中间层的输出数据连接于所述对齐层,并作为所述对齐层的输入。
所述构建单元101构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数。
在本发明的至少一个实施例中,所述构建单元101构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数包括:
获取所述主干网络结构的输出数据作为目标特征,及获取每个对齐层输出的特征;
计算每个对齐层输出的特征与所述目标特征的差值的平方作为每个对齐层对应的目标数值;
计算每个对齐层对应的目标数值的和作为所述第一损失函数;
采用下述公式计算每个分支的第二损失函数:
其中,Lt表示分支t对应的第二损失函数;按照每个分支与所述主干网络结构的输出数据间的距离由近到远的顺序,t的取值依次为从1开始的整数;p表示用于训练的样本中包括的不同的用户数;k表示用于训练的样本中每个用户对应的样本数;表示在正样本P中,以所述正样本P中的样本/>为基准,距离所述样本/>最远的样本/>与所述样本/>间的距离,a、p为正整数;/>表示在负样本N中,以所述正样本P中的样本/>为基准,距离所述样本/>最近的样本/>与所述样本/>间的距离,n为正整数;δ、l为预先配置的、取值在(0,1)间的常数;其中,所述正样本P中的每个样本属于相同的用户,所述负样本N中的每个样本属于不同的用户;
采用下述公式计算所述第三损失函数:
其中,L表示所述第三损失函数。
例如:在计算所述第一损失函数时,当在所述主干网络结构中有三个分支,分别为分支1、分支2、分支3时,则所述第一损失函数可以为:
L0=‖Fl-F32+‖Fl-F22+‖Fl-F12
其中,L0表示所述第一损失函数,Fl表示所述目标特征,F1表示所述分支1输出的特征,F2表示述分支2输出的特征,F3表示所述分支3输出的特征。
进一步地,在计算每个分支的第二损失函数时,对于与所述主干网络结构的输出数据间的距离最近的分支,t的取值为1,对于与所述主干网络结构的输出数据间的距离第二近的分支,t的取值为2,以此类推。可以理解的是,距离所述主干网络结构的输出数据越近,lt的取值越大,通过δ*lt的配置,能够使正负样本间始终有距离差,使边际始终有距离,避免影响模型的泛化能力、拟合能力,使类似的样本能够得到有效的区分,结合监督学习有效提升了模型对于数据的鲁棒性及泛化效果。
同时,在训练过程中,使同类样本间的距离越来越小,使不同类样本间的距离越来越大,进而能够更好的区分相似样本。
进一步地,所述构建单元101根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数包括:
计算每个第二损失函数的和作为第一数值;
计算所述第一数值与所述第三损失函数的和作为第二数值;
获取第一权重及第二权重,其中,所述第一权重与所述第二权重的和为1;
计算所述第一权重与所述第一损失函数的乘积作为第三数值;
计算所述第二权重与所述第二数值的乘积作为第四数值;
计算所述第三数值与所述第四数值的和作为所述初始网络的总损失函数。
承接上面的例子,所述初始网络的总损失函数可以表示为:
Ltotal=α*L0+β(L+L1+L2+L3)
其中,Ltotal表示所述初始网络的总损失函数,α表示所述第一权重,β表示所述第二权重,α+β=1,L1表示所述分支1的第二损失函数,L2表示所述分支2的第二损失函数,L3表示所述分支3的第二损失函数。
训练单元103获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练。
在本实施例中,所述总损失函数中包括每个分支的蒸馏损失及所述主干网络结构的损失,构建的损失中兼顾了绝对距离与相对距离的采样挖掘,对每个批数据进行计算,有效缩短了模型在训练过程中的收敛时间,提升了模型网络的参数利用与效能收敛。
在训练过程中,当所述总损失函数达到收敛时,所述训练单元103停止训练,并获取当前网络。
具体地,在训练过程中,以所述主干网络结构开始训练,整个模型的损失先增大后减小,直至将知识蒸馏到分支中,模型的损失开始持续递减,直至收敛,即可获取到所述当前网络。
在所述当前网络中,确定单元104从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支。
在本实施例中,所述预设阈值可以进行自定义配置,本发明不限制。
需要说明的是,所述目标分支需要同时满足以下条件:
(1)在所有分支中,所述目标分支的第二损失函数与所述第一损失函数的取值的差的绝对值最小;
(2)所述目标分支的第二损失函数与所述第一损失函数的取值的差的绝对值小于或者等于所述预设阈值。
通过上述实施方式,能够通过训练,以较低的成本搜索到相较于原有的主干网络结构损失更小的分支。
删除单元105从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型。
例如:当在所述主干网络结构中包括中间层1、中间层2、中间层3及全连接层时,在训练过程中,接入了与所述中间层相连的所述分支1,与所述中间层2相连的所述分支2,与所述中间层3相连的所述分支3。通过训练可知,在整个网络达到收敛时,所述分支2为所述目标分支,则删除网络中的所述分支1、所述分支3、所述中间层3及所述全连接层,并将剩余的网络构成的模型确定为所述人脸识别模型。
识别单元106获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果。
在本实施例中,所述待识别图像可以由相关工作人员上传,如安全防护人员等。
在本发明的至少一个实施例中,在获取所述人脸识别模型的输出数据作为人脸识别结果后,获取上传所述待识别图像的目标用户,及获取所述目标用户的联系方式;
对所述人脸识别结果进行加密处理,得到加密文件;
根据所述目标用户的联系方式将所述加密文件发送至所述目标用户。
其中,所述目标用户的联系方式可以包括,但不限于:手机号码、邮箱地址等。
通过上述实施方式,使相关工作人员能够及时获取到人脸识别结果,以便执行后续任务。
需要说明的是,为了进一步提高数据的安全性,避免数据被恶意篡改,所述人脸识别模型可存储于区块链节点中。
由以上技术方案可以看出,本发明基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构,基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支,连接所述主干网络结构及所述预设数量的分支,得到初始网络,构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数,获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练,有效缩短了模型在训练过程中的收敛时间,提升了模型网络的参数利用与效能收敛,在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络,以所述主干网络结构开始训练,整个模型的损失先增大后减小,直至将知识蒸馏到分支中,模型的损失开始持续递减,直至收敛,即可获取到所述当前网络,在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支,以较低的成本搜索到相较于原有的主干网络结构损失更小的分支,从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型,获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果,进而利用轻量化模型实现更准确的人脸识别。
上述基于深度学习的人脸识别装置可以实现为计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
请参阅图3,图3是本发明实施例提供的计算机设备的示意性框图。该计算机设备500是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
参阅图3,该计算机设备500包括通过***总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括存储介质503和内存储器504。
该存储介质503可存储操作***5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行基于深度学习的人脸识别方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行基于深度学习的人脸识别方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图3中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现本发明实施例公开的基于深度学习的人脸识别方法。
本领域技术人员可以理解,图3中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图3所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的基于深度学习的人脸识别方法。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
本发明可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于深度学习的人脸识别方法,其特征在于,包括:
基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构;
基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支;
连接所述主干网络结构及所述预设数量的分支,得到初始网络;
构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数;
获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练;
在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络;
在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支;
从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型;
获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果。
2.根据权利要求1所述的基于深度学习的人脸识别方法,其特征在于,每个中间层包括第一3*3深度可分离卷积层、第二3*3深度可分离卷积层、1*1压缩卷积层及1*1扩张卷积层,所述方法还包括:
在每个中间层中,将原始数据输入至所述第一3*3深度可分离卷积层,并利用Swish激活函数对所述第一3*3深度可分离卷积层的输出数据进行处理,得到第一输出数据;
将所述第一输出数据输入至所述1*1压缩卷积层,并利用Linear映射函数对所述1*1压缩卷积层的输出数据进行处理,得到第二输出数据;
将所述第二输出数据输入至所述1*1扩张卷积层,并利用所述Swish激活函数对所述1*1扩张卷积层的输出数据进行处理,得到第三输出数据;
将所述第三输出数据输入至所述第二3*3深度可分离卷积层;
计算所述第二3*3深度可分离卷积层的输出数据与所述原始数据的和作为对应的所述中间层的输出数据。
3.根据权利要求1所述的基于深度学习的人脸识别方法,其特征在于,所述基于所述预设数量的中间层构建主干网络结构包括:
将所述预设数量的中间层进行首尾相接,得到中间层结构;
在所述中间层结构的输出数据上连接全连接层,得到所述主干网络结构。
4.根据权利要求1所述的基于深度学习的人脸识别方法,其特征在于,每个中间层的输出数据连接一个对齐层,每个对齐层的输出数据连接一个全连接层,一个对齐层与一个全连接层组成一个分支;每个对齐层包括第一1*1卷积层、第一BatchNorm层、第一3*3卷积层、第二BatchNorm层、第二1*1卷积层及第三BatchNorm层;在基于BatchNorm构建所述预设数量的对齐层后,所述方法还包括:
在每个对齐层中,将与所述对齐层连接的中间层的输出数据输入至所述第一1*1卷积层,将所述第一1*1卷积层的输出数据输入至所述第一BatchNorm层,并利用线性整流函数对所述第一BatchNorm层的输出数据进行激活处理,得到第四输出数据;
将所述第四输出数据输入至所述第一3*3卷积层,将所述第一3*3卷积层的输出数据输入至所述第二BatchNorm层,并利用线性整流函数对所述第二BatchNorm层的输出数据进行激活处理,得到第五输出数据;
将所述第五输出数据输入至所述第二1*1卷积层,将所述第二1*1卷积层的输出数据输入至所述第三BatchNorm层,得到第六输出数据;
计算所述第四输出数据与所述第六输出数据的和,得到所述对齐层的输出数据。
5.根据权利要求1所述的基于深度学习的人脸识别方法,其特征在于,所述构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数包括:
获取所述主干网络结构的输出数据作为目标特征,及获取每个对齐层输出的特征;
计算每个对齐层输出的特征与所述目标特征的差值的平方作为每个对齐层对应的目标数值;
计算每个对齐层对应的目标数值的和作为所述第一损失函数;
采用下述公式计算每个分支的第二损失函数:
其中,Lt表示分支t对应的第二损失函数;按照每个分支与所述主干网络结构的输出数据间的距离由近到远的顺序,t的取值依次为从1开始的整数;p表示用于训练的样本中包括的不同的用户数;k表示用于训练的样本中每个用户对应的样本数;表示在正样本P中,以所述正样本P中的样本/>为基准,距离所述样本/>最远的样本/>与所述样本/>间的距离,a、p为正整数;/>表示在负样本N中,以所述正样本P中的样本/>为基准,距离所述样本/>最近的样本/>与所述样本/>间的距离,n为正整数;δ、l为预先配置的、取值在(0,1)间的常数;其中,所述正样本P中的每个样本属于相同的用户,所述负样本N中的每个样本属于不同的用户;
采用下述公式计算所述第三损失函数:
其中,L表示所述第三损失函数。
6.根据权利要求1所述的基于深度学习的人脸识别方法,其特征在于,所述根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数包括:
计算每个第二损失函数的和作为第一数值;
计算所述第一数值与所述第三损失函数的和作为第二数值;
获取第一权重及第二权重,其中,所述第一权重与所述第二权重的和为1;
计算所述第一权重与所述第一损失函数的乘积作为第三数值;
计算所述第二权重与所述第二数值的乘积作为第四数值;
计算所述第三数值与所述第四数值的和作为所述初始网络的总损失函数。
7.根据权利要求1所述的基于深度学习的人脸识别方法,其特征在于,在获取所述人脸识别模型的输出数据作为人脸识别结果后,所述方法还包括:
获取上传所述待识别图像的目标用户,及获取所述目标用户的联系方式;
对所述人脸识别结果进行加密处理,得到加密文件;
根据所述目标用户的联系方式将所述加密文件发送至所述目标用户。
8.一种基于深度学习的人脸识别装置,其特征在于,包括:
构建单元,用于基于深度可分离卷积构建预设数量的中间层,并基于所述预设数量的中间层构建主干网络结构;
所述构建单元,还用于基于BatchNorm构建所述预设数量的对齐层,并基于所述预设数量的对齐层构建所述预设数量的分支;
连接单元,用于连接所述主干网络结构及所述预设数量的分支,得到初始网络;
所述构建单元,还用于构建所述预设数量的对齐层的第一损失函数、每个分支的第二损失函数,及所述主干网络结构的第三损失函数,并根据所述第一损失函数、每个第二损失函数及所述第三损失函数构建所述初始网络的总损失函数;
训练单元,用于获取训练样本,并利用所述训练样本,基于所述总损失函数对所述初始网络进行自知识蒸馏训练;
所述训练单元,还用于在训练过程中,当所述总损失函数达到收敛时,停止训练,并获取当前网络;
确定单元,用于在所述当前网络中,从每个分支的第二损失函数中获取与所述第一损失函数的取值的差的绝对值最小,且所述绝对值小于或者等于预设阈值的第二损失函数作为目标损失函数,并将所述目标损失函数对应的分支确定为目标分支;
删除单元,用于从所述当前网络中删除所述目标分支以外的其他分支,及删除与所述其他分支连接的中间层,得到人脸识别模型;
识别单元,用于获取待识别图像,将所述待识别图像输入至所述人脸识别模型进行人脸识别,并获取所述人脸识别模型的输出数据作为人脸识别结果。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于深度学习的人脸识别方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7任一项所述的基于深度学习的人脸识别方法。
CN202111011071.8A 2021-08-31 2021-08-31 基于深度学习的人脸识别方法、装置、设备及介质 Active CN113688762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111011071.8A CN113688762B (zh) 2021-08-31 2021-08-31 基于深度学习的人脸识别方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111011071.8A CN113688762B (zh) 2021-08-31 2021-08-31 基于深度学习的人脸识别方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113688762A CN113688762A (zh) 2021-11-23
CN113688762B true CN113688762B (zh) 2023-08-08

Family

ID=78584331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111011071.8A Active CN113688762B (zh) 2021-08-31 2021-08-31 基于深度学习的人脸识别方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113688762B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116415687B (zh) * 2022-12-29 2023-11-21 江苏东蓝信息技术有限公司 一种基于深度学习的人工智能网络优化训练***及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815801A (zh) * 2018-12-18 2019-05-28 北京英索科技发展有限公司 基于深度学习的人脸识别方法及装置
CN110033332A (zh) * 2019-04-23 2019-07-19 杭州智趣智能信息技术有限公司 一种人脸识别方法、***及电子设备和存储介质
CN111898412A (zh) * 2020-06-16 2020-11-06 深圳市雄帝科技股份有限公司 人脸识别方法、装置、电子设备和介质
CN112052789A (zh) * 2020-09-03 2020-12-08 腾讯科技(深圳)有限公司 人脸识别方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815801A (zh) * 2018-12-18 2019-05-28 北京英索科技发展有限公司 基于深度学习的人脸识别方法及装置
CN110033332A (zh) * 2019-04-23 2019-07-19 杭州智趣智能信息技术有限公司 一种人脸识别方法、***及电子设备和存储介质
CN111898412A (zh) * 2020-06-16 2020-11-06 深圳市雄帝科技股份有限公司 人脸识别方法、装置、电子设备和介质
CN112052789A (zh) * 2020-09-03 2020-12-08 腾讯科技(深圳)有限公司 人脸识别方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113688762A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
US11727053B2 (en) Entity recognition from an image
US11409789B2 (en) Determining identity in an image that has multiple people
US20170109852A1 (en) Personal safety verification system and similarity search method for data encrypted for confidentiality
CN111310436A (zh) 基于人工智能的文本处理方法、装置及电子设备
CN110929806A (zh) 基于人工智能的图片处理方法、装置及电子设备
US20220004621A1 (en) Data recovery through reversal of hash values using probabilistic data structures
CN110941978A (zh) 一种未识别身份人员的人脸聚类方法、装置及存储介质
CN114205690A (zh) 流量预测、模型训练方法及装置、电子设备、存储介质
CN113688762B (zh) 基于深度学习的人脸识别方法、装置、设备及介质
CN113869398B (zh) 一种不平衡文本分类方法、装置、设备及存储介质
CN113254687B (zh) 图像检索、图像量化模型训练方法、装置和存储介质
JP5720536B2 (ja) 秘匿化データの検索のための情報処理方法及び装置
CN108090117B (zh) 一种图像检索方法及装置,电子设备
US20210209256A1 (en) Peceptual video fingerprinting
CN116703659A (zh) 一种应用于工程咨询的数据处理方法、装置及电子设备
CN116866422A (zh) 实时推送涉敏信息并脱敏的方法、装置、设备及存储介质
US20190279012A1 (en) Methods, systems, apparatuses and devices for facilitating inspection of industrial infrastructure by one or more industry experts
CN114925210B (zh) 知识图谱的构建方法、装置、介质及设备
CN113572792B (zh) 一种基于物联网的工程测量智慧管理平台
CN111597453B (zh) 用户画像方法、装置、计算机设备及计算机可读存储介质
CN112989815A (zh) 基于信息交互的文本相似度识别方法、装置、设备及介质
JP2011034254A (ja) 類似検索装置、類似検索システム及び類似検索方法
CN113535885B (zh) 基于用户昵称的年龄预测方法、装置及电子设备
CN109801705B (zh) 治疗推荐方法、***、装置及存储介质
CN113591987B (zh) 图像识别方法、装置、电子设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant