论文笔记: On Physical Adversarial Patches for Object Detection

前言:深度学习、计算机视觉在读研究生小白,课题与对抗样本相关,打算记录一些自己的学习笔记、心得或成果。

题目:On Physical Adversarial Patches for Object Detection
作者:MarkLee, J.ZicoKolter
发表:ICML 2019 Workshop on Security and Privacy of Machine Learning
关键词:目标检测、对抗样本、对抗补丁
效果图:论文笔记: On Physical Adversarial Patches for Object Detection

摘要

展示了一个可在真实世界攻击物体检测器(YOLOv3)的对抗补丁(patch)。与以往的patch不同,这个patch不用覆盖在特定物体上,甚至可以放置于任意位置,就能对几乎所有的图中物体进行检测抑制。
具体可见https://youtu.be/WXnQjbZ1e7Y

介绍和相关工作

略,这俩部分都是些对抗补丁领域比较基础的内容。
另外,本文工作可以看作DPatch的升级版。
可参看Dpatch: Attacking object detectors with adversarial patches

方法

式子一
论文笔记: On Physical Adversarial Patches for Object Detection
D就是dataset,T就是patch transformation的分布,δ就是patch,x是原图,t表示某个transform,y表示正确的target,hθ是参数为θ的模型,J(.)就是loss,A(.)就是用来打上补丁的。
目标很简单,就是找个好的δ,让loss尽可能大。另外这个loss是遍历了所有类的平均值。该式子阐述思路,训练使用的是式子三。

式子二
论文笔记: On Physical Adversarial Patches for Object Detection
在Dpatch的工作里面,设置了一个异于正确target的crafted target:^y。希望的就是,让对x的检测指向错误的 ^y的loss尽量小。
但是实验发现,这么做在digital space还不错,但应用上box-constraint后,效果则明显下降。具体原因后面讨论部分会叙述。
而在本文的工作中,没有使用指向特定的错误目标 ^y,而是直接用正确的y。具体见式子三。这样的话就是希望让loss尽量大。

式子三
论文笔记: On Physical Adversarial Patches for Object Detection
加了一个clip,来符合实际的受扰动的图像,包括旋转、亮度变化、尺度变化。
这个也是本文所使用的优化式。

实验

.1 Experimental Setup

对应文章3.3
使用在COCO2014上训练出来的YOLOv3,图片size为416x416,标尺为mAP-50。
YOLOv3初始能力:
confidence threshold --> mAP-50
0.001 --> 55.4%
0.1 --> 50.3%
0.5 --> 40.9%
设置迭代数为1000,前300次学习率为0.1,动能0.9,之后每5步学习率衰减0.95,因为这个loss肯定是高度非凸的。
过程中会对patch做随机旋转、变尺度、亮度调整,也就是那个clip操作。
Patch大小为120x120。

.2 Unclipped Attack

论文笔记: On Physical Adversarial Patches for Object Detection
论文笔记: On Physical Adversarial Patches for Object Detection对应文章3.4
优化式子三,但先不使用clip。
效果还是很明显的,本文方法仅迭代5步就能使mAP降近0,Dpatch需要50步。因为是unclipped,两种方式都很高效。

.3 Clipped Attack

论文笔记: On Physical Adversarial Patches for Object Detection
论文笔记: On Physical Adversarial Patches for Object Detection
论文笔记: On Physical Adversarial Patches for Object Detection
可以看到,clipped版的Dpatch效果并不算好。
figure5展示了patch把检测器的“注意力”给骗过去了。

.4 Patches

论文笔记: On Physical Adversarial Patches for Object Detection
可以看到,clipped attack生成的patch中隐约出现斑马样图案。

.5 真实世界攻击

论文笔记: On Physical Adversarial Patches for Object Detection
真实世界的攻击效果还是很明显的。
这个打印出来的patch最好离目标隐藏物近一些,如果离远了效果会下降,需要放大patch才行。另外人的移动不影响patch的攻击。

讨论

为什么用式子二的Dpatch就不太行呢?以下是对原文的翻译与改动。
我们猜测,DPatch效果不好是因为它把所有的gt-box都集中在补丁附近,这样它最终驻留在一个单元中。这意味着损失主要由对该单元“负责”的提议造成。只要这个补丁被识别出来,这个模型就不会因为预测所有其他对象而受到什么惩罚,也许会因为客观度得分而受到惩罚,但不会因为边界框或类标签而受到惩罚。即使模型的行为变化不大,损失也可以减少。而在实际应用中,该补丁通常能够在不抑制其他检测的情况下,实现高置信度的检测。在我们的方法中,每个网格单元都被一个gt-box覆盖并造成相应损失,当模型不能预测任何gt-box时,损失增加最多。
说实话,我并不是很明白这段话的意思。
不过这个工作确实把patch攻击提升到了新的高度,虽是白盒的,但做到了真实世界的无覆盖的多类攻击,值得进一步研究。
如果能不借助模型信息,黑盒生成这种补丁,那绝对是巨大突破。

结论

这篇论文应该是首发的:patch + real world + object detection + no overlap + multy classes attack