发明内容
有鉴于此,本申请的目的在于提供一种训练方法及装置、指纹识别方法及装置、电子设备及存储介质,使得训练得到的神经网络模型具有更好的泛化性。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供一种训练方法,用于对神经网络模型进行训练,所述神经网络模型包括主干网络及比对学习损失网络,所述方法包括:通过所述主干网络对获取到的样本图像集进行特征提取,得到样本特征;通过所述比对学习损失网络对所述样本特征进行预处理,得到预处理特征;根据所述预处理特征,计算得到所述样本图像集所包括的所有样本对的比对损失之和;根据所述样本特征,计算得到所述样本图像集所包括的所有样本的分类损失之和;根据所述比对损失之和及所述分类损失之和,对所述神经网络模型进行训练。
本方案所提供的神经网络训练方法,在对神经网络模型进行训练时,相较于传统的训练神经网络模型的方式,多出一个比对损失之和。神经网络模型对该比对损失之和的训练学习时,通过梯度计算,可以解算出用于表征各个样本之间的比对差异的参数。神经网络模型通过对该参数的学习,可以尽可能学习到各个域的同类样本以及各个域的不同类样本之间的比对差异,使得神经网络模型在形成特征空间时,不仅可以考虑正负样本之间的差异,还可以考虑域所带来的差异,从而避免对训练集中的某些特定域的样本过拟合,有利于增强神经网络模型的泛化性。
结合第一方面实施例,在一种可能的实施方式中,所述根据所述比对损失之和及所述分类损失之和,对所述神经网络模型进行训练,包括:将所述比对损失之和与所述分类损失之和进行加权求和,并将加权求和后得到的参数在所述神经网络模型内进行反向传播。
结合第一方面实施例,在一种可能的实施方式中,所述样本图像集内所包括的每个样本具有样本标签,所述对所述样本特征进行预处理,得到预处理特征,包括:对所述样本图像集所包括的每个样本对应的样本特征进行全局平均池化,得到与所述每个样本对应的全局特征;根据所述每个样本对应的全局特征,计算所述样本图像集所包括的每个样本对对应的特征距离;根据所述每个样本具有的样本标签,计算所述样本图像集的正负样本对掩膜矩阵;所述预处理特征为与所述每个样本对对应的特征距离及所述正负样本对掩膜矩阵。
结合第一方面实施例,在一种可能的实施方式中,根据所述每个样本具有的样本标签,计算所述样本图像集的正负样本对掩膜矩阵,包括:
基于公式M={mi,j|mi,j=(yi==yj)},计算所述样本图像集的正负样本对掩膜矩阵;其中,若第i个样本的样本标签yi与第j个样本的样本标签yj相同,则第i个样本与第j个样本所组成的样本对为正样本对,所述正样本对在所述正负样本对掩膜矩阵中对应的参数为1;若第i个样本的样本标签yi与第j个样本的样本标签yj不相同,则第i个样本与第j个样本所组成的样本对为负样本对,所述负样本对在所述正负样本对掩膜矩阵中对应的参数为0。
结合第一方面实施例,在一种可能的实施方式中,所述计算所述样本图像集所包括的每个样本对对应的特征距离,包括:针对由第i个样本xi与第j个样本xj所组成的样本对,将xi的全局特征中的每个特征与xj的全局特征中的每个特征之间的差的平方进行求和,并将最后得到的和值开方后所得到的值确定为第i个样本xi与第j个样本xj所组成的样本对对应的特征距离。
结合第一方面实施例,在一种可能的实施方式中,所述预处理特征为所述样本图像集所包括的每个样本对对应的特征距离及所述样本图像集的正负样本对掩膜矩阵,所述根据所述预处理特征,计算得到所述样本图像集所包括的所有样本对的比对损失之和,包括:将所述样本图像集所包括的所有正样本对的比对损失进行求和,得到正样本对比对损失之和;将所述样本图像集所包括的所有负样本对的比对损失进行求和,得到负样本对比对损失之和;将所述正样本对比对损失之和与所述负样本对比对损失之和进行求和,得到所述比对损失之和;其中,针对所述样本图像集所包括的每个正样本对,该正样本对的比对损失为:该正样本对在所述正负样本对掩膜矩阵中对应的参数与该正样本对对应的特征距离之积;针对所述样本图像集所包括的每个负样本对,该负样本对的比对损失为:该负样本对在所述正负样本对掩膜矩阵中对应的参数与该负样本对的特征距离优化值之积;该负样本对的特征距离优化值是:预设的参数与该负样本对对应的特征距离之差与0中的较大值。
结合第一方面实施例,在一种可能的实施方式中,所述根据所述样本特征,计算得到所述样本图像集所包括的所有样本的分类损失之和,包括:根据所述样本特征,计算所述样本图像集所包括的每个样本的交叉熵,并将得到的每个交叉熵进行求和,得到所述分类损失之和。
结合第一方面实施例,在一种可能的实施方式中,所述神经网络模型用于识别屏下指纹活体以及异物。
第二方面,本申请实施例提供一种训练装置,用于对神经网络模型进行训练,所述神经网络模型包括主干网络以及比对学习损失网络。所述训练装置包括:特征提取模块、预处理模块、计算模块以及训练模块。特征提取模块,用于通过所述主干网络对获取到的样本图像集进行特征提取,得到样本特征;预处理模块,用于通过所述比对学习损失网络对所述样本特征进行预处理,得到预处理特征;计算模块,用于根据所述预处理特征,计算得到所述样本图像集所包括的所有样本对的比对损失之和;所述计算模块,还用于根据所述样本特征,计算得到所述样本图像集所包括的所有样本的分类损失之和;训练模块,用于根据所述比对损失之和及所述分类损失之和,对所述神经网络模型进行训练。
结合第二方面实施例,在一种可能的实施方式中,所述训练模块,用于将所述比对损失之和与所述分类损失之和进行加权求和,并将加权求和后得到的参数在所述神经网络模型内进行反向传播。
结合第二方面实施例,在一种可能的实施方式中,所述样本图像集内所包括的每个样本具有样本标签,所述预处理模块,用于通过所述比对学习损失网络,对所述样本图像集所包括的每个样本对应的样本特征进行全局平均池化,得到与所述每个样本对应的全局特征;根据所述每个样本对应的全局特征,计算所述样本图像集所包括的每个样本对对应的特征距离;根据所述每个样本具有的样本标签,计算所述样本图像集的正负样本对掩膜矩阵;所述预处理特征为与所述每个样本对对应的特征距离及所述正负样本对掩膜矩阵。
结合第二方面实施例,在一种可能的实施方式中,所述预处理模块,用于基于公式M={mi,j|mi,j=(yi==yj)},计算所述样本图像集的正负样本对掩膜矩阵;其中,若第i个样本的样本标签yi与第j个样本的样本标签yj相同,则第i个样本与第j个样本所组成的样本对为正样本对,所述正样本对在所述正负样本对掩膜矩阵中对应的参数为1;若第i个样本的样本标签yi与第j个样本的样本标签yj不相同,则第i个样本与第j个样本所组成的样本对为负样本对,所述负样本对在所述正负样本对掩膜矩阵中对应的参数为0。
结合第二方面实施例,在一种可能的实施方式中,针对由第i个样本xi与第j个样本xj所组成的样本对,所述预处理模块,还用于将xi的全局特征中的每个特征与xj的全局特征中的每个特征之间的差的平方进行求和,并将最后得到的和值开方后所得到的值确定为第i个样本xi与第j个样本xj所组成的样本对对应的特征距离。
结合第二方面实施例,在一种可能的实施方式中,所述预处理特征为所述样本图像集所包括的每个样本对对应的特征距离及所述样本图像集的正负样本对掩膜矩阵,所述计算模块,用于将所述样本图像集所包括的所有正样本对的比对损失进行求和,得到正样本对比对损失之和;将所述样本图像集所包括的所有负样本对的比对损失进行求和,得到负样本对比对损失之和;将所述正样本对比对损失之和与所述负样本对比对损失之和进行求和,得到所述比对损失之和;其中,针对所述样本图像集所包括的每个正样本对,该正样本对的比对损失为:该正样本对在所述正负样本对掩膜矩阵中对应的参数与该正样本对对应的特征距离之积;针对所述样本图像集所包括的每个负样本对,该负样本对的比对损失为:该负样本对在所述正负样本对掩膜矩阵中对应的参数与该负样本对的特征距离优化值之积;该负样本对的特征距离优化值是:预设的参数与该负样本对对应的特征距离之差与0中的较大值。
结合第二方面实施例,在一种可能的实施方式中,所述计算模块,用于根据所述样本特征,计算所述样本图像集所包括的每个样本的交叉熵,并将得到的每个交叉熵进行求和,得到所述分类损失之和。
结合第二方面实施例,在一种可能的实施方式中,所述神经网络模型用于识别屏下指纹活体以及异物。
第三方面,本申请实施例还提供一种指纹识别方法,所述方法包括:采集待识别指纹;将所述待识别指纹输入经过第一方面任一实施方式的训练方法进行训练后所得到的神经网络模型进行识别,并得到输出结果。
第四方面,本申请实施例还提供一种指纹识别装置,包括采集模块以及识别模块。采集模块,用于采集待识别指纹;识别模块,用于将所述待识别指纹输入经过第一方面任一实施方式的训练方法进行训练后所得到的神经网络模型进行识别,并得到输出结果。
第五方面,本申请实施例还提供一种电子设备包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器用于存储程序;所述处理器调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第六方面,本申请实施例还提供一种非易失性计算机可读取存储介质(以下简称存储介质),其上存储有计算机程序,所述计算机程序被计算机运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
此外,针对现有技术中的神经网络模型训练方法所存在的缺陷(训练结果对某个项目所对应的域过拟合,影响卷积神经网络模型的泛化性)是申请人在经过实践并仔细研究后得出的结果,因此,上述缺陷的发现过程以及在下文中本申请实施例针对上述缺陷所提出的解决方案,都应该被认定为申请人对本申请做出的贡献。
为了解决上述问题,本申请实施例提供一种训练方法、装置、电子设备及存储介质,使得训练得到的神经网络模型对来自不同域的图像的识别具有更好的泛化性。
该技术可采用相应的软件、硬件以及软硬结合的方式实现。以下对本申请实施例进行详细介绍。
首先,参照图1来描述用于实现本申请实施例的训练方法、装置的电子设备100。在电子设备100上部署有神经网络模型。
可选的,电子设备100不限于为个人电脑(Personal computer,PC)、平板电脑、移动上网设备(Mobile Internet Device,MID)、个人数字助理或服务器等设备。
其中,电子设备100可以包括:处理器110、存储器120。
应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,电子设备100也可以具有其他组件和结构。
处理器110、存储器120以及其他可能出现于电子设备100的组件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,处理器110、存储器120以及其他可能出现的组件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
存储器120用于存储程序,例如存储有后文出现的训练方法对应的程序或者后文出现的训练装置。可选的,当存储器120内存储有神经网络模型时,神经网络模型包括至少一个可以以软件或固件(firmware)的形式存储于存储器120中的软件功能模块。
可选的,神经网络模型所包括软件功能模块也可以固化在电子设备100的操作系统(operating system,OS)中。
处理器110用于执行存储器120中存储的可执行模块,例如神经网络模型包括的软件功能模块或计算机程序。当处理器110在接收到执行指令后,可以执行计算机程序,例如执行:通过主干网络对获取到的样本图像集进行特征提取,得到样本特征;通过比对学习损失网络对所述样本特征进行预处理,得到预处理特征;根据所述预处理特征,计算得到所述样本图像集所包括的所有样本对的比对损失之和;根据所述样本特征,计算得到所述样本图像集所包括的所有样本的分类损失之和;根据所述比对损失之和及所述分类损失之和,对所述神经网络模型进行训练。
当然,本申请任一实施例所揭示的方法都可以应用于处理器110中,或者由处理器110实现。
下面将结合图2所示的流程图,针对本申请所提供的训练方法进行介绍。
步骤S110:通过主干网络对获取到的样本图像集进行特征提取,得到样本特征。
以训练用于识别屏下指纹活体以及异物的神经网络模型为例,神经网络模型设置在硬件设备(例如手机、平板等)上,从而使得硬件设备具备活体指纹识别的功能。
由于硬件设备的类型以及型号较为繁多,针对每个硬件设备而言,可以采集该硬件设备所获取到的屏下指纹活体图像以及屏下异物图像(非活体图像,例如攻击图像),形成样本。
其中,针对每个样本而言,工作人员可以预先根据该样本所呈现的效果,对该样本进行标注,形成与该样本对应的样本标签。
样本标签用于对样本进行定性,例如在上文的举例中,对于屏下指纹活体图像,可以对其增加样本标签“正样本”;针对屏下异物图像,可以对其增加样本标签“负样本”。再例如,在其他一些实施方式中,针对肿瘤细胞图像,可以对其增加样本标签“正样本”;针对非肿瘤细胞图像,可以对其增加样本标签“负样本”。
针对来自于同一个硬件设备的样本(包括正样本与负样本),这些样本属于相同的域,针对来自于不同硬件设备的样本,这些样本属于不同的域。样本所对应的域不同,即表征样本类别不同。
在本申请实施例中,将正样本与正样本之间称之为同类样本,将负样本与负样本之间称之为同类样本,将正样本与负样本之间称之为不同类样本。为了将同类样本与样本类别相同的样本之间进行区分,也为了将不同类样本与样本类别不同的样本之间进行区分,下文统一以“域”来表征“样本类别”,相应的,将样本类别相同的样本称之为来自于同一个域的样本,将样本类别不同的样本称之为来自于不同域的样本。
在得到大量样本后,可以根据随机抽样方式,从大量的样本中随机抽样,得到多个样本图像集。其中,每个样本图像集中所包括的样本数量相同。
当然,在一个样本图像集中,包括正样本以及负样本,此外,在一个样本图像集中,应该尽可能包括所有域的样本。
在获取到样本图像集后,可以采用传统的具备特征提取功能的神经网络所包括的主干部分(例如Mobile Net、ResNet、Xception Net等神经网络的主干部分),对样本图像集中的每个样本进行特征提取,从而得到当前批次的样本图像集的样本特征X。
步骤S120:通过比对学习损失网络对所述样本特征进行预处理,得到预处理特征。
其中,预处理特征包括:与每个样本对对应的特征距离及与样本图像集所对应的正负样本对掩膜矩阵。
值得指出的是,对于样本图像集中所包括的每个样本,均可以与样本图像集中所包括的另一个样本组成样本对。
与每个样本对对应的特征距离用于表征样本对所包括的两个样本之间的特征距离。
下面将针对计算特征距离的过程进行介绍。
在对样本特征进行预处理时,针对样本图像集所包括的每个样本所对应的样本特征,可以对其空间维度求其平均响应值,即进行全局平均池化,从而得到与每个样本对应的全局特征X′=GlobalAvgPooling(X)。
后续,针对每个样本对应的全局特征X′,计算样本图像集所包括的每个样本对对应的特征距离。
在一些实施方式中,可以采用L2距离作为特征距离。此时,可以基于公式计算样本图像集所包括的每个样本对对应的特征距离。
其中,di,j为第i个样本xi与第j个样本xj所组成的样本对所对应的特征距离,k表示样本xi的特征从1开始计数,l表示样本xj的特征从1开始计数,n-channel为xi或xj所包括的特征的维度。
值得指出的是,由于样本图像集中的所有样本均是通过同一个主干网络进行特征提取,因此样本图像集中的所有样本所包括的特征的维度一样,均为n-channel。
公式的含义为:针对由第i个样本xi与第j个样本xj所组成的样本对,将xi的全局特征中的每个特征与xj的全局特征中的每个特征之间的差的平方进行求和,并将最后得到的和值开方后所得到的值确定为第i个样本xi与第j个样本xj所组成的样本对对应的特征距离,即计算xi的全局特征与xj的全局特征的欧式距离。
当然,在其他一些实施方式中,也可以采用其他距离作为特征距离,例如L1距离等,相应的,用于计算特征距离的公式相应地发生变化。
与样本图像集所对应的正负样本对掩膜矩阵,用于表征样本图像集所包括的各个样本对的样本标签之间的关系。
上文提及,预先为每个样本设置对应的样本标签。在本申请实施例中,可以根据每个样本具有的样本标签,计算样本图像集的正负样本对掩膜矩阵,具体的计算过程如下。
基于公式M={mi,jmi,j=(yi==yj)},计算样本图像集的正负样本对掩膜矩阵;其中,若第i个样本的样本标签yi与第j个样本的样本标签yj相同,则第i个样本与第j个样本所组成的样本对为正样本对,相应的,正样本对在正负样本对掩膜矩阵中对应的参数为1;若第i个样本的样本标签yi与第j个样本的样本标签yj不相同,则第i个样本与第j个样本所组成的样本对为负样本对,负样本对在正负样本对掩膜矩阵中对应的参数为0。
步骤S130:根据所述预处理特征,计算得到所述样本图像集所包括的所有样本对的比对损失之和。
具体的,可以先计算样本图像集所包括的所有正样本对的特征比对损失之和,即正样本对比对损失之和Lpos,以及计算样本图像集所包括的所有负样本对的特征比对损失之和,即负样本对比对损失之和Lneg;然后将正样本对比对损失之和Lpos与负样本对比对损失之和Lneg进行求和,得到样本图像集所包括的所有样本对的比对损失之和Lcontrastive=Lpos+Lneg。
其中,针对任意正样本对(假设该正样本对包括的样本分别为xi与xj),与其对应的特征比对损失为:该正样本对在正负样本对掩膜矩阵中对应的参数mi,j与该正样本对对应的特征距离di,j之积。那么样本图像集所包括的所有正样本对的正样本对比对损失之和(由于负样本对的mi,j为0,因此,该公式可以排除负样本)。
其中,针对任意负样本对(假设该负样本对包括的样本分别为xi与xj),与其对应的特征比对损失为:该负样本对在正负样本对掩膜矩阵中对应的参数mi,j与该负样本对的特征距离di,j的优化值之积。负样本对的特征距离di,j的优化值为:预设的参数margin与该负样本对对应的特征距离di,j之差与0中的较大值,即Max(0,margin-di,j)。那么样本图像集所包括的所有负样本对的负样本对比对损失之和(由于正样本对的mi,j为1,因此,该公式可以排除正样本)。
当然,margin的值可以根据实际情况进行调整。
步骤S140:根据所述样本特征,计算得到所述样本图像集所包括的所有样本的分类损失之和。
在常规的神经网络模型训练过程中,一般都会计算样本图像集的分类损失之和。一般而言,可以通过计算样本图像集所包括的每个样本的交叉熵,并将得到的每个交叉熵进行求和,即可得到分类损失之和。
步骤S150:根据所述比对损失之和及所述分类损失之和,对所述神经网络模型进行训练。
具体的,可以将比对损失之和与分类损失之和进行加权求和,并将加权求和后得到的参数在神经网络模型内进行反向传播,以达到训练的目的。
例如,在一些实施方式中,可以采用公式0.3A+0.7B将比对损失之和与所述分类损失之和进行加权求和,其中,A为比对损失之和,B为分类损失之和。
在本申请实施例中,在基于损失值对神经网络模型进行训练时,相较于传统的训练神经网络模型的方式,多出一个比对损失之和Lcontrastive,该比对损失之和Lcontrastive对训练起到辅助作用。
该比对损失之和Lcontrastive在反向传播过程中,被神经网络模型学习到。在学习过程中,神经网络模型通过梯度计算,可以解算出用于表征样本图像集内各个样本对(正样本对以及负样本)所包括的两个样本之间的比对差异的参数,即两两样本之间的对比差异。
神经网络模型通过对该参数的学习,可以尽可能学习到各个域的同类样本以及各个域的不同类样本之间的比对差异,使得神经网络模型在形成特征空间时,不仅可以考虑正负样本之间的差异,还可以考虑不同的域所带来的差异,从而避免神经网络模型对训练集中的某些特定域的样本过拟合,有利于增强神经网络模型的泛化性。
具体的,神经网络模型通过对该参数的学习,可以充分学习到各个域的同类样本之间的对比差异、各个域的不同类样本之间的比对差异,从而在形成的特征空间中,将同类样本之间的类间距离拉近,即将正样本与正样本之间的类间距离拉近,将负样本与负样本之间的类间距离拉近;不同类样本之间的类间距离拉远,即将正样本与负样本之间的类间距离拉远。在各个样本通过如此方式所形成的特征空间中,同域以及不同域的同类样本被尽可能聚集,同域以及不同域的不同类样本被尽可能远离,形成特征分布更为紧凑的两个样本聚集体(正样本聚集体以及负样本聚集体),从而可以使得正样本聚集体与负样本聚集体之间的边界尽可能清晰,便于正在被训练的神经网络模型可以充分学习到正负样本之间的边界。
当神经网络模型训练完成后,由于充分学习到正负样本之间的边界,因此,可以对来自于各个域的正负样本进行准确识别,相较于传统的只学习到模糊边界的神经网络模型,可以提高神经网络模型的泛化性,有助于神经网络模型对来自于不同域(不同设备或不同项目)的待识别图像进行准确识别。当神经网络模型用于识别屏下指纹活体图像与屏下异物图像(非活体图像,例如攻击图像)时,有利于神经网络模型对来自不同项目的指纹活体图像与屏下异物图像的泛化能力。
在通过上述训练方法,得到用于识别屏下指纹活体图像与屏下异物图像的神经网络模型的基础上,请参看图3,本申请实施例还提供一种指纹识别方法,所述方法包括:
步骤S210:采集待识别指纹。
步骤S220:将所述待识别指纹输入神经网络模型进行识别,并得到输出结果。
如图4所示,本申请实施例还提供一种训练装置500,用于对神经网络模型进行训练。神经网络模型包括主干网络以及比对学习损失网络,训练装置500包括:特征提取模块510、预处理模块520、计算模块530以及训练模块540。
特征提取模块510,用于通过所述主干网络对获取到的样本图像集进行特征提取,得到样本特征;
预处理模块520,用于通过所述比对学习损失网络对所述样本特征进行预处理,得到预处理特征;
计算模块530,用于根据所述预处理特征,计算得到所述样本图像集所包括的所有样本对的比对损失之和;
计算模块530,还用于根据所述样本特征,计算得到所述样本图像集所包括的所有样本的分类损失之和;
训练模块540,用于根据所述比对损失之和及所述分类损失之和,对所述神经网络模型进行训练。
在一种可能的实施方式中,所述训练模块540,用于将所述比对损失之和与所述分类损失之和进行加权求和,并将加权求和后得到的参数在所述神经网络模型内进行反向传播。
在一种可能的实施方式中,所述样本图像集内所包括的每个样本具有样本标签,所述预处理模块520,用于通过所述比对学习损失网络,对所述样本图像集所包括的每个样本对应的样本特征进行全局平均池化,得到与所述每个样本对应的全局特征;根据所述每个样本对应的全局特征,计算所述样本图像集所包括的每个样本对对应的特征距离;根据所述每个样本具有的样本标签,计算所述样本图像集的正负样本对掩膜矩阵;所述预处理特征为与所述每个样本对对应的特征距离及所述正负样本对掩膜矩阵。
在一种可能的实施方式中,所述预处理模块520,用于基于公式M={mi,j|mi,j=(yi==yj)},计算所述样本图像集的正负样本对掩膜矩阵;其中,若第i个样本的样本标签yi与第j个样本的样本标签yj相同,则第i个样本与第j个样本所组成的样本对为正样本对,所述正样本对在所述正负样本对掩膜矩阵中对应的参数为1;若第i个样本的样本标签yi与第j个样本的样本标签yj不相同,则第i个样本与第j个样本所组成的样本对为负样本对,所述负样本对在所述正负样本对掩膜矩阵中对应的参数为0。
在一种可能的实施方式中,针对由第i个样本xi与第j个样本xj所组成的样本对,所述预处理模块520,还用于将xi的全局特征中的每个特征与xj的全局特征中的每个特征之间的差的平方进行求和,并将最后得到的和值开方后所得到的值确定为第i个样本xi与第j个样本xj所组成的样本对对应的特征距离。
在一种可能的实施方式中,所述预处理特征为所述样本图像集所包括的每个样本对对应的特征距离及所述样本图像集的正负样本对掩膜矩阵,所述计算模块530,用于将所述样本图像集所包括的所有正样本对的比对损失进行求和,得到正样本对比对损失之和;将所述样本图像集所包括的所有负样本对的比对损失进行求和,得到负样本对比对损失之和;将所述正样本对比对损失之和与所述负样本对比对损失之和进行求和,得到所述比对损失之和;其中,针对所述样本图像集所包括的每个正样本对,该正样本对的比对损失为:该正样本对在所述正负样本对掩膜矩阵中对应的参数与该正样本对对应的特征距离之积;针对所述样本图像集所包括的每个负样本对,该负样本对的比对损失为:该负样本对在所述正负样本对掩膜矩阵中对应的参数与该负样本对的特征距离优化值之积;该负样本对的特征距离优化值是:预设的参数与该负样本对对应的特征距离之差与0中的较大值。
在一种可能的实施方式中,所述计算模块530,用于根据所述样本特征,计算所述样本图像集所包括的每个样本的交叉熵,并将得到的每个交叉熵进行求和,得到所述分类损失之和。
在一种可能的实施方式中,训练所得到的神经网络模型用于识别屏下指纹活体以及异物。
本申请实施例所提供的训练装置500,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,训练装置500实施例部分未提及之处,可参考前述方法实施例中相应内容。
如图5所示,本申请实施例还提供一种指纹识别装置600,包括采集模块610以及识别模块620。
采集模块610,用于采集待识别指纹;
识别模块620,用于将所述待识别指纹输入训练好的神经网络模型进行识别,并得到输出结果。
此外,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述的训练方法,或执行上述指纹识别方法。
此外,本发明实施例还提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行如上述的训练方法或上述指纹识别方法。其中,电子设备的结构示意图可以参看图1。
综上所述,本发明实施例提出的训练方法及装置、指纹识别方法及装置、电子设备及存储介质,通过对样本图像集中的样本进行特征提取、特征处理,从而得到预处理特征。然后再基于预处理特征计算样本图像集所包括的所有样本对的比对损失之和,并连同根据样本特征计算得到的分类损失之和一并对神经网络模型进行训练。在对神经网络模型进行训练时,相较于传统的训练神经网络模型的方式,多出一个比对损失之和。神经网络模型对该比对损失之和的训练学习时,通过梯度计算,可以解算出用于表征各个样本之间的比对差异的参数。神经网络模型通过对该参数的学习,可以尽可能学习到各个域的同类样本以及各个域的不同类样本之间的比对差异,使得神经网络模型在形成特征空间时,不仅可以考虑正负样本之间的差异,还可以考虑域所带来的差异,从而避免对训练集中的某些特定域的样本过拟合,有利于增强神经网络模型的泛化性。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的神经网络模型和方法,也可以通过其它的方式实现。以上所描述的神经网络模型实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的神经网络模型、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。