一种用于生成添加干扰后的图像的方法和装置与流程

文档序号:31417577发布日期:2022-09-03 17:54阅读:195来源:国知局
一种用于生成添加干扰后的图像的方法和装置与流程

1.本公开涉及深度学习技术领域,尤其涉及图像识别、图像匹配、图像干扰技术领域。


背景技术:

2.深度学习作为近些年最活跃的研究方向,在很多领域都取得了十分令人印象深刻的成绩,比如图像识别、图像匹配、目标检测、文本分析等等。在图像识别和图像匹配等方面,深度学习模型能够达到很好的效果。目前出现了一种图像干扰技术,即对抗样本(adversarial examples),对抗样本是一类能够攻击机器学习模型图像识别效果的样本。它们与真实样本的区别几乎无法用肉眼分辨,但是却会导致模型在识别图像时做出错误的判断。对抗样本的存在会使得深度学习在安全敏感性领域的应用受到威胁。


技术实现要素:

3.本公开提供了一种用于生成添加干扰后的图像的方法和装置及用于人机验证的装置。
4.根据本公开的一方面,提供了一种用于生成添加干扰后的图像的方法,包括:
5.获取第一图像和第二图像;
6.确定该第一图像和该第二图像的图像比较函数;以及,
7.利用对抗样本生成算法对该第一图像和该第二图像的图像比较函数进行计算,得到添加干扰后的图像。
8.根据本公开的另一方面,提供了一种用于生成添加干扰后的图像的装置,包括:
9.获取模块,用于获取第一图像和第二图像;
10.确定模块,用于确定该第一图像和该第二图像的图像比较函数;以及,
11.计算模块,用于利用对抗样本生成算法对该第一图像和该第二图像的图像比较函数进行计算,得到添加干扰后的图像。
12.根据本公开的另一方面,提供了一种电子设备,包括:
13.至少一个处理器;以及
14.与该至少一个处理器通信连接的存储器;其中,
15.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
16.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
17.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
18.根据本公开的另一方面,提供了一种用于人机验证的装置,包括:信息交互单元和本公开中任一实施例的用于生成添加干扰后的图像的装置;其中,
19.信息交互单元,用于从终端设备接收人机验证请求,向用于生成添加干扰后的图像的装置发送图像生成指令,并将用于生成添加干扰后的图像的装置生成的添加干扰后的图像发送至终端设备;
20.用于生成添加干扰后的图像的装置,用于随机生成所述添加干扰后的图像。
21.本公开提出的用于生成添加干扰后的图像的方法,能够对原始图像添加干扰,得到添加干扰后的图像。
22.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
23.附图用于更好地理解本方案,不构成对本公开的限定。其中:
24.图1是根据本公开一实施例的示意图;
25.图2是根据本公开实施例的用于生成添加干扰后的图像的方法200的实现流程图;
26.图3是根据本公开一实施例的用于生成添加干扰后的图像的方法示意图;
27.图4是根据本公开实施例的用于生成添加干扰后的图像的方法的原理性示意图;
28.图5a-5c是根据本公开实施例的用于生成添加干扰后的图像的方法的实现效果示意图;
29.图6是根据本公开实施例的一种用于生成添加干扰后的图像的装置600的结构示意图;
30.图7是根据本公开实施例的一种用于生成添加干扰后的图像的装置700的结构示意图;
31.图8是根据本公开实施例的一种用于人机验证的装置800的结构示意图;
32.图9是根据本公开实施例的一种用于人机验证的装置900的结构示意图;
33.图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。
具体实施方式
34.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
35.目前出现了对抗样本(adversarial examples)技术,对抗样本是一类能够攻击机器学习模型的样本。它们与真实样本的区别几乎无法用肉眼分辨,但是却会导致模型做出错误的判断。对抗样本的存在会使得深度学习在安全敏感性领域的应用受到威胁。
36.因此,如何对原始图像添加干扰、以得到添加干扰后的图像(也可以称为对抗样本),具有非常重要的研究价值。例如,可以将生成的对抗样本作为图像识别模型/图像匹配模型等深度学习模型的训练样本,以提高深度学习模型的鲁棒性。又如,将对抗样本作为用于人机验证的验证图像,能够在一定程度上抵抗网络黑产对人机验证系统的攻击。
37.人机验证(captcha)是一种用于区分用户是计算机还是人的验证方法。人机验证有助于避免垃圾信息、恶意注册等干扰,加强网络安全。通常的人机验证方法是利用图形的
视觉识别来进行验证,常用验证方案有图片字符验证、图片含义验证、旋转图片认证(简称转图验证)等。其实现方式例如,人机验证系统为终端设备显示验证图片,用户通过终端设备向人机验证系统发送该验证图片的含义或所包含的字符、或者将验证图片旋转合适的角度(例如将原先倒置或倾斜的验证图片旋转为正向);人机验证系统根据从终端设备接收到的信息,判断该信息是否是由人通过终端设备发送的,以此来确定该终端设备是否由人控制。网络黑产,是指以互联网为媒介,以网络技术为主要手段,对计算机信息系统安全和网络空间管理秩序造成带来潜在威胁的非法行为。网络黑产通过对用于人机验证的图像进行自动识别,并根据识别结果上报相关信息或操作指令,能够对人机验证系统造成攻击。
38.图1是本公开的一种应用场景示意图,图1是一种人机验证场景。为了抵抗网络黑产对人机验证系统的攻击,人机验证系统的服务器110可以对原始的用于人机验证的图像添加干扰,以得到添加干扰后的图像,由于该添加干扰后的图像与该原始图像依靠肉眼难以分辨(这样就不会影响用户的感官体验)、但是会导致深度学习网络判断错误,因此能够抵御网络黑产利用深度学习网络对人机验证系统造成的攻击。具体地,如果是由人来操控终端设备120的,由于人眼能够分辨出添加干扰后的图像,因此终端设备120能够向服务器110上报正确的信息或操作指令;而如果是由计算机系统自动操控终端设备120的,由于计算机系统所使用的深度学习模型无法正确分辨添加干扰后的图像,因此终端设备120则不能向服务器110上报正确的信息或操作指令。据此,服务器110就可以判断出终端设备的操控者是人还是计算机系统。
39.针对上述场景、以及其他相关场景,本公开实施例提出一种用于生成添加干扰后的图像的方法。图2是根据本公开实施例的用于生成添加干扰后的图像的方法200的实现流程图,包括以下步骤:
40.s210:获取第一图像和第二图像;
41.s220:确定第一图像和第二图像的图像比较函数;以及,
42.s230:利用对抗样本生成算法对该第一图像和第二图像的图像比较函数进行计算,得到添加干扰后的图像。
43.在本公开实施例中的图像可以包括图片,在以下内容中,图像和图片可以等同替换使用。
44.相关技术中,采用原始图像(如记为x)、预先训练的图像分类模型(如记为f)对原始图像的分类结果(如记为f(x))、预先标注的原始图像的标签(如记为y),可以对原始图像添加干扰,生成添加干扰后的图像(即对抗样本)。由于通常情况下分类标签(y)与图像(x)为一对一关系,因此,一般的方法中,一张原始图像只能生成一个或数量很有限的添加干扰后的图像;并且,由于需要人工标注原始图像的标签,也会占用大量的人力和时间成本。
45.相反,在本公开实施例中,对第一图像添加干扰、以生成添加干扰后的图像时,使用的是其他图像(如上述第二图像)。由于图像库中存在大量的图像,因此可以随机选择除第一图像以外的其他图像,用于对第一图像添加干扰,这就大大增加了生成的添加干扰后的图像的数量;并且,由于不需要人工标注原始图像的标签,从而能够节约人力和时间成本。
46.在一些实施方式中,本公开实施例中的获取第一图像和第二图像,可以包括:
47.从预先设置的图像库中提取第一原始图像及第二原始图像;
48.分别对第一原始图像和第二原始图像进行预处理,得到第一图像和第二图像。
49.例如,预处理可以包括裁剪和方向旋转中的至少一项;其中,
50.对第一原始图像进行方向旋转的旋转角度和/或对第二原始图像进行方向旋转的旋转角度为随机选择的。
51.图3是根据本公开一实施例的用于生成添加干扰后的图像的方法示意图,如图3所示,在图像库中选取图像a,并随机选取图像b,对图像a和图像b分别进行裁剪和随机旋转等预处理;采用处理后的图像,利用图像相似度匹配算法/图像相似度匹配模型的函数、以及对抗样本生成算法,可以生成针对图像a的干扰图像;再将干扰图像与预处理后的图像a进行叠加,得到添加干扰后的图像。人机验证系统的服务器端在使用前述方法生成添加干扰后的图像后,可以展示该图像,以用于人机验证。
52.可见,由于两个图像的旋转角度是随机选择的,因此对第一原始图像旋转的角度和对第二原始图像旋转的角度可以相同或不同。如果角度的旋转以1
°
为最小粒度,那么,针对图像库中的一个图像,能够生成的添加干扰后的图像数量等于:360*(图像库中的图像数量-1)。相应地,在转图验证系统中,添加干扰后的图像的数量为:360*360*(图像库中的图像数量-1)。
53.现有技术中,网络黑产对人机验证系统进行攻击时,会反复请求验证图像、以获取到人机验证系统中所有的验证图像;之后,对各个验证图像进行识别和标注;后续在对人机验证系统进行攻击时,当识别出某个验证图像时,可以利用之前所做的标注进行反馈,以达到对人机验证系统攻击的目的。从对本公开实施例的上述分析可见,当应用于转图验证时,本公开实施例提出的用于生成添加干扰后的图像的方法能够生成数量极其庞大的验证图像,如此数量庞大的验证图像难以被网络黑产完全爬取,因此能够有效抵抗网络黑产的攻击。
54.在一些实施方式中,本公开实施例在生成添加干扰后的图像时采用的图像比较函数包括:图像相似度匹配算法的表达函数;
55.其中,图像比较函数的自变量为第一图像中像素的值和第二图像中像素的值,图像比较函数的因变量表示第一图像和该第二图像的差异程度;第一图像和第二图像的差异程度越高,图像比较函数的因变量的值越大。
56.在一些实施方式中,图像相似度匹配算法由对应的图像相似度匹配模型实现。
57.例如,上述图像相似度匹配算法可以包括rgb(红绿蓝)色彩空间像素距离算法、灰度空间像素距离算法等;上述图像相似度匹配模型可以是预先训练的模型。
58.例如,公式(1)是一个简单的图像相似度匹配算法的表达函数,即图像比较函数:
[0059][0060]
其中,表示图像比较函数;
[0061]
a和b分别表示图像a和图像b;
[0062]ai
和bi分别为图像a和图像b中的第i个像素的值,图像a和图像b中分别有n个像素。
[0063]
可见,上述公式(1)中的自变量是第一图像(图像a)中像素的值和第二图像(图像b)中像素的值,因变量表示第一图像(图像a)和第二图像(图像b)的差异程度。第一图像(图
像a)和第二图像(图像b)的差异程度越高,公式(1)的计算结果越大。利用对抗生成算法对这种形式的图像比较函数进行计算,得到的添加干扰后的图像能够在不影响用户感官体验的同时,影响图像识别模型的识别效果。
[0064]
以下以采用对抗样本生成算法中常见的快速梯度符号方法(fgsm,fast gradient sign method)为例,介绍本公开用于生成添加干扰后的图像的一种具体实现方式。
[0065]
快速梯度符号方法(fgsm)是一种基于梯度生成对抗样本的算法,对输入样本故意添加一些人无法察觉的细微的干扰(该干扰可以称为干扰图像),导致图像分类模型对该对抗样本以高置信度给出一个错误的分类结果。
[0066]
一般使用fgsm算法生成干扰图像的方法,可以表示为公式(2):
[0067][0068]
其中,ρ表示生成的干扰图像;
[0069]
ε表示干扰强度,是用于控制干扰大小的自定义参数;
[0070]
表示预先训练的图像分类模型;
[0071]
x表示原始图像;
[0072]
y表示预先对图像x标注的分类标签,一般为数字,代表图片的类别,如1代表猫,2代表狗等;
[0073]
为损失函数,用来计算的预测结果与分类标签之间的差异程度,差异越大,函数的结果越大,例如可以采用交叉熵损失函数;
[0074]
为计算梯度;
[0075]
sign为符号函数,其输入为正数时,结果为1,输入为负数时结果为-1。
[0076]
在生成干扰图像之后,再将干扰图像ρ与原始图像x叠加,得到添加干扰后的图像,如公式(3):
[0077]
x’=ρ+x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0078]
可见,整个干扰图像ρ、以及添加干扰后的图像x’的生成过程需要输入三组参数:图像x、图像对应的分类标签y、干扰强度ε。其中,分类标签通常还要依赖大量的人工标注才能获得。
[0079]
本公开实施例提出的使用fgsm算法生成干扰图像的方法,可以表示为公式(4):
[0080][0081]
其中,ρ表示生成的干扰图像;
[0082]
为图像比较函数(如上述公式(1)),例如可以为图像相似度匹配算法的表达函数或者预先训练好的图像相似度匹配模型的表达函数;图像比较函数需要满足输入的两张图像差异越大,其结果越大;
[0083]
a,b分别表示两张不同的图像,如图像a和图像b。
[0084]
表示计算梯度;
[0085]
sign为符号函数,其输入为正数时,结果为1,输入为负数时结果为-1;
[0086]
ε表示干扰强度,是用于控制干扰大小的自定义参数。
[0087]
同样的,在生成干扰图像之后,可以将干扰图像ρ与原始图像a叠加,得到添加干扰后的图像,如公式(5):
[0088]
a’=ρ+a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0089]
可见,本公开实施例的方式中,整个干扰图像ρ、以及添加干扰后的图像a’的生成过程需要输入三组参数:图像a、图像b、干扰强度ε。由于图像b可以在已有图像库中随机选取,无需人工干预,因此避免了对人工的依赖;并且,由于通过选取不同的图像b就可以生成不同的干扰图像,因此可以生成的干扰图像的数量仅受限于图库的规模,能够生成大量的干扰图像。
[0090]
以对抗样本生成算法采用fgsm为例,在一些实施方式中,利用对抗样本生成算法对该第一图像和第二图像的图像比较函数进行计算,得到添加干扰后的图像,包括:
[0091]
对该第一图像和第二图像的图像比较函数进行梯度计算;
[0092]
利用梯度计算的结果、第一图像中像素的值和第二图像中像素的值中的至少一项,确定第一矩阵;第一矩阵中包括多个元素,多个元素与第一图像中的多个像素一一对应;
[0093]
采用符号函数对第一矩阵进行计算,得到第二矩阵;
[0094]
利用预先设置的干扰强度和第二矩阵,生成干扰图像;
[0095]
将该干扰图像与第一图像进行叠加,得到添加干扰后的图像。
[0096]
其中,对第一图像和第二图像的图像比较函数进行梯度计算可以包括:针对第一图像和第二图像的图像比较函数,分别计算第一图像和第二图像的图像比较函数对各个自变量的偏导数。
[0097]
在本实施例中,第一矩阵如上述公式(4)中的
[0098]
采用符号函数对进行计算,得到的第二矩阵如上述公式(4)中的
[0099]
具体地,计算第一矩阵的方式可以包括:
[0100]
从梯度计算的结果中,分别提取图像比较函数对第一图像中各个像素的偏导数;其中,图像比较函数的自变量包括第一图像的像素;
[0101]
采用图像比较函数对第一图像中各个像素的偏导数、第一图像中像素的值和第二图像中像素的值,计算对应第一图像中各个像素的元素;
[0102]
将对应第一图像中各个像素的元素进行组合,得到第一矩阵。
[0103]
例如,针对图像比较函数(a00,a01,a02,a03,a04,......,b00,b01,b02,....),括号中的数据为函数的自变量,其中,a00、a01、a02、a03、a04
……
分别表示图像a中的各个像素,b00、b01、b02、....分别表示图像b中的各个像素。
[0104]
对该图像比较函数进行梯度计算,可以将该图像比较函数分别对各个自变量求偏导数,其结果为以下内容:
[0105]
[dc/da00,dc/da01,dc/da02,
……
dc/b00,dc/b01,dc/b02....]
[0106]
选取该梯度计算的结果的前半部分,即图像比较函数分别对图像a中的各个像素求偏导数后的结果,即如下内容:
[0107]
[dc/da00,dc/da01,dc/da02,
……
dc/daxx],其中axx为图像a中的最后一个像素。
[0108]
利用上述选取的结果、以及第一图像中像素的值和第二图像中像素的值中,能够计算出一个矩阵(记为第一矩阵),第一矩阵中包括多个元素(元素个数与第一图像中的像
素个数相同),各个元素与第一图像(图像a)中的各个像素一一对应。
[0109]
再采用符号函数(sign)对第一矩阵进行计算,得到第二矩阵;根据符号函数(sign)的特点,第二矩阵中也包括多个元素,各个元素与第一图像(图像a)中的各个像素一一对应,并且各个元素的取值为1或-1。
[0110]
再利用预先设置的干扰强度(ε)和第二矩阵,生成干扰图像;该干扰图像的像素个数与第一图像(图像a)中的像素个数相同,并且每个像素的值为ε或-ε。
[0111]
结合图4介绍本公开实施例的用于生成添加干扰后的图像的方法,图4是根据本公开实施例的用于生成添加干扰后的图像的方法的原理性示意图。如图4所示,从图像库中选取图像a和图像b,在对图像a和图像b进行预处理之后,选择一种图像相似度匹配算法,并采用该图像相似度匹配算法生成图像a和图像b的图像比较函数。选择一种对抗样本生成算法,采用该对抗样本生成算法对图像a和图像b的图像比较函数进行计算,在计算过程中,会计算得到图像a与图像b的相似度、以及该相似度相对于图像a的梯度(图4中显示为“a的梯度”)、该相似度相对于图像b的梯度(图4中显示为“b的梯度”),根据计算结果得到干扰图像。之后,将干扰图像与图像a叠加,得到对图像a添加干扰后的图像(a’)。在一些实施方式中,在计算图像a与图像b的相似度、该相似度相对于图像a的梯度、该相似度相对于图像b的梯度时,可以采用自动微分工具实现。
[0112]
图4中显示的图像相似度匹配算法是一种像素距离算法,在实际应用中可以多次迭代,并选择多种不同的图像相似度匹配算法。并且,在实际应用中可以也多次迭代,选择多种不同的对抗样本生成算法来生成干扰图像。
[0113]
在本技术实施例中,在这里,a与b的梯度实际上代表了两张图片在不同区域内的差异程度。差异越明显的区域,该区域的梯度也就越大。
[0114]
常用的对抗样本生成算法(如fgsm等)也是优先选择梯度最大的区域进行干扰,从而实现在尽量减少对原图的视觉破坏的前提下,对目标算法的输出造成最大的干扰。以上两点保证了最终生成的添加干扰图像在形态上与原始图片内容相关,在视觉上不会过于突兀,从而在保证干扰效果的前提下,能够提供更好的用户体验。
[0115]
以下以采用对抗样本生成算法中常见的迭代快速梯度符号方法(i-fgsm)为例,介绍本公开用于生成添加干扰后的图像的方法的另一种具体实现方式。
[0116]
一般使用i-fgsm算法生成干扰图像的方法,可以表示为公式(6):
[0117]
x
′0=x
[0118][0119]
clip
x,ε
{x

}=min{255,x+ε,max{0,x-ε,x

}}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0120]
其中,α表示每次迭代的干扰强度,是用于控制每次迭代干扰大小的自定义参数;
[0121]
ε为整体的干扰强度;
[0122]
表示预先训练的图像分类模型;
[0123]
x表示原始图像;
[0124]
y表示预先对图像x标注的分类标签,一般为数字,代表图片的类别;
[0125]
为损失函数,用来计算的预测结果与分类标签之间的差异程度,差异越大,函数的结果越大,例如可以采用交叉熵损失函数;
[0126]
为计算梯度;
[0127]
sign为符号函数,其输入为正数时,结果为1,输入为负数时结果为-1。
[0128]
下标0、n、n+1为迭代次数;
[0129]
上标’代表当前迭代的结果;
[0130]
clip为像素值的裁剪函数,保证每个像素的值不超过0~255的范围;
[0131]
可见,整个添加干扰后的图像x’的生成过程需要输入三组参数:图像x、图像对应的分类标签y、干扰强度α、ε。其中,分类标签通常还要依赖大量的人工标注才能获得。
[0132]
本公开实施例提出的使用i-fgsm算法生成干扰图像的方法,可以表示为公式(7):
[0133]a′0=a
[0134]b′0=b
[0135][0136][0137]
clip
a,ε
{a

}=min{255,a+ε,max{0,a-ε,a

}}
[0138]
clip
b,ε
{b

}=min{255,b+ε,max{0,b-ε,b

}}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0139]
其中,为图像比较函数(如上述公式(1)),例如可以为图像相似度匹配算法的表达函数或者预先训练好的图像相似度匹配模型的表达函数;图像比较函数需要满足输入的两张图像差异越大,其结果越大;
[0140]
a,b分别表示两张不同的图像,如图像a和图像b。
[0141]
表示计算梯度;
[0142]
sign为符号函数,其输入为正数时,结果为1,输入为负数时结果为-1;
[0143]
α表示每次迭代的干扰强度,是用于控制每次迭代干扰大小的自定义参数;
[0144]
ε为整体的干扰强度;
[0145]
下标0、n、n+1为迭代次数;
[0146]
上标’代表当前迭代的结果;
[0147]
clip为像素值的裁剪函数,保证每个像素的值不超过0~255的范围;
[0148]
a',b'是分别添加了相应的添加干扰后的图像,在对图像a添加干扰时,生成的a'是对图像a的添加干扰后的图像。在人机识别场景中,如果对图像a添加干扰,则添加干扰后的图像(即a')是最终展示给用户的图像;b'只在算法迭代中使用。
[0149]
可见,本公开实施例的方式中,针对图像a的添加干扰后的图像的生成过程需要输入三组参数:图像a、图像b、干扰强度α、ε、迭代次数。由于图像b可以在已有图像库中随机选取,无需人工干预,因此避免了对人工的依赖;并且,由于通过选取不同的图像b就可以生成不同的干扰图像,因此可以生成的干扰图像的数量仅受限于图库的规模,能够生成大量的干扰图像。
[0150]
以对抗样本生成算法采用i-fgsm为例,在一些实施方式中,利用对抗样本生成算法对该第一图像和第二图像的图像比较函数进行计算,得到添加干扰后的图像,包括:
[0151]
采用以下方式进行多次迭代,并在迭代结束时将最后一次迭代过程中的第一图像作为添加干扰后的图像:
[0152]
对所述第一图像和所述第二图像的图像比较函数进行梯度计算;
[0153]
利用梯度计算的结果、上一次迭代过程中第一图像中像素的值和上一次迭代过程中第二图像中像素的值中的至少一项,确定第三矩阵;所述第三矩阵中包括多个元素,所述多个元素与所述第一图像中的多个像素一一对应;
[0154]
采用符号函数对所述第三矩阵进行计算,得到第四矩阵;
[0155]
利用预先设置的干扰强度和所述第四矩阵,生成本次迭代过程的干扰图像;
[0156]
将所述本次迭代过程的干扰图像与上一次迭代过程中的第一图像叠加,得到叠加后的图像;
[0157]
采用像素值的裁剪函数对所述叠加后的图像进行计算,得到本次迭代过程中的第一图像。
[0158]
在本实施例中,第三矩阵如上述公式(7)中的
[0159]
采用符号函数对进行计算,得到的第四矩阵如上述公式(7)中的
[0160]
其中,对第一图像和第二图像的图像比较函数进行梯度计算可以包括:针对第一图像和第二图像的图像比较函数,分别计算第一图像和第二图像的图像比较函数对各个自变量的偏导数。
[0161]
对图像比较函数进行梯度计算的具体方式,可以参见上述对抗样本生成算法采用i-fgsm的示例中的方式,在此不再赘述。
[0162]
以下以采用对抗样本生成算法中常见的动量迭代快速梯度符号方法(mi-fgsm)为例,介绍本公开用于生成添加干扰后的图像的另一种具体实现方式。
[0163]
一般使用mi-fgsm算法生成干扰图像的方法,可以表示为公式(8):
[0164]
x
′0=x
[0165]
g0=0
[0166][0167]
x

n+1
=x
′n+α
×
sign(g
n+1
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0168]
其中,α表示每次迭代的干扰强度,是用于控制每次迭代干扰大小的自定义参数;
[0169]
g是中间结果,用于对梯度进行处理、使梯度的变化更加平滑,也可以称为冲量;
[0170]
μ用于是控制梯度变化的平滑程度,也可以影响干扰的强度;
[0171]
表示预先训练的图像分类模型;
[0172]
x表示原始图像;
[0173]
y表示预先对图像x标注的分类标签,一般为数字,代表图片的类别;
[0174]
为损失函数,用来计算的预测结果与分类标签之间的差异程度,差异越大,函数的结果越大,例如可以采用交叉熵损失函数;
[0175]
为计算梯度;
[0176]
sign为符号函数,其输入为正数时,结果为1,输入为负数时结果为-1。
[0177]
下标0、n、n+1为迭代次数;
[0178]
上标’代表当前迭代的结果;
[0179]
clip为像素值的裁剪函数,保证每个像素的值不超过0~255的范围;
[0180]
可见,整个添加干扰后的图像x’的生成过程需要输入三组参数:图像x、图像对应的分类标签y、干扰强度α。其中,分类标签通常还要依赖大量的人工标注才能获得。
[0181]
本公开实施例提出的使用mi-fgsm算法生成干扰图像的方法,可以表示为公式(9):
[0182]a′0=a
[0183]b′0=b
[0184]
g0=0
[0185][0186]a′
n+1
=a
′n+α
×
sign(g
n+1a
)
[0187]b′
n+1
=b
′n+α
×
sign(g
n+1b
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0188]
其中,为图像比较函数(如上述公式(1)),例如可以为图像相似度匹配算法的表达函数或者预先训练好的图像相似度匹配模型的表达函数;图像比较函数需要满足输入的两张图像差异越大,其结果越大;
[0189]
a,b分别表示两张不同的图像,如图像a和图像b;
[0190]
g是中间结果,用于对梯度进行处理、使梯度的变化更加平滑,也可以称为冲量;
[0191]
表示计算梯度;
[0192]
sign为符号函数,其输入为正数时,结果为1,输入为负数时结果为-1;
[0193]
‖*‖1表示求一阶范数;
[0194]
α表示每次迭代的干扰强度,是用于控制每次迭代干扰大小的自定义参数;
[0195]
下标0、n、n+1为迭代次数;
[0196]
上标’代表当前迭代的结果;
[0197]
clip为像素值的裁剪函数,保证每个像素的值不超过0~255的范围;
[0198]
a',b'是分别添加了相应的添加干扰后的图像,在对图像a添加干扰时,生成的a'是对图像a的添加干扰后的图像。在人机识别场景中,如果对图像a添加干扰,则添加干扰后的图像(即a')是最终展示给用户的图像;b'只在算法迭代中使用。
[0199]
可见,本公开实施例的方式中,针对图像a的添加干扰后的图像的生成过程需要输入三组参数:图像a、图像b、干扰强度α、迭代次数。由于图像b可以在已有图像库中随机选取,无需人工干预,因此避免了对人工的依赖;并且,由于通过选取不同的图像b就可以生成不同的干扰图像,因此可以生成的干扰图像的数量仅受限于图库的规模,能够生成大量的干扰图像。
[0200]
以对抗样本生成算法采用mi-fgsm为例,在一些实施方式中,利用对抗样本生成算法对该第一图像和第二图像的图像比较函数进行计算,得到添加干扰后的图像,包括:
[0201]
采用以下方式进行多次迭代,并在迭代结束时将最后一次迭代过程中的第一图像作为添加干扰后的图像:
[0202]
对所述第一图像和所述第二图像的图像比较函数进行梯度计算;
[0203]
利用梯度计算的结果、上一次迭代过程中第一图像中像素的值和上一次迭代过程中第二图像中像素的值中的至少一项,确定第五矩阵;所述第五矩阵中包括多个元素,所述多个元素与所述第一图像中的多个像素一一对应;
[0204]
采用所述第五矩阵和上一次迭代过程中的中间矩阵,计算本次迭代过程中的中间矩阵;
[0205]
采用符号函数对所述本次迭代过程中的中间矩阵计算,得到第六矩阵;
[0206]
利用预先设置的干扰强度和所述第六矩阵,生成本次迭代过程的干扰图像;
[0207]
将所述本次迭代过程的干扰图像与上一次迭代过程中的第一图像叠加,得到本次迭代过程中的第一图像。
[0208]
在本示例中,第五矩阵如上述公式(9)中的
[0209]
采用第五矩阵和上一次迭代过程中的中间矩阵,计算本次迭代过程中的中间矩阵如上述公式(9)中的
[0210]
其中,对第一图像和第二图像的图像比较函数进行梯度计算可以包括:针对第一图像和第二图像的图像比较函数,分别计算第一图像和第二图像的图像比较函数对各个自变量的偏导数。
[0211]
对图像比较函数进行梯度计算的具体方式,可以参见上述对抗样本生成算法采用i-fgsm的示例中的方式,在此不再赘述。
[0212]
图5a-5c是采用本技术实施例用于生成添加干扰后的图像的方法的实现效果示意图。如图5a-5c所示,采用第一图像(图5a)和第二图像(图5b)生成干扰图像,再将干扰图像与第一图像进行叠加,得到添加干扰后的图像(图5c)。如图5a-5c所示,干扰图像不会对原始图像的视觉体验造成过大的影响,添加干扰后的图像的显示效果类似于在原始图像上增加了光影或阴影。
[0213]
本公开实施例还提出一种用于生成添加干扰后的图像的装置,图6是根据本公开实施例的一种用于生成添加干扰后的图像的装置600的结构示意图,包括:
[0214]
获取模块610,用于获取第一图像和第二图像;
[0215]
确定模块620,用于确定该第一图像和该第二图像的图像比较函数;以及,
[0216]
计算模块630,用于利用对抗样本生成算法对该第一图像和该第二图像的图像比较函数进行计算,得到添加干扰后的图像。
[0217]
在一些实施方式中,该图像比较函数包括:图像相似度匹配算法的表达函数;
[0218]
该图像比较函数的自变量为该第一图像中像素的值和该第二图像中像素的值,该图像比较函数的因变量表示该第一图像和该第二图像的差异程度;该第一图像和该第二图像的差异程度越高,该图像比较函数的因变量的值越大。
[0219]
在一些实施方式中,图像相似度匹配算法由对应的图像相似度匹配模型实现。
[0220]
在一些实施方式中,该对抗样本生成算法包括fgsm;
[0221]
该计算模块630用于:
[0222]
对该第一图像和该第二图像的图像比较函数进行梯度计算;
[0223]
利用梯度计算的结果、该第一图像中像素的值和该第二图像中像素的值中的至少一项,确定第一矩阵;该第一矩阵中包括多个元素,该多个元素与该第一图像中的多个像素一一对应;
[0224]
采用符号函数对该第一矩阵进行计算,得到第二矩阵;
[0225]
利用预先设置的干扰强度和该第二矩阵,生成该干扰图像;
[0226]
将该干扰图像与该第一图像进行叠加,得到添加干扰后的图像。
[0227]
在一些实施方式中,该对抗样本生成算法包括i-fgsm;
[0228]
该计算模块630用于:
[0229]
采用以下方式进行多次迭代,并在迭代结束时将最后一次迭代过程中的第一图像作为添加干扰后的图像:
[0230]
对该第一图像和该第二图像的图像比较函数进行梯度计算;
[0231]
利用梯度计算的结果、上一次迭代过程中第一图像中像素的值和上一次迭代过程中第二图像中像素的值中的至少一项,确定第三矩阵;该第三矩阵中包括多个元素,该多个元素与该第一图像中的多个像素一一对应;
[0232]
采用符号函数对该第三矩阵进行计算,得到第四矩阵;
[0233]
利用预先设置的干扰强度和该第四矩阵,生成本次迭代过程的干扰图像;
[0234]
将该本次迭代过程的干扰图像与上一次迭代过程中的第一图像叠加,得到叠加后的图像;
[0235]
采用像素值的裁剪函数对该叠加后的图像进行计算,得到本次迭代过程中的第一图像。
[0236]
在一些实施方式中,该对抗样本生成算法包括mi-fgsm;
[0237]
该计算模块630用于:
[0238]
采用以下方式进行多次迭代,并在迭代结束时将最后一次迭代过程中的第一图像作为添加干扰后的图像:
[0239]
对该第一图像和该第二图像的图像比较函数进行梯度计算;
[0240]
利用梯度计算的结果、上一次迭代过程中第一图像中像素的值和上一次迭代过程中第二图像中像素的值中的至少一项,确定第五矩阵;该第五矩阵中包括多个元素,该多个元素与该第一图像中的多个像素一一对应;
[0241]
采用该第五矩阵和上一次迭代过程中的中间矩阵,计算本次迭代过程中的中间矩阵;
[0242]
采用符号函数对该本次迭代过程中的中间矩阵计算,得到第六矩阵;
[0243]
利用预先设置的干扰强度和该第六矩阵,生成本次迭代过程的干扰图像;
[0244]
将该本次迭代过程的干扰图像与上一次迭代过程中的第一图像叠加,得到本次迭代过程中的第一图像。
[0245]
在一些实施方式中,该计算模块630用于,针对该第一图像和该第二图像的图像比较函数,分别计算该第一图像和该第二图像的图像比较函数对各个自变量的偏导数。
[0246]
图7是根据本公开实施例的一种用于生成添加干扰后的图像的装置700的结构示意图,
[0247]
在一些实施方式中,该获取模块610包括:
[0248]
提取子模块611,用于从预先设置的图像库中提取第一原始图像及第二原始图像;
[0249]
预处理子模块612,用于分别对该第一原始图像和该第二原始图像进行预处理,得到该第一图像和该第二图像。
[0250]
在一些实施方式中,该预处理包括裁剪和方向旋转中的至少一项;其中,
[0251]
对该第一原始图像进行方向旋转的旋转角度和/或对该第二原始图像进行方向旋
转的旋转角度为随机选择的。
[0252]
本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
[0253]
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0254]
根据本公开的实施例,本公开还提供了一种用于人机验证的装置,图8是根据本公开实施例的一种用于人机验证的装置800的结构示意图,包括:信息交互单元810和上述实施例中任一该的用于生成添加干扰后的图像的装置820;其中,
[0255]
信息交互单元810,用于从终端设备接收人机验证请求,并将该用于生成添加干扰后的图像的装置生成的添加干扰后的图像发送至终端设备;
[0256]
用于生成添加干扰后的图像的装置820,用于随机生成该添加干扰后的图像。
[0257]
图9是根据本公开实施例的一种用于人机验证的装置900的结构示意图,如图9所示,在一些实施方式中,本公开实施例提出的用于人机验证的装置还可以包括:
[0258]
验证单元930,用于从该终端设备接收对该添加干扰后的图像的识别结果和/或操作指令;根据该识别结果和/或操作指令对该终端设备的执行主体进行人机验证。
[0259]
本公开实施例提出的用于人机验证的装置,能够生成添加干扰后的图像,并将该添加干扰后的图像作为验证图像;由于添加干扰后的图像会对深度学习模型的造成干扰,因此能够降低网络黑产对人机验证系统的攻击。并且,本公开实施例在生成添加干扰后的图像时,采用的是图像库中的任意图像,这会大大增加干扰后的图像的数量,使得网络黑产难以爬取人机验证系统中的所有验证图像(即增加干扰后的图像),从而进一步提升系统安全。
[0260]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0261]
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0262]
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(rom)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(ram)1003中的计算机程序,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0263]
设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0264]
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算
单元1001的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如用于生成添加干扰后的图像的方法。例如,在一些实施例中,用于生成添加干扰后的图像的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到ram 1003并由计算单元1001执行时,可以执行上文描述的用于生成添加干扰后的图像的方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用于生成添加干扰后的图像的方法的装置。
[0265]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0266]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0267]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0268]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
[0269]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0270]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0271]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0272]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1