1.本技术涉及图像处理技术领域,尤其涉及一种对抗样本的生成、模型训练、图像识别方法和装置。
背景技术:2.在图像处理领域中,通常使用模型对图像进行识别。图像识别模型可以基于样本图像和样本图像对应的样本标签训练得到,在对某个待识别图像进行识别时,可以将待识别图像输入图像识别模型,图像识别模型就可以输出对待识别图像的识别结果。
3.目前,为了提高图像识别模型的安全性,避免原始图像的轻微扰动导致图像识别模型得到错误的识别结果,通常需要研究对图像识别模型的攻击方法并生成对抗样本。然而,在相关技术中,生成的对抗样本通常仅对特定的图像识别模型有效,导致对抗样本的泛化能力较差。
技术实现要素:4.本技术实施例提供一种对抗样本的生成、模型训练、图像识别方法和装置,用于解决目前生成的对抗样本的泛化能力较差的问题。
5.为解决上述技术问题,本技术实施例是这样实现的:
6.第一方面,提出一种对抗样本的生成方法,包括:
7.获取第一图像和第二图像,所述第一图像为待攻击的原始图像,所述第二图像为所述第一图像对应的误识别图像;
8.迭代攻击生成中间对抗样本,具体步骤包括:
9.对所述第一图像的部分区域进行屏蔽处理,得到屏蔽图像,每次迭代攻击时屏蔽处理的对应部分区域不同;
10.基于所述屏蔽图像和所述第二图像生成中间对抗样本,所述中间对抗样本为下一次迭代攻击的第一图像;
11.重复执行迭代攻击生成中间对抗样本的步骤,直至所述迭代攻击的次数满足预设次数,将最后一次生成的所述中间对抗样本确定为目标对抗样本。
12.第二方面,提出一种对抗样本的生成装置,包括:
13.获取模块,用于获取第一图像和第二图像,所述第一图像为待攻击的原始图像,所述第二图像为所述第一图像对应的误识别图像;
14.对抗样本生成模块,用于迭代攻击生成中间对抗样本,具体包括:
15.用于对所述第一图像的部分区域进行屏蔽处理,得到屏蔽图像,每次迭代攻击时屏蔽处理的对应部分区域不同;基于所述屏蔽图像和所述第二图像生成中间对抗样本,所述中间对抗样本为下一次迭代攻击的第一图像;
16.所述对抗样本生成模块,用于重复执行迭代攻击生成中间对抗样本,直至所述迭代攻击的次数满足预设次数,将最后一次生成的所述中间对抗样本确定为目标对抗样本。
17.第三方面,提出一种模型训练方法,包括:
18.获取样本图像,所述样本图像中包括目标对抗样本,所述目标对抗样本是基于第一方面所述的方法得到的;
19.将所述样本图像输入初始图像识别模型进行模型训练,得到图像识别模型。
20.第四方面,提出一种模型训练装置,包括:
21.获取模块,用于获取样本图像,所述样本图像中包括目标对抗样本,所述目标对抗样本是基于第一方面所述的方法得到的;
22.训练模块,用于将所述样本图像输入初始图像识别模型进行模型训练,得到图像识别模型。
23.第五方面,提出一种图像识别方法,包括:
24.获取待识别图像;
25.将所述待识别图像输入图像识别模型进行识别,得到识别结果,所述图像识别模型是基于第三方面所述的模型训练方法训练得到的。
26.第六方面,提出一种图像识别装置,包括:
27.获取模块,用于获取待识别图像;
28.图像识别模块,用于将所述待识别图像输入图像识别模型进行识别,得到识别结果,所述图像识别模型是基于第三方面所述的模型训练方法训练得到的。
29.第七方面,本技术提供一种电子设备,包括:
30.处理器;
31.用于存储所述处理器可执行指令的存储器;
32.其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的方法,或实现如第三方面所述的方法,或实现如第五方面所述的方法。
33.第八方面,本技术提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的方法,或执行如第三方面所述的方法,或执行如第五方面所述的方法。
34.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
35.在迭代攻击生成中间对抗样本时,获取原始待攻击的第一图像以及对第一图像进行误识别时对应的第二图像,对第一图像中的部分区域进行屏蔽处理得到屏蔽图像,基于屏蔽图像和第二图像生成中间对抗样本,重复执行预设次数用于生成中间对抗样本的步骤,即迭代攻击预设次数,每次迭代攻击生成的中间对抗样本为下一次迭代攻击的第一图像,且每次迭代攻击时对第一图像进行屏蔽处理的部分区域不同,将最后一次迭代攻击生成的中间对抗样本确定为目标对抗样本。这样,由于在对图像进行识别时,图像识别模型的识别结果通常会依赖于图像中的某个显著性区域,因此,本技术实施例在通过迭代攻击的方式生成对抗样本时,通过每次迭代攻击时对图像中的不同区域进行屏蔽,可以起到一种正则化的作用,防止过拟合,使得最终生成的目标对抗样本可以不依赖于原始图像中的任一区域,从而提高对抗样本的泛化能力。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
37.图1是本技术的一个实施例对抗样本的生成方法的流程示意图;
38.图2是本技术的一个实施例掩码图像的示意图;
39.图3是本技术的一个实施例对抗样本的生成方法的示意图;
40.图4是本技术的一个实施例模型训练方法的示意图;
41.图5是本技术的一个实施例图像识别方法的示意图;
42.图6是本技术的一个实施例电子设备的结构示意图;
43.图7是本技术的一个实施例对抗样本的生成装置的结构示意图;
44.图8是本技术的一个实施例电子设备的结构示意图;
45.图9是本技术的一个实施例模型训练装置的结构示意图;
46.图10是本技术的一个实施例电子设备的结构示意图;
47.图11是本技术的一个实施例图像识别装置的结构示意图。
具体实施方式
48.为了使本技术领域的人员更好地理解本技术中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
49.本说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应理解这样使用的数据在适当情况下可以互换,以便本说明书实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,本说明书以及权利要求书中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
50.目前,在基于图像识别模型进行图像识别的场景中,为了提高图像识别模型的安全性,通常需要生成对抗样本。对抗样本通常是指一个经过微小调整就可以让机器学习算法输出错误结果的输入样本。在图像识别中,对抗样本可以理解为原来被图像识别模型分类为一个类的图片,经过细微的改动后,会被图像识别模型误分成另一个类。
51.相关技术中,在生成对抗样本时,大多采用白盒攻击或黑盒攻击的方法生成对抗样本。然而,由于这种方法在生成对抗样本时,通常是对图像识别模型进行图像识别时所依赖的某个图像区域进行屏蔽处理,并基于屏蔽后的图像生成对抗样本,因此,生成的对抗样本通常仅对特定的图像识别模型有效,导致图像识别模型的泛化能力较差。
52.为了解决上述技术问题,本技术实施例提供一种对抗样本的生成方法和装置,在迭代攻击生成对抗样本时,获取原始待攻击的第一图像以及对第一图像进行误识别时对应的第二图像,对第一图像中的部分区域进行屏蔽处理得到屏蔽图像,基于屏蔽图像和第二图像生成中间对抗样本,重复执行预设次数迭代攻击生成中间对抗样本的步骤,即迭代攻击满足预设次数,每次迭代攻击生成的中间对抗样本为下一次迭代攻击的第一图像,且每
次迭代攻击时对第一图像进行屏蔽处理的部分区域不同,将最后一次迭代攻击生成的中间对抗样本确定为目标对抗样本。这样,由于在对图像进行识别时,图像识别模型的识别结果通常会依赖于图像中的某个显著性区域,因此,本技术实施例在通过迭代攻击的方式生成对抗样本时,通过每次迭代攻击时对图像中的不同区域进行屏蔽,可以起到一种正则化的作用,防止过拟合,使得最终生成的目标对抗样本可以不依赖于原始图像中的任一区域,从而提高对抗样本的泛化能力。
53.考虑到对同一张图像进行识别时,不同图像识别模型的识别结果通常会依赖于图像中不同的显著性区域,因此,在通过迭代攻击的方式生成对抗样本的过程中,每次进行迭代攻击时,可以对上次迭代攻击时生成的对抗样本中的不同区域进行屏蔽,从而可以起到一种正则化的作用,防止过拟合,提高对抗样本的泛化能力。具体而言,在迭代攻击生成中间对抗样本时,获取原始待攻击的第一图像以及对第一图像进行误识别时对应的第二图像,对第一图像中的部分区域进行屏蔽处理得到屏蔽图像,基于屏蔽图像和第二图像生成中间对抗样本,重复执行预设次数迭代攻击生成中间对抗样本的步骤,即迭代攻击预设次数,每次迭代攻击生成的中间对抗样本为下一次迭代攻击的第一图像,且每次迭代攻击时对第一图像进行屏蔽处理的部分区域不同,将最后一次迭代攻击生成的中间对抗样本确定为目标对抗样本。这样,由于在每次迭代攻击时可以对上次迭代攻击生成的中间对抗样本中的不同区域进行屏蔽,因此,可以起到一种正则化的作用,防止过拟合,使得最终生成的目标对抗样本可以不依赖于原始图像中的任一区域,从而可以提高对抗样本的泛化能力。
54.以下结合附图,详细说明本技术各实施例提供的技术方案。
55.图1是本技术的一个实施例对抗样本的生成方法的流程示意图。所述方法如下所述。
56.s102:获取第一图像和第二图像,第一图像为待攻击的原始图像,第二图像为第一图像对应的误识别图像。
57.在生成目标对抗样本时,可以获取待攻击的原始图像以及对原始图像进行误识别的情况下将原始图像由某个类别误识别为其他类别时的误识别图像,这里为了便于区分,可以将原始图像表示为第一图像,将原始图像对应的误识别图像表示为第二图像。
58.可选地,上述第一图像和第二图像可以均为人脸图像,且第一图像中包含的人脸对象与第二图像中包含的人脸对象不同,在对第一图像误识别的情况下,会将第一图像中的人脸识别为第二图像中的人脸。比如,第一图像中包含的人脸为用户a的人脸,第二图像中包含的人脸为用户b的人脸,在没有误识别的情况下,对第一图像的人脸识别结果为用户a,在误识别的情况下,对第一图像的人脸识别结果为用户b。
59.可选地,上述第一图像和第二图像也可以是非人脸图像,即第一图像和第二图像中均包含某个对象,但该对象不是人脸,且,第一图像中包含的对象和第二图像中包含的对象不同,在对第一图像误识别的情况下,会将第一图像中的对象识别为第二图像中的对象。比如,第一图像中包含熊猫,第二图像中包含通臂猿,在没有误识别的情况下,对第一图像的识别结果为熊猫,在误识别的情况下,对第一图像的识别结果为通臂猿。
60.需要说明的是,上述第一图像和第二图像仅以人脸图像和非人脸图像为例进行说明,在其他可能的实现方式中,第一图像和第二图像还可以是其他图像,这里不做具体限定。
61.s104:迭代攻击生成中间对抗样本,具体步骤包括:对第一图像的部分区域进行屏蔽处理,得到屏蔽图像,每次迭代攻击时屏蔽处理的对应部分区域不同;基于屏蔽图像和第二图像生成中间对抗样本,中间对抗样本为下一次迭代攻击的第一图像。
62.s106:重复执行迭代攻击生成中间对抗样本的步骤,直至迭代攻击的次数满足预设次数,将最后一次生成的中间对抗样本确定为目标对抗样本。
63.在获取到第一图像和第二图像后,可以基于第一图像和第二图像生成中间对抗样本。在得到中间对抗样本后,可以将该中间对抗样本作为第一图像,并重复执行基于第一图像和第二图像生成中间对抗样本的步骤。如此重复执行迭代攻击生成中间对抗样本的步骤预设次数(可以为k次,k为大于1的整数,具体可以自定义或根据实际需求进行设置),每次执行迭代攻击生成中间对抗样本的步骤均可以视为一次迭代攻击,在重复执行k次生成中间对抗样本的步骤后,即在k次迭代攻击后,可以将最后一次迭代攻击生成的中间对抗样本确定为目标对抗样本,该目标对抗样本即为最终需要生成的对抗样本。
64.在重复执行k次迭代攻击生成中间对抗样本的步骤时,以其中一次为例,具体地,首先可以对第一图像的部分区域进行屏蔽处理得到屏蔽图像,然后基于屏蔽图像和第二图像生成中间对抗样本。其中,对第一图像的部分区域进行屏蔽处理可以是删除该部分区域中的图像信息。本实施例中,每次迭代攻击时对第一图像(第一次迭代攻击时第一图像为s102中获取到的第一图像,在第k次迭代时第一图像为第k-1次迭代攻击时生成的中间对抗样本)进行屏蔽处理的图像区域不同,从而可以起到一种正则化的作用,防止过拟合,使得最终生成的目标对抗样本可以不依赖于原始图像中的任一区域,从而提高对抗样本的泛化能力。
65.可选地,在对第一图像的部分区域进行屏蔽时,屏蔽的该部分区域中可以包括多个区域,每个区域可以是矩形区域,且多个区域在位置上不连续。在k次迭代攻击的过程中,每次迭代攻击时可以随机对第一图像中的多个不连续的区域进行屏蔽处理,且每次迭代攻击时屏蔽处理的多个区域的大小和/或位置不同。这样,由于屏蔽的图像区域为第一图像中在位置上非连续的多个区域,因此,可以避免删除第一图像中的一整块连续区域导致删除过多的图像信息或保留过多的图像信息,同时避免生成的目标对抗样本过于依赖屏蔽区域的大小和/或位置的问题。
66.可选地,在一种更为具体的实现方式中,对第一图像中的部分区域进行屏蔽处理,得到屏蔽图像,具体可以包括以下s1041至s1043:
67.s1041:获取屏蔽网格,屏蔽网格中包括多个网格单元。
68.这里的每个网格单元可以是矩形或正方形。多个网格单元的数量可以是m
×
n,即屏蔽网格在长度方向上有m列网格单元,在宽度方向上有n行网格单元,m和n均为大于1的整数。其中,为了便于对第一图像进行屏蔽处理,屏蔽网格的大小可以与第一图像的大小相同。
69.s1042:在每个网格单元中选取矩形区域,并将选取的矩形区域的像素值置0,以及将网格单元中除矩形区域以外的其他区域的像素值置1,得到屏蔽网格对应的掩码图像。
70.在获取屏蔽网格后,针对屏蔽网格中的每个网格单元,可以在每个网格单元中选择一个矩形区域,该矩形区域的面积需要小于网格单元的面积。比如,网格单元的长为a个像素,宽为b个像素,矩形区域的长为x个像素,宽为y个像素,x需要小于a,y需要小于b,a、b、
x和y的具体大小可以根据实际需求进行设置。
71.在每个网格单元中选取矩形区域后,可以将每个网格单元中选取的矩形区域的像素值置0,以及将网格单元中除矩形区域以外的其他区域的像素值置1。在对每个网格单元进行相同的处理后,可以得到与屏蔽网格对应的掩码图像。掩码图像为二值图像,即掩码图像中包括的像素值为0和1。
72.s1043:基于掩码图像对第一图像进行掩码处理,得到屏蔽图像。
73.在得到掩码图像后,可以基于掩码图像对第一图像进行掩码处理。具体而言,可以将掩码图像和第一图像进行叠加,若掩码图像的像素值为0,则可以将第一图像中对应位置上的图像信息舍弃,若掩码图像的像素值为1,则可以将第一图像中对应位置上的图像信息保留。在基于掩码图像对第一图像进行掩码处理后,可以得到屏蔽图像。
74.需要说明的是,上述s1041至s1043记载的方法是进行一次迭代攻击时对第一图像的屏蔽方法,在进行k次迭代攻击时,为了保证每次迭代攻击时屏蔽的区域不同,针对每个网格单元,可以在每次迭代攻击时在网格单元中选取不同的矩形区域,即每次迭代攻击时在每个网格单元中选取的矩形区域的位置和/或大小不同,从而可以得到多个不同的掩码图像,不同的掩码图像可以用于在不同次迭代攻击中对不同的第一图像进行屏蔽处理。
75.为了便于理解上述s1041至s1043中记载的对第一图像进行屏蔽处理得到屏蔽图像的技术方案,可以参见图2。图2是本技术的一个实施例掩码图像的示意图。
76.图2中包括两个掩码图像,分别为掩码图像1和掩码图像2。在生成掩码图像1时,具体地,可以获取图2左上角所示的屏蔽网格,该屏蔽网格中包括3
×
3共9个网格单元,每个网格单元为正方形且边长为d个像素。在获取到屏蔽网格后,针对每个网格单元,以左上角的第一个网格单元为例,可以从中选取长度为x个像素、宽度为y个像素的矩形区域,并将该矩形区域的像素值置0(图2以黑色表示像素值0),以及将网格单元中除该矩形区域以外的其他区域的像素值置1(图2以白色表示像素值1)。在对9个网格单元进行相同的处理后,可以得到图2所示的掩码图像1。
77.掩码图像1可以在第z(z为大于等于1且小于k的整数)次迭代攻击时,对第一图像(即第z-1次迭代攻击时生成的中间对抗样本)进行屏蔽。假设第一图像的大小与掩码图像1的大小相同,那么,第一图像中被屏蔽的区域即为与掩码图像1中的黑色区域对应的图像区域。
78.当第z+1迭代攻击并对第z次迭代攻击时生成的中间对抗样本进行屏蔽处理时,如图2所示,可以改变屏蔽网格中的矩形区域。如图2所示,仍以9个网格单元中左上角的第一个网格单元为例,可以将矩形区域在水平方向(即长度方向)上向右偏移d1个像素,d1位于区间[1,d-1]内,并将该矩形区域的像素值置0(图2以黑色表示像素值0),将网格单元中除该矩形区域以外的其他区域的像素值置1(图2以白色表示像素值1)。在对9个网格单元进行相同的处理后,可以得到图2所示的掩码图像2。
[0079]
掩码图像2可以在第z+1次迭代攻击时,对第一图像(即第z次迭代攻击时生成的中间对抗样本)进行屏蔽处理。假设第一图像的大小与掩码图像2的大小相同,那么,第一图像中被屏蔽的区域即为与掩码图像2中的黑色区域对应的图像区域。
[0080]
从图2所示的掩码图像1和2可以看出,每次对第一图像进行迭代攻击时,由于可以基于不同的掩码图像进行屏蔽处理,因此,可以实现每次迭代攻击时对第一图像的不同区
域进行屏蔽的目的。
[0081]
需要说明的是,图2仅以屏蔽网格中包括9个网络单元,且在改变矩形区域时向右偏移d1个像素为例进行说明,在其他实现方式中,屏蔽网格中包括的网格单元的数量可以有更多个,且每次改变矩形区域时,可以向下偏移矩形区域,或在不偏移矩形区域的基础上改变矩形区域的大小,等等,只要保证每次迭代攻击时选取的矩形区域不同即可。
[0082]
可选地,作为一个实施例,在对第一图像中的部分区域进行屏蔽时,可以采用基于gridmask的信息屏蔽方法,该基于gridmask的信息屏蔽方法可以针对均匀间隔的多个区域进行屏蔽,并通过网格位置的偏移,屏蔽小矩形边长的随机调节,有效地进行了信息的正则化,防止过拟合,提高泛化能力。其中,基于gridmask的信息屏蔽方法的具体实现方式与图2所示的实施例相似,这里不再重复说明。
[0083]
在基于屏蔽图像和第二图像生成中间对抗样本时,可选地,作为一个实施例,可以包括以下s1044和s1045:
[0084]
s1044:基于待攻击模型对屏蔽图像进行特征提取得到第一特征,以及基于待攻击模型对第二图像进行特征提取得到第二特征。
[0085]
本实施例基于待攻击模型对屏蔽图像和第二图像进行特征提取,可以表征对第一图像的k次迭代攻击为白盒攻击。待攻击模型可以是图像识别模型的替代模型,该替代模型可以是在未知图像识别模型的模型参数的情况下训练得到的替代模型,也可以是在已知图像识别模型的部分模型参数的情况下训练得到的替代模型。替代模型的训练方法可以参见现有技术中记载的图像识别模型的训练方法,这里不再详细说明。
[0086]
将屏蔽图像输入待攻击模型后,待攻击模型可以对屏蔽图像进行图像特征提取得到第一特征,将第二图像输入待攻击模型后,待攻击模型可以对第二图像进行图像特征提取得到第二特征。
[0087]
s1045:基于第一特征、第二特征以及上次迭代攻击时生成的中间对抗样本,生成当前次迭代攻击的中间对抗样本。
[0088]
需要说明的是,若本次迭代攻击为第一次迭代攻击,则在生成当前次迭代攻击的中间对抗样本时,上次迭代攻击时生成的中间对抗样本可以是s102中获取的第一图像。
[0089]
可选地,作为一个实施例,在基于第一特征、第二特征以及上次迭代攻击时生成的中间对抗样本,生成当前次迭代攻击的中间对抗样本时,可以包括以下步骤:
[0090]
根据所述第一特征和所述第二特征的损失函数,确定所述上次迭代攻击时生成的中间对抗样本的梯度;
[0091]
基于所述梯度和所述上次迭代攻击时生成的中间对抗样本,生成所述当前次迭代攻击的中间对抗样本。
[0092]
具体而言,上述生成当前次迭代攻击的中间对抗样本的步骤可以通过以下公式表示:
[0093][0094]
其中,x1为上次迭代攻击时生成的中间对抗样本,x2为本次迭代攻击时生成的中间对抗样本,f(m
⊙
x1)为屏蔽图像对应的第一特征,f(y)为第二图像对应的第二特征,l为损失函数,为损失函数相较于x1的梯度,α为预设参数。
[0095]
在基于上述步骤生成当前次迭代攻击的中间对抗样本后,可以基于该中间对抗样本进行下一次迭代攻击,如此循环执行k次迭代攻击后,将最后一次迭代攻击生成的中间对抗样本确定为目标对抗样本。
[0096]
本实施例中,对第一图像的k次迭代攻击的过程可以视为不断改变第一图像中的图像信息,将其转化为对抗样本,使得图像识别模型将对抗样本误识别为第二图像的过程。其中,在对第一图像进行k次迭代攻击后,最终得到的目标对抗样本从外观上看与原始的第一图像的相似度较高,但是提取得到的图像特征与第二图像的图像特征相似度高,能够使得图像识别模型将目标对抗样本误识别为第二图像。
[0097]
由于在对图像进行识别时,图像识别模型的识别结果通常会依赖于图像中的某个显著性区域,因此,本技术实施例在通过迭代攻击的方式生成中间对抗样本时,通过每次迭代攻击时对图像中的不同区域进行屏蔽,可以起到一种正则化的作用,防止过拟合,使得最终生成的目标对抗样本可以不依赖于原始图像中的任一区域,从而提高对抗样本的泛化能力。
[0098]
为了便于理解本技术实施例提供的技术方案,可以参见图3。图3是本技术的一个实施例对抗样本的生成方法的示意图。图3以人脸图像的场景为例进行说明,图3所示的实施例可以包括以下步骤。
[0099]
步骤1:获取待攻击的人脸图像x、替代模型f、使得替代模型f将对抗样本误识别为其他目标人物的真实比对人脸图像y,指定迭代攻击的总次数为k,k为大于1的整数。
[0100]
步骤2:迭代索引t=0,中间对抗样本为x。
[0101]
步骤3:对上次迭代攻击时生成的对抗样本中的部分区域进行屏蔽处理,生成gridmask屏蔽图像m。
[0102]
具体地,首先,预设屏蔽网格,屏蔽网格中包括多个网格单元,每个网格单元为正方形且边长为d个像素,针对每个网格单元,将该网格单元内左上角长宽分别为x,y个像素的矩形区域的像素值置0,该网格单元内除矩形区域外的其它区域的像素值置1,并预设该矩形区域的偏移量为δx和δy,δx和δy可以根据实际需求进行设置。
[0103]
其次,基于偏移量为δx将矩形区域在x方向上在[0,d-1]区间内随机偏移,基于偏移量为δy将矩形区域在y方向上在[0,d-1]区间内随机偏移,得到掩码图像,x、y、δx和δy都可变。
[0104]
最后,基于掩码图像对上次迭代攻击时生成的中间对抗样本中的部分区域进行掩码处理,得到屏蔽图像m。
[0105]
步骤4:基于将中间对抗样本x1更新为x2(t=0时,x1=x)。
[0106]
其中,x1为上次迭代时生成的中间对抗样本,x2为本次迭代生成的中间对抗样本,f(m
⊙
x1)为基于f对m进行特征提取后得到的第一特征,f(y)为基于f对y进行特征提取后得到的第二特征,l为损失函数,为损失函数相较于x1的梯度,α为预设参数。
[0107]
步骤5:迭代索引t=t+1,并判断t与k的大小。
[0108]
若t《k,则转到步骤3(执行k次白盒迭代攻击),若t=k,则结束迭代,将最后一次迭代得到的x2作为目标对抗样本。
[0109]
通过上述步骤1至步骤5,最终可以生成目标对抗样本。其中,步骤1至步骤5的具体实现方式可以参见图1所示实施例中相应步骤的具体实现,这里不再重复说明。
[0110]
可选地,作为一个实施例,在对第一图像进行k次迭代攻击的过程中,在生成屏蔽图像时,除了对第一图像中的部分区域进行屏蔽处理外,还可以对第一图像进行其他处理。比如,在每次迭代攻击时,可以对第一图像进行模糊处理和部分区域的屏蔽处理,或者,也可以是每次迭代攻击时,对第一图像进行缩放处理和部分区域的屏蔽处理,等。这样,可以进一步提高最终生成的目标对抗样本的泛化能力。
[0111]
可选地,作为一个实施例,本技术实施例提供的技术方案还可以扩展到采用多替代模型进行白盒攻击的场景(图1至图3所示的实施例是采用单个替代模型进行白盒攻击的场景)。其中,在采用多替代模型进行白盒攻击时,具体实现方式与本技术实施例提供的技术方案类似,不同之处在于生成中间对抗样本时采用的公式不同。具体而言,在采用多替代模型进行白盒攻击时,可以将本技术实施例中生成中间对抗样本的公式修改为修改为f1至fn为采用的多个替代模型。
[0112]
基于本技术实施例提供的技术方案,在迭代攻击生成中间对抗样本时,获取原始待攻击的第一图像以及对第一图像进行误识别时对应的第二图像,对第一图像中的部分区域进行屏蔽处理得到屏蔽图像,基于屏蔽图像和第二图像生成中间对抗样本,重复执行k次(满足预设次数)迭代攻击生成中间对抗样本的步骤,即迭代攻击k次,每次迭代攻击生成的中间对抗样本为下一次迭代攻击的第一图像,且每次迭代攻击时对第一图像进行屏蔽处理的部分区域不同,将最后一次迭代攻击生成的中间对抗样本确定为目标对抗样本。这样,由于在对图像进行识别时,图像识别模型的识别结果通常会依赖于图像中的某个显著性区域,因此,本技术实施例在通过迭代攻击的方式生成对抗样本时,通过每次迭代攻击时对图像中的不同区域进行屏蔽,可以起到一种正则化的作用,防止过拟合,使得最终生成的目标对抗样本可以不依赖于原始图像中的任一区域,从而提高对抗样本的泛化能力。
[0113]
图4是本技术的一个实施例模型训练方法的流程示意图。所述方法如下所述。
[0114]
s402:获取样本图像,样本图像中包括目标对抗样本。
[0115]
其中,目标对抗样本是基于图1所述的对抗样本的生成方法得到的,具体实现方式可以参见图1所示的实施例,这里不再重复描述。
[0116]
s404:将样本图像输入初始图像识别模型进行模型训练,得到图像识别模型。
[0117]
基于样本图像训练图像识别模型的具体实现方式可以参见相关技术中的具体实现,这里不再详细说明。
[0118]
本技术实施例在训练图像识别模型时,由于可以将对抗样本作为样本图像进行模型训练,因此,可以使得训练得到的图像识别模型不易被攻击,从而提高图像识别模型的安全性。此外,由于在生成对抗样本的过程中,每次迭代时可以对图像中的不同区域进行屏蔽处理,因此,可以起到一种正则化的作用,防止过拟合,最终生成的对抗样本可以不依赖于原始图像中的任一区域,从而提高对抗样本的泛化能力。
[0119]
图5是本技术的一个实施例图像识别方法的流程示意图。所述方法如下所述。
[0120]
s502:获取待识别图像。
[0121]
s504:将待识别图像输入图像识别模型进行识别,得到识别结果。
[0122]
其中,图像识别模型是基于图4所述的模型训练方法得到的,具体实现方式可以参见图4所示的实施例,这里不再重复描述。
[0123]
本技术实施例在对待识别图像进行识别时,由于使用的图像识别模型是基于包含对抗样本的样本图像训练得到,因此,图像识别模型的安全性较高,基于图像识别模型得到的识别结果的准确度较高。此外,由于在生成对抗样本的过程中,每次迭代时中可以对图像中的不同区域进行屏蔽处理,因此,可以起到一种正则化的作用,防止过拟合,最终生成的对抗样本可以不依赖于原始图像中的任一区域,从而提高对抗样本的泛化能力。
[0124]
上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0125]
图6是本技术的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0126]
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0127]
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0128]
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成对抗样本的生成装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0129]
获取第一图像和第二图像,所述第一图像为待攻击的原始图像,所述第二图像为所述第一图像对应的误识别图像;
[0130]
迭代攻击生成中间对抗样本,具体步骤包括:
[0131]
对所述第一图像的部分区域进行屏蔽处理,得到屏蔽图像,每次迭代攻击时屏蔽处理的对应部分区域不同;
[0132]
基于所述屏蔽图像和所述第二图像生成中间对抗样本,所述中间对抗样本为下一次迭代攻击的第一图像;
[0133]
重复执行迭代攻击生成中间对抗样本的步骤,直至所述迭代攻击的次数满足预设次数,将最后一次生成的所述中间对抗样本确定为目标对抗样本。
[0134]
上述如本技术图6所示实施例揭示的对抗样本的生成装置执行的方法可以应用于
处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0135]
该电子设备还可执行图1至图3的方法,并实现对抗样本的生成装置在图1至图3所示实施例中的功能,本技术实施例在此不再赘述。
[0136]
当然,除了软件实现方式之外,本技术的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0137]
本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1至图3所示实施例的方法,并具体用于执行以下操作:
[0138]
获取第一图像和第二图像,所述第一图像为待攻击的原始图像,所述第二图像为所述第一图像对应的误识别图像;
[0139]
迭代攻击生成中间对抗样本,具体步骤包括:
[0140]
对所述第一图像的部分区域进行屏蔽处理,得到屏蔽图像,每次迭代攻击时屏蔽处理的对应部分区域不同;基于所述屏蔽图像和所述第二图像生成中间对抗样本,所述中间对抗样本为下一次迭代攻击的第一图像;
[0141]
重复执行迭代攻击生成中间对抗样本的步骤,直至所述迭代攻击的次数满足预设次数,将最后一次生成的所述中间对抗样本确定为目标对抗样本。
[0142]
图7是本技术的一个实施例对抗样本的生成装置70的结构示意图。请参考图7,在一种软件实施方式中,所述对抗样本的生成装置70可包括:获取模块71和对抗样本生成模块72,其中:
[0143]
获取模块71,用于获取第一图像和第二图像,所述第一图像为待攻击的原始图像,所述第二图像为所述第一图像对应的误识别图像;
[0144]
对抗样本生成模块52,用于迭代攻击生成中间对抗样本,具体包括:
[0145]
对所述第一图像的部分区域进行屏蔽处理,得到屏蔽图像,每次迭代攻击时屏蔽处理的对应部分区域不同;基于所述屏蔽图像和所述第二图像生成中间对抗样本,所述中间对抗样本为下一次迭代攻击的第一图像;
[0146]
所述对抗样本生成模块52,用于重复执行迭代攻击生成中间对抗样本,直至所述迭代攻击的次数满足预设次数,将最后一次生成的所述中间对抗样本确定为目标对抗样本。
[0147]
可选地,作为一个实施例,所述对抗样本生成模块52用于对所述第一图像的部分区域进行屏蔽处理,得到屏蔽图像,所述对抗样本生成模块52具体用于包括:
[0148]
获取屏蔽网格,所述屏蔽网格中包括多个网格单元;
[0149]
在每个所述网格单元中选取矩形区域,并将选取的所述矩形区域的像素值置0,以及将所述网格单元中除所述矩形区域以外的其他区域的像素值置1,得到所述屏蔽网格对应的掩码图像;
[0150]
基于所述掩码图像对所述第一图像进行掩码处理,得到所述屏蔽图像;
[0151]
其中,在每个所述网格单元中选取的所述矩形区域的面积小于所述网格单元的面积,每次迭代攻击时,在所述网格单元中选取的所述矩形区域的位置和/或大小不同。
[0152]
可选地,作为一个实施例,所述对抗样本生成模块52用于基于所述屏蔽图像和所述第二图像生成中间对抗样本,所述对抗样本生成模块52具体用于包括:
[0153]
基于待攻击模型对所述屏蔽图像进行特征提取得到第一特征,以及基于所述待攻击模型对所述第二图像进行特征提取得到第二特征;
[0154]
基于所述第一特征、所述第二特征以及上次迭代攻击时生成的中间对抗样本,生成当前次迭代攻击的中间对抗样本。
[0155]
可选地,作为一个实施例,所述对抗样本生成模块52用于基于所述第一特征、所述第二特征以及所述上次迭代攻击时生成的中间对抗样本,生成当前次迭代攻击的中间对抗样本,所述对抗样本生成模块52具体用于包括:
[0156]
根据所述第一特征和所述第二特征的损失函数,确定所述上次迭代攻击时生成的中间对抗样本的梯度;
[0157]
基于所述梯度和所述上次迭代攻击时生成的中间对抗样本,生成所述当前次迭代攻击的中间对抗样本。
[0158]
可选地,作为一个实施例,所述第一图像和所述第二图像为人脸图像,所述第一图像中包含的人脸与所述第二图像中包含的人脸对象不同。
[0159]
本技术实施例提供的对抗样本的生成装置70还可执行图1至图3的方法,并实现对抗样本的生成装置在图1至图3所示实施例的功能,本技术实施例在此不再赘述。
[0160]
图8是本技术的一个实施例电子设备的结构示意图。请参考图8,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0161]
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的
总线。
[0162]
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0163]
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成模型训练装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0164]
获取样本图像,所述样本图像中包括目标对抗样本,所述目标对抗样本是基于图1所述的对抗样本的生成方法得到的;
[0165]
将所述样本图像输入初始图像识别模型进行模型训练,得到图像识别模型。
[0166]
上述如本技术图8所示实施例揭示的模型训练装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0167]
该电子设备还可执行图4的方法,并实现模型训练装置在图4所示实施例中的功能,本技术实施例在此不再赘述。
[0168]
当然,除了软件实现方式之外,本技术的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0169]
本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图4所示实施例的方法,并具体用于执行以下操作:
[0170]
获取样本图像,所述样本图像中包括目标对抗样本,所述目标对抗样本是基于图1所述的对抗样本的生成方法得到的;
[0171]
将所述样本图像输入初始图像识别模型进行模型训练,得到图像识别模型。
[0172]
图9是本技术的一个实施例模型训练装置90的结构示意图。请参考图9,在一种软件实施方式中,所述模型训练装置90可包括:获取模块91和训练模块92,其中:
[0173]
获取模块91,用于获取样本图像,所述样本图像中包括目标对抗样本,所述目标对抗样本是基于图1所述的对抗样本的生成方法得到的;
[0174]
训练模块92,用于将所述样本图像输入初始图像识别模型进行模型训练,得到图
像识别模型。
[0175]
本技术实施例提供的模型训练装置90还可执行图4的方法,并实现模型训练装置在图4所示实施例的功能,本技术实施例在此不再赘述。
[0176]
图10是本技术的一个实施例电子设备的结构示意图。请参考图10,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0177]
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0178]
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0179]
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成图像识别装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0180]
获取待识别图像;
[0181]
将所述待识别图像输入图像识别模型进行识别,得到识别结果,所述图像识别模型是基于图4所述的模型训练方法训练得到的。
[0182]
上述如本技术图10所示实施例揭示的图像识别装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0183]
该电子设备还可执行图5的方法,并实现图像识别装置在图5所示实施例中的功能,本技术实施例在此不再赘述。
[0184]
当然,除了软件实现方式之外,本技术的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻
辑单元,也可以是硬件或逻辑器件。
[0185]
本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图5所示实施例的方法,并具体用于执行以下操作:
[0186]
获取待识别图像;
[0187]
将所述待识别图像输入图像识别模型进行识别,得到识别结果,所述图像识别模型是基于图4所述的模型训练方法训练得到的。
[0188]
图11是本技术的一个实施例图像识别装置110的结构示意图。请参考图11,在一种软件实施方式中,所述图像识别装置110可包括:获取模块111、和图像识别模块112,其中:
[0189]
获取模块111,用于获取待识别图像;
[0190]
图像识别模块112,用于将所述待识别图像输入图像识别模型进行图像识别,得到识别结果,所述图像识别模型是基于图4所述的模型训练方法得到的。
[0191]
本技术实施例提供的图像识别装置110还可执行图5的方法,并实现图像识别装置在图5所示实施例的功能,本技术实施例在此不再赘述。
[0192]
总之,以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
[0193]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0194]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0195]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0196]
本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的
部分说明即可。