作者 | Simen Thys, Wiebe Van Ranst(共同一作)
译者 | 刘畅
编辑 | Rachel、Jane
出品 | AI科技大本营(id:agznai100)
【导语】本文介绍了一个可以生成欺骗性补丁的系统模型,通过将该补丁放置在固定位置,人们能够使自己在行人检测器中获得“隐身”的效果。作者对比了三个不同的生成补丁的方法,并在实际场景中进行了评估,发现基于最小化目标分数的方法产生的补丁表现最优。
在过去几年中,机器学习中的对抗攻击方向吸引了越来越多的研究者。仅需要对卷积神经网络的输入进行细微的改变,模型就会被扰动,然后输出完全不同的结果。一种攻击方式是通过轻微改变输入图像的像素值来欺骗分类器,使其输出错误的类。其他的方法则是试图学习一个“补丁” (patches),这个补丁可以应用于某个对象去欺骗检测器和分类器。其中的一些方法的确成功地欺骗了分类器和检测器,这种欺骗性攻击在现实生活中也是可行的。但是,现有方法都是针对几乎没有类内变化的目标(例如停止标志)。对于此类目标,常用的方法为使用对象的已知结构在其上生成一个对抗性补丁。
在本文中,作者提出了一种方法,它可以针对具有许多类内变化的目标生成对抗补丁,比如人。本文的目标是生成能够成功地将行人隐藏在行人检测器中的补丁。例如,入侵者可以通过在他们的身体前方拿着一块小纸板,绕过监视系统。
从本文的实验结果可以看到,该系统能够显著降低行人检测器的准确性。当使用摄像头时,其方法在现实生活场景中也能很好地运行。该文章是第一篇对类内变化较多的目标进行攻击的研究。
图1:论文算法创建的一个能够成功躲避行人检测器的对抗补丁。 左:成功检测到没有补丁的人。 右:持有补丁的人未被检测到。
卷积神经网络(CNNs)的兴起在计算机视觉领域取得了巨大成功。 CNN在图像数据中进行端到端的学习在各种计算机视觉任务中都获得最佳结果。由于这些网络结构的深度,神经网络能够从网络底部(数据进入的地方)学习到非常基本的过滤器特征,并在网络顶部学习出非常抽象的高级特征。典型的CNN结构往往包含数百万个学习参数。虽然这种方法可以得到非常精确的模型,但模型的可解释性却大大降低。人们很难准确理解网络将人的图像分类为人的原因。通过对很多人类图像的学习,神经网络能够了解了一个人看起来是什么样子的。我们可以通过比较模型的输出与人类注释的图像,来评估模型对行人检测的效果。然而,以这种方式评估模型仅告诉我们检测器在某个测试集上的执行情况。并且,测试集通常不包含诱导模型进行错误判断的样例,也不包含专门欺骗模型的样例。对于不太可能发生攻击的应用程序(例如老年人的跌倒检测),这个问题无可厚非,但在安全系统中可能会带来问题。安全系统的人员检测模型中的漏洞可能被用于绕过建筑物中的监视摄像机。
该文章对人类检测系统遭受攻击的风险进行了探讨。作者创造了一个小的(40厘米×40厘米)对抗性补丁(adverserial patch),用于使人躲过目标检测器的检测。演示如图1所示。
工作简述
已有的基于CNN的对抗攻击主要针对分类任务、面部识别和物体探测。对于分类任务的攻击,Szegedy等人的研究较为成功,他们通过给图像进行轻微的像素调整,使得模型将图像归为错误的分类,而这种像素调整对于人眼来说是无法分辨的。在关于面部识别攻击的研究中,Sharif等人使用印刷的眼镜图像骗过了人脸识别系统。
现有的物体检测模型主要包括FCN和Faster-RCNN两种,一些研究尝试对上述两种模型进行欺骗和攻击。Chen等人利用交通标志中的停止标志,尝试对Faster-RCNN这一物体探测模型进行欺骗,并获得了成功。但是,已有的工作主要是针对没有类内变化的目标。对适用于类间变化大的类的目标攻击方法的探讨是较少的。
在现有的攻击算法中,主要包括白盒攻击和黑盒攻击两种。其中,使用黑盒攻击的攻击者不了解模型的具体参数和算法,仅通过观察模型的输入和输出进行攻击。而白盒攻击的攻击者对模型结构、参数都较为了解,可以直接对模型进行针对性的攻击。无论是黑盒攻击还是白盒攻击,都可以用于生成针对模型的对抗性样本,使得样本对模型具有欺骗性。
方法
这项工作的目标是创建一个能够生成可打印的对抗补丁的系统,该补丁可用于欺骗行人检测器。已有研究表明,对现实世界中的物体探测器进行对抗性攻击是可能的。在这项工作中,作者专注于为人生成对抗性补丁。 本文通过图像像素的优化过程,尝试在大型数据集上找到能够有效降低行人检测的准确率的补丁。在下面的部分中,作者深入解释了生成这些对抗补丁的过程。
优化目标主要包含三部分:
- 不可打印性得分公式,这个表示补丁中的颜色可以进行普通打印的程度
- 图像的总变化度,该函数确保优化器支持颜色过渡更加平缓的图像,并能防止噪声图像。如果相邻像素值的颜色相似,该分数就低,相邻像素值的颜色差异大,该分数就高。
- Lobj是图像中的最大目标分数。该补丁的目标是隐藏图像中的人,因此,模型的训练目标是最小化检测器输出的物体或类别分数。
总损失函数由上面三部分内容构成。在计算时引入了缩放因子alpha和beta。模式使用的优化算法为Adam优化。针对Lobj的计算,可以参考图2.
图2:获取目标损失的概述
最小化检测器的输出概率
为了让检测器不能检测出人,作者尝试了三种不同的方法:一是仅最小化人这一类别的分类概率,二是仅最小化目标分数,三是结合着两者同时进行。通过第一种方法学到的补丁在视觉上类似于泰迪熊,由于补丁使得人类图像看起来类似于另一分类,其结果很难迁移到不包含该分类的模型中。另一种最小化目标分数的方法则不存在这种问题。
训练数据
与之前为交通标志生成对抗补丁的研究相比,为人创建对抗补丁更有挑战性:
- 人的外表变化很大:衣服,肤色,身材,姿势......与始终具有相同八角形状且通常是红色的停车标志不同。
- 人可以出现在许多不同的背景中。 而停车标志大多出现在街道一侧的相同环境中。
- 当人是朝向或者背对摄像头时,人的外观会有所不同。
- 在人身上放置补丁没有一致的位置。而在停止标志上,可以很容易地计算出补丁的确切位置。
为应对上述挑战,作者没有像已有研究那样人工修改目标对象的单个图像并进行不同的变换,二是使用了很多人的真实图像进行训练。在模型的训练中,具体步骤如下:首先在图像数据集上运行目标人物检测器。探测器会根据人在图像中出现的位置显示人的边界框。然后,作者将经过多种变换的补丁应用于图像中,补丁与边界狂的相对位置是固定不变的。之后,作者将得到的图像与其他图像一起批量送入检测器,并基于仍然被检测到人的图像计算损失函数。最后,在整个模型中进行反向传播,使用优化器进一步更改补丁中的像素,以便能更好的欺骗检测器。
上述方法的一个优势为,模型可使用的数据集不仅限于已标注的数据集。目标检测器可以对任何视频或图像集合生成边界框,这使得系统可以进行更有针对性的攻击。当模型从定位的环境中获得数据时,可以简单地使用该素材生成特定于该场景的补丁。
模型的测试使用了Inria 数据集的图像。这些图像主要是行人的全身图像,更适用于监控摄像头的应用。另外,MS COCO 和Pascal VOC 也是两个关于行人的数据集,但它们包含太多种类的人(例如一只手被注释为人),很难固定补丁的放置位置,因此没有使用。
使补丁具有更高的鲁棒性
本文的目标是针对必须在现实世界中使用的补丁。这意味着首先需要将这些布丁打印出来,然后由摄像机对其进行拍摄。在进行上述处理时,很多因素都会影响补丁的外观:光线可能会发生变化,补丁可能会稍微旋转,补丁相对于人的大小会发生变化,相机可能会稍微增加噪点或模糊补丁,视角可能不同......为了尽可能地考虑这一点,在将补丁应用到图像之前,作者对补丁进行一些转换。作者主要进行了以下随机转换,用于数据增强:
- 将补丁单向旋转20度
- 随机放大和缩小补丁
- 在补丁上添加随机噪声
- 随机改变补丁的亮度和对比度
需要强调的是,在对补丁进行随机更改的过程中,必须保证可以上述操作进行反向传播。
实验结果
在本节中,作者对补丁的有效性进行了评估。评估使用的数据集是Inria数据集的测试集,对补丁的评估过程与训练过程相同,并且包含了对补丁的随机转换。在实验中,作者试图使一些有可能把人隐藏起来的参数达到其最小值。作为对照,作者还将结果与包含随机噪声的补丁进行了比较,该补丁的评估方式与随机补丁的评估完全相同。图3显示了不同补丁的结果。 OBJ-CLS的目标是最小化目标得分和类得分的乘积,在OBJ中仅最小化目标得分,在CLS中仅最小化类得分。NOISE是用于对比的包含随机噪声的补丁,CLEAN是没有应用补丁的试验基线。 从这条PR曲线,我们可以清楚地看到生成的补丁(OBJ-CLS,OBJ和CLS)与随机生成的补丁的效果对比。我们还可以看到,与使用类分数相比,最小化目标分数(OBJ)带来的影响最大(即具有最低的平均准确度(AP))。
图3:与随机噪声补丁(NOISE)和原始图像(CLEAN)相比,不同方法下(OBJ-CLS,OBJ和CLS)的PR曲线。
作者对于在现实情况中补丁的的效果也进行了检验,在大多数情况下补丁都能成功欺骗行人检测器。由于在模型的训练中,补丁相对于边界框的位置使固定的,因此补丁放置的位置会对模型效果产生一定影响。
结论
在本文中,作者提出了一个可生成行人检测器对抗补丁的系统,该系统生成的补丁可以打印出来并在现实世界中使用。作者在实验中对比了不同的补丁生成方法,并发现最小化目标损失能产生最有效的补丁。
从文中对打印出来的补丁在真实世界中的测试实验中可以发现,该系统产生的补丁非常适用于欺骗行人检测器,这表明使用类似检测器的安全系统可能易受到这种攻击。
作者还提到,如果将这种技术与衣服结合起来,就可以设计出一种T恤印花,让穿上这种衣服的人能成功的躲避使用YOLO检测器的智能摄像头。
在未来,作者希望在以下方面进一步探讨此问题。一是通过对输入数据进行更多(仿射)变换或使用模拟数据,进一步提高补丁生成系统的鲁棒性。 二是尝试提高模型的迁移能力。该系统产生的补丁尚不能很好地迁移到完全不同的模型结构中,作者希望在未来通过使用多种结构的模型进行训练,来提高迁移能力。
原文链接: https://www.arxiv-vanity.com/papers/1904.08653/ 代码: https://gitlab.com/EAVISE/adversarial-yolo