【对抗样本(四)】DPATCH An Adversarial Patch Attack on Object Detectors

导语:对抗性补丁的文章。在图像的左上角添加黑白像素块的扰动或在任何位置添加彩色的扰动。

地址:https://arxiv.org/abs/1806.02299

github: https://github.com/veralauee/DPatch

摘要

目标检测器已经成为现代计算机视觉系统中不可或缺的模块。在本工作中,我们提出DPATCH—一种基于黑盒对抗性补丁来攻击主流的目标检测器(i.e. Faster RNN 和YOLO)。不同于最初始的仅修改图像层级分类器的对抗性补丁,我们的补丁同时攻击了边界框回归和目标分类,以使它们的预测失效。与之前的工作相比,DPATCH有几种极具吸引的性质:1)DPATCH可以有效地实现目标和非目标攻击,分别将Faster-RCNN的和YOLO的mAP从75.10%和65.7%j降低到1%以下。2)DPATCH的尺寸很小,并且它的攻击效果是位置独立的,使其更实适用应用到真实世界攻击;3)DPATCH证明了在不同检测器和训练数据集上有很好的可迁移性(为什么?)。例如,在Faster RCNN 上训练得到的DPATCH可以有效的攻击YOLO,反之也成立。大量的实验显示了DPATCH可以在黑盒设置下实现有效的攻击,即甚至不需要攻击网络结构和参数的知识。DPATCH的成果实现同样证明了现代检测器结构对这些基于补丁的对抗攻击是脆弱的。

1 Introduction

随着深度学习系统在很多认知应用中取得了非常出色的性能,它们的安全性和鲁棒性问题同样引起了广大的重视。在这些问题之间,目标检测检测器在现代计算机视觉中是不可缺少的一个模块,并且广泛地应用在监控系统和自动驾驶。完整的研究它们对对抗性攻击的脆弱性逐渐变得非常重要。

很多现存的对抗性攻击聚焦在学习全图像的加性噪声,通过注入微小的扰动到输入样本中来修改深度学习系统的预测。虽然注入的噪声很微小并且有时甚至对肉眼不可见,这些方法需要修改整张图像,同样也变得不能用在真实世界的物理攻击。

最近,对抗性补丁被作为真实世界攻击的一种具体方法被引出。对抗性补丁误导CNN分类器预测任何带有粘贴了目标类别补丁的物体,不管目标的尺寸,位置和方向。这些对抗性攻击的有效性已经被证明在黑盒设置下(被攻击神经网络的结构和参数对于攻击者是不可知的)。

然而,我们发现原始的对抗性补丁技术无法欺骗像Faster-RCNN和YOLO的目标检测器,如图一所示。检测器结构方面的原因是:现代目标检测器首先在图像中不同的位置使用不同尺寸来定位物体,然后进行分类。因此,在这个样例中需要被攻击的目标个数远大于单纯的攻击分类应用。例如,Faster R-CNN生成大约20k区域用于分类,这远超过最初对抗性补丁能够实现有效攻击的数量。

我们的关键视角是需要同时攻击边界框回归和目标分类。基于这个观察,我们提出了DPATCH,一个迭代训练的对抗性补丁,可以攻击很多主流的目标检测器。一个微小的DPATCH,如40*40大小像素区域,可以实现非目标和目标攻击。在非目标攻击中,目标检测器无法正确定位包含正常物体的区域;在目标攻击中,目标检测器仅能检测到DPATCH,无法检测到图像中的其他物体。

大量的实验验证了DPATCH可以在黑盒设置下执行有效的攻击。DPATCH同样显示了现代检测器结构对于这些基于补丁对抗性攻击的脆弱性。

2 相关工作

攻击深恶道学习系统:CNN已经被证明对对抗性攻击的脆弱性,向输入样本中添加细微的扰动来修改CNN的分类结果。然而,这些攻击少量地修改了输入图像的所有像素值,这在真实世界视觉系统中(如王网页爷相机或自动驾驶)是不可行的。

对抗性补丁:为了实现在真实世界的攻击,最近Brown【Adversarial Patch】设计了一种通用的、鲁棒的对抗性补丁,该补丁可以应用到真实物理场景,引起分类器输出任何其他目标类别。基于这样的一个原则:目标检测网络被用于检测图像中最显著的对象,对抗性补丁可以被训练得比场景中其他对象更加显著。特别指明的是,补丁被训练来优化目标类别的期望概率【brown】。在训练阶段,补丁被以具有随机尺寸和旋转的随机位置应用到场景中。这个过程使得补丁对于漂移、缩放和旋转变得鲁棒。最终,场景中的对象被检测成补丁的目标类别。

3 提出方法

3.1 回顾现代检测器

Faster R-CNN:真如之前提到的,Faster R-CNN是典型的两阶段检测器。第一阶段使用深度全卷积网络提取区域,第二阶段使用提取的区域来进行检测。

YOLO: YOLO作为统一模型被引入目标检测。它将目标检测重新定义为单个回顾问题,直接从图像像素到边界框坐标和类别概率。YOLO在快速检测和高mAP上有巨大的优势。

DPATCH 构建

初始对抗性补丁: 正如在介绍部分引入的,对抗性补丁由brown在2017年引出,目的是当将补丁应用到输入图像中时,最大化CNN分类器的损失。为了使补丁在所有输入和物理世界中潜在变化下有效果,补丁在随机输入图像、位置和转换上计算了期望。

该公式给出了对抗性补丁的训练目标的正式描述,其中A(P,x,l,t)表示将补丁P应用在位置l处的原始图像,并使用变换t产生输入图像。潜在变换包括补丁的缩放和旋转。$Pr(\hat{y} A)$是CNN分类器将输入A分类成真实标签$\hat{y}$的概率。优化这个目标可以产生一个补丁,当应用于任何输入时,该补丁有效地攻击具有平移、缩放和旋转不变性的分类器。

**在目标检测器上的对抗性补丁: **受谷歌对抗性补丁的启发,我们提出DPATCH,一种对抗性补丁来攻击SOTA目标检测器。我们设计了DPATCH来实现目标和非目标攻击。为了训练无目标DPATCH,我们希望找到一种补丁模式$\hat{P_u}$,当使用”应用“函数A将补丁应用于输入场景x时,该模式使目标检测器对真实类别标签$\hat{y}$和边界框标签$\hat{B}$的损失最大化,正如公式2所示。在目标攻击设置下,我们希望找到一种补丁模式$\hat{P_t}$,通过最小化目标类别标签$y-t$和边界框$B_t$,如公式3所示。

”应用“函数A(x, s, P)意味着向输入中添加具有偏移s的补丁P。在训练阶段,我们在场景中均匀地以偏移s对输入场景x进行采样,以保证补丁具有偏移(shift)不变性。

3.2 目标检测器攻击系统

DPATCH训练: 正如上图所示,再将输入喂入检测系统之前,我们向输入图像中中添加了随机初始化的补丁模式,并且将真实标签定义成[DPATCH_x, DPATCH_y, DPATCH_w, DPATCH_h, target_label] 。DPATCH x, DPATCH y,表示DPATCH的位置,w和h分别分别表示它的宽和高。边界框标签是[DPATCH_x, DPATCH_y, DPATCH_w, DPATCH_h],与检测器的边界框的真实框类似。对于非目标攻击,target_label被定义成0;对于目标攻击,target_label等于目标类别的标签。注意到检测器系统可以是FRCNN,也可以是YOLO。基础的DPATCH训练过程以使用Pascal VOC2007数据集预训练的FRCNN或YOLO开始。

DPATCH设计:我们默认的DPATCH是40*40大小,直接附在图像的左上角上。

3.3 DPATCH的迁移性

通常一个检测器是由哪种结构训练是未知的。在这种场景下,使由YOLO训练的DPATCH同样能攻击FRCNN(反之一样)是有意义的。为了验证这个观点,我们通过YOLO训练了一个DPATCH,然后将这个训练好的DPATCH添加到输入图像中,使FRCNN作为检测器。如果FRCNN无法准确地检测输入图像中的目标,我们的DPATCH攻击可以被认为在不同检测器之间具有可迁移性。此外,我们在COCO数据集上训练一个DPATCH,然后用于攻击在PASCAL VOC训练的检测器。如果mAP会显著的下降,DPATCH应该被认为在数据集之间具有可迁移性。

4 实验

设置: 我们使用具有VGG16和ResNet101作为基础网络的预训练的YOLO和FRCNN。Pascal VOC 2007是数据集,包括20个标注的目标类别。对于YOLO,20个类的平均mAP为65.7%;对于基础网络为VGG16的FRCNN,平均mAP是70.01%,对于基础网络为ResNet101的FRCNN,平均mAP为75.1%。大部分之前的工作的得到的mAP得分与我们的类似,所以我们可以将这三个网络当作是我们的预训练检测网络。当进行目标攻击时,我们从VOC 2007中随机选择了一个类别作为我们的目标类别。注意,YOLO的默认设置是在每张图像中生成7*7的网格,然而,我们实验生成了10x10网格。这个改变不会影像YOLO的检测性能。

4.1 无目标DPATCH攻击

图3a显示了设计的40*40大小补丁用于无目标对抗性攻击。这个DPATCH的目标是使检测器无效,但是它没有指定的标签。也就是说,检测器没有必要准确的定位这个DPATCH并且将其分类成一些类别。正如证明的,图像中原始图像自行车应该被YOLO准确的检测到,被错误的检测成沙发或者人,如图4所示。

再将无目标DPATCH添加到测试集中每张图像中后,所有类别的mAP会很明显的下降。正如表1和表2所展示的,对于YOLO,mAP从65.7%下降到0。对于是以哦那个ResNet101的FRCNN,mAP从75.1%下降至0。

4.2 目标DPATCH攻击

固定尺寸和固定位置的DPATCH:图3(b)中展示了20*20尺寸的DPATCH,设计用于攻击基于ResNet101的FRCNN,其目标是tv(电视)。这个电视DPATCH目的是使补丁占据的区域仅被FRCNN识别成有效的ROI。在图5中,我们的DPATCH的位于每张图像的左上角,补丁大小(20*20)相较于场景中的其他物体是很小的,它能成功地欺骗FRCNN分类器,并使其生成一个结果:DPATCH地目标类别。因此,FRCNN模型地多目标检测和识别的功能就失效了。图5中第一张图像的预测改了是0.997。其他三张图像的预测概率是1。这些预测概率是有意义的,因为DPATCH所处的区域可以被识别,其他区域被忽略。

具体地,应用此类DPATCH的主要目的是使数据集中所有类别的mAP下降到一个很低的值。该值下降的越多,DPATCH的攻击越成功。

表1证明了在大约200k训练迭代次数后,这个DPATCH可以欺骗VOC2007中的20所有20多个类(不是说只用了5中类别训练了检测器吗?)。mAP从75.1%下降至0.98%。我们注意到训练周期开始(迭代次数少于40k)时,mAP的下降速率最大(如图6所示)。随着DPATCH接受更深层的训练,它的攻击效果将会逐渐变弱。因此,我们得出结果在训练DPATCH时存在饱和点。在这个饱和点后,增加训练迭代次数将不会再提升攻击效果。对于tv而言,训练迭代的饱和点出现在大约180k点左右。

图7展示了其他的DPATCH攻击FRCNN,它的目标类别是自行车。当我们将这个DPATCH应用到图像时,由区域提取确定的所有边界框都受到干扰。我们在自行车DPATCH在200k训练迭代时观察到该现象,它在100k训练迭代时将类别损失下降至大约0值,然而在200k迭代后边界框损失保持相对较高。也就是,检测器无法很准确的定位这个DPATCH,然而它的分类结果是DPATCH的目标类别。因为我们的目的是使目标检测器失效,考虑到检测器已经被攻击,并给出错误的分类结果和正常的边界框,该目标DPATCH攻击应该被认为是成功地。没有必须继续训练来使检测器准确定位。

图7b展示了一个DPATCH攻击YOLO,它的目标类别是人。在我们将其张贴到图像后,检测器仅能给出每个人的分类,而图像中的马却没有被检测出来。

固定尺寸和随机定位DPATCH: 在使用带固定DPATCH的实验后,我们下一个尝试是随机平移场景中的DPATCH,这意味着相同的DPATCH可以出现在原始图像中的任意位置。这个时间的主要目的是验证不同位置的攻击效率。如果攻击很有效果,如使用相同的迭代次数得到相似的mAP,位置不同并无差异,那就没有必要专门设计一个特定攻击区域,这意味着攻击者可以将DPATCH放置在任何区域。我们将目标类别设置成自行车,并且将补丁大小保持在20x20, 被攻击的检测器是FRCNN。

表3证明了当FRCNN被随机位置和固定位置的DPATCH攻击时,mAP是下降的。显而易见的是,随机位置并未提升攻击结果。也就是说,无论补丁放置在何处,所有类别的识别准确率(mAP)下降的值差不多。这结果是有意义的,因为FRCNN检测器首先在整个图像上提取几千个区域框,而不是找到特定的区域。在这个例子下,如果检测器在第一步搜索整张图像,仅具有DPATCH的区域将会被认为是有效地ROI。在这个检测过程后,所有被检测目标将会被误分类成目标类别,这与DPATCH的位置无关。相似的,YOLO同样首先看到了整张图像,DPATCH的位置将不会影响攻击结果。因此,我们可以将DPATCH放置在图像中,而不用有意的设计它的位置,这增强了攻击的可行性。

多尺寸DPATCH:因为所有的目标攻击都将DPATCH的尺寸设置成20*20,我们希望观察DPATCH的尺寸对检测器的影响。我们添加了2个测试尺寸:40x40,80x80。期望的结果是大尺寸的补丁将mAP的值减少到更低的值。表4验证了这个期望。

为了避免来训练迭代次数的影响,我们训练这些3中DPATCH200k次迭代,使他们接近饱和点。我们观察到有效攻击的最小尺寸与各个类别不同。例如,20x20尺寸的DPATCH在攻击自行车、年、船等时更加鲁棒,而80x80大小的一个仍然无法彻底错误分类瓶子、机车、人和植物。因此,根据我们主要想攻击的类别来设置DPATCH的尺寸。

5 进一步分析

使用不同的目标类别训练:很容易发现对于一些类别,边界框损失很容易收敛,如电视机,然而,其他目标类别却很难收敛,比如自行车或行人。因此,我们希望探索不同目标类别的DPATCH,在一些训练迭代后,导致mAP下降到一个相似的值。

我们随意选择了两个类别来攻击一些检测器,FRCNN:船,与电视和自行车相比,奶牛。图8展示了在200k训练迭代后的结果,这些目标类别导致mAP下降至不同的层级。奶牛和电视全都减少mAP到几乎为0,然而自行车和船缩减mAP到24.72%和33.5%。

基于这个发现,我们得出结论电视和奶牛在攻击FRCNN时效率更高。它的目标是更好地设置成目标类别电视或奶牛或船或者自行车。因此,如果数据集是已知的,我们能够选择最有效的目标类别来训练DPATCH。

DPATCH的检测器迁移性: 在之前的实验中,我们攻击与DPATCH训练相同的检测器。然而,如果DPATCH在不同检测器之间是可迁移的,那么补丁将会变得非常有效。具体的,我们通过YOLO训练DPATCH并且它能成功地攻击FRCNN。图9展示了在YOLO训练的DPATCH,攻击目标是人,可以攻击FRCNN。我们应用这个YOLO训练得到的DPATCH到VOC 2007测试集中的每张图像,并用来攻击FRCNN,表1证明了一些类别的mAP,如自行车、鸟类、瓶子,其值甚至下降到攻击YOLO本身的值,然而攻击其他类别的效率却不高,如平板和船。然而,所有类别的mAP均有相当大程度的减少。类似的,FRCNN训练得到的DPATCH同样可以攻击YOLO,如表2所示。在这个样例下,我们可以说我们的DPATCH可以被设计成一种针对目标检测器的通用的、黑盒对抗性攻击。

DPATCH的迁移性数据集:为了调查DPATCH在不同数据集上的可迁移性,我们使用COCO数据集调差了DPATCH的迁移性并在PASCAL VOC上训练的检测器上测试。显而易见的是,在使用DPATCH攻击后,mAP的值快速下降,如表5所示。尽管攻击性能不如在其他数据集上训练的DPATCH,但是也同时能很大程度上影响其整体性能。

为什么DPATCH能工作:正如之间解释的,我们主要的目的是训练一个DPATCH模式,可以粘贴到输入图像中,由检测器提取的RoI是DPATCH所处的区域。在提取RoI后,在这些RoI区域进行的分类任务和边界框回归进行检测,忽略非RoI区域。在这种情况下,如果DPATCH成功地攻击检测器,大多数提取的RoI应该聚集在DPATCH附着的区域。为了验证这个推断,我们对RoI进行求和来找到ROI出现得最频繁的区域。正如图10所示的,在每个单元格中的数量表示ROI占据的频率。我们在测试集中的每一张图像的左上方张贴了一个DPATCH,并令YOLO作为检测器。图10(a)验证了YOLO提取的RO集中在单元格1和2,正是我们的DPATCH所处的地方。相反的,图10(b)显示了没有DPATCH时,YOLO提取的ROI在所有单元格的分布。

相似的,图11证明了由FRCNN提取的带或带DPATCH的RoI的分布。显而易见的是DPATCH占据的区域被识别成ROI的频率更高,正如图11(a)所示。相反,没有 DPATCH 的影响,RoI 分布更均匀,如图11(b)所示。

这种分析验证了我们的DPATCH对目标检测器执行了非常成功的攻击,主要是因为所有的ROI实际上是由DPATCH占据的,而不是正常物体。

6 结论

在本工作中,我们成功地使用我们提出地DPATCH攻击了现代目标检测器,通过在学习和在输入图像中嵌入小的补丁来实现对抗性攻击。与前者工作相比,我们的DPATCH有很多具有吸引力的性质:DPATCH可以有效地攻击主流的现代检测器结构,如二级检测器Faster R-CNN和一级检测器YOLO。2)DPATCH的尺寸很小并且它的攻击是位置独立的,使得它非常适合用于物理世界攻击。3)DPATCH证明了不同检测器结构和训练数据集之间的很好的迁移性。我们的实验隐含着黑盒设置下进行有效的攻击,甚至不需要被攻击网络的结构和参数。DPATCH的成功实现同样显示了现代检测器结构对这些基于补丁对抗性攻击的脆弱性。

Table of Contents