《One-shot Adversarial Attacks on Visual Tracking with Dual Attention》论文笔记

这是cvpr20的一篇与对抗攻击相关的文章。

涉及的问题

深度学习虽然在cv领域硕果累累,但是它的脆弱性(vulnerable)是众所周知的。通过人眼无法察觉的微小改动,就可以使得神经网络模型产生截然不同的预测。这篇文章涉及的问题是:作者首次将对抗攻击引入到视频目标追踪(Video Object Tracking,VOT)中,研究如何攻击VOT领域中的SOTA模型,如SiamRPN等。

与传统的对图像分类或目标检测模型的攻击不同,对VOT模型的攻击涉及以下几个难点:(1)VOT任务大多是online的,因此只知道第一帧的目标框位置,而不知道目标物体的类别,所以无法通过离线的方式去得到class-level的对抗扰动;(2)tracking的失败与classification的失败是不同的:在classification中,只需要增大第二大的概率值,使之超过原模型的最大概率就可以认为是成功的攻击;但在tracking任务中,仅仅最大化第二大的confidence并不能导致tracking的失败,因为像SiamRPN之类的网络需要很多anchor做回归得到精确的位置;(3)Guassian Window的影响:我们期望让离ground truth最远的box有较高的confidence,但是Guassian Window会在帧之间限制这种box的confidence,这显然是冲突的。

解决的方法

概括来说,解决方法主要分为三个步骤:(1)由于类别的不确定性,需要生成对任何可能目标的扰动,因此作者仅仅在每个视频的第一帧添加perturbation,这种方法称作one-shot attack;(2)攻击时的损失函数由两部分构成,分别是batch confidence loss和feature loss:前者的目的是降低一些high-quality box的置信度,并提高一些low-quality box的置信度;后者是增强攻击的力度,具体见下文;(3)分别对两种loss增加了attention机制,有适当涨点。

在这里插入图片描述
上式表示的是batch confidence loss,我们希望最小化之。对于排名1-p的high-quality的box,希望通过生成的攻击样本 z ∗ z^{*} z来降低其confidence,对于排名处于最后的r-q到q的box,希望通过攻击样本 z ∗ z^{*} z来提高其confidence。公式的前提条件是每个像素的扰动需小于一个阈值 ϵ \epsilon ϵ

在这里插入图片描述
上式表示feature loss,最小化这个损失函数意味着要拉远干净输入 z z z和对抗样本 z ∗ z^{*} z之间的feature,在原始输入扰动有限的情况下,拉远两者的feature可以做到更加有效的攻击。

在这里插入图片描述
上式是对batch confidence loss添加了attention机制, w w w表示attention的权重。根据公式5可得,如果rank为I的box与排名最高的box之间的坐标差距越小,则该权重就越大,这也反映了不同box的重要性是不同的。对于higher-quality的box来说,我们需要对他进行更大的惩罚,这样更有利于loss的下降。

在这里插入图片描述
feature loss的attention机制与batch confidence loss大同小异,针对不同的channel给出重要性权重, w w w越小表明损失越大,而 w w w小对应了通道j的均值与最小的通道均值接近的情况,这也是区分不同通道重要性的一种做法。

在这里插入图片描述
最终的dual-attention loss的计算式如上, α \alpha α β \beta β是两个实验需要调节的超参数。

算法的流程如下:

在这里插入图片描述
从视频的第一帧crop出目标区域 z z z,起初让对抗样本 z ∗ = z z^{*}=z z=z,将干净的图像扔到VOT模型中,产生若干个(n个)candidate,将这n个候选框按照置信度进行排序。随后就是迭代100次,如果在某个时刻confidence排名第一的box,它的index在第一次迭代中在p的后面,此时停止迭代;否则进行dual attention攻击。

实验结果

作者在OTB100,LaSOT和GOT10K这三个数据集上进行了一系列实验:

在这里插入图片描述
上图precision表示box中心点到GT中心点距离,如果该距离超过了20个pixel,则表示失败;Success Rate是从scale层面的衡量,当candidate和GT之间的overlap ratio小于阈值0.5,则表示失败。根据上述表格,可见普通的噪声只能降低个位数的百分点,而作者这种对抗攻击产生的对抗样本可以降低几十个百分点,显然这样的攻击是成功的。

在这里插入图片描述
上图是随着阈值改变进行的实验,这张图更能直观的展示出经过对抗攻击的模型,其precision和suceess rate的值都大大降低。这里的分析感觉可以深挖一步,即关于阈值的选择,对于图一,如果阈值设定较小,取个极端情况(阈值为0,大于0个pixel差异的都判定为false),此时不管模型有没有受到攻击,都表现出很差的结果;倘若阈值很大,那么模型的容错程度也就上升,可见虽然模型受到攻击,但当这个阈值大到一定程度的时候,判定为true就显得非常宽松,即使两个box距离相差很远,之间的距离仍然小于这个很大的阈值。图二的分析也基本一样。因此阈值的选择不能过大和过小。

在这里插入图片描述
在LaSOT和GOT10K两个数据集上的结论也都大同小异,我们通过Adversarial Attacks得到的对抗样本,绝非简单的添加噪声,而是能够实际迷惑神经网络,使其得到的预测精度大大降低。

在这里插入图片描述
上图是消融实验,表明了(1)对抗攻击的效果比普通噪声好;(2)增加attention机制比vanilla算法的点数稍高;(3)综合L1和L2两个损失函数的效果要好于single的方法。所以最好的模型应该是考虑L1和L2两个loss,并且为两个loss都添加各自的attention机制,这样模型攻击成功的点数是最高的。

在这里插入图片描述

文章优缺点

优点:针对VOT任务的本质设计了对抗攻击的方法,one-shot攻击有一种以不变应万变的味道,仅仅在第一帧的patch上面作出扰动,适应各种未知类别的目标;作者提出不能只让第二大的candidate超过最大的confidence,因为VOT的任务要求多个candidate一起回归GT,所以对于high-quality和low-quality的box各采用了若干个。而且两个loss的结合很有意思,batch confidence loss很好的让low-quality box的置信度提升以超越high-quality box,而feature loss也是希望在input不做太大改动的情况下,尽可能让两者在feature space中的距离变得很大,以增强攻击效果,这个构思我觉得非常巧妙。

存疑:

(1)个人认为是在attention这一块,涨点不是太多,但是对于模型的计算代价可能会产生一定的负担,tanh的计算对时间的开销还是有一些的。attention虽然用的比较有想法,但感觉理论讲解的不是太透彻。而且在实验中对于超参数a,b,c也需要进行不断的调试,在online-training上个人觉得有些拖沓,实验调节的超参数有点过于多(a,b,c, α \alpha α, β \beta β等)。

(2)算法流程中写到,当某一次攻击迭代的时候,如果此时排名rank 1的box的index,在第一次中小于high-quality box的尾巴p,则终止迭代。个人认为再加一个限制条件有可能会更好,即在小于p的基础上,还应该在1时刻属于low-quality的box。不知道这样会不会有更好的效果。

猜你喜欢

转载自blog.csdn.net/jackzhang11/article/details/109697776
今日推荐