活体检测模型的训练、活体检测方法、计算机设备及介质转让专利

申请号 : CN202111078997.9

文献号 : CN113807237B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 夏正勋施宇邵一淼

申请人 : 河南星环众志信息科技有限公司

摘要 :

本发明实施例公开了一种活体检测模型的训练、活体检测方法、计算机设备及介质。其中,方法包括:获取样本集;样本集中的样本包括活体样本图像以及至少一种非活体样本图像;对样本集进行分层处理,得到各分层样本图像,并提取与各分层样本图像对应的分层样本特征向量;确定与各分层样本特征向量对应的因果特征向量,并根据各因果特征向量确定损失值的大小,当损失值满足设定条件时,得到活体检测模型。本发明实施例的方案,在保证活体检测模型精度的同时,可以降低活体检测模型的参数量,提升活体检测模型的鲁棒性。

权利要求 :

1.一种活体检测模型的训练方法,其特征在于,包括:获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;

对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;

确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型;

所述对所述样本集进行分层处理,得到各分层样本图像,包括:确定二值域分层矩阵;所述二值域分层矩阵的维度与各样本图像的维度相同;

将所述二值域分层矩阵与所述样本集中的目标样本图像进行目标运算,得到与所述目标样本图像对应的各分层样本图像;

所述确定与各所述分层样本特征向量对应的因果特征向量,包括:确定二值因果特征提取向量;所述二值因果特征提取向量的维度与各分层样本特征的维度相同;

将所述二值因果特征提取向量与各所述分层样本特征向量进行目标运算,得到与各所述分层样本特征向量对应的因果特征向量。

2.根据权利要求1所述的方法,其特征在于,所述确定二值域分层矩阵,包括:随机生成与各所述样本图像的维度相同的域分层矩阵;所述域分层矩阵中的各元素的初始值为随机值;

对所述域分层矩阵进行二值化处理,得到二值域分层矩阵。

3.根据权利要求2所述的方法,其特征在于,所述提取与各所述分层样本图像对应的分层样本特征向量,包括:将各所述分层样本图像输入至特征提取模块,得到与各所述分层样本图像对应的分层样本特征向量;

其中,所述特征提取模块包括下述至少一项:卷积层、激活函数以及最大池化层。

4.根据权利要求1所述的方法,其特征在于,所述确定二值因果特征提取向量,包括:随机生成与各所述分层样本特征向量的维度相同的因果特征提取向量;所述因果特征提取向量中的各元素的初始值为随机值;

对所述因果特征提取向量进行二值化处理,得到二值因果特征提取向量。

5.根据权利要求1所述的方法,其特征在于,所述根据各所述因果特征向量确定损失值的大小,包括:将各所述因果特征向量输入至判别器中,得到损失值;

其中,所述判别器包括下述至少一项:激活函数,以及全连接层。

6.一种活体检测方法,其特征在于,包括:

获取待检测图像;

将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果;

其中,所述活体检测模型由权利要求1‑5中任一项所述的活体检测模型的训练方法训练而得。

7.一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;

对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;

确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型;

所述处理器是设置为通过以下方式对所述样本集进行分层处理,得到各分层样本图像:确定二值域分层矩阵;所述二值域分层矩阵的维度与各样本图像的维度相同;

将所述二值域分层矩阵与所述样本集中的目标样本图像进行目标运算,得到与所述目标样本图像对应的各分层样本图像;

所述处理器是设置为通过以下方式确定与各所述分层样本特征向量对应的因果特征向量:确定二值因果特征提取向量;所述二值因果特征提取向量的维度与各分层样本特征的维度相同;

将所述二值因果特征提取向量与各所述分层样本特征向量进行目标运算,得到与各所述分层样本特征向量对应的因果特征向量。

8.根据权利要求7所述的设备,其特征在于,所述处理器是设置为通过以下方式确定二值域分层矩阵:随机生成与各所述样本图像的维度相同的域分层矩阵;所述域分层矩阵中的各元素的初始值为随机值;

对所述域分层矩阵进行二值化处理,得到二值域分层矩阵。

9.根据权利要求8所述的设备,其特征在于,所述处理器是设置为通过以下方式提取与各所述分层样本图像对应的分层样本特征向量:将各所述分层样本图像输入至特征提取模块,得到与各所述分层样本图像对应的分层样本特征向量;

其中,所述特征提取模块包括下述至少一项:卷积层、激活函数以及最大池化层。

10.根据权利要求7所述的设备,其特征在于,所述处理器是设置为通过以下方式确定二值因果特征提取向量:随机生成与各所述分层样本特征向量的维度相同的因果特征提取向量;所述因果特征提取向量中的各元素的初始值为随机值;

对所述因果特征提取向量进行二值化处理,得到二值因果特征提取向量。

11.根据权利要求7所述的设备,其特征在于,所述处理器是设置为通过以下方式根据各所述因果特征向量确定损失值的大小:将各所述因果特征向量输入至判别器中,得到损失值;

其中,所述判别器包括下述至少一项:激活函数,以及全连接层。

12.一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:获取待检测图像;

将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果;

其中,所述活体检测模型由权利要求1‑5中任一项所述的活体检测模型的训练方法训练而得。

13.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1‑5中任一所述的活体检测模型的训练方法,或者权利要求6所述的活体检测方法。

说明书 :

活体检测模型的训练、活体检测方法、计算机设备及介质

技术领域

[0001] 本发明实施例涉及人工智能技术领域,尤其涉及一种活体检测模型的训练、活体检测方法、计算机设备及介质。

背景技术

[0002] 随着人脸识别技术的应用场景越来越多,应用的领域越来越重要,其安全性也开始受到人们的广泛关注。犯罪分子可以通过面具、打印照片、屏幕上显示的照片、播放的视频片段来重放人脸或者使用三维(three‑dimensional,3D)头部模型来欺骗传统的人脸检测技术。活体检测可以通过自动判别给定图像或视频中的人脸图像是来源于在现场的真实的人,还是来自于欺骗人脸的技术。活体检测是一种重要的防止人脸攻击、欺诈的技术手段,在银行、保险、互联网金融、电子商务等涉及到远程身份认证的行业和场合得到了广泛的应用。
[0003] 活体检测模型的训练样本往往包括多种类型,例如,非活体样本在现实世界中包括照片中的人脸、视频中活动的人脸或者人脸面具等等,不同类型的非活体样本有各自的特征。现阶段,通过常规方法训练得到的活体检测模型体积较大、参数较多、模型精度提升困难,且鲁棒性较差。
[0004] 如何在保证活体检测模型精度的同时,降低活体检测模型的参数量,提升活体检测模型的鲁棒性是业内关注的重点问题。

发明内容

[0005] 本发明实施例提供一种活体检测模型的训练、活体检测方法、计算机设备及介质,以实现提升活体检测模型精度的同时,降低活体检测模型的参数量,提升活体检测模型的鲁棒性。
[0006] 第一方面,本发明实施例提供了一种活体检测模型的训练方法,包括:
[0007] 获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;
[0008] 对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;
[0009] 确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型。
[0010] 第二方面,本发明实施例还提供了一种活体检测方法,包括:
[0011] 获取待检测图像;
[0012] 将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果;
[0013] 其中,所述活体检测模型由本发明实施例中任一实施例所述的活体检测模型的训练方法训练而得。
[0014] 第三方面,本发明实施例还提供了一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
[0015] 获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;
[0016] 对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;
[0017] 确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型。
[0018] 第四方面,本发明实施例还提供了一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
[0019] 获取待检测图像;
[0020] 将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果;
[0021] 其中,所述活体检测模型由本发明实施例中任一实施例所述的活体检测模型的训练方法训练而得。
[0022] 第五方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例中任一实施例所述的活体检测模型的训练方法,或者如本发明实施例中任一实施例所述的活体检测方法。
[0023] 本发明实施例通过获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型,在保证活体检测模型精度的同时,可以降低活体检测模型的参数量,提升活体检测模型的鲁棒性。

附图说明

[0024] 图1是本发明实施例一中的一种活体检测模型的训练方法的流程图;
[0025] 图2a是本发明实施例一中的一种特征提取模块的结构示意图;
[0026] 图2b是本发明实施例一中的一种判别器的结构示意图;
[0027] 图3a是本发明实施例一中的一种活体检测网络的结构示意图;
[0028] 图3b是本发明实施例一中的一种域分类网络的结构示意图;
[0029] 图3c是本发明实施例一中的一种域分类网络的学习过程的示意图;
[0030] 图3d是本发明实施例一中的一种活体检测模型的训练方法的流程图;
[0031] 图4是本发明实施例二中的一种活体检测方法的流程图;
[0032] 图5是本发明实施例三中的一种活体检测模型的训练装置的结构示意图;
[0033] 图6是本发明实施例四中的一种活体检测装置的结构示意图;
[0034] 图7是本发明实施例五中的一种计算机设备的结构示意图。

具体实施方式

[0035] 下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
[0036] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0037] 本文使用的术语“非活体样本”包括照片中的人脸、视频中活动的人脸或者人脸面具等等,不同类型的非活体样本有各自的特征。
[0038] 本文使用的术语“样本集”中的样本包括活体样本图像以及至少一种非活体样本图像,其中,活体样本图像可以为摄像头采集到的人脸图像。
[0039] 本文使用的术语“目标运算”可以为点乘运算,也可以为其他矩阵运算,本实施例中对其不加以限定。
[0040] 本文使用的术语“待检测图像”可以为任一图像,例如摄像头实时采集的人脸图像、或者视频中截取的图像等,本实施例中对其不加以限定。
[0041] 为了便于理解,将本发明实施例的主要发明构思进行简述。
[0042] 现有技术中,通过常规方法训练得到的活体检测模型体积较大、参数较多、模型精度提升困难,且鲁棒性较差。
[0043] 发明人针对现有技术中通过常规方法训练得到的活体检测模型体积较大、参数较多、模型精度提升困难,且鲁棒性较差的问题,考虑是否可以对活体检测神经网络进行修改,从而在保证活体检测模型精度的同时,降低活体检测模型的参数量,提升活体检测模型的鲁棒性。
[0044] 基于上述思考,发明人创造性的提出,获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型。这样做的好处是,通过对样本集进行分层处理,可以滤除样本中无关的特征参与模型运算,可以在保证活体检测模型精度的同时,降低活体检测模型的参数量,提升活体检测模型的鲁棒性。
[0045] 实施例一
[0046] 图1是本发明实施例一中的一种活体检测模型的训练方法的流程图,本实施例可适用于训练得到活体检测模型的情况,该方法可以由活体检测模型的训练装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在计算机设备中。具体的,参考图1,该方法具体包括如下步骤:
[0047] 步骤110、获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像。
[0048] 其中,活体样本图像可以为摄像头采集到的人脸图像;非活体样本图像可以为照片中的人脸图像、视频中活动的人脸图像或者人脸面具等等。
[0049] 在本实施例中,样本集中的活体样本图像与非活体样本图像的比例可以为1:1,即活体样本图像的数量可以与非活体样本图像的数量相同。
[0050] 在本实施例中,可以通过摄像头实时采集真实的人脸图像,从而得到多张活体样本图像;也可以通过截取视频中的人脸图像、照片中的人脸图像或者采集人脸面具的图像,从而得到多张非活体样本图像。
[0051] 步骤120、对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量。
[0052] 在本实施例的一个可选实现方式中,在获取到样本集之后,可以对样本集中的各活体样本图像或者非活体样本图像进行分层处理,得到与每个样本图像对应的至少一个分层样本图像;进一步的,可以提取与每个分层样本图像对应的分层样本特征向量。
[0053] 在本实施例的一个可选实现方式中,对所述样本集进行分层处理,得到各分层样本图像,可以包括:确定二值域分层矩阵;所述二值域分层矩阵的维度与各样本图像的维度相同;将所述二值域矩阵与所述样本集中的目标样本图像进行目标运算,得到与所述目标样本图像对应的各分层样本图像。
[0054] 其中,在本实施例中目标运算可以为点乘运算,也可以为其他矩阵运算,本实施例中对其不加以限定。
[0055] 其中,确定二值域分层矩阵,可以包括:随机生成与各所述样本图像的维度相同的域分层矩阵;所述域分层矩阵中的各元素的初始值为随机值;对所述域分层矩阵进行二值化处理,得到二值域分层矩阵。
[0056] 在具体实现中,域分层矩阵的维度与样本图像的维度相同,都可以为[3,112,112],其数据类型为float,初始值为随机数;在具体实现中,可以将随机生成的域分层矩阵中的各个元素值通过Sigmoid函数转化到‑1到1之间,然后通过符号函数将矩阵转化为0‑1矩阵,从而得到二值域分层矩阵。
[0057] 进一步的,在得到二值域分层矩阵之后,可以将得到的二值域分层矩阵与目标样本图像进行点乘运算,从而得到与目标样本图像对应的多个分层样本图像;其中,目标样本图像可以为样本集中的任一活体样本图像,或者非活体样本图像,本实施例中对其不加以限定。
[0058] 在本实施例的一个可选实现方式中,在得到与目标样本图像对应的多个分层样本图像之后,可以进一步的将各所述分层样本图像输入至特征提取模块,得到与各所述分层样本图像对应的分层样本特征向量;其中,所述特征提取模块包括:卷积层、激活函数以及最大池化层;可以理解的是,本实施例中涉及到的特征提取模块还可以包括其他网络层,例如,空洞卷积层或者均值池化层等,本实施例中对其不加以限定。
[0059] 示例性的,特征提取模块可以如图2a所示,其主要由3个Seq1和2个Seq2组成,其中Seq1包含Conv2d卷积层、ReLu激活函数和MaxPool2d最大池化层,Seq2包含Conv2d和ReLu。
[0060] 在本实施例的一个具体例子中,在获取到样本集之后,可以对样本集中的各样本图像按标签类别(例如,活体或者非活体)进行等量随机采样得到minibatch样本org_input_i;对StratLM中的值通过Sigmoid函数转化到‑1到1之间,然后通过符号函数将矩阵转化为0‑1矩阵,得到二值域分层矩阵StratLMR,接着将输入样本org_input_i与StratLMR做点乘运算,得到分层样本strat_input_i;分层样本strat_input_i作为特征提取模块StratCLS的输入,并计算Strat Loss,再进行反向计算更新StratLM和StratCLS中的参数,直至模型训练完成为止。
[0061] 步骤130、确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型。
[0062] 其中,设定条件可以为损失值停留在某个数值(例如,0.01)不再变化时,可以确定此时模型收敛,停止训练;也可以为损失值小于设定数值(例如,0.0001)时,可以确定此时模型收敛,停止训练,本实施例中对其不加以限定。
[0063] 在本实施例的一个可选实现方式中,在提取到与各所述分层样本图像对应的分层样本特征向量之后,可以进一步的确定与各分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型。
[0064] 在本实施例的一个可选实现方式中,确定与各所述分层样本特征向量对应的因果特征向量,可以包括:确定二值因果特征提取向量;所述二值因果特征提取向量的维度与各分层样本特征的维度相同;将所述二值因果特征提取向量与各所述分层样本特征向量进行目标运算,得到与各所述分层样本特征向量对应的因果特征向量。
[0065] 其中,确定二值因果特征提取向量可以包括:随机生成与各所述分层样本特征向量的维度相同的因果特征提取向量;所述因果特征提取向量中的各元素的初始值为随机值;对所述因果特征提取向量进行二值化处理,得到二值因果特征提取向量。
[0066] 在具体实现中,因果特征提取向量的维度与分层样本特征向量的维度相同,初始值为随机数;在具体实现中,可以将随机生成的因果特征提取向量中的各个元素值通过Sigmoid函数转化到‑1到1之间,然后通过符号函数将矩阵转化为0‑1矩阵,从而得到二值因果特征提取向量。
[0067] 进一步的,在得到二值因果特征提取向量之后,可以将得到的二值因果特征提取向量与各分层样本特征向量进行点乘运算,从而得到与各所述分层样本特征向量对应的因果特征向量。
[0068] 在本实施例的一个可选实现方式中,在得到与各所述分层样本特征向量对应的因果特征向量之后,可以将得到的各所述因果特征向量输入至判别器中,从而得到损失值,并且当损失值满足设定条件时(例如,小于0.0001),停止训练,得到活体检测模型;其中,所述判别器包括激活函数,以及全连接层;可以理解的是,本实施例中涉及到的特征提取模块还可以包括其他网络层,例如,上卷积层等,本实施例中对其不加以限定。
[0069] 示例性的,判别器可以如图2b所示,其主要由2个Seq3和1个Linear全连接层组成,其中Seq3包含Linear和ReLu。
[0070] 在本实施例的一个具体例子中,在提取到与各所述分层样本图像对应的分层样本特征向量FeatVec1,FeatVec2,…,FeatVec64之后,可以将每一个分层样本特征向量与二值因果特征提取向量进行点乘处理,得到因果特征向量CaFeatVec1,CaFeatVec2,…,CaFeatVec64;进一步的,将因果特征向量CaFeatVec1,CaFeatVec2,…,CaFeatVec64作为判别器的输入,前向计算得到特征向量MaskedFeatVec_A,以及Cls_Loss_A;重复上述步骤,得到MaskedFeatVec_B向量和Cls_Loss_B;进一步的,可以根据MaskedFeatVec_A和MaskedFeatVec_B计算损失值,直至损失值满足设定条件时,停止训练,得到活体检测模型。
[0071] 本实施例的方案,通过获取样本集;样本集中的样本包括活体样本图像以及至少一种非活体样本图像;对样本集进行分层处理,得到各分层样本图像,并提取与各分层样本图像对应的分层样本特征向量;确定与各分层样本特征向量对应的因果特征向量,并根据各因果特征向量确定损失值的大小,当损失值满足设定条件时,得到活体检测模型,在保证活体检测模型精度的同时,可以降低活体检测模型的参数量,提升活体检测模型的鲁棒性。
[0072] 为了使本领域技术人员更好地理解本实施例活体检测模型的训练方法,下面采用一个具体示例进行说明,图3a是本发明实施例一中的一种活体检测网络的结构示意图,其主要包括:域分层模块310、特征提取模块320、域分类网络321、因果学习模块330以及判别器340。
[0073] 其中,域分层模块310中,通过域分层矩阵StratLM实现样本的自动分层,域分层矩阵StratLM的shape与输入样本大小一致,为[3,112,112],其数据类型为float,初始值为随机数,在前向计算时经过符号函数处理可转化为0或1,转化后的二值域分层矩阵为StratLMR。通过将StratLMR与输入样本org_input_i进行点乘,得到分层样本strat_input_i。
[0074] 图3b是本发明实施例一中的一种域分类网络的结构示意图,其可以由Conv2d、ReLU、MasPool2d、Linear等网络层组成,在具体应用中可根据需要更改为其他分类网络,本实施例中对其不加以限定。域分类网络StratCLS的输入为分层样本strat_input_i,通过分类网络可以提取分层样本特征,并与域分层标签(本发明实施例中可以通过人工标注方式获得)比较,得到域分层Loss为Strat Loss。通过持续的前向、后向计算可以学习到StratL和StratCLS的网络层参数;需要说明的是,在本实施例中,前后向学习为本领域的通用处理方式,本实施例中对其不再赘述。
[0075] 示例性的,域分类网络StratCLS的学习过程如图3c所示,活体检测网络模型中StratL结合域分类网络StratCLS进行学习,本例中StratL通过域分层矩阵StratLM实现样本的自动分层(也可以有其他多种实现方式,如注意力机制、聚类等),StratLM的维数和长度与样本矩阵相同,具体实施步骤如下:
[0076] 步骤301:对样本集中的各样本图像按标签类别进行等量随机采样得到minibatch样本org_input_i;
[0077] 步骤302:对StratLM中的值通过Sigmoid函数转化到‑1到1之间,然后通过符号函数将矩阵转化为0‑1矩阵,得到二值域分层矩阵StratLMR,接着将输入样本org_input_i与StratLMR做点乘运算,得到分层样本strat_input_i;
[0078] 步骤303:分层样本strat_input_i作为StratCLS的输入,计算Strat Loss,再进行反向计算更新StratLM和StratCLS中的参数;
[0079] 步骤304:从步骤301开始新一批次的学习,直至模型训练完成。
[0080] 在本实施例中,因果学习模块330通过Mask处理机制与对比学习的结合实现因果特征提取,其具体实施过程为:Mask向量长度与输入的特征向量长度相同,Mask处理机制是使用Mask向量与FasFeat的输出的特征向量FeatVec进行点乘得到因果特征向量CaFeatVec。再通过对比学习的方式对孪生网络的不同的CaFeatVec输出求Contrastive Loss,从而通过持续迭代学习到有效的Mask向量。
[0081] 图3d是本发明实施例一中的一种活体检测模型的训练方法的流程图,其是在域分层模块310学习完成的基础上,采用多任务学习和对比学习的方式进行活体检测网络的学习,具体实施步骤如下:
[0082] 步骤401:样本库按照minibatch方式,按活体、非活体样本类别,以1:1比例对训练样本进行采样得到minibatch样本org_input_i。本例中batchsize为64,特征向量FeatVec长度为128;
[0083] 步骤402:域分层矩阵StratLM的shape与样本org_input_i相同,对StratLM中的值通过Sigmoid函数转化到‑1到1之间,然后通过符号函数转化为0‑1矩阵,得到二值域分层矩阵StratLMR,样本org_input_1,org_input_2,…,org_input_64输入StratL模块后,与StratLMR做点乘运算,得到分层样本strat_input_1,strat_input_2,…,strat_input_64;
[0084] 步骤403:分层样本strat_input_i作为FasFeat的输入,前向计算输出特征向量FeatVec1,FeatVec2,…,FeatVec64;
[0085] 步骤404:CaFeatExtra以FeatVec1,FeatVec2,…,FeatVec64作为输入,对每一个FeatVec进行Mask处理,Mask向量长度与输入的特征向量长度相同,具体步骤如下:
[0086] a)对Mask中的值通过Sigmoid函数转化到‑1到1之间,然后通过符号函数转化为0‑1向量,得到二值向量MaskR;
[0087] b)对特征向量FeatVec1,FeatVec2,…,FeatVec64,与MaskR做点乘运算,得到Mask处理后的特征向量CaFeatVec1,CaFeatVec2,…,CaFeatVec64;
[0088] 步骤405:CaFeatVec1,CaFeatVec2,…,CaFeatVec64作为FasDiscri的输入,前向计算得到特征向量MaskedFeatVec_A,以及Cls_Loss_A;
[0089] 步骤406:按对比学习框架,重复步骤401~405,可得到第二批MaskedFeatVec_B向量和Cls_Loss_B,计算MaskedFeatVec_A和MaskedFeatVec_B间的Contrastive Loss,根据两个Cls Loss和Contrastive Loss执行后向计算,更新模型和Mask向量的参数。
[0090] 步骤407:从步骤401开始新一轮的学习,直至模型训练完成,得到活体检测模型。
[0091] 需要说明的是,在本发明实施例中还可以使用FineTune方式对活体检测网络进行训练;例如,可以先学习域分层参数,再学习得到因果特征向量,或者也可以先学习因果特征向量,在学习域分层参数。
[0092] 在本发明实施例的一个可选实现当时中,可以通过调整二值因果特征提取向量的长度来避免二值因果特征提取向量对分类结果的影响;还需要说明的是,本实施例中的二值因果特征提取向量的值可以为0或1,也可以为‑1、0或1,或者浮点数;示例性的,若二值因果特征提取向量的值为‑1、0或1,后向计算时可以按浮点数进行梯度更新,前向计算时可以使用符号函数将浮点数转化为‑1、0或1。
[0093] 同时,在本发明实施例的另一个可选实现方式中,可以根据二值因果特征提取向量对训练得到的活体检测模型进行剪枝,滤除无关参数,从而提升活体检测模型的执行效率,即针对任一人物图像,可以快速地确定该图像中的人物为活体的概率。
[0094] 本发明实施例,提供了一种数据自动分层的方法,能够将不同类型的非活体样本根据其主要特征进行分层,做到针对具体情况的特征学习和决策,提高模型的单域精度和跨域鲁棒性;另外还提供了一种因果特征提取的方法,通过对特征向量的特征按位提取和对比学习方法的引入,学习特征与结果间的因果关系,降低背景等因素带来的偏差,能够在保持模型推理能力的同时,降低参数量,提高推理效率;提高模型的跨域鲁棒性,减少偏倚因子对模型精度的影响,自动化实现模型鲁棒性的提高,是一种新型活体检测方法及系统的实现方式。
[0095] 实施例二
[0096] 图4是本发明实施例二中的一种活体检测方法的流程图,本实施例可适用于确定待检测图像是否为活体的情况,该方法可以由活体检测装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在计算机设备中。具体的,参考图4,该方法具体包括如下步骤:
[0097] 步骤410、获取待检测图像。
[0098] 其中,待检测图像可以为任一图像,例如摄像头实时采集的人脸图像、或者视频中截取的图像等,本实施例中对其不加以限定。
[0099] 步骤420、将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果。
[0100] 其中,所述活体检测模型由上述实施例所述的活体检测模型的训练方法训练而得。
[0101] 在本实施例的一个可选实现方式中,在获取到待检测图像之后,可以将待检测图像输入至训练得到的活体检测模型中,从而得到与待检测图像对应的活体检测结果;其中,与待检测图像对应的活体检测结果可以为待检测图像为活体的概率,例如,0.9、0.99或者0.2等;可以理解的是,输出的概率值越大,待检测图像为活体的概率也就越大。
[0102] 在具体实现中,将待检测图像输入至活体检测模型中之后,首先对待检测图像进行分层处理,得到与待检测图像对应的多个分层图像,并提取与各分层图像对应的分层特征向量;进一步的,可以确定与各分层特征向量对应的因果特征向量,并将各因果特征向量输入至判别器中,从而得到与待检测图像对应的活体概率。
[0103] 其中,对待检测图像进行分层处理,得到与待检测图像对应的多个分层图像,可以包括:将待检测图像与二值域矩阵进行点乘运算,得到与待检测图像对应的多个分层图像;在本实施例中涉及到的二值域矩阵为活体检测模型训练结束后,更新得到的。
[0104] 进一步的,可以将各分层图像输入至活体检测模型的特征提取模块,得到与各分层图像对应的分层特征向量;进一步的,可以将各分层特征向量与二值因果特征提取向量进行点乘运算,得到与各分层特征向量对应的因果特征向量;在本实施例中涉及到的二值因果特征提取向量为活体检测模型训练结束后,更新得到的;进一步的,可以将各因果特征向量输入至判别器中,从而得到与待检测图像对应的活体概率。
[0105] 本实施例的方案,通过获取待检测图像;将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果,可以快速地确定与待检测图像对应的活体检测结果,并且准确率较高。
[0106] 实施例三
[0107] 图5是本发明实施例三中的一种活体检测模型的训练装置的结构示意图,该装置可以执行上述各实施例中涉及到的活体检测模型的训练方法。参照图5,该装置包括:样本集获取模块510、分层处理模块520以及模型确定模块530。
[0108] 样本集获取模块510,用于获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;
[0109] 分层处理模块520,用于对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;
[0110] 模型确定模块530,用于确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型。
[0111] 本实施例的方案,通过样本集获取模块获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;通过分层处理模块对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;通过模型确定模块确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型,在保证活体检测模型精度的同时,可以降低活体检测模型的参数量,提升活体检测模型的鲁棒性。
[0112] 在本实施例的一个可选实现方式中,分层处理模块520,用于确定二值域分层矩阵;所述二值域分层矩阵的维度与各样本图像的维度相同;
[0113] 将所述二值域矩阵与所述样本集中的目标样本图像进行目标运算,得到与所述目标样本图像对应的各分层样本图像。
[0114] 在本实施例的一个可选实现方式中,所述分层处理模块520,具体用于随机生成与各所述样本图像的维度相同的域分层矩阵;所述域分层矩阵中的各元素的初始值为随机值;
[0115] 对所述域分层矩阵进行二值化处理,得到二值域分层矩阵。
[0116] 在本实施例的一个可选实现方式中,所述分层处理模块520,还具体用于将各所述分层样本图像输入至特征提取模块,得到与各所述分层样本图像对应的分层样本特征向量;
[0117] 其中,所述特征提取模块包括:卷积层、激活函数以及最大池化层。
[0118] 在本实施例的一个可选实现方式中,所述模型确定模块530,用于确定二值因果特征提取向量;所述二值因果特征提取向量的维度与各分层样本特征的维度相同;
[0119] 将所述二值因果特征提取向量与各所述分层样本特征向量进行目标运算,得到与各所述分层样本特征向量对应的因果特征向量。
[0120] 在本实施例的一个可选实现方式中,所述模型确定模块530,具体用于随机生成与各所述分层样本特征向量的维度相同的因果特征提取向量;所述因果特征提取向量中的各元素的初始值为随机值;
[0121] 对所述因果特征提取向量进行二值化处理,得到二值因果特征提取向量。
[0122] 在本实施例的一个可选实现方式中,所述模型确定模块530,还具体用于将各所述因果特征向量输入至判别器中,得到损失值;
[0123] 其中,所述判别器包括激活函数,以及全连接层。
[0124] 本发明实施例所提供的活体检测模型的训练装置可执行本发明任意实施例所提供的活体检测模型的训练方法,具备执行方法相应的功能模块和有益效果。
[0125] 实施例四
[0126] 图6是本发明实施例四中的一种活体检测装置的结构示意图,该装置可以执行上述各实施例中涉及到的活体检测方法。参照图6,该装置包括:待检测图像获取模块610以及活体检测结果确定模块620。
[0127] 待检测图像获取模块610,用于获取待检测图像;
[0128] 活体检测结果确定模块620,用于将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果;
[0129] 其中,所述活体检测模型由上述各实施例所述的活体检测模型的训练方法训练而得。
[0130] 本实施例的方案,通过待检测图像获取模块获取待检测图像;通过活体检测结果确定模块将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果,可以快速地确定与待检测图像对应的活体检测结果,并且准确率较高。
[0131] 实施例五
[0132] 图7为本发明实施例五提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括处理器70、存储器71、输入装置72和输出装置73;计算机设备中处理器70的数量可以是一个或多个,图7中以一个处理器70为例;计算机设备中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图7中以通过总线连接为例。
[0133] 存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的活体检测模型的训练方法对应的程序指令/模块(例如,活体检测模型的训练装置中的样本集获取模块510、分层处理模块520以及模型确定模块530),或者如本发明实施例中的活体检测方法对应的程序指令/模块(例如,活体检测装置中的待检测图像获取模块610以及活体检测结果确定模块620)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的活体检测模型的训练方法或者活体检测方法。
[0134] 存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0135] 输入装置72可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
[0136] 实施例六
[0137] 本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种活体检测模型的训练方法,该方法包括:
[0138] 获取样本集;所述样本集中的样本包括活体样本图像以及至少一种非活体样本图像;
[0139] 对所述样本集进行分层处理,得到各分层样本图像,并提取与各所述分层样本图像对应的分层样本特征向量;
[0140] 确定与各所述分层样本特征向量对应的因果特征向量,并根据各所述因果特征向量确定损失值的大小,当所述损失值满足设定条件时,得到活体检测模型。
[0141] 或者,活体检测方法,该方法包括:
[0142] 获取待检测图像;
[0143] 将所述待检测图像输入至活体检测模型中,得到与所述待检测图像对应的活体检测结果;
[0144] 其中,所述活体检测模型由本发明实施例中任一项所述的活体检测模型的训练方法训练而得。
[0145] 当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的活体检测模型的训练方法或者活体检测方法中的相关操作。
[0146] 通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read‑Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0147] 值得注意的是,上述活体检测模型的训练装置或者活体检测装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0148] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。