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.调整方式确定子模块,用于确定所述对抗图像块的插入位置、旋转角度、噪声系数中的至少一种;
38.调整子模块,用于基于所述旋转角度和/或噪声系数,调整所述对抗图像块;
39.插入子模块,用于在预设的图像样本中所述插入位置处插入调整后的所述对抗图像块。
40.可选地,所述调整方式确定子模块的步骤,包括:
41.位置确定单元,用于在所述图像样本的尺寸范围内,随机选取一插入位置;和/或
42.角度确定单元,用于在预设的旋转角度范围内,随机选取一旋转角度;和/或
43.噪声确定单元,用于在预设的噪声系数范围内,随机选取一噪声系数。
44.可选地,所述插入子模块包括:
45.遮罩生成单元,用于在预设的图像样本中所述插入位置处,生成所述旋转角度的遮罩图层;
46.插入单元,用于将所述对抗图像块插入所述遮罩图层中。
47.可选地,所述输出模块的步骤,包括:
48.样本调整子模块,用于基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入位置、旋转角度、噪声系数中的至少一种进行调整。
49.可选地,所述装置还包括:
50.颜色选取模块,用于在预设的色彩范围内,随机选取目标颜色;
51.对抗图像块生成模块,用于采用所述目标颜色,生成对抗图像块。
52.本发明实施例还公开了一种电子设备,包括:
53.一个或多个处理器;和
54.其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本发明实施例所述的一个或多个的方法。
55.本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的一个或多个的方法。
56.本发明实施例包括以下优点:
57.通过本发明实施例的对抗样本的生成方法,在预设的图像样本中插入对抗图像块,生成测试样本;将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息;采用所述预测信息,计算所述目标检测模型的多个样本生成损失函数中的一种样本生成损失函数;基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整,直至所述样本生成损失函数满足预设训练条件,将所述测试样本作为对抗样本。可以高效地生成针对目标检测模型某一类型预测信息的对抗样本,提高模型的训练效率。同时,本发明实施例生成的对抗样本可以针对性地对目标检测模型中某一类型预测信息的输出效果进行训练,通过针对模型最薄弱的环节进行针对性训练,可以有效地提高模型整体的输出效果。
附图说明
58.图1是本发明实施例的一种对抗样本的生成方法实施例的步骤流程图;
59.图2是本发明实施例的另一种对抗样本的生成方法实施例的步骤流程图;
60.图3是本发明实施例的一种对抗样本的生成装置实施例的结构框图。
具体实施方式
61.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
62.本发明实施例的核心构思之一在于,对于具有多种预测信息的目标检测模型,可以生成对其中一种预测信息具有对抗性的对抗样本,而不需要生成同时对多种预测信息皆具有对抗性的对抗样本。由于生成对其中一种预测信息具有对抗性的对抗样本的效率可以高于生成同时对多种预测信息皆具有对抗性的对抗样本的效率,从而可以有效地提高对抗样本的生成效率。同时,在对目标检测模型进行训练的过程中,还可以针对目标检测模型输出效果较差的预测信息,针对性地采用对该预测信息具有对抗性的对抗样本进行训练,从而在后续的模型训练过程中,也可以较好地提高模型训练的效率。
63.参照图1,示出了本发明实施例的一种对抗样本的生成方法实施例的步骤流程图,具体可以包括如下步骤:
64.步骤101,在预设的图像样本中插入对抗图像块,生成测试样本;
65.在本发明实施例中,可以预设有图像样本。所述图像样本可以在预先准备的图像样本集中获取得到。所述图像样本的尺寸可以与目标检测模型可以处理的图像尺寸相同,也可以对图像样本集中图像的尺寸进行调整,得到与目标检测模型可以处理的图像尺寸相同的图像样本。
66.在本发明实施例中,可以预先生成至少一个对抗图像块。所述对抗图像块的图像内容可以是随机生成的,也可以是在现有的图像中选取的,本发明对此不做限制。
67.在本发明实施例中,为了生成对抗样本,可以在预设的图像样本中插入对抗图像块,生成测试样本,以便后续检测所述测试样本是否具有对抗性。
68.在具体实现中,所述对抗样本通常需要在对图像样本进行较小变动的情况下,实现降低模型输出准确度的效果。因此,所述对抗图像块通常可以具有相对所述图像样本而言较小的尺寸。例如,在所述图像样本的尺寸为400
×
400的情况下,所述对抗图像块的尺寸可以为40
×
40。其后,可以采用所述对抗图像块覆盖所述图像样本中的部分区域,从而可以得到测试样本。
69.步骤102,将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息;
70.在本发明实施例中,为了测试所述测试样本对模型是否具有对抗性,可以将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息。
71.其中,所述目标检测模型可以用于针对输入的样本,输出预测信息。所述目标检测模型可以为yolov1模型、yolov2模型、yolov3模型、faster r
‑
cnn模型等,本发明对此不做限制。所述目标检测模型可以输出多种预测信息。例如,所述预测信息可以包括样本中目标的边界框位置、目标的分类信息、目标的置信度等。
72.一般来说,所述经过训练的目标检测模型可以对一般的图像样本集中具有较好的目标检测效果,但是可能会受到对抗样本的影响,降低输出结果的准确度。由此,可以基于所述经过训练的目标检测模型的输出的预测信息,判断所述检测样本是否具有对抗性。
73.步骤103,采用所述预测信息,计算所述目标检测模型的多个样本生成损失函数中的一种样本生成损失函数;
74.在本发明实施例中,一般来说,模型损失函数可以用于估量模型的预测信息与样本的真实信息(ground truth)之间的不一致程度。由于所述目标检测模型可以同时输出多种预测信息,因此所述目标检测模型可以针对每一种预测信息,分别计算模型损失函数,从而所述目标检测模型可以具有多个模型损失函数。
75.由于本发明的目的在于生成对抗样本,以降低所述目标检测模型的准确度。由此,本发明可以设计样本生成损失函数,其可以用于评价所述模型损失函数是否劣化,从而评价所述测试样本是否对所述目标检测模型具有对抗性。
76.一般来说,若对抗样本需要对所有类型的预测信息皆具有对抗性,则所述目标检测模型的所有模型损失函数皆需要相比原本的结果变差。但是,训练对所有类型的预测信息皆具有对抗性的对抗样本通常需要花费较多时长,从而导致模型训练的效率降低。由此,
可以生成对所述目标检测模型的多种预测信息中的一种具有对抗性的对抗样本,从而可以提高对抗样本的生成效率。
77.由此,可以针对每一种预测信息,分别计算样本生成损失函数,从而所述目标检测模型可以具有多个样本生成损失函数。在计算所述目标检测模型的样本生成损失函数的过程中,可以在多种样本生成损失函数中选取一种样本生成损失函数进行计算,得到一种预测信息对应的样本生成损失函数。其后,可以基于所述样本生成损失函数,确定所述测试样本是否对所述目标检测模型输出的所述样本生成损失函数对应类型的预测信息具有对抗性。
78.步骤104,基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整,直至所述样本生成损失函数满足预设训练条件,将所述测试样本作为对抗样本。
79.在本发明实施例中,可以通过判断所述样本生成损失函数是否满足预设训练条件,以确定所述测试样本是否具有对抗性。
80.其中,所述预设训练条件可以为所述样本生成损失函数达到预设阈值,所述样本生成损失函数基本不再变化等,本发明对此不做限制。
81.在所述样本生成损失函数不满足预设训练条件的情况下,此时可以认为所述测试样本对所述目标检测模型输出的所述样本生成损失函数对应类型的预测信息不具有对抗性。可以基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整,生成新的测试样本,其后继续执行步骤102~103,直至所述样本生成损失函数满足预设训练条件。
82.在所述样本生成损失函数满足预设训练条件的情况下,此时可以认为所述测试样本有效地降低所述目标检测模型输出一种预测信息的准确度,所述测试样本具有对抗性。可以将所述测试样本作为对抗样本。
83.由此,可以分别得到针对不同类型的预测信息的对抗样本。其后,可以采用对抗样本,继续对经过一般图像样本集训练的目标检测模型进行训练,提高模型输出的准确率。在对模型训练的过程中,若发现某一类型的预测信息对应的模型损失函数相比其他类型的预测信息的模型损失函数较差,则可以采用该种类型预测信息对应的对抗样本对目标检测模型进行训练,针对性地提高目标检测模型输出该种类型预测信息的准确度。从而可以针对目标检测模型的薄弱环节进行提升,最终可以提升目标检测模型整体输出效果。
84.通过本发明实施例的对抗样本的生成方法,在预设的图像样本中插入对抗图像块,生成测试样本;将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息;采用所述预测信息,计算所述目标检测模型的多个样本生成损失函数中的一种样本生成损失函数;基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整,直至所述样本生成损失函数满足预设训练条件,将所述测试样本作为对抗样本。可以高效地生成针对目标检测模型某一类型预测信息的对抗样本,提高模型的训练效率。同时,本发明实施例生成的对抗样本可以针对性地对目标检测模型中某一类型预测信息的输出效果进行训练,通过针对模型最薄弱的环节进行针对性训练,可以有效地提高模型整体的输出效果。
85.参照图2,示出了本发明实施例的一种对抗样本的生成方法实施例的步骤流程图,
具体可以包括如下步骤:
86.步骤201,在预设的图像样本中插入对抗图像块,生成测试样本;
87.在本发明实施例中,可以预设有图像样本。所述图像样本可以在预先准备的图像样本集中获取得到。所述图像样本的尺寸可以与目标检测模型可以处理的图像尺寸相同,也可以对图像样本集中图像的尺寸进行调整,得到与目标检测模型可以处理的图像尺寸相同的图像样本。
88.在本发明实施例中,可以预先生成至少一个对抗图像块。所述对抗图像块的图像内容可以是随机生成的,也可以是在现有的图像中选取的,本发明对此不做限制。
89.在本发明实施例中,为了生成对抗样本,可以在预设的图像样本中插入对抗图像块,生成测试样本,以便后续检测所述测试样本是否具有对抗性。
90.在具体实现中,所述对抗样本通常需要在对图像样本进行较小变动的情况下,实现降低模型输出准确度的效果。因此,所述对抗图像块通常可以具有相对所述图像样本而言较小的尺寸。例如,在所述图像样本的尺寸为400
×
400的情况下,所述对抗图像块的尺寸可以为40
×
40。其后,可以采用所述对抗图像块覆盖所述图像样本中的部分区域,从而可以得到测试样本。
91.在本发明的一种实施例中,所述方法还包括:
92.s11,在预设的色彩范围内,随机选取目标颜色;
93.在本发明实施例中,在需要随机生成对抗图像块作为训练初始使用的对抗图像块的情况下,可以首先在预设的色彩范围内,随机选取目标颜色,作为所述对抗图像块中包含的颜色。
94.其中,所述目标颜色的选取数量可以为一种,也可以为多种,本发明对此不做限制。
95.在具体实现中,若所述图像样本为8bpp的彩色图像,则可以rgb颜色范围内选取目标颜色。例如,若所述对抗图像块的尺寸为[x,y],图像包括红色通道、绿色通道、蓝色通道共三种通道,则对于每一通道,可以分别在[0,255]范围内随机选取一数值,从而可以确定所述对抗图像块的目标颜色。
[0096]
s12,采用所述目标颜色,生成对抗图像块。
[0097]
在本发明实施例中,在确定所述目标颜色,即可以采用所述目标颜色,生成对抗图像块。其后,根据实际需要,可以对所述对抗图像块的颜色进行调整,以提高所述测试样本的对抗性。
[0098]
在本发明的一种实施例中,所述在预设的图像样本中插入对抗图像块,生成测试样本的步骤包括:
[0099]
s21,确定所述对抗图像块的插入位置、旋转角度、噪声系数中的至少一种;
[0100]
在本发明实施例中,在实际应用过程中,图像采集可能出现旋转、产生噪声等情况。例如,在对监控视频进行目标检测的情况下,采集监控视频的设备可能出现倾斜,导致采集得到的监控视频是倾斜的,目标检测模型可能受到图像倾斜影响导致无法正确检测目标。又例如,在待检测图像传输的过程中,待检测图像由于尺寸被压缩、数据传输缺漏等导致图像出现噪声,目标检测模型可能受到图像中噪声的影响导致无法正确检测目标。为了避免目标检测模型在实际应用中受到影响,在插入对抗图像块的过程中,可以相应地对所
述对抗图像块进行旋转和/或添加噪声,以便生成对抗样本后,可以采用对抗样本提高目标检测模型在图像中目标旋转、目标存在噪声的情况下的识别能力。
[0101]
由此,可以先确定所述对抗图像块的插入位置、旋转角度、噪声系数中的至少一种,以确定所述对抗图像块在所述图像样本中的位置,并确定应如何对所述对抗图像块的进行旋转和/或添加噪声。
[0102]
在本发明的一种实施例中,所述确定所述对抗图像块的插入位置、旋转角度、噪声系数中的至少一种的步骤,包括:
[0103]
s211,在所述图像样本的尺寸范围内,随机选取一插入位置;和/或
[0104]
在本发明实施例中,所述图像样本可以具有固定的尺寸。在初始生成测试样本时,可以在所述图像样本的尺寸范围,随机地选取一插入位置,作为所述对抗图像块的中心点在所述图像样本中的位置,以确保所述对抗图像块加入所述图像样本中的任意位置,都可以产生对所述目标检测模型具有对抗性的对抗样本,增加对抗样本的鲁棒性。
[0105]
s212,在预设的旋转角度范围内,随机选取一旋转角度;和/或
[0106]
在本发明实施例中,可以预设一旋转角度范围。所述旋转角度范围可以基于实际应用于图像可能发生旋转的角度确定。例如,对于监控视频的场景来说,监控视频的采集设备可能略微出现倾斜,则可以将预设旋转角度范围rotate设置为
‑
30
°
≤rotate≤30
°
。
[0107]
其后,在初始生成测试样本时,可以在预设的旋转角度范围内,随机选取一旋转角度,从而可以模拟实际应用时图像中的目标发生倾斜的情况。
[0108]
s213,在预设的噪声系数范围内,随机选取一噪声系数。
[0109]
在本发明实施例中,可以预设一噪声系数范围。所述噪声系数范围可以基于实际应用于图像可以出现的噪声比例确定。例如,对于监控视频的场景来说,监控视频在传输过程中最大可能出现5%左右的噪声,则可以将噪声系数范围设置为0~5%。
[0110]
其中,在初始生成测试文本时,可以在预设的噪声系数范围内,随机选取一噪声系数,从而可以模拟实际应用时图像中的目标存在噪声的情况。
[0111]
s22,基于所述旋转角度和/或噪声系数,调整所述对抗图像块;
[0112]
在本发明实施例中,在确定所述对抗图像块的旋转角度和/或噪声系数之后,可以基于所述旋转角度和/或噪声系数,调整所述对抗图像块,使所述对抗图像块发生随机旋转和/或产生随机噪声。
[0113]
在具体实现中,可以采用变换函数eot(expectation overtransformation),在预设的旋转角度范围中随机选择一旋转角度,并对所述对抗图像块进行旋转;和/或,在预设的噪声系数范围随机选择一噪声系数,对所述对抗图像块添加噪声,以实现对所述对抗图像块的调整。
[0114]
s23,在预设的图像样本中所述插入位置处插入调整后的所述对抗图像块。
[0115]
在本发明实施例中,在完成对所述对抗图像块的调整之后,则可以在预设的图像样本中所述插入位置处插入调整后的所述对抗图像块,得到所述测试样本。
[0116]
在本发明的一种实施例中,所述在预设的图像样本中所述插入位置处插入调整后的所述对抗图像块的步骤,包括:
[0117]
s231,在预设的图像样本中所述插入位置处,生成所述旋转角度的遮罩图层;
[0118]
在本发明实施例中,为了将所述对抗图像块插入所述图像样本中,可以在预设的
图像样本中所述插入位置处,生成所述旋转角度的遮罩图层,以遮罩所述对抗图像块插入处原本的图像内容。同时,所述遮罩图层可以与所述对抗图像块具有相同的尺寸,可以与所述对抗图像块相匹配。
[0119]
s232,将所述对抗图像块插入所述遮罩图层中。
[0120]
在本发明实施例中,在对图像样本中所述对抗图像块插入处原本的图像内容进行遮罩之后,可以将所述对抗图像块插入所述遮罩图层中,从而可以完成在预设的图像样本中所述插入位置处插入调整后的所述对抗图像块。
[0121]
步骤202,将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息;
[0122]
在本发明实施例中,为了测试所述测试样本对模型是否具有对抗性,可以将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息。
[0123]
其中,所述目标检测模型可以用于针对输入的样本,输出预测信息。所述目标检测模型可以为yolov1模型、yolov2模型、yolov3模型、faster r
‑
cnn模型等,本发明对此不做限制。
[0124]
在本发明实施例中,所述预测信息可以包括样本中目标的边界框位置,从而可以确定目标在样本中所处位置;还可以包括目标的分类信息,从而可以得知目标的类型;还可以包括目标的置信度,从而可以得知目标属于某一种类型的可能性。例如,对于动物检测的目标检测模型来说,其可以输出样本中动物的边界框位置,还可以输出该动物的分类信息以得知动物的类型如猫、狗、鱼等,还可以输出置信度以得知该动物其属于某一种类型的可能性。
[0125]
一般来说,所述经过训练的目标检测模型可以对一般的图像样本集中具有较好的目标检测效果,但是可能会受到对抗样本的影响,降低输出结果的准确度。由此,可以基于所述经过训练的目标检测模型的输出的预测信息,判断所述检测样本是否具有对抗性。
[0126]
步骤203,采用所述预测信息,计算所述目标检测模型的边界框损失函数、置信度损失函数、分类信息损失函数中的任一种损失函数;
[0127]
在本发明实施例中,一般来说,模型损失函数可以用于估量模型的预测信息与样本的真实信息(ground truth)之间的不一致程度。由于所述目标检测模型可以同时输出多种预测信息,因此所述目标检测模型可以针对每一种预测信息,分别计算模型损失函数,从而所述目标检测模型可以具有多个模型损失函数。
[0128]
由于本发明的目的在于生成对抗样本,以降低所述目标检测模型的准确度。由此,本发明可以设计样本生成损失函数,其可以用于评价所述模型损失函数是否劣化,从而评价所述测试样本是否对所述目标检测模型具有对抗性。
[0129]
具体地,可以针对每一种预测信息,分别计算样本生成损失函数,从而所述目标检测模型可以具有多个样本生成损失函数。在所述目标检测模型输出的预测信息包括目标的边界框位置、目标的分类信息、以及目标的置信度的情况下,所述样本生成损失函数也可以对应包括边界框损失函数、分类信息损失函数、以及置信度损失函数。
[0130]
在具体实现中,测试样本的目标为使目标检测模型输出的预测信息可以尽可能地减低准确度,在准确度越低的情况下,可以认为测试样本可以更加有效地对目标检测模型进行攻击。
[0131]
由此,所述边界框损失函数可以采用如下公式表示:
[0132][0133]
其中,f(
·
)代表目标检测模型,x为图像样本,p为输入的测试样本,s表示对抗图像块的插入位置,n为对抗图像块在插入图像样本前添加的噪声,r表示对抗图像块旋转。为对应图的样本x的真实分类信息。为对应输入图像x的真实边界框位置信息。
[0134]
目标的边界框的位置可以采用[x,y,w,h]表示。其中,(x,y)为边界框中心在图像样本中的坐标。w为边界框的宽度,h为边界框的高度。
[0135]
目标检测模型将测试样本分为s
×
s个网格,每个网格产生b个候选框anchor box。表示第i个网格的第j个候选框anchor box是否负责预测目标object,若是则为1,若否则为0,则边界框位置的模型损失函数为:
[0136][0137]
所述分类信息损失函数可以采用如下方式进行表示:
[0138][0139]
其中,采用p(c)来表示目标的分类信息,则分类信息的模型损失函数为:
[0140][0141]
所述置信度损失函数可以采用如下方式进行表示:
[0142][0143]
其中,采用c来表示目标的置信度,则置信度的模型损失函数为:
[0144][0145]
一般来说,若对抗样本需要对所有类型的预测信息皆具有对抗性,则所述目标检测模型的所有模型损失函数皆需要相比原本的结果变差。但是,训练对所有类型的预测信息皆具有对抗性的对抗样本通常需要花费较多时长,从而导致模型训练的效率降低。由此,可以生成对所述目标检测模型的多种预测信息中的一种具有对抗性的对抗样本,从而可以提高对抗样本的生成效率。
[0146]
由此,在计算所述目标检测模型的样本生成损失函数的过程中,可以在边界框损失函数、置信度损失函数、分类信息损失函数中选取一种样本生成损失函数进行计算,得到一种预测信息对应的样本生成损失函数。其后,可以基于所述样本生成损失函数,确定所述测试样本是否对所述目标检测模型输出输出的所述样本生成损失函数对应类型的预测信息具有对抗性。
[0147]
在具体实现中,样本生成损失函数的选取可以根据需要获得的对抗样本的类型确定。在需要获得对预测边界框位置具有对抗性的对抗样本的情况下,则可以选取边界框位
置损失函数进行计算。在需要获得对预测分类信息具有对抗性的对抗样本的情况下,则可以选取分类信息损失函数进行计算。在需要获得对预测置信度具有对抗性的对抗样本的情况下,则可以选取置信度损失函数进行计算。
[0148]
步骤204,基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整,直至所述样本生成损失函数满足预设训练条件,将所述测试样本作为对抗样本。
[0149]
在本发明实施例中,可以通过判断所述样本生成损失函数是否满足预设训练条件,以确定所述测试样本是否具有对抗性。
[0150]
其中,所述预设训练条件可以为所述样本生成损失函数达到预设阈值,所述样本生成损失函数基本不再变化等,本发明对此不做限制。
[0151]
在所述样本生成损失函数不满足预设训练条件的情况下,此时可以认为所述测试样本对所述目标检测模型输出的所述样本生成损失函数对应类型的预测信息不具有对抗性。可以基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整,生成新的测试样本,其后继续执行步骤202~203,直至所述样本生成损失函数满足预设训练条件。
[0152]
在所述样本生成损失函数满足预设训练条件的情况下,此时可以认为所述测试样本有效地降低所述目标检测模型输出一种预测信息的准确度,所述测试样本具有对抗性。可以将所述测试样本作为对抗样本。
[0153]
由此,可以分别得到针对不同类型的预测信息的对抗样本。其后,可以采用对抗样本,继续对经过一般图像样本集训练的目标检测模型进行训练,提高模型输出的准确率。在对模型训练的过程中,若发现某一类型的预测信息对应的模型损失函数相比其他类型的预测信息的模型损失函数较差,则可以采用该种类型预测信息对应的对抗样本对目标检测模型进行训练,针对性地提高目标检测模型输出该种类型预测信息的准确度。从而可以针对目标检测模型的薄弱环节进行提升,最终可以提升目标检测模型整体输出效果。
[0154]
在本发明的一种实施例中,所述基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整的步骤,包括:
[0155]
s31,基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入位置、旋转角度、噪声系数中的至少一种进行调整。
[0156]
在本发明实施例中,在所述样本生成损失函数不满足预设训练条件的情况下,此时需要对所述对抗图像块进行调整,使其可以更好地降低所述目标检测模型的准确度。由此,可以基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入位置、旋转角度、噪声系数中的至少一种进行调整。
[0157]
在具体实现中,可以采用梯度下降算法,计算所述目标检测模型的样本生成损失函数的梯度,并基于所述样本生成损失函数的梯度,分别确定对所述测试样本中对抗图像块的插入位置、旋转角度、噪声系数中至少一种的调整变量,并对所述测试样本中对抗图像块的插入位置、旋转角度、噪声系数中的至少一种进行调整,以使所述测试样本可以逐渐达到较优的对抗效果,可以以较好地降低所述目标检测模型的准确度,并最终得到具有对抗性的对抗样本。
[0158]
此外,一般情况下,在训练对抗图像块的过程中,需要将对抗图像块之外的区域进
行遮盖,以实现对所述对抗图像块的更新。但是对抗图像块的尺寸明显小于图像样本的尺寸,导致训练过程中大部分的更新变量需要舍弃,增加了训练所需要的迭代次数。而本发明中所述测试样本可以具有与所述图像样本相同的尺寸,且并未对对抗图像块之外的区域进行遮盖。由此,在训练过程中,可以完整地使用更新变量,进一步提高训练效率。
[0159]
作为本发明的一种具体示例,所述对抗样本的生成方法可以为:
[0160]
首先可以确定对抗图像块尺寸patch size,旋转角度rotate,噪声系数noise,插入位置shift position,图像样本集x,图像样本尺寸image size,攻击目标attack target。其中,攻击目标可以包括边界框位置、置信度、以及分类信息。
[0161]
一般来说,对抗图像块尺寸patch size可以是固定的,若所述图像样本尺寸image size为416
×
416,则对抗图像块尺寸patch size为40
×
40。
[0162]
由此,定义对抗图像块p的真实值ground truth为[x
p
,y
p
,w
p
,h
p
],其中对抗图像块patch中心[x
p
,y
p
]由插入位置s决定,w
p
=h
p
=40.即可以将对抗图像块p看作是图像样本中的一个待检测物体,其边界框信息bounding box为[c,x
p
,y
p
,w
p
,h
p
]。针对无目标攻击,取分类标签c=0。
[0163]
其后可以采用如下指令生成对抗样本:
[0164]
patch=initialpatch(patch size,random seed)#初始化对抗样本块
[0165]
for epoch in range(0,epochs):#一次训练选取的样本数
[0166]
for i,(imgs,targets)in x:#从图像样本集x选取图像样本i
[0167]
adv_patch=eot(rotate,noise,patch)#采用变换函数eot对对抗图像块的旋转角度以及噪声系数进行调整,得到调整后的对抗图像块
[0168]
patch_mask=create_patch_mask(patch size,shift position,rotate,image size)#创建遮罩图层,设置遮罩图层可见尺寸为对抗图像块尺寸patch size、遮罩图层位置为插入位置shift position,遮罩图层旋转角度为对抗图像块旋转角度rotate,设置遮罩图层整体尺寸为图像样本尺寸image size
[0169]
image_mask=1
–
patch_mask#设置图像样本的图层与遮罩图层相匹配
[0170]
adv_images=adv_patch*patch_mask+imgs*image_mask#将调整后的对抗图像块插入遮罩图层,将图像样本插入图像样本的图层,得到测试样本
[0171]
adv_images=variable(adv_images.data,requires_grad=true)
[0172]
update the bounding box according the patch’s ground truth;#基于对抗图像块的真实值,更新边界框信息的真实值
[0173]
pred=model(adv_images)#将测试样本输入目标检测模型中,得到目标检测模型输出的预测信息
[0174]
if attack target==1:
[0175]
loss=compute_loss_bbox(pred,targets,model)#如果攻击目标是1,计算边界框损失函数
[0176]
elif attack target==2:
[0177]
loss=compute_loss_obj(pred,targets,model)#如果攻击目标是2,计算置信度损失函数
[0178]
else:
[0179]
loss=compute_loss_cls(pred,targets,model)##如果攻击目标是不1也不是2,计算分类信息损失函数
[0180]
loss.backward()#反向传播
[0181]
#update patch#更新对抗图像块
[0182]
adv_grad=adv_images.grad.clone()
[0183]
adv_images.grad.data.zero()
[0184]
patch
‑
=adv_grad*patch_mask
[0185]
return patch
[0186]
由此,可以不断调整所述对抗图像块在所述图像样本中的插入方式,直至所述样本生成损失函数满足预设训练条件,说明生成的测试样本可以获得较好的对抗效果,则可以将测试样本作为对抗样本。
[0187]
通过本发明实施例的对抗样本的生成方法,在预设的图像样本中插入对抗图像块,生成测试样本;将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息;采用所述预测信息,计算所述目标检测模型的边界框损失函数、置信度损失函数、分类信息损失函数中的任一种损失函数;基于所述目标检测模型的损失函数,对所述测试样本中对抗图像块的插入方式进行调整,直至所述样本生成损失函数满足预设训练条件,将所述测试样本作为对抗样本。可以高效地生成针对目标检测模型某一类型预测信息的对抗样本,提高模型的训练效率。同时,本发明实施例生成的对抗样本可以针对性地对目标检测模型中某一类型预测信息的输出效果进行训练,通过针对模型最薄弱的环节进行针对性训练,可以有效地提高模型整体的输出效果。
[0188]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0189]
参照图3,示出了本发明实施例的一种对抗样本的生成装置实施例的结构框图,具体可以包括如下模块:
[0190]
生成模块301,用于在预设的图像样本中插入对抗图像块,生成测试样本;
[0191]
预测模块302,用于将所述测试样本输入经过训练的目标检测模型中,并获取所述目标检测模型输出的预测信息;
[0192]
损失计算模块303,用于采用所述预测信息,计算所述目标检测模型的多个样本生成损失函数中的一种样本生成损失函数;
[0193]
输出模块304,用于基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入方式进行调整,直至所述样本生成损失函数满足预设训练条件,将所述测试样本作为对抗样本。
[0194]
在本发明一种实施例中,所述样本生成损失函数包括边界框损失函数、置信度损失函数、以及分类信息损失函数;
[0195]
所述损失计算模块包括:
[0196]
损失计算子模块,用于采用所述预测信息,计算所述目标检测模型的边界框损失
函数、置信度损失函数、分类信息损失函数中的任一种损失函数。
[0197]
在本发明一种实施例中,所述生成模块包括:
[0198]
调整方式确定子模块,用于确定所述对抗图像块的插入位置、旋转角度、噪声系数中的至少一种;
[0199]
调整子模块,用于基于所述旋转角度和/或噪声系数,调整所述对抗图像块;
[0200]
插入子模块,用于在预设的图像样本中所述插入位置处插入调整后的所述对抗图像块。
[0201]
在本发明一种实施例中,所述调整方式确定子模块的步骤,包括:
[0202]
位置确定单元,用于在所述图像样本的尺寸范围内,随机选取一插入位置;和/或
[0203]
角度确定单元,用于在预设的旋转角度范围内,随机选取一旋转角度;和/或
[0204]
噪声确定单元,用于在预设的噪声系数范围内,随机选取一噪声系数。
[0205]
在本发明一种实施例中,所述插入子模块包括:
[0206]
遮罩生成单元,用于在预设的图像样本中所述插入位置处,生成所述旋转角度的遮罩图层;
[0207]
插入单元,用于将所述对抗图像块插入所述遮罩图层中。
[0208]
在本发明一种实施例中,所述输出模块的步骤,包括:
[0209]
样本调整子模块,用于基于所述目标检测模型的样本生成损失函数,对所述测试样本中对抗图像块的插入位置、旋转角度、噪声系数中的至少一种进行调整。
[0210]
在本发明一种实施例中,所述装置还包括:
[0211]
颜色选取模块,用于在预设的色彩范围内,随机选取目标颜色;
[0212]
对抗图像块生成模块,用于采用所述目标颜色,生成对抗图像块。
[0213]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0214]
本发明实施例还提供了一种电子设备,包括:
[0215]
一个或多个处理器;和
[0216]
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法。
[0217]
本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。
[0218]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0219]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd
‑
rom、光学存储器等)上实施的计算机程序产品的形式。
[0220]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些
计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0221]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0222]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0223]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0224]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0225]
以上对本发明所提供的一种对抗样本的生成方法和一种对抗样本的生成装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。