首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

目标检测器也被攻击?百度开发对抗训练方法,模型鲁棒性飙升

作者 | BBuf

单位 | 北京鼎汉技术有限公司 算法工程师(CV)

编辑 | 唐里

下面要介绍的论文始发于 ICCV2019:

论文标题:Towards Adversarially Robust Object Detection

论文地址:https://arxiv.org/abs/1907.10310

目标检测是一项重要的视觉任务,已成为许多视觉系统中不可或缺的组成部分,其鲁棒性已成为实际应用中重要的性能指标。虽然最近的许多的研究表明,目标检测模型容易受到对抗攻击,但很少有人致力于提高其鲁棒性。

本文首先从模型鲁棒性的角度,回顾和系统地分析了目标检测器和近年来发展起来的各种攻击方法。然后,我们提出了目标检测的多任务学习观点,并确定了任务损失的不对称作用。我们进一步开发了一种对抗训练方法,可以利用多种攻击源来提高检测模型的鲁棒性。在PASCAL-VOC和MS-COCO上进行的大量实验证明了该方法的有效性。

研究背景

深度学习模型已被广泛应用于多种视觉任务且取得了不错的效果。但鲁棒性问题一直是深度学习模型的一个阻碍。研究表明,基于深度神经网络的模型容易受到对抗性攻击,也就是说存在一些对抗性实例,它们在原始图像上进行了稍微的修改,但会导致分类器预测出错误结果。已经有一些工作致力于提高模型的鲁棒性。目标检测作为计算机视觉最常见的问题之一,已经有很多高效成熟的方法致力于解决此任务。但最近的研究发现,目标检测器可能会受到恶意制作的输入攻击,如图Figure 1所示:

Figure 1

由于目标检测在视觉监控和自动驾驶等应用中具有关键作用,所以研究抵抗对抗性攻击的目标检测器十分重要。

本文的主要贡献在于3点。(1)我们对目标检测器的不同攻击进行了分类和分析,揭示了它们共有的潜在机制;(2)我们突出并分析了不同任务损失之间的相互作用及其对鲁棒性的影响;(3)概括了从分类到检测的对抗训练框架,并开发了一种可以适当处理任务损失之间的相互作用以提高检测鲁棒性的对抗训练方法。

相关工作

基于深度神经网络分类器容易受到对抗攻击导致模型的泛化性能下降,不过已经有很多相关工作用于抵抗对抗攻击。同时,在过去几年,已经有很多成功的目标检测器(包括one-stage和two-stage)被开发出来。two-stage的检测器通过一个或多个优化步骤来对第一阶段产生的建议框进行优化。

在这项工作中,我们主要关注one-stage检测器,因为它在检测器的不同变体中起着重要作用。最近,针对目标检测器的攻击手段得到了发展,Xie等将攻击生成方法从分类扩展到检测,并证明使用其设计的分类损失攻击目标检测器是可能的。Lu等人产生了对抗性例子,这里例子愚弄了用于停车标志和面部检测的检测器。同时针对一些经典的目标检测器如Faster-RCNN,一些更有效的攻击方法被开发出来。除了完整图像,还可以将攻击限定在局部区域来攻击目标检测器。

再研究目标检测和攻击

我们将重新研究目标检测,并讨论最近开发的多种攻击形式之间的联系。

3.1 目标检测作为多任务学习

一个目标检测器以这张图像作为输入然后产生K个预测目标,每个目标都有一个类别,其中C代表所有类别(包括背景)以及一个边界框信息。NMS作为后处理过程用于去除冗余的框,整个过程如Figure2所示。

Figure 2

在训练时,我们用参数θ来描述目标检测器,然后对检测器的训练可以表示为对θ的优化,公式如(1)所示。

其中x和代表从数据集D中采样的图像以及边界框信息。我们的目标是选出一个合适的θ来最小化检测器预测结果和数据集样本之间的损失,如等式(2)所示。

事实上,它通常被实例化为分类损失和定位损失的组合如等式(3)所示。这个损失也属于我们提到的多任务损失。

3.2 基于任务损失的检测攻击

最近已经开发了很多用于目标检测器的攻击方法。尽管这些攻击方法的形式有很多差异,但从3.1节指出的多任务角度来看,它们具有相同框架和设计原理:通过利用单个任务损失或其组合的变体,实现对目标检测器的攻击。这为理解和比较目标检测器的不同攻击提供了通用基础。从这个角度来看,我们可以将现有的攻击方法分类为Table1:

显然,某些方法使用分类损失,某些方法使用定位损失。有两种观点可以解释单个任务损失在产生攻击中的有效性:i)分类任务和定位任务共享一个backbone,这意味着backbone网络中的弱点将在基于它的任务间共享。ii)虽然分类和回归任务的输出是独立的分支,但因为使用了NMS,它们在测试阶段被耦合在一起,它们共同使用类别分数和位置信息进行冗余预测修正。

尽管已经开发了许多攻击方法,并可能在遵循一般原则的条件下提出新的组合和配置,但我们对于各个组件在模型鲁棒性中的作用尚缺乏理解。填补这一空白是我们的贡献之一,这自然会引出目标检测器的鲁棒性训练方法,详细内容见后文。

对抗性鲁棒检测

4.1 任务损失在鲁棒性中的作用

由于检测器的分类和定位任务共享一个backbone,这两个任务将不可避免的互相影响。因此,我们从多个角度对任务损失在模型鲁棒性中的作用进行分析。

任务损失的相互影响

我们的第一个经验观察是不同的任务会相互影响,并且针对一个任务进行的对抗攻击可能会降低模型在另一任务上的性能。为了证明这一点,采取了控制变量法。例如,在考虑分类时,我们可以将定位因素边缘化,然后将问题减少到多分类任务。另一方面,仅关注定位时,我们可以将类别信息边缘化,从而获得类别不可知的目标检测问题。使用PGD方法进行攻击的测试结果如图Figure3所示:

Figure 3

性能是在NMS之前通过检测输出进行测量,以更好的反映原始性能。首先,将候选集确定为前景候选框,也就是说必须和真实标注框的IOU大于0.5的框才会被选入。这样可以确保每个选定的候选任务都有一个相对清晰的输入。对于分类,我们计算候选集上的精度。对于回归,我们利用真实边界框坐标计算预测边界框的平均IOU。攻击是由PGD方法产生的。从Figure3(a)可以看出,这两个损失相互影响。基于分类损失的攻击会降低分类性能并降低定位性能。同样,定位损失的攻击不仅降低了定位性能,还降低了分类性能。从本质上讲,这可以视为跨任务攻击转移的一种类型。即,仅使用于分类损失的生成对抗图像,攻击转到定位任务会降低其性能,反之亦然。这是基于单个任务损失生成的对抗图像可以有效的攻击目标检测器的原因之一。

未对齐的任务梯度

我们的第二个经验观察是,这两个任务的梯度有一定程度的共同方向,但没有完全对齐,导致任务梯度错位,可能会混淆之后的对抗训练。为了说明这一点,我们分析了从两个损失中得到的图像梯度。和之间的逐点散度图如Figure3(b)所示。我们有几个观察结果:i)任务梯度的大小不相同,表示两个任务损失之间可能存在不平衡。ii)任务梯度的方向不一致(非对角线),这意味着两个任务梯度之间可能存在冲突。我们在Figure4中永TSNE进一步可视化每一个任务的梯度域。

Figure 4

这两个域并未完全分开(即它们不会折叠成两个孤立的集群)进一步加强了我们先前对它们相互影响的观察。它们具有明显的非重叠部分是任务梯度(任务域)之间未对齐的另一种反映。

4.2 对抗性训练以提高鲁棒性

受到先前的分析启发,我们提出了下面目标函数用于鲁棒性的目标检测训练:

其中,面向任务的域和表示每个子任务产生的可行域:

其中,被定义为,以及表示干净图像x和和产生的对抗图像z的空间距离被控制在干扰预算之内。我们将表示为将输入投影到可行域的投影算子。重要的是要注意与传统对抗训练相比在分类上的几个重要区别:

对抗训练的多任务源

与仅设计一个来源的分类案例中的对抗训练不同,这里我们有多个(存在多个目标时)和不同的(分类和定位)监督源来进行对抗生成和训练。

面向任务的域约束

与使用任务不可知域约束不同,我们引入了一种面向任务的领域约束,该约束将可行域限定为最大化分类损失或定位损失的图像集。用于训练的最后一个对抗示例是使该集合中的整体损失最大化的例子。提出的具有任务域约束的公式的关键优势在于,我们可以在每项任务的指导下产生对抗性的例子,而不受它们之间的干扰。

如果我们将面向任务的域放宽到,设置与完整图像对应的边界框的坐标,并为图像分配单个类别标签,则公式(4)会被简化为用于分类的常规的对抗训练设置。因此,我们可以将提出的鲁棒检测对抗训练看作是传统对抗训练在分类环境下的自然推广。然而,需要注意的是,虽然这两个任务都有助于根据其整体优势提高模型的预期稳健性,但由于检测任务领域不同于,在生成单个对抗示例的任务之间不存在干扰。整个算法过程可以被总结为Algorithm1。

结果和结论

对于Psacal-VOC数据集,使用DAG和RAP的对抗训练方式,测试我们的对抗训练在经典的几个one-stage目标检测算法上的性能测试如Table4所示:

同样在MS-COCO数据集上进行了测试,结果如Table6所示:

论文原文中还给出了很多训练及测试相关的参数细节以及对抗样本的生成细节,同时还有一些其它的攻击测试实验,这里就不再赘述,感兴趣请去原文结论部分进行查找。在VOC和COCO数据集上的结果表明,本文的方法可以提升目标检测算法在对抗攻击中的鲁棒性,对监控场景和无人驾驶等领域的视觉任务有重要意义。

特别地,我们在Figure9展示了一些对我们当前的模型具有挑战性的案例:

Figure 9

对于标准检测器来说,具有挑战性的小目标图像仍然是鲁棒性检测器难以检测的一类例子。为了应对这一挑战,可能需要更好的检测器结构。另一个挑战是外观令人迷惑的目标,这自然会导致低置信度预测。这与检测器的分类行为相关,可以从分类的进步中获益。同时,在某些情况下,预测是不准确或完全错误的,这揭示了训练鲁棒的检测器仍然存在挑战。

综上,我们提出了一种改进的鲁棒性目标检测器以抵抗对抗攻击。从目标检测的多任务角度,我们系统地分析了目标检测器的现有攻击方式以及各个任务组件对模型鲁棒性的影响。基于这些分析,提出了一种鲁棒的目标检测对抗训练方法。在PASCAL-VOC和MS-COCO数据集上进行了广泛的实验,实验结果表明,与标准模型相比,该方法在不同的攻击,数据集,检测器主干和体系结构上都具有提高模型鲁棒性的效果。

这项工作是迈向对抗性强的检测器训练的第一步,并取得了可喜的结果。需要朝着这个方向作出更多努力以应对剩下的挑战。目标检测的新进展可用于进一步改善模型性能,例如,更好的损失函数可以逼近真实目标,以及用于解决小目标的不同体系结构。同样,作为目标检测的一个组成部分,分类任务的任何进展也可能被用到。在清晰图像上目标检测的准确性和鲁棒性也需要权衡。此外,通过将目标检测视为多任务学习的实例,这项工作也可以作为提高其他多任务学习问题鲁棒性的一个例子。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191104A0NDLE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com