今天想要和大家分享的是cvpr2020的一篇文章。作者来自大连理工。
这篇文章对单目标追踪提出了一种对抗攻击方法叫做冷却缩小攻击,能够通过在输入中加入微小的对抗噪声让追踪的目标消失,从而导致追踪的失败。
首先来看什么是单目标追踪?
视频是由一帧一帧的图像组成的,对于第一帧中给定的目标,单目标追踪能够在接下来的每一帧中找到目标的位置。
比如下面这张图,要追踪的目标是这个球,目标追踪器能够在每一帧里面都用黄色的框框出球的位置。
(看到这里大家可能感觉出来了,这个单目标追踪和目标检测很像,
区别是目标检测要检测的物体的类别都是在训练集中出现的,单目标追踪可以追踪任意的目标,不管在他在训练集里面有没有出现。)
如果不加特殊说明,文献里面提到的目标追踪一般都是单目标追踪。他在视频监控,人机交互等领域应用广泛。
对抗攻击是在原样本中加入难以察觉的噪声,产生对抗样本。把对抗样本输入到模型中,让模型出现错误的结果。研究这一特性有助于深入的理解神经网络,提高模型的鲁棒性。现有的对抗攻击都集中在图像分类,目标检测任务中,对于目标追踪还没有一种有效的对抗攻击方法。因此作者想弥补这方面的空白,提出一种关于目标追踪的对抗攻击方法。
19年最好的单目标追踪方法是商汤提出的孪生RPN++网络。作者以此为研究对象做对抗攻击。
为了便于理解后面提到的攻击方法,我们首先对介绍一下这个网络的结构。
网络的输入是在初始帧中给定的一个模板T,和当前帧的搜索区域SR,输出的是目标在当前帧的位置。
这个模板是从初始帧中裁剪出来的要追踪的目标,为追踪器提供了目标的外观信息。
搜索区域是当前帧裁剪后的一个区域。因为要追踪的目标通常在相邻的两帧里面不会移动太多,因此现在大多数的追踪器并不会在整个图像中搜索目标,而是在以 上一帧目标的位置为中心的很小的区域 内定位目标。这个区域就是搜索区域。当前帧的搜索区域大小是和上一帧检测出的目标的大小成比例的。
在每一帧中,模板T和搜索区域SR都要输入神经网络里面,提取特征,然后经过RPN网络找到目标的位置。
RPN的全称是区域建议网络。对于搜索区域的每一个像素点,都假设是要追踪目标的中心点。生成很多长宽比以及尺度不同的锚框。这些锚框就是预设的目标的边界框。
RPN网络最后输出两个一一对应的map.
第一个叫做分类map,输出的是每个框中有目标的概率p+和属于背景的概率p-.
另一个map就是下面这个回归map,输出四个偏移量,用来微调对应目标框的中心点以及宽和高。
最后,跟踪器将分类得分最高的位置作为最优目标位置,然后利用相应的回归因子得到当前帧的准确边界框
通过分析这个网络,我们可以看出最后输出的目标的位置完全取决于这两个map.
因此,如果最终的分类map或回归map受到干扰,跟踪器可能会失去定位目标的能力或产生不准确的结果,从而导致跟踪失败.
沿着这个思路,作者设计了对抗攻击的损失函数。称为冷却缩小损失。
其中这个冷却损失,是为了干扰分类map。他把这个分类map看成是一个热力图,目标在这个位置的分类概率值越大,在热力图中就越红。。这个冷却损失,就想把这个热度降下来,和周围的差不多,其实就是缩小真实目标边界框的概率和其他边界框的概率的差值,从而让追踪器就分辨不出目标的位置。
另一个缩小损失就是希望回归map输出的边界框的宽和高越小越好,强制缩小预测的边界框,(通过累积误差)来让追踪产生不准确的结果。
这个图显示了冷却收缩损失对追踪结果的影响。第二行表示没有攻击的时候生成的热图,第三行表示加了对抗攻击之后生成的热图。我们可以看到对抗的热力图在目标存在的地方有较低的值,使得跟踪器很难定位被跟踪的目标。
设计完了损失函数,我们在看一下整个攻击的流程。
对抗攻击是在网络的输入中加入扰动。我们刚刚分析了用于目标追踪的孪生网络有两个输入:一个是模板,另一个是搜索区域。作者在这个两个地方都加了对抗扰动。因为加入对抗扰动的方法差不多,所以我们只介绍往搜索区域里加对抗扰动的方法。
(对抗攻击的方法分成两种,一种是迭代优化的方法,多次用梯度去最大化对抗目标函数,比较费时。另外一种是用大量数据训练对抗扰动生成器,这种方法在训练完成以后,对于每一个要攻击的图像,只需要一次前向传播就可以生成对应的对抗样本,比上一种方法要快很多。因此作者选择了这种生成器的方法。训练搜索区域的对抗攻击生成器的过程,如左图所示;)
作者是通过训练一个扰动生成器来向搜索区域中加入扰动的。那这个生成器是如何训练的呢?
生成器也是一个神经网络,首先随机初始化他的参数。然后将预先裁剪的没被攻击的搜索区域输入到扰动生成器中,加入对抗噪声,和干净的模板一起输入到目标追踪网络中。产生被攻击的分类图和回归图。追踪器将热力图中响应最高的区域作为目标的位置。我们期望在对抗热力图中存在跟踪目标的区域,响应值较低。为了标明这些区域,我们将没有被攻击的搜索区域一起输入到网络中,生成干净的热力图。然后用对抗的冷却收缩损失和L2损失一起训练对抗生成器。
训练完成后的在线跟踪阶段,我们只需要将一个干净的搜索区域输入到生成器中,在每一帧中得到一个新的对抗区域。
讲完了攻击流程,我们来看一下实验。
刚才说了,搜索区域和模板都可以添加扰动。所以作者做了三个实验,只攻击搜索区域,职只攻击模板,以及两个都攻击。第一列是不同的数据集,第二列是数据集常用的评价指标,向上的箭头表示这个指标越大,追踪器越好。向下的箭头表示,数值越小越好。第三列是原追踪器的指标值,第四列是受过攻击之后的指标。第五列指的是受过攻击之后的追踪器性能相比与原来的下降了多少。可以看出攻击模板或者是攻击搜索区域都会造成追踪器的性能下降,都攻击的话,性能下降的更多。
另外作者进一步分析了这个攻击方法。
速度方面,攻击搜索区域只需要9ms, 攻击模板只需要3ms,该算法的速度比一般的视频流和大多数实时跟踪器的速度快得多,这表明它在时间消耗上是不可察觉的
作者吧这个攻击方法用在了其他几个目前效果较好的追踪器上,能明显的观察到,这几个追踪器的性能都有所下降。证明了该方法的迁移性。
关于加入的噪声:第一行是攻击之后的图像,第二行是没受攻击的原图,第三行是两张图做差放大十倍之后的结果,也就是10倍的噪声。可以看出噪声主要集中在要追踪的目标上。
另外作者也将这个噪声和脉冲,高斯噪声做了对比,可以看出这个对抗噪声是更加隐蔽不可察觉的。