活体检测算法的攻击测试方法、装置、设备及存储介质转让专利

申请号 : CN202010504606.4

文献号 : CN111756705B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 鲁四喜朱敏罗慧

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请公开了一种活体检测算法的攻击测试方法、装置、设备及存储介质,所述方法包括:获取活体检测算法的攻击失败样本;获取活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵;基于各个特征图的反向梯度矩阵生成算法热力图,算法热力图表征所述活体检测算法在对攻击失败样本进行活体检测时的关注情况;基于算法热力图确定所述活体检测算法对攻击失败样本的非重点关注区域;对攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本;基于第一攻击测试样本对所述活体检测算法进行攻击测试。利用本申请提供的技术方案可以大大提高对存在漏洞的活体检测算法的识别率,保证后续算法应用时的安全性。

权利要求 :

1.一种活体检测算法的攻击测试方法,其特征在于,所述方法包括:获取活体检测算法的攻击失败样本;

获取所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵;

计算每个特征图的反向梯度矩阵的平均值,将所述平均值作为特征图的权重;基于所述特征图的权重对所述各个特征图进行加权求和处理,得到目标矩阵;基于所述目标矩阵中各元素的数值大小,将所述目标矩阵转换成初始热力图;将所述初始热力图与所述攻击失败样本进行叠加处理,得到算法热力图,所述算法热力图表征所述活体检测算法在对所述攻击失败样本进行活体检测时的关注情况;

基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的非重点关注区域;

对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本;

基于所述第一攻击测试样本对所述活体检测算法进行攻击测试。

2.根据权利要求1所述的方法,其特征在于,所述获取所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵包括:调用所述活体检测算法,对所述攻击失败样本进行活体检测;

利用预设钩子函数记录所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵。

3.根据权利要求1所述的方法,其特征在于,所述对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本包括:将所述攻击失败样本的非重点关注区域进行遮挡处理;

将遮挡处理后的攻击失败样本作为所述第一攻击测试样本。

4.根据权利要求1所述的方法,其特征在于,在基于所述第一攻击测试样本对所述活体检测算法进行攻击测试之后,所述方法还包括:当攻击测试成功时,确定所述活体检测算法为待改进算法;

当攻击测试失败时,基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的重点关注区域;

对所述攻击失败样本的重点关注区域进行攻击,得到第二攻击测试样本;

基于所述第二攻击测试样本对所述活体检测算法进行攻击测试。

5.根据权利要求4所述的方法,其特征在于,在基于所述第二攻击测试样本对所述活体检测算法进行攻击测试之后,所述方法还包括:当攻击测试成功时,确定所述活体检测算法为待改进算法;

当攻击测试失败时,确定所述活体检测算法为合格算法。

6.根据权利要求4所述的方法,其特征在于,所述对所述攻击失败样本的重点关注区域进行攻击,得到第二攻击测试样本包括:确定所述攻击失败样本的重点关注区域中预设攻击区域;

利用所述预设攻击区域对应的图片遮挡所述攻击失败样本的所述预设攻击区域;

将遮挡后的攻击失败样本作为所述第二攻击测试样本。

7.一种活体检测算法的攻击测试装置,其特征在于,所述装置包括:攻击失败样本获取模块,用于获取活体检测算法的攻击失败样本;

反向梯度矩阵获取模块,用于获取所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵;

算法热力图生成模块,所述算法热力图生成模块包括:权重计算单元,用于计算每个特征图的反向梯度矩阵的平均值,将所述平均值作为特征图的权重;加权求和处理单元,用于基于所述特征图的权重对所述各个特征图进行加权求和处理,得到目标矩阵;初始热力图生成单元,用于基于所述目标矩阵中各元素的数值大小,将所述目标矩阵转换成初始热力图;叠加处理单元,用于将所述初始热力图与所述攻击失败样本进行叠加处理,得到算法热力图,所述算法热力图表征所述活体检测算法在对所述攻击失败样本进行活体检测时的关注情况;

非重点关注区域确定模块,用于基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的非重点关注区域;

非重点关注区域攻击模块,用于对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本;

第一攻击测试模块,用于基于所述第一攻击测试样本对所述活体检测算法进行攻击测试。

8.一种活体检测算法的攻击测试设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序、所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1至6任一所述的活体检测算法的攻击测试方法。

9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至6任一所述的活体检测算法的攻击测试方法。

说明书 :

活体检测算法的攻击测试方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及人工智能技术领域,尤其涉及一种活体检测算法的攻击测试方法、装置、设备及存储介质。

背景技术

[0002] 近年来,随着基于深度学习的人脸识别、活体检测等AI(Artificial Intelligence,人工智能)算法的成熟,越来越多的业务,如银行开户,逐步采用远程方式完
成用户的身份验证,但其安全性也面临着一定的挑战。
[0003] 目前,存在一些非法用户采用虚假身份来进行业务注册的情况,如:翻拍别人的照片、视频等骗过AI算法。所以在AI算法测试时,需要尽量全面覆盖各类可能存在的攻击场
景。但和传统的软件不同,AI算法本身具有较强的黑盒性,无法采用传统软件的测试手段
(如通过代码覆盖率分析)来指引测试场景的构造。现有技术中主要是依赖于测试人员的经
验,人为构想各种测试场景,然后,收集对应场景下的测试样本,造成测试效率低,且存在遗
漏测试场景的情况,无法准确检测出算法的漏洞,算法的安全性无法得到保证。因此,需要
提供更高效可靠的方案。

发明内容

[0004] 本申请提供了一种活体检测算法的攻击测试方法、装置、设备及存储介质,可以解决对于基于深度学习的活体检测算法的测试中,因受限于算法的黑盒性,无法准确确定算
法在进行活体检测时关注情况,大大提高对存在漏洞的活体检测算法的识别率,保证后续
算法应用时的安全性。
[0005] 一方面,本申请提供了一种活体检测算法的攻击测试方法,所述方法包括:
[0006] 获取活体检测算法的攻击失败样本;
[0007] 获取所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵;
[0008] 基于所述各个特征图的反向梯度矩阵生成算法热力图,所述算法热力图表征所述活体检测算法在对所述攻击失败样本进行活体检测时的关注情况;
[0009] 基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的非重点关注区域;
[0010] 对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本;
[0011] 基于所述第一攻击测试样本对所述活体检测算法进行攻击测试。
[0012] 另一方面提供了一种活体检测算法的攻击测试装置,所述装置包括:
[0013] 攻击失败样本获取模块,用于获取活体检测算法的攻击失败样本;
[0014] 反向梯度矩阵获取模块,用于获取所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵;
[0015] 算法热力图生成模块,用于基于所述各个特征图的反向梯度矩阵生成算法热力图,所述算法热力图表征所述活体检测算法在对所述攻击失败样本进行活体检测时的关注
情况;
[0016] 非重点关注区域确定模块,用于基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的非重点关注区域;
[0017] 非重点关注区域攻击模块,用于对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本;
[0018] 第一攻击测试模块,用于基于所述第一攻击测试样本对所述活体检测算法进行攻击测试。
[0019] 另一方面提供了一种活体检测算法的攻击测试设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一
段程序由所述处理器加载并执行以实现如上述的活体检测算法的攻击测试方法。
[0020] 另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上
述的活体检测算法的攻击测试方法。
[0021] 本申请提供的活体检测算法的攻击测试方法、装置、设备及存储介质,具有如下技术效果:
[0022] 本申请将攻击失败样本作为训练好的活体检测算法输入,利用述活体检测算法,对所述攻击失败样本进行活体检测,并在活体检测算法对攻击失败样本进行活体检测时,
提取攻击失败样本的各个特征图的反向梯度矩阵,结合每一特征图的反向梯度矩阵,生成
可以表征活体检测算法在对攻击失败样本进行活体检测时的关注情况的算法热力图,解决
对于基于深度学习的活体检测算法的测试中,因受限于算法的黑盒性,无法准确确定算法
在进行活体检测时关注情况,导致无法有针对地进行攻击的问题;然后,通过对活体检测算
法的非重点关注区域的攻击,生成非重点关注区域的攻击样本,以该非重点关注区域的攻
击样本进行攻击测试,可以大大提高对存在漏洞的活体检测算法的识别率,保证后续算法
应用时的安全性。

附图说明

[0023] 为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅
仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,
还可以根据这些附图获得其它附图。
[0024] 图1是本申请实施例提供的一种活体检测算法的攻击测试系统的示意图;
[0025] 图2是本申请实施例提供的分布式系统200应用于区块链系统的一个可选的结构示意图;
[0026] 图3是本申请实施例提供的一种活体检测算法的攻击测试方法的流程示意图;
[0027] 图4是本申请实施例提供的一种基于各个特征图的反向梯度矩阵生成算法热力图的流程示意图;
[0028] 图5是本说明书实施例提供的一种攻击失败样本对应的算法热力图的灰度图;
[0029] 图6是本申请实施例提供的一种第一攻击测试样本的灰度图;
[0030] 图7是本申请实施例提供的另一种活体检测算法的攻击测试方法的流程示意图;
[0031] 图8是本申请实施例提供的一种对所述攻击失败样本的重点关注区域进行攻击,得到第二攻击测试样本的流程示意图;
[0032] 图9是本说明书实施例提供的一种第二攻击测试样本对应的算法热力图的灰度图;
[0033] 图10是本申请实施例提供的一种活体检测算法的攻击测试装置的流程示意图;
[0034] 图11是本申请实施例提供的一种客户端的结构示意图。

具体实施方式

[0035] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其
他实施例,都属于本申请保护的范围。
[0036] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限
于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产
品或设备固有的其它步骤或单元。
[0037] 人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能
软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度
学习等几大方向。
[0038] 近年来,随着人工智能技术研究和进步,人工智能技术在多个领域得到广泛应用,本申请实施例提供的方案涉及人工智能的机器学习/深度学习等技术,具体通过如下实施
例进行说明:
[0039] 请参阅图1,图1是本申请实施例提供的一种活体检测算法的攻击测试系统的示意图,如图1所示,该系统至少包括设备01和服务器02。
[0040] 本说明书实施例中,设备01可以用于进行活体检测算法的攻击测试,具体的,以图1为例,设备01可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助
理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴
设备等类型的终端设备。在另一些实施例中,设备01也可以包括独立的物理服务器,也可以
包括多个物理服务器构成的服务器集群或者分布式系统,还可以包括提供云服务、云数据
库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN
(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算
服务的云服务器。
[0041] 本说明书实施例中,服务器02可以用于训练活体检测算法;具体的,服务器02可以包括独立的物理服务器,也可以包括多个物理服务器构成的服务器集群或者分布式系统,
还可以包括提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服
务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和
人工智能平台等基础云计算服务的云服务器。
[0042] 本说明书实施例中,用于训练活体检测算法的训练数据,可以从大量网络节点收集,相应的,这些网络节点和用于训练活体检测算法的服务器所形成的系统可以是通过网
络通信的形式连接形成的分布式系统。
[0043] 以分布式系统为区块链系统为例,参见图2,图2是本发明实施例提供的分布式系统200应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的
计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,PeerTo 
Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)
协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节
点,节点包括硬件层、中间层、操作系统层和应用层。
[0044] 本说明书实施例中,设备01在对活体检测算法进行攻击测试时,可以从服务器02加载训练好的活体检测算法。
[0045] 本说明书实施例中,设备01以及服务器02可以通过有线或无线通信方式进行直接或间接地连接,本说明书实施例在此不做限制。
[0046] 此外,需要说明的是,基于本申请实施例提供的活体检测算法可以提供人工智能云服务,人工智能云服务一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这
是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务
进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:
所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能
服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专
属的云人工智能服务。
[0047] 以下介绍本申请一种活体检测算法的攻击测试方法,图3是本申请实施例提供的一种活体检测算法的攻击测试方法的流程示意图,本说明书提供了如实施例或流程图所述
的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实
施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。
在实际中的系统或服务器等产品执行时,可以按照实施例或者附图所示的方法顺序执行或
者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图3所示,所述方法可以包
括:
[0048] S301:获取活体检测算法的攻击失败样本。
[0049] 在实际应用中,常常会利用大量正负样本对活体检测算法进行测试。具体的,针对活体检测算法,正样本可以为活体样本,负样本可以为非活体样本;具体的,活体样本可以
为拍摄的活体图像,非活体样本可以包括翻拍的屏幕中的活体图像、翻拍的屏幕中的活体
视频,翻拍的图片(图片可以为活体打印照片等)中的活体图像等。
[0050] 本说明书实施例中,攻击失败样本可以包括测试结果为非活体的非活体样本。即将活体检测算法能够准确识别的非活体样本作为活体检测算法的攻击失败样本。
[0051] 本说明书实施例中,为了避免仅以非活体样本为攻击样本,对活体检测算法进行测试,覆盖的攻击场景单一,无法准确发现活体检测算法的漏洞的问题;可以结合攻击失败
样本对活体检测算法进行进一步的攻击测试,以提高对活体检测算法的漏洞的发现准确
率,保证活体检测算法的应用安全性。
[0052] S303:获取所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵。
[0053] 本说明书实施例中,在活体检测算法对所述攻击失败样本进行活体检测时,活体检测算法对应的各个模型层会提取攻击失败样本的不同部分的特征,以翻拍的屏幕中的人
脸图像为例,不同的部分特征可以包括眼睛特征、鼻子特征、嘴巴特征等;相应的,每一层可
以对应多个特征图。
[0054] 在实际应用中,用于提取攻击失败样本的不同特征的模型层往往可以包括多个卷积层;本说明书实施例中,预设模型层可以包括活体检测算法对应的最后一个卷积层。
[0055] 具体的,预设模型层的各个特征图的反向梯度矩阵可以表征攻击失败样本不同部分的特征信息。在一个具体的实施例中,获取所述活体检测算法对所述攻击失败样本进行
活体检测时,在预设模型层的各个特征图的反向梯度矩阵包括:
[0056] 1)调用所述活体检测算法,对所述攻击失败样本进行活体检测;
[0057] 2)利用预设钩子函数记录所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵。
[0058] 本说明书实施例中,活体检测算法可以为预先基于具有标注信息的训练样本对预设深度学习算法进行活体检测训练得到的。具体的,标注信息可以包括相应的训练样本是
否为活体样本的标注信息。
[0059] 本说明书实施例中,预设钩子函数可以包括但不限于PyTorch中的hook函数(钩子函数)。
[0060] S305:基于所述各个特征图的反向梯度矩阵生成算法热力图。
[0061] 本说明书实施例中,在得到可以表征攻击失败样本不同的特征信息的各个特征图的反向梯度矩阵之后,可以所述基于所述各个特征图的反向梯度矩阵,生成表征活体检测
算法在对攻击失败样本进行活体检测时的关注情况的算法热力图,具体的,如图4所示,可
以包括:
[0062] S3051:计算每个特征图的反向梯度矩阵的平均值,将所述平均值作为特征图的权重;
[0063] S3053:基于所述特征图的权重对所述各个特征图进行加权求和处理,得到目标矩阵;
[0064] S3055:基于所述目标矩阵中各元素的数值大小,将所述目标矩阵转换成初始热力图;
[0065] S3057:将所述初始热力图与所述攻击失败样本进行叠加处理,得到所述算法热力图。
[0066] 本说明书实施例中,每个特征图的反向梯度矩阵表征攻击失败样本某一部分的特征信息,每一部分对应特征图的反向梯度矩阵的平均值可以反映活体检测算法对该部分的
特征信息的关注程度,相应的,数值越高,活体检测算法对该部分的特征信息的关注程度越
高。
[0067] 进一步的,将每一特征图的反向梯度矩阵的平均值作为权重,对所述各个特征图进行加权求和处理,可以得到表征活体检测算法对攻击失败样本不同部分的关注程度的目
标矩阵;
[0068] 进一步的,将表征活体检测算法对攻击失败样本不同部分的关注程度的目标矩阵转换成初始热力图,在转换热力图的过程中,目标矩阵中数值越高的元素,对应的初始热力
图的颜色越深;反之,目标矩阵中数值越低的元素对应的初始热力图的颜色越浅。
[0069] 进一步的,将初始热力图与所述攻击失败样本进行叠加处理,可以得到表征活体检测算法在对攻击失败样本进行活体检测时的关注情况的算法热力图;且算法热力图中颜
色越深的部分,表征活体检测算法在对攻击失败样本进行活体检测时,对该部分越关注;反
之,算法热力图中颜色越浅的部分,表征活体检测算法在对攻击失败样本进行活体检测时,
对该部分越不关注。
[0070] 本说明书实施例中,在测试过程中,可以将攻击失败样本作为训练好的活体检测算法输入,利用述活体检测算法,对所述攻击失败样本进行活体检测,并结合预设钩子函数
获取活体检测算法对攻击失败样本进行活体检测时,提取的攻击失败样本的各个特征图的
反向梯度矩阵,结合每一特征图的反向梯度矩阵,生成可以表征活体检测算法在对攻击失
败样本进行活体检测时的关注情况的算法热力图,解决对于基于深度学习的活体检测算法
的测试中,因受限于算法的黑盒性,无法准确确定算法在进行活体检测时关注情况,导致无
法有针对地进行攻击的问题。
[0071] S307:基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的非重点关注区域。
[0072] 本说明书实施例中,在得到算法热力图之后,可以将算法热力图中颜色较浅的区域作为非重点关注区域;将算法热力图中颜色较深的区域作为重点关注区域;
[0073] 在一个具体的实施例中,如图5所示,图5是本说明书实施例提供的一种攻击失败样本对应的算法热力图的灰度图,图5中由于是灰度处理后的算法热力图,导致重点关注区
域和非重点关注区域的区分度不高,在实际的算法热力图(彩色)中可见,图中100区域(颜
色较深的区域)为活体检测算法对攻击失败样本的重点关注区域;图中除100区域为活体检
测算法对攻击失败样本的非重点关注区域。另外,为了保护个人隐私,图5中对算法热力图
中人脸区域进行了部分马赛克处理,实际的算法热力图不需要进行马赛克处理。
[0074] S309:对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本。
[0075] 在实际应用中,由于活体检测算法关注的是攻击失败样本的重点关注区域,相应的,无漏洞,活体检测准确率高的活体检测算法,对攻击失败样本的非重点关注区域进行攻
击后,再进行活体检测,是不会对检测结果有影响的。
[0076] 在一个具体的实施例中,对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本可以包括:
[0077] 1)将所述攻击失败样本的非重点关注区域进行遮挡处理;
[0078] 2)将遮挡处理后的攻击失败样本作为所述第一攻击测试样本。
[0079] 本说明书实施例中,可以将部分非重点关注区域进行遮挡处理,也可以将全部非重点关注区域进行遮挡处理。具体的,遮挡处理的方式可以包括但不限于用纸张、塑料挡板
等覆盖非重点关注区域。在一个具体的实施例中,以上述图5对应的攻击失败样本的非重点
关注区域进行遮挡处理为例,如图6所示,图6是本申请实施例提供的一种第一攻击测试样
本的灰度图。图6中用一张白纸遮挡了部分非重点关注区域,其中白纸上的线仅仅是为了便
于测试人员知道整个头部大概在什么区域,在实际应用中也可以不画线,另外,为了保护个
人隐私,图6中对第一攻击测试样本中人脸区域进行了马赛克处理,实际的第一攻击测试样
本不需要进行马赛克处理。
[0080] 此外,需要说明的是,对攻击失败样本的非重点关注区域的攻击不仅限于上述的遮挡处理,在实际应用中,还可以采用其他攻击方式,例如在攻击失败样本的非重点关注区
域进行编辑修改的方式。
[0081] 本说明书实施例中,通过对活体检测算法的非重点关注区域的攻击,生成非重点关注区域的攻击样本,由于算法正常情况下,只关注重点关注区域,所以对非重点关注区域
的攻击,往往对活体检测算法没有影响,以该非重点关注区域的攻击样本进行攻击测试,可
以大大提高对存在漏洞的活体检测算法的识别率。
[0082] S311:基于所述第一攻击测试样本对所述活体检测算法进行攻击测试。
[0083] 本说明书实施例中,在得到第一攻击测试样本之后,可以调用活体检测算法,对第一攻击测试样本进行活体检测,进而实现对活体检测算法进行攻击测试。
[0084] 在另一些实施例中,如图7所示,所述方法还可以包括:
[0085] S313:当攻击测试成功时,确定所述活体检测算法为待改进算法;
[0086] S315:当攻击测试失败时,基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的重点关注区域;
[0087] S317:对所述攻击失败样本的重点关注区域进行攻击,得到第二攻击测试样本;
[0088] S319:基于所述第二攻击测试样本对所述活体检测算法进行攻击测试。
[0089] 本说明书实施例中,当活体检测算法,对第一攻击测试样本进行活体检测的检测结果为活体时,即活体检测算法出现活体误判,相应的,可以确定对非重点关注区域进行攻
击后的攻击测试成功,所述活体检测算法未通过测试,活体检测算法作为待改进算法,需要
进一步的改进。
[0090] 进一步的,当活体检测算法,对第一攻击测试样本进行活体检测的检测结果为非活体时,即在非重点关注区域存在攻击的情况下,活体检测算法依然能准确进行活体检测,
相应的,可以确定对非重点关注区域进行攻击后的攻击测试失败;为了进一步保证后续活
体检测算法应用时的安全性,可以再对重点关注区域进行攻击,生成重点关注区域的攻击
样本(第二攻击测试样本)。
[0091] 在一些实施例中,如图8所示对所述攻击失败样本的重点关注区域进行攻击,得到第二攻击测试样本可以包括:
[0092] S3171:确定所述攻击失败样本的重点关注区域中预设攻击区域;
[0093] S3173:利用所述预设攻击区域对应的图片遮挡所述攻击失败样本的所述预设攻击区域;
[0094] S3175:将遮挡后的攻击失败样本作为所述第二攻击测试样本。
[0095] 本说明书实施例中,预设攻击区域可以为重点关注区域中的任意区域,例如眼睛所在区域、嘴巴所在区域等,以嘴巴所在区域为例,预设攻击区域对应的图片可以为打印的
嘴巴所在区域的照片。
[0096] 此外,需要说明的是,对攻击失败样本的重点关注区域的攻击不仅限于上述的遮挡方式,在实际应用中,还可以采用其他攻击方式,例如在攻击失败样本的重点关注区域增
加修饰物,如眼镜,修改表情等方式。
[0097] 进一步的,当活体检测算法,对第二攻击测试样本进行活体检测的检测结果为活体时,即活体检测算法出现活体误判,相应的,可以确定对重点关注区域进行攻击后的攻击
测试成功,所述活体检测算法未通过测试,活体检测算法作为待改进算法,需要进一步的改
进。
[0098] 在一个具体的实施例中,如图9所示,基于图6对应的第二攻击测试样本对活体检测算法进行攻击测试,生成表征活体检测算法在对第二攻击测试样本进行活体检测时的关
注情况的算法热力图;图9是本说明书实施例提供的一种第二攻击测试样本对应的算法热
力图的灰度图,图9中由于进行了灰度处理,导致重点关注区域和非重点关注区域的区分度
不高,在实际的算法热力图(彩色)中可见,图中900区域(颜色较深的区域)为活体检测算法
对第二攻击测试样本的重点关注区域,即活体检测算法的重点关注区域发生了变化,导致
活体检测算法出现活体误判,相应的,该活体检测算法未通过测试。
[0099] 另外,为了保护个人隐私,图9中同样对算法热力图中人脸区域进行了部分马赛克处理,实际的算法热力图不需要进行马赛克处理。
[0100] 进一步的,当活体检测算法,对第二攻击测试样本进行活体检测的检测结果为非活体时,即在重点关注区域存在攻击的情况下,活体检测算法依然能准确进行活体检测,相
应的,可以确定对重点关注区域进行攻击后的攻击测试失败,可以确定该活体检测算法为
合格算法。
[0101] 由以上本说明书实施例提供的技术方案可见,本说明书将攻击失败样本作为训练好的活体检测算法输入,利用述活体检测算法,对所述攻击失败样本进行活体检测,并在活
体检测算法对攻击失败样本进行活体检测时,提取攻击失败样本的各个特征图的反向梯度
矩阵,结合每一特征图的反向梯度矩阵,生成可以表征活体检测算法在对攻击失败样本进
行活体检测时的关注情况的算法热力图,解决对于基于深度学习的活体检测算法的测试
中,因受限于算法的黑盒性,无法准确确定算法在进行活体检测时关注情况,导致无法有针
对地进行攻击的问题;然后,通过对活体检测算法的非重点关注区域的攻击,生成非重点关
注区域的攻击样本,以该非重点关注区域的攻击样本进行攻击测试,可以大大提高对存在
漏洞的活体检测算法的识别率,保证后续算法应用时的安全性。
[0102] 本申请实施例还提供了一种活体检测算法的攻击测试装置,如图10所示,所述装置包括:
[0103] 攻击失败样本获取模块1010,可以用于获取活体检测算法的攻击失败样本;
[0104] 反向梯度矩阵获取模块1020,用于获取所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵;
[0105] 算法热力图生成模块1030,用于基于所述各个特征图的反向梯度矩阵生成算法热力图,所述算法热力图表征所述活体检测算法在对所述攻击失败样本进行活体检测时的关
注情况;
[0106] 非重点关注区域确定模块1040,用于基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的非重点关注区域;
[0107] 非重点关注区域攻击模块1050,用于对所述攻击失败样本的非重点关注区域进行攻击,得到第一攻击测试样本;
[0108] 第一攻击测试模块1060,用于基于所述第一攻击测试样本对所述活体检测算法进行攻击测试。
[0109] 在一些实施例中,所述反向梯度矩阵获取模块可以包括:
[0110] 活体检测单元,用于调用所述活体检测算法,对所述攻击失败样本进行活体检测;
[0111] 反向梯度矩阵记录单元,用于利用预设钩子函数记录所述活体检测算法对所述攻击失败样本进行活体检测时,在预设模型层的各个特征图的反向梯度矩阵。
[0112] 在一些实施例中,所述算法热力图生成模块可以包括:
[0113] 权重计算单元,用于计算每个特征图的反向梯度矩阵的平均值,将所述平均值作为特征图的权重;
[0114] 加权求和处理单元,用于基于所述特征图的权重对所述各个特征图进行加权求和处理,得到目标矩阵;
[0115] 初始热力图生成单元,用于基于所述目标矩阵中各元素的数值大小,将所述目标矩阵转换成初始热力图;
[0116] 叠加处理单元,用于将所述初始热力图与所述攻击失败样本进行叠加处理,得到所述算法热力图。
[0117] 在一些实施例中,所述非重点关注区域攻击模块可以包括:
[0118] 遮挡处理单元,用于将所述攻击失败样本的非重点关注区域进行遮挡处理;
[0119] 第一攻击测试样本生成单元,用于将遮挡处理后的攻击失败样本作为所述第一攻击测试样本。
[0120] 在一些实施例中,所述装置还包括:
[0121] 第一待改进算法确定模块,用于当攻击测试成功时,确定所述活体检测算法为待改进算法;
[0122] 重点关注区域确定模块,用于当攻击测试失败时,基于所述算法热力图确定所述活体检测算法对所述攻击失败样本的重点关注区域;
[0123] 重点关注区域攻击模块,用于对所述攻击失败样本的重点关注区域进行攻击,得到第二攻击测试样本;
[0124] 第二攻击测试模块,用于基于所述第二攻击测试样本对所述活体检测算法进行攻击测试。
[0125] 在一些实施例中,所述装置还包括:
[0126] 第二待改进算法确定模块,用于在基于所述第二攻击测试样本对所述活体检测算法进行攻击测试之后,当攻击测试成功时,确定所述活体检测算法为待改进算法;
[0127] 合格算法确定模块,用于当攻击测试失败时,确定所述活体检测算法为合格算法。
[0128] 在一些实施例中,所述重点关注区域攻击模块可以包括:
[0129] 预设攻击区域确定单元,用于确定所述攻击失败样本的重点关注区域中预设攻击区域;
[0130] 遮挡单元,用于利用所述预设攻击区域对应的图片遮挡所述攻击失败样本的所述预设攻击区域;
[0131] 第二攻击测试样本生成单元,用于将遮挡后的攻击失败样本作为所述第二攻击测试样本。
[0132] 所述的装置实施例中的装置与方法实施例基于同样的申请构思。
[0133] 本申请实施例提供了一种活体检测算法的攻击测试设备,该活体检测算法的攻击测试设备器包括处理器和存储器,该存储器中存储有至少一条指令、或至少一段程序,该至
少一条指令、或至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的活
体检测算法的攻击测试方法。
[0134] 存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数
据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据
所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括
非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相
应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
[0135] 本申请实施例所提供的方法实施例可以在客户端(移动终端、计算机终端等)、服务器或者类似的运算装置中执行。以运行在客户端上为例,图11是本申请实施例提供的一
种客户端的结构示意图,如图11所示,该客户端可以用于实施上述实施例中提供的信息交
互方法。具体来讲:
[0136] 所述客户端可以包括RF(Radio Frequency,射频)电路1110、包括有一个或一个以上计算机可读存储介质的存储器1120、输入单元1130、显示单元1140、传感器1150、音频电
路1160、WiFi(wireless fidelity,无线保真)模块1170、包括有一个或者一个以上处理核
心的处理器1180、以及电源1190等部件。本领域技术人员可以理解,图11中示出的客户端结
构并不构成对客户端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者
不同的部件布置。其中:
[0137] RF电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1180处理;另外,将涉及上行的数据发送给
基站。通常,RF电路1110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、
用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双
工器等。此外,RF电路1110还可以通过无线通信与网络和其他客户端通信。所述无线通信可
以使用任一通信标准或协议,包括但不限于GSM(Global  System  of  Mobile 
communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无
线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code 
Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子
邮件、SMS(Short Messaging Service,短消息服务)等。
[0138] 存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1120可主要包括
存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存
储数据区可存储根据所述客户端的使用所创建的数据等。此外,存储器1120可以包括高速
随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或
其他易失性固态存储器件。相应地,存储器1120还可以包括存储器控制器,以提供处理器
1180和输入单元1130对存储器1120的访问。
[0139] 输入单元1130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1130可包括触
敏表面1131以及其他输入设备1132。触敏表面1131,也称为触摸显示屏或者触控板,可收集
用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏
表面1131上或在触敏表面1131附近的操作),并根据预先设定的程式驱动相应的连接装置。
可选的,触敏表面1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检
测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从
触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理
器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多
种类型实现触敏表面1131。除了触敏表面1131,输入单元1130还可以包括其他输入设备
1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、
开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0140] 显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及所述客户端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来
构成。显示单元1140可包括显示面板1141,可选的,可以采用LCD(Liquid Crystal 
Display,液晶显示器)、OLED(Organic Light‑Emitting Diode,有机发光二极管)等形式来
配置显示面板1141。进一步的,触敏表面1131可覆盖显示面板1141,当触敏表面1131检测到
在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180
根据触摸事件的类型在显示面板1141上提供相应的视觉输出。其中,触敏表面1131与显示
面板1141可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触
敏表面1131与显示面板1141集成而实现输入和输出功能。
[0141] 所述客户端还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据
环境光线的明暗来调节显示面板1141的亮度,接近传感器可在所述客户端移动到耳边时,
关闭显示面板1141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向
上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别客户端姿
态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、
敲击)等;至于所述客户端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其
他传感器,在此不再赘述。
[0142] 音频电路1160、扬声器1161,传声器1162可提供用户与所述客户端之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器
1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频
电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110以
发送给比如另一客户端,或者将音频数据输出至存储器1120以便进一步处理。音频电路
1160还可能包括耳塞插孔,以提供外设耳机与所述客户端的通信。
[0143] WiFi属于短距离无线传输技术,所述客户端通过WiFi模块1170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11
示出了WiFi模块1170,但是可以理解的是,其并不属于所述客户端的必须构成,完全可以根
据需要在不改变发明的本质的范围内而省略。
[0144] 处理器1180是所述客户端的控制中心,利用各种接口和线路连接整个客户端的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储
器1120内的数据,执行所述客户端的各种功能和处理数据,从而对客户端进行整体监控。可
选的,处理器1180可包括一个或多个处理核心;优选的,处理器1180可集成应用处理器和调
制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处
理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180
中。
[0145] 所述客户端还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及
功耗管理等功能。电源1190还可以包括一个或一个以上的直流或交流电源、再充电系统、电
源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0146] 尽管未示出,所述客户端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,客户端的显示单元是触摸屏显示器,客户端还包括有存储器,以及一个或者一
个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个
以上处理器执行本发明中方法实施例中的指令。
[0147] 本申请的实施例还提供了一种存储介质,所述存储介质可设置于设备之中以保存用于实现方法实施例中一种活体检测算法的攻击测试方法相关的至少一条指令、或至少一
段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例
提供的活体检测算法的攻击测试方法。
[0148] 可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只
读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动
硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0149] 由上述本申请提供的活体检测算法的攻击测试方法、装置、设备、服务器或存储介质的实施例可见,本申请中将攻击失败样本作为训练好的活体检测算法输入,利用述活体
检测算法,对所述攻击失败样本进行活体检测,并在活体检测算法对攻击失败样本进行活
体检测时,提取攻击失败样本的各个特征图的反向梯度矩阵,结合每一特征图的反向梯度
矩阵,生成可以表征活体检测算法在对攻击失败样本进行活体检测时的关注情况的算法热
力图,解决对于基于深度学习的活体检测算法的测试中,因受限于算法的黑盒性,无法准确
确定算法在进行活体检测时关注情况,导致无法有针对地进行攻击的问题;然后,通过对活
体检测算法的非重点关注区域的攻击,生成非重点关注区域的攻击样本,以该非重点关注
区域的攻击样本进行攻击测试,可以大大提高对存在漏洞的活体检测算法的识别率,保证
后续算法应用时的安全性。
[0150] 需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一
些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且
仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连
续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者
可能是有利的。
[0151] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、
设备、服务器和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简
单,相关之处参见方法实施例的部分说明即可。
[0152] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0153] 以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。